Add restore command.

This a proposal for #321 . This PR allows only the full database restoration from a file.

Codecov Report

Merging #357 (0c21e16) into main (bd06675) will decrease coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #357      +/-   ##
==========================================
- Coverage   67.79%   67.74%   -0.06%
==========================================
  Files          72       72
  Lines        7201     7201
==========================================
- Hits         4882     4878       -4
- Misses       1663     1667       +4
  Partials      656      656

Impacted Files
Coverage Δ

sql/driver/driver.go
61.96% <0.00%> (-2.46%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update bd06675...0c21e16. Read the comment docs.


Any easy way to visualize a setup?

New to the library, having fun exploring. Is there an easy-ish way to see what is going on, like a no-fancy-materials scene renderer?

Hmm, there is no way to simply toggle between a normal view and a debug view. I guess the easiest way is to simply assign an unlit / blinn-phong material to your meshes, something like this:
// create or load some mesh
val someMesh = colorMesh {
    generate { cube { } }
}

// assign an unlit shader
// or use KslBlinnPhongShader instead of KslUnlitShader to consider scene lighting
someMesh.shader = KslUnlitShader {
    color {
        // use color vertex attribute
        vertexColor()
        // alternatively, use some constant color
        //constColor(Color.GREEN)
    }
}

scene += someMesh

Hmm, not really. A pretty easy option would be to use the PhysX Visual Debugger However, that's not yet fully implemented.

Thanks I'll try that when I get back near a PC!


Model weight not saved when exporting SavedModel

Click to expand!
Issue Type
Support
Have you reproduced the bug with TF nightly?
No
Source
binary
Tensorflow Version
tf2.8
Custom Code
Yes
OS Platform and Distribution
WSL2+tensorflow/tensorflow:2.8.0-gpu-jupyter image
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
I need to change the signature in SavedModel by loading and re-export it with different configuration. The new exported model lost track of the model weight. Here's what I've tried
- Load the SavedModel (>300MB, with two signatures, exported in TF1.15) with TF2.8
- Select the signature I need
- Export Model with new signature config
- Load Model And Test

The re-exported model can be successfully loaded. But it won't be able to make any prediction due to initialized variable. I checked the exported model and the size is approximately 300kb, which means that most of the model weights were lost.

I looked into this answer that solves the problem on his case. To me the only difference is that he converted variables in the original variable to constants. But for this approach the original .ckpt file is a prerequisite, which is not my case
Standalone code to reproduce the issue
Script for reproducing the issue

# https://stackoverflow.com/questions/57048064/saved-model-prune-in-tf2-0
# https://stackoverflow.com/questions/59504276/resave-tf1-x-saved-model-pb-into-new-tf2-0-saved-model-pb
import tensorflow as tf
import numpy as np
import os

os.environ["CUDA_VISIBLE_DEVICES"] = ""
export_path_origin = "baidu-ske-2019-len128"  # A Model with multiple signatures
assert tf.__version__[0] == '2'
print("test")

imported = tf.saved_model.load(export_dir=export_path_origin)
print(imported.signatures)
f_serving_default = imported.signatures["serving_default"]
f_predict = imported.signatures["predict"]

inputs = {
    "input_ids": tf.constant([[0] * 128]),
    "segment_ids": tf.constant([[0] * 128]),
    "input_mask":  tf.constant([[0] * 128])
}
serving_default_output = f_serving_default(**inputs)
# print(serving_default_output)
predict_output = f_predict(**inputs)
# print(predict_output)

signature_to_keep = f_predict

fetches = {k: v.name for k, v in signature_to_keep.structured_outputs.items()}
feeds = [input_.name for input_ in signature_to_keep.inputs]
new_fn = imported.prune(feeds, fetches=fetches)
new_fn.graph.finalize()
original_output = signature_to_keep(**inputs)
new_outputs = new_fn(**inputs)
print(new_outputs)

# Assert equal
for k in new_outputs:
    t_origin, t_new = original_output[k], new_outputs[k]
    assert t_origin.dtype == t_new.dtype
    if t_origin.dtype.is_floating:
        np.testing.assert_allclose(t_origin.numpy(), t_new.numpy())
    else:
        assert np.all(t_origin.numpy() == t_new.numpy())

class Exportable(tf.Module):
    def __init__(self, fn):
        super(Exportable, self).__init__()
        self.tf1_model = fn

    tf.function(input_signature=[tf.TensorSpec([None, 128], tf.int32), tf.TensorSpec([None, 128], tf.int32), tf.TensorSpec([None, 128], tf.int32)])
    def forward(self, input_ids, segment_ids, input_mask):
        with tf.init_scope():
            out = self.tf1_model(input_ids=input_ids,
                                segment_ids=segment_ids, input_mask=input_mask)
        return out

new_saved_model = Exportable(new_fn)

print(new_saved_model.forward(**inputs))    # Eager Execution Works
new_model_path = './new_saved_model'

tf.saved_model.save(new_saved_model, new_model_path)
imported = tf.saved_model.load(export_dir=new_model_path)
imported.signatures["serving_default"](**inputs) # Error: Uninitialized variables

Here's the metadata of the original model from by tensorflow/serving
{
    "model_spec":{
     "name": "default",
     "signature_name": "",
     "version": "1"
    }
    ,
    "metadata": {"signature_def": {
     "signature_def": {
      "predict": {
       "inputs": {
        "segment_ids": {
         "dtype": "DT_INT32",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "segment_ids:0"
        },
        "input_mask": {
         "dtype": "DT_INT32",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "input_mask:0"
        },
        "input_ids": {
         "dtype": "DT_INT32",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "input_ids:0"
        }
       },
       "outputs": {
        "token_label_predictions": {
         "dtype": "DT_INT64",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "token_label_loss/ArgMax:0"
        },
        "predicate_head_probabilities": {
         "dtype": "DT_FLOAT",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           },
           {
            "size": "49",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "predicate_head_select_loss/Sigmoid:0"
        }
       },
       "method_name": "tensorflow/serving/predict"
      },
      "serving_default": {
       "inputs": {
        "segment_ids": {
         "dtype": "DT_INT32",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "segment_ids:0"
        },
        "input_mask": {
         "dtype": "DT_INT32",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "input_mask:0"
        },
        "input_ids": {
         "dtype": "DT_INT32",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "input_ids:0"
        }
       },
       "outputs": {
        "predicate_head_probabilities": {
         "dtype": "DT_FLOAT",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           },
           {
            "size": "49",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "predicate_head_select_loss/Sigmoid:0"
        },
        "token_label_logits": {
         "dtype": "DT_FLOAT",
         "tensor_shape": {
          "dim": [
           {
            "size": "-1",
            "name": ""
           },
           {
            "size": "128",
            "name": ""
           },
           {
            "size": "61",
            "name": ""
           }
          ],
          "unknown_rank": false
         },
         "name": "token_label_loss/Reshape_1:0"
        }
       },
       "method_name": "tensorflow/serving/predict"
      }
     }
    }
    }
    }

### Relevant log output

```shell
test
2023-01-18 11:28:10.218951: E tensorflow/stream_executor/cuda/cuda_driver.cc:271] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
2023-01-18 11:28:10.219019: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (b0c1756a148b): /proc/driver/nvidia/version does not exist
2023-01-18 11:28:10.219329: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 AVX512F FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/word_embeddings:0' shape=(21128, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/token_type_embeddings:0' shape=(2, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/position_embeddings:0' shape=(512, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/beta:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/gamma:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/word_embeddings:0' shape=(21128, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/token_type_embeddings:0' shape=(2, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/position_embeddings:0' shape=(512, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/beta:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/gamma:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/word_embeddings:0' shape=(21128, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/token_type_embeddings:0' shape=(2, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/position_embeddings:0' shape=(512, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/beta:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/gamma:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/word_embeddings:0' shape=(21128, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/token_type_embeddings:0' shape=(2, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/position_embeddings:0' shape=(512, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/beta:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/gamma:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
_SignatureMap({'serving_default': <ConcreteFunction pruned(input_ids, input_mask, segment_ids) at 0x7FFB8402C9A0>, 'predict': <ConcreteFunction pruned(input_ids, input_mask, segment_ids) at 0x7FFB38122730>})
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/word_embeddings:0' shape=(21128, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/token_type_embeddings:0' shape=(2, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/position_embeddings:0' shape=(512, 768) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/beta:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'bert/embeddings/LayerNorm/gamma:0' shape=(768,) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs.
Traceback (most recent call last):
  File "/home/polonsky/Documents/volcano_poc/Bravo/test.py", line 69, in <module>
    imported.signatures["serving_default"](**inputs) # Error: Uninitialized variables
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 1601, in __call__
    return self._call_impl(args, kwargs)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 1610, in _call_impl
    return self._call_with_structured_signature(args, kwargs,
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 1691, in _call_with_structured_signature
    return self._call_flat(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/saved_model/load.py", line 133, in _call_flat
    return super(_WrapperFunction, self)._call_flat(args, captured_inputs,
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 1853, in _call_flat
    return self._build_call_outputs(self._inference_function.call(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/function.py", line 499, in call
    outputs = execute.execute(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/execute.py", line 54, in quick_execute
    tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
tensorflow.python.framework.errors_impl.FailedPreconditionError: Graph execution error:

Detected at node 'bert/encoder/layer_5/output/dense/bias/read' defined at (most recent call last):
    File "/home/polonsky/Documents/volcano_poc/Bravo/test.py", line 68, in <module>
      imported = tf.saved_model.load(export_dir=new_model_path)
Node: 'bert/encoder/layer_5/output/dense/bias/read'
Attempting to use uninitialized value StatefulPartitionedCall/bert/encoder/layer_5/output/dense/bias
         [[{{node bert/encoder/layer_5/output/dense/bias/read}}]] [Op:__inference_signature_wrapper_11982]

Hi, @BorisPolonsky
Apologize for the delay and I'm really sorry to inform that we do not support TF 1.x anymore so you'll have to change your TF 1.x code to Tensorflow 2.x by following our Migrate from TensorFlow 1.x to TensorFlow 2 official documentation  and you can refer Migrate the SavedModel workflow Thank you!

Hi, @BorisPolonsky
Apologize for the delay and I'm really sorry to inform that we do not support TF 1.x anymore so you'll have to change your TF 1.x code to Tensorflow 2.x by following our Migrate from TensorFlow 1.x to TensorFlow 2 official documentation  and you can refer Migrate the SavedModel workflow Thank you!

I know TF1.X is not longer support hence I'm migrating the existing TF1.X SavedModel two TF2 (for serving purpose only). I've looked through the official document and this post, where a .ckpt file is required. And in my case I've got merely a SavedModel itself. So is it still possible to convert it to TF2.X SavedModel, given that I've successfully made forward pass work in TF2 as the script above suggests?

Hi, @SuryanarayanaY
Could you please look into this ? Thank you!

Hi, Instead f using tf.saved_model.save to save the model, could you please try saving using tf.keras.Model.save and to load use tf.keras.models.load_model and let us know if you still face same behavior. Thanks!


Trigger reset environment (before a test suite)

Hello
Because reasons, I need to remove all cookies and variables before running a whole file.
"httpYac: Reset Environments" is at the top when I press F1.
I only need to reset when running all the tests in a file, not when I'm sending individual requests one by one.
Sometimes I forget to do it and half of the tests fails xD
Is there a configuration or directive I can put somewhere to make that happen automatically?

@sir-farfan It is easily possible via script in the file to reset the environments, but this would always be for all executions. This is probably rather undesirable. I would suggest that I include these changes.

An indicator so that scripts can recognize the execution within the Test Runner.
add a config setting testResetEnvBeforeRun to reset current environment before a test run
add a config setting testAlwaysUseEnv to set a specific environment for all test run

Does that sound good? It will take a few days though, as I just started a little side project.

Hi @AnWeber yeah, that sounds good. I appreciate the intention, the plugin has been a big help so far :)

The feature will be delivered with the next version. I will release this in the next few days, probably on Sunday.

Where do you set testRunResetEnvBeforeRun? I added it to the .httpyac.config.js file but it made no difference.
module.exports = {
  "log": {
    "level": "debug",
    "supportAnsiColors": true,
  },
  "cookieJarEnabled": true,
  "envDirName": 'env',
  "proxyExcludeList": [
    "localhost"
  ],
  "request": {
    "https":  {
      "rejectUnauthorized": false
     }
  },
  "testRunResetEnvBeforeRun": true

I assume that every time I run tests from the Testing menu, it would execute httpYac: Reset Environments, but it doesn't seem to do so, at least, I do not see it generating a new token every time I run a file or folder.

@alekdavisintel it is a vscode setting: httpyac.testResetEnvBeforeRun

@AnWeber Thanks, it works.


add configuration for snapshot testing

Fixes
Fixes #30
Description
This PR sets up configuration fro snapshot tests. When running npm run test:snapshot ( test:integration is not found), an error shows:
  ● Test suite failed to run

    Cannot find module 'babel-plugin-transform-es2015-modules-commonjs' from '/home/silvina/projects/fonts'

      at Function.module.exports [as sync] (../../node_modules/resolve/lib/sync.js:72:15)
      at resolveStandardizedName (../../node_modules/@babel/core/lib/config/files/plugins.js:101:31)
      at resolvePlugin (../../node_modules/@babel/core/lib/config/files/plugins.js:54:10)
      at loadPlugin (../../node_modules/@babel/core/lib/config/files/plugins.js:62:20)
      at createDescriptor (../../node_modules/@babel/core/lib/config/config-descriptors.js:154:9)
      at items.map (../../node_modules/@babel/core/lib/config/config-descriptors.js:109:50)
          at Array.map (<anonymous>)
      at createDescriptors (../../node_modules/@babel/core/lib/config/config-descriptors.js:109:29)
      at createPluginDescriptors (../../node_modules/@babel/core/lib/config/config-descriptors.js:105:10)
      at plugins (../../node_modules/@babel/core/lib/config/config-descriptors.js:40:19)

Checklist

[x ] My pull request has a descriptive title (not a vague title like Update index.md).
[x ] My pull request targets the master branch of the repository.
[x ] My commit messages follow best practices.
[x ] My code follows the established code style of the repository.
[ ] I added tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

I'm not sure what this PR is trying to solve. The infrastructure for testing has already been added so any PRs after that should only be adding, or changing, individual test files and test cases, not modifying helpers and configuration files.

@dhruvkb I understand that. I did this PR because I set up the configuration as per #33 but it didn't seem to work, aside from the fact that the test itself was not correct. This PR has to do with this [comment] (https://github.com/creativecommons/fonts/issues/30#issuecomment-609457316), where I'm asking for assistance. I've checked what you've shared and will proceed as per your responses

@silvinabt87 try running the tests with Docker. See https://github.com/creativecommons/fonts/issues/30#issuecomment-609465011. Let me know on Slack if you're still stuck.

@dhruvkb I saw your comment and I've installed Docker and Docker Compose with its documentation instructions. Everything seems to be right with the installation but when I try to run it according to Vocabulary instructions, I get an error Can't find a suitable configuration file in this directory or any parent. Are you in the right directory? Supported filenames: docker-compose.yml, docker-compose.yaml
I sent you a message on Slack because I've tried troubleshooting in several ways but I can't seem to find a solution.

Issue #30 has been resolved by PR #50.


It always crashed when I use with ‘cmd+z’ that revoke shortcut key.

Operation
[It always crashed when I use with ‘cmd+z’ that revoke shortcut key. ]
Expected behaviour
It always crashed when I use with ‘cmd+z’ that revoke shortcut key.
Environments

Xcode Version [ 7.3.2   ]
XVim branch and revision [   master  the newest version ]
Keyboard Language [  English  ]
Input source language [  Englist And Chinese  ]

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/37371550-it-always-crashed-when-i-use-with-cmd-z-that-revoke-shortcut-key?utm_campaign=plugin&utm_content=tracker%2F252770&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F252770&utm_medium=issues&utm_source=github).

What is 'cmd-z' ?
I cannot understand the meaning of 'revoke shortcut key'


Remove startup relic from reference project

JImmy since many people refer to your reference project and you've recently spruced it up to 3.1 I wanted to take it a step further leverage the generic web host builder such that we can eschew the legacy Startup class entirely which then allows for greater standardization between hosts with and without HTTP workloads.
I updated you to the latest Fluent Validation and removed the references to AutoMapper & MediatR because they both are inherited by the DI packages respectively.

Build failing due to .NET 3.1 SDK missing in AppVeyor


Fix the incremental task "acceptance-test:test"

Hi
This pull request fixes improves the build script of the project.
Specifically, it fixes the incremental task acceptance-test:test so that Gradle re-executes tests whenever there are updates to any of the dependents files included in the acceptance-test/examples directory.
In the current situation, when there is an update to any of those files, I have to execute ./gradlew clean in order to run acceptance tests again.

Thank you for your contribution!


Loading from Arrow files

This is not necessarily a feature request. Rather, it's a request for either a feature to be added or for improved documentation clarifying that the feature is not available. To my understanding, datafusion (at the CLI at least) cannot read from Apache arrow files. There are two different kinds of Arrow files: the .arrow file (which has a footer with metadata about block positions) and the .arrows "streaming" file (which lacks the footer). I've tried out several CREATE EXTERNAL TABLE invocations:
CREATE EXTERNAL TABLE foo stored as ARROW LOCATION foo.arrow
CREATE EXTERNAL TABLE foo stored as ARROWS LOCATION foo.arrow
CREATE EXTERNAL TABLE foo stored as FEATHER LOCATION foo.arrow

They all give an "Unable to find factory for ..." error. After looking through more of the documentation for a while and paying attention to what wasn't explicitly said, I realized that arrow files are not support as a form of input. I think that, if this is the case, it should be mentioned explicitly in the documentation. Datafusion's documentation is misleading about arrow being an internal implementation detail, not an external-facing way to communicate with a producer of data. From the readme on GitHub:

Easy to Connect: Being part of the Apache Arrow ecosystem (Arrow, Parquet and Flight), DataFusion works well with the rest of the big data ecosystem

I read this as meaning the datafusion can consume data in the arrow format. Flight is a tool specifically for the purpose of shuffling arrow-formatted data around on a network, so it's hard to interpret this as meaning anything else. Perhaps this was a goal at some point, or maybe it's possible to do this, but it's undocumented.
Here are three mutually exclusive possibilities for improving this situation:

Document that arrow files are not supported.
Document that arrow files are supported (maybe they are and I couldn't figure it out!)
Support arrow files as a source of data

I think @Dandandan  had a PR that started to do this: https://github.com/apache/arrow-datafusion/pull/1858

If that's the case, I'd like to PR an addition to the FAQ page that makes this more clear. Would that be alright?

If that's the case, I'd like to PR an addition to the FAQ page that makes this more clear. Would that be alright?

Please do!


sap.m.p13n.Engine pressing reset does not reset sort and group

OpenUI5 version: 1.120.0
Browser/version (+device/version):
Any other tested browsers/devices(OK/FAIL):
URL (minimal example if possible): https://sdk.openui5.org/entity/sap.m.p13n.Engine/sample/sap.m.sample.p13n.Engine
User/password (if required and possible - do not post any confidential information here):
Steps to reproduce the problem:

Open personalisation dialog
Sort and group by first name, press OK. Table should be sorted and grouped accordingly.
Open personalisation dialog again and click reset. Note that sort and group conditions are still present in the dialog, but in the background the sorting is gone while grouping remains.
Press OK and open the personalisation dialog again. Press reset again. Now, the sort condition in the dialog is gone while the group condition remains.

What is the expected result? Upon clicking reset, personalisation dialog should reset to no sorting and grouping, and the table should reset to its default state.
What happens instead?
As above in the steps to reproduce.
Any other information? (attach screenshot if possible)
Works correctly in 1.118.0

Hello @junwei-tj ,
Thank you for sharing this finding. I've created an internal incident 0017367. The status of the issue will be updated here in GitHub.
Regards,
Petya Markova.
(UI5 Dispatcher)

Hi @junwei-tj thank you for reporting this finding for the personalization assets. The change that fixed this behaviour has already been merged a while ago (https://github.com/SAP/openui5/commit/0992935238e301338fe0d1a1bcd833782d2a9d6a) you can use patch 1.20.2 and the issue is no longer reproducible: https://sapui5.hana.ondemand.com/1.120.2/#/entity/sap.m.p13n.Engine/sample/sap.m.sample.p13n.Engine
Thanks & Regards
Martin


Modifying parent scene hierarchy breaks inheriting scenes

Godot version
v4.0.beta17.mono.official [c40020513]
System information
Windows 10
Issue description
Modifying the node hierarchy in a scene while there are scenes who inherit from it will break the child scenes' custom nodes that were modified.
I created a scene called Creature, set it up as needed, then made a scene called Human that inherits from Creature. Later on, I needed to add a new node to Creature and move an existing node to be a child of that. Doing so caused every child of the moved node to be deleted in the child scene. Inspecting the *.tscn file, the custom nodes were not actually deleted but instead had the wrong parent, and were therefore broken in the editor. I was able to hand-modify the scene file to restore the broken nodes.
Steps to reproduce

Create a scene root Node2D, name it ParentNode.
Add a child Node named "TestNode" to it.
Save it, create a new inheriting scene named ChildNode.
Add any node as a child to the "TestNode"
Save it, return to the ParentNode
Add a new Node, move "TestNode" to be a child of the new Node. Save it.
Return to the ChildNode and notice the broken hierarchy.

Minimal reproduction project
BrokenSceneInheritanceMRP.zip

IIRC this was already reported.

This is same issue as #24817
Editor doesn't know how the hierarchy was changed. The parent can be moved, renamed or deleted and and the child nodes you added will be in invalid state. There is no way to detect the changes and move the nodes to the correct parent.
And no, your nodes are not gone. They are moved under root node, with their old path stored in their name.


Mongo Event Storage Strategy not guaranteed to deliver events in correct order

It seems that with the current implementation of AbstractMongoEventStorageStrategy, in some cases, such as the one detailed below, events can be returned out of sequence.
org.axonframework.extensions.mongo.eventsourcing.eventstore.AbstractMongoEventStorageStrategy l.170 sorts the events by timestamp property and then sequence number property.
Event timestamps are formatted by ISO_UTC_DATE_TIME specified in org.axonframework.common.DateTimeUtils l.33.
This results in a formatted String such as: "2019-10-15T14:30:30.97899Z"
In our database, we have these two events:
{ "aggregateIdentifier" : "585dd28a", "type" : "Aggregate", "sequenceNumber" : NumberLong(0), "timestamp" : "2019-10-15T09:45:35.8126Z" } { "aggregateIdentifier" : "585dd28a", "type" : "Aggregate", "sequenceNumber" : NumberLong(1), "timestamp" : "2019-10-15T09:45:35.812694Z" }
As timestamp is a String field, by alphabetical order the event with sequence number 1 is returned before the event with sequence number 0!
Unfortunately, this breaks some of our event handlers as this has happened for a few aggregates already and the event handlers are depending on processing events in correct order.

Firstly, @AlexFriesenhahn6842, I'd like to point out you've dropped the question on the wrong repository page. For any of our extensions, we have dedicated pages and the Mongo one can be found here.
Secondly, this "issue" is exactly why we currently deviate away from MongoDB as being a fair solution to Event Storage. I added a hint to describe this in the Reference Guide, which sadly good lost during our upgrade to Axon 4.  The hint can still be found here though, which I'd slightly adjust to the following:

In pre Axon Framework 3 release we found MongoDb to be a very good fit as an Event Store.
However with the introduction of Tracking Event Processors and how they track their events, we have encountered some inefficiencies in regards to the Mongo Event Store implementation.
We recommend using a built-for-purpose event store (like Axon Server), or alternatively an RDBMS based (the JPA or JDBC implementations for example), and would only suggest to use Mongo for this use case if you have found its performance to be beneficial for your application.

To conclude, it's the nature of current MongoDb implementation being used by the extension which does not have an easy replacement for the globalIndex on an event. It's the globalIndex in the purpose build event stores or de RDBMS version which ensure the correct ordering, always, which would also resolve the problem you are encountering. I understand this "nugget of news" isn't great for your current application, but as shared earlier I would suggest to move to a different storage mechanism to minimize customization of the Mongo Extension on your end.

Thank you for the explanation @smcvb.
So, this means that effectively Mongo is no longer "officially" supported as an event store, unless event handlers do not depend on the ordering of events?
I think the hint should be stronger in that case, as "inefficiency" implies to me it still works correctly, just slower than RDBMS/Axon Server.

Thanks for your feedback @AlexFriesenhahn6842, I'll see to it that we incorporate it in the description.


CI: update CI schedule following KISS principle

As codecov been updated in basic CI job. To avoid an edge case, as go test fail after codecov update.
Considering pipeline as code and try to follow KISS principle.

remove go test after codecov update.
adding schedule to keep testing been run daily.
for each testing, after this PR, in single file. as all Muzzle testing in muzzle.yml

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


feat: Registration form implementation

Description:
what are the changes you implemented?
Implemented a registration form for the app including user input validation.

Name consists only letters
Telephone must be 10 digit long and start with '05'
password and confirm password must match
Back button to return to login page

Type of change:

[ ] Bug fix
[x] New feature
[ ] Fix/new infrastructure

The ticket this PR closes:
Put a link to the ticket on Jira we're closing using this pull request.
https://ofirlindekel.atlassian.net/jira/software/projects/NOTIFY/boards/1?selectedIssue=NOTIFY-34
Scenarios that were tested during this implementation:
List the scenarios you tested for this changes.
various inputs to test the validations.
Insert screenshots / video of test results (for all relevant platforms)
If you implemented a new workflow / fixed a bug in a certain workflow, you can provide a proof it's working here.

Looking good. We need to consider adding particular demands for creating a bit more complex password (like big\small letters, numbers, special chars, and length of the password...)

Done


Converter crashes if number of columns in cols spec exceeds number of columns in table

If the number of columns specified in the cols spec exceeds the number of columns in the table, the converter crashes.
For example:
[cols="2*"]
|===
| Foo
|===

Here's the error message that gets reported:
Table's width was set larger than its contents' maximum width (max width<PHONE_NUMBER>9999998, requested<PHONE_NUMBER>9999995)

Look for similar cases.

cc: @ge0ffrey

While we fixed a similar problem for #480, we did not consider the case when the number of columns is specified explicitly on an empty (or perceived empty) table.


Compatible

Is the version 5Q0035874C compatible?
If it is not compatible will it brick my system?

Did you ever try it? Im wondering the same 👀

https://github.com/olli991/mib-std2-pq-zr-toolbox/blob/master/README.md


[Bug]: Issue when generating ballerina client code with grpc containing oneof and google.profotbuf.Empty

Description
I am seeing a null pointer error when attempting to generate off of my GRPC spec. I wrote this demo GRPC spec similar to my internal set up to replicate the issue.
Steps to Reproduce
Create the service.proto file as follows:
syntax = "proto3";

package test;

import "google/protobuf/empty.proto";

service TestService {
    rpc TestRPC(RequestMessage) returns (ResponseMessage);
}

enum TestEnum {
    ENTRY_ONE = 0;
    ENTRY_TWO = 1;
}

message ComplexType {
    uint32 foo = 1;
    TestEnum bar = 2;
}

message OptionalComplexType {
    oneof value {
        ComplexType complex_value = 1;
        // A field to represent `None`. It's usually left as an empty field.
        google.protobuf.Empty none = 2;
    }
}

message OptionalString {
    oneof value {
        string name = 1;
        // A field to represent `None`. It's usually left as an empty field.
        google.protobuf.Empty none = 2;
    }
}

message RequestMessage {
    repeated OptionalComplexType req = 1;
}

message ResponseMessage {
    repeated OptionalString resp = 1;
}

When I test with:
$ bal grpc --mode client --input ../api/service.proto --output .

I get the following error:
Continuing with the existing protoc executor file at /var/folders/bt/5dmlqljj2rb1t5nfpkyg68zw0000gn/T/protoc-3.21.7-osx-aarch_64.exe
Successfully extracted the library files.
ballerina: Oh no, something really went wrong. Bad. Sad.

We appreciate it if you can report the code that broke Ballerina in
https://github.com/ballerina-platform/ballerina-lang/issues with the
log you get below and your sample code.

We thank you for helping make us better.

[2024-10-03 12:35:23,294] SEVERE {b7a.log.crash} - Cannot invoke "String.startsWith(String)" because "fieldType" is null
java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "fieldType" is null
	at io.ballerina.protoc.builder.stub.Field$Builder.build(Field.java:113)
	at io.ballerina.protoc.builder.stub.Message$Builder.build(Message.java:159)
	at io.ballerina.protoc.builder.BallerinaFileBuilder.computeSourceContent(BallerinaFileBuilder.java:225)
	at io.ballerina.protoc.builder.BallerinaFileBuilder.build(BallerinaFileBuilder.java:129)
	at io.ballerina.protoc.protobuf.cmd.GrpcCmd.generateBalFile(GrpcCmd.java:317)
	at io.ballerina.protoc.protobuf.cmd.GrpcCmd.execute(GrpcCmd.java:165)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.ballerina.cli.launcher.Main.main(Main.java:59)

Affected Version(s)
No response
OS, DB, other environment details and versions
No response
Related area
-> gRPC Tool
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

@maxwellb2 Thanks for reporting the issue. It seems like an issue with the protoc-tool when handling the type google.protobuf.Empty as a message field. We will fix it soon and ship it in the next patch distribution. Can I know the Ballerina version you are using?
In the meantime, if you are stuck, you can proceed by making a slight change in your proto definition as shown below.
syntax = "proto3";

package test;

service TestService {
    rpc TestRPC(RequestMessage) returns (ResponseMessage);
}

enum TestEnum {
    ENTRY_ONE = 0;
    ENTRY_TWO = 1;
}

message ComplexType {
    uint32 foo = 1;
    TestEnum bar = 2;
}

message OptionalComplexType {
    oneof value {
        ComplexType complex_value = 1;
        // A field to represent `None`. It's usually left as an empty field.
        Empty none = 2;
    }
}

message OptionalString {
    oneof value {
        string name = 1;
        // A field to represent `None`. It's usually left as an empty field.
        Empty none = 2;
    }
}

message RequestMessage {
    repeated OptionalComplexType req = 1;
}

message ResponseMessage {
    repeated OptionalString resp = 1;
}

message Empty {}

Instead of using the google.protobuf.Empty type[1], you can define the type Empty in your service schema definition file. Both are the same.

https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/empty.proto

Thanks for the workaround @daneshk! We will use our own Empty message.

We are using version 2201.10.1 (the current latest version)

The issue will remain open till we do a distribution patch release.

Hi @daneshk I just tried the example proto spec here (with the custom Empty type):

In the meantime, if you are stuck, you can proceed by making a slight change in your proto definition as shown below.
syntax = "proto3";

package test;

service TestService {
    rpc TestRPC(RequestMessage) returns (ResponseMessage);
}

enum TestEnum {
    ENTRY_ONE = 0;
    ENTRY_TWO = 1;
}

message ComplexType {
    uint32 foo = 1;
    TestEnum bar = 2;
}

message OptionalComplexType {
    oneof value {
        ComplexType complex_value = 1;
        // A field to represent `None`. It's usually left as an empty field.
        Empty none = 2;
    }
}

message OptionalString {
    oneof value {
        string name = 1;
        // A field to represent `None`. It's usually left as an empty field.
        Empty none = 2;
    }
}

message RequestMessage {
    repeated OptionalComplexType req = 1;
}

message ResponseMessage {
    repeated OptionalString resp = 1;
}

message Empty {}

Instead of using the google.protobuf.Empty type[1], you can define the type Empty in your service schema definition file. Both are the same.
1. https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/empty.proto

Unfortunately, I'm still not able to build the client and am seeing the following error:
Continuing with the existing protoc executor file at /tmp/protoc-3.21.7-linux-x86_64.exe
Successfully extracted the library files.
Oct 05, 2024 7:25:17 PM io.ballerina.protoc.protobuf.cmd.GrpcCmd generateBalFile
SEVERE: An error occurred when generating the proto descriptor.
io.ballerina.protoc.protobuf.exception.CodeGeneratorException: Invalid command syntax. Stream closed
	at io.ballerina.protoc.protobuf.utils.BalFileGenerationUtils.handleProcessExecutionErrors(BalFileGenerationUtils.java:110)
	at io.ballerina.protoc.protobuf.utils.BalFileGenerationUtils.generateDescriptor(BalFileGenerationUtils.java:83)
	at io.ballerina.protoc.protobuf.cmd.DescriptorsGenerator.generateRootDescriptor(DescriptorsGenerator.java:148)
	at io.ballerina.protoc.protobuf.cmd.GrpcCmd.generateBalFile(GrpcCmd.java:251)
	at io.ballerina.protoc.protobuf.cmd.GrpcCmd.execute(GrpcCmd.java:165)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at io.ballerina.cli.launcher.Main.main(Main.java:59)
Caused by: java.io.IOException: Stream closed
	at java.base/java.io.BufferedInputStream.ensureOpen(BufferedInputStream.java:206)
	at java.base/java.io.BufferedInputStream.implRead(BufferedInputStream.java:411)
	at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:405)
	at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350)
	at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393)
	at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217)
	at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171)
	at java.base/java.io.InputStreamReader.read(InputStreamReader.java:188)
	at java.base/java.io.BufferedReader.fill(BufferedReader.java:160)
	at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370)
	at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347)
	at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436)
	at io.ballerina.protoc.protobuf.utils.BalFileGenerationUtils.handleProcessExecutionErrors(BalFileGenerationUtils.java:105)
	... 6 more

An error occurred when generating the proto descriptor. Invalid command syntax. Stream closed

I also tried changing our internal google.protobuf.Empty usage to a custom Empty type, and am seeing the same issue. I know there is no problem with the Protobuf syntax or spec itself, as I have a Rust server that implements the specification working as expected.
I'm testing this with Ballerina 2201.10.1 on Linux.

@rukmal Based on the stack trace, it seems like there is an error when trying to compile the proto file with the protoc executor(protoc-3.21.7-linux-x86_64.exe)[1]. But we couldn't read the exact error here because the stream was closed. Could you please execute your modified schema file against the protoc executor and share the output?
Please execute the following command, providing the directory where the proto file resides and the proto file path.
/tmp/protoc-3.21.7-linux-x86_64.exe --proto_path="<absolute directory path where proto files resides>" "<absolute filepath of the root proto file>" --descriptor_set_out="schema-descriptor.desc"

For example,

protoc executor file path - /tmp/protoc-3.21.7-linux-x86_64.exe. This is already downloaded in your tmp directory
the root proto file path - /User/danesh/grpc_project/schema.proto
The directory where proto files are resides - /User/danesh/grpc_project

Execute the below command,
/tmp/protoc-3.21.7-linux-x86_64.exe --proto_path="/User/danesh/grpc_project" "/User/danesh/grpc_project/schema.proto" --descriptor_set_out="schema-descriptor.desc"

https://repo1.maven.org/maven2/com/google/protobuf/protoc/3.21.7/

Hi @daneshk,
I can't directly execute the /tmp/protoc-3.21.7... file as I'm running NixOS (there are OS protections against running dynamically linked binaries). However, I was able to install and run protoc directly, with the command:
protoc --proto_path="/home/rukmal/tmp/protoc_test" "/home/rukmal/tmp/protoc_test/service.proto" --descriptor_set_out="schema-descriptor.desc"

This is building the descriptor set correctly, and I see the output:
(With cat):
�
service.prototest"A

ComplexType
Rfoo
bar (2.test.TestEnumRbar"{
OptionalComplexType8
complex_value (
               2.test.ComplexTypeHR
                                   complexValue!
none (
      2
       .test.EmptyHRnoneB
value"R
OptionalString
name (	HRname!
none (
      2
       .test.EmptyHRnoneB
value"=
RequestMessage+
req (
     2.test.OptionalComplexTypeRreq";
ResponseMessage(
resp (
      2.test.OptionalStringRresp"
Empty*(
TestEnum
	ENTRY_ONE
	ENTRY_TWO2E

TestService6
TestRPC.test.RequestMessage.test.ResponseMessagebproto3%

Again, I don't think the issue is with the protobuf schema, or my installation of Ballerina. This schema is working as expected with both tonic in Rust and grpcio in Python.
For reference, I'm using the following shell.nix file on my system to create the Ballerina dev environment:
{ pkgs ? import <nixpkgs> {} }:

let
  version = "2201.10.1"; # Define the version here
  codeName = "swan-lake"; # Define the codeName here
  ballerina = pkgs.stdenv.mkDerivation {
    pname = "ballerina";
    inherit version;

    src = pkgs.fetchzip {
      url = "https://dist.ballerina.io/downloads/${version}/ballerina-${version}-${codeName}.zip";
      hash = "sha256-gKxJnoNWYE3ozQ0JvMgHgrg/DCkvFnJqZAecgqvJGq8=";
    };

    nativeBuildInputs = [ pkgs.makeWrapper ];

    installPhase = ''
      runHook preInstall
      cp -rv distributions/ballerina-${version} $out
      runHook postInstall
    '';

    preFixup = ''
      wrapProgram $out/bin/bal --set JAVA_HOME ${pkgs.openjdk}
    '';

    meta = with pkgs.lib; {
      description = "Open-source programming language for the cloud";
      license = licenses.asl20;
      platforms = pkgs.openjdk.meta.platforms;
    };
  };
in
pkgs.mkShell {
  buildInputs = [
    ballerina
    pkgs.openjdk
  ];

  shellHook = ''
    echo "Ballerina ${version} is ready to use!"
    export JAVA_HOME=${pkgs.openjdk}
  '';
}

We tested this on a MacOS machine and are seeing the same error too.
This is the protoc version I'm using:
$ protoc --version
libprotoc 24.4

@rukmal, is it possible for you to share your modified proto schema or something similar that I can use to reproduce the issue, please? It would be really helpful to find out the problem with the Ballerina tool.

Hi @daneshk please disregard the previous comment about not sharing our spec.
I've created and have attached a subset of our specification here for testing purposes by the team. Please note that some of these messages are distributed across different files in our setup, and are imported with import "foo.proto";; they are collapsed here into the same file for brevity.
The imports are not an issue, as we have been using the bal grpc tool until now; what broke it was either the use of oneOf in a repeated field, or the Empty type like we've been discussing thus far.
syntax = "proto3";

package usm;

import "google/protobuf/duration.proto";
import "google/protobuf/empty.proto";

service USMDataService {
    // Get unicode interface nodes given a unicode string
    rpc GetUnicodeInterfaceNodeIdentifiers(UnicodeInterfaceNodeIdentifiersRequest) returns (UnicodeInterfaceNodeIdentifiersResponse);
    // Get a synthesized route from the graph
    rpc GetSynthesizedRoute(SynthesisRequest) returns (SynthesisResponse);
}

// Synthesis interface node request
message UnicodeInterfaceNodeIdentifiersRequest {
    // Unicode string to fetch interface nodes for
    string unicode_string = 1;
}

// Synthesis interface node response
message UnicodeInterfaceNodeIdentifiersResponse {
    // Names used from the string to fetch the interface nodes
    repeated string names = 1;
    // Interface nodes for the unicode string (corresponds to the names above)
    repeated OptionalInterfaceNodeIdentifier node_ids = 2;
}

// Synthesis request message
message SynthesisRequest {
    // Interface nodes for the synthesis operation
    repeated NodeIdentifier interface_nodes = 1;
    // (Optional) VoyagerIdentifier of the graph to use for synthesis
    optional VoyagerIdentifier voyager_id = 2;
    // (Optional) Bidirectional step limit for the synthesis operation
    optional uint32 bidirectional_step_limit = 3;
}

// Synthesis response message
message SynthesisResponse {
    // Response routes from the synthesis process
    repeated RouteSynthesisResponse responses = 1;
    // Number of bidirectional steps taken for the synthesis operation
    uint32 bidirectional_steps_taken = 2;
    // Number of forward nodes scanned
    uint32 forward_scanned_count = 3;
    // Number of reverse nodes scanned
    uint32 reverse_scanned_count = 4;
    // Duration of the synthesis operation
    google.protobuf.Duration duration = 5;
}

// Optional interface node identifier
message OptionalInterfaceNodeIdentifier {
    oneof value {
        // ID of the Interface Node
        NodeIdentifier node_id = 1;
        // A field to represent `None`. It's usually left as an empty field.
        google.protobuf.Empty none = 2;
    }
}

// Optional interface node name
message OptionalInterfaceNodeName {
    oneof value {
        // Name of the interface node
        string name = 1;
        // A field to represent `None`. It's usually left as an empty field.
        google.protobuf.Empty none = 2;
    }
}

// Route Synthesis response
message RouteSynthesisResponse {
    // Route interface nodes
    repeated OptionalInterfaceNodeIdentifier interface_nodes = 1;
    // Route interface node names
    repeated OptionalInterfaceNodeName interface_node_names = 2;
    // Number of non-null interface nodes in the route
    uint32 interface_node_count = 3;
    // Hidden nodes in the route
    repeated LongNodeIdentifier hidden_node_long_ids = 4;
    // Boolean indicating whether the route is novel, or was present in the loaded data
    bool is_novel = 5;
}

// Node type
enum NodeType {
    // Error (nodes always have a node type)
    UNSPECIFIED = 0;
    // Interface node
    INTERFACE = 1;
    // Hidden node
    HIDDEN = 2;
}

// Interface device
enum InterfaceDevice {
    // Null device (never this for interface nodes)
    NULL = 0;
    // Reference device
    REFERENCE = 1;
    // Unicode device
    UNICODE = 2;
}

// Node implementation
enum NodeImplementation {
    // Error implementation (LongeNodeIdentifier always has one)
    ERROR = 0;
    // Base Node
    BASE_NODE = 1;
    // Collided Node
    COLLIDED_NODE = 2;
    // Projected Node
    PROJECTED_NODE = 3;
}

// Voyager Identifier
message VoyagerIdentifier {
    // Run ID of the Voyager Identifier
    uint32 run_id = 1;
    // Iteration ID of the Voyager Identifier
    uint32 iteration_id = 2;
}

// Node Identifier
message NodeIdentifier {
    // Type of the node
    NodeType node_type = 1;
    // Numeric index of the node
    uint32 node_idx = 2;
    // (Optional) interface device; necessary if node_type is INTERFACE
    optional InterfaceDevice device = 3;
}

// Long Node Identifier
message LongNodeIdentifier {
    // Node IDs of the Node
    repeated NodeIdentifier node_ids = 1;
    // Node implementation
    NodeImplementation node_impl = 2;
    // Voyager ID of the Node (Base graph if this is None)
    optional VoyagerIdentifier voyager_id = 3;
}

Please note that I already tried replacing google.protobuf.Empty with a custom Empty type but was running into the same error. I did not merge that update into the main trunk as that's still causing an issue.
I tried creating the schema descriptor file with protoc for this subset of our specification too, and it works as expected.

Thanks alot @rukmal. I just replaced google.protobuf.Empty type with an custom Empty type and removed the import. unfortunately I am able to generate the client stub file without any errors in my machine. My modified version is,
syntax = "proto3";

package usm;

import "google/protobuf/duration.proto";

service USMDataService {
    // Get unicode interface nodes given a unicode string
    rpc GetUnicodeInterfaceNodeIdentifiers(UnicodeInterfaceNodeIdentifiersRequest) returns (UnicodeInterfaceNodeIdentifiersResponse);
    // Get a synthesized route from the graph
    rpc GetSynthesizedRoute(SynthesisRequest) returns (SynthesisResponse);
}

// Synthesis interface node request
message UnicodeInterfaceNodeIdentifiersRequest {
    // Unicode string to fetch interface nodes for
    string unicode_string = 1;
}

// Synthesis interface node response
message UnicodeInterfaceNodeIdentifiersResponse {
    // Names used from the string to fetch the interface nodes
    repeated string names = 1;
    // Interface nodes for the unicode string (corresponds to the names above)
    repeated OptionalInterfaceNodeIdentifier node_ids = 2;
}

// Synthesis request message
message SynthesisRequest {
    // Interface nodes for the synthesis operation
    repeated NodeIdentifier interface_nodes = 1;
    // (Optional) VoyagerIdentifier of the graph to use for synthesis
    optional VoyagerIdentifier voyager_id = 2;
    // (Optional) Bidirectional step limit for the synthesis operation
    optional uint32 bidirectional_step_limit = 3;
}

// Synthesis response message
message SynthesisResponse {
    // Response routes from the synthesis process
    repeated RouteSynthesisResponse responses = 1;
    // Number of bidirectional steps taken for the synthesis operation
    uint32 bidirectional_steps_taken = 2;
    // Number of forward nodes scanned
    uint32 forward_scanned_count = 3;
    // Number of reverse nodes scanned
    uint32 reverse_scanned_count = 4;
    // Duration of the synthesis operation
    google.protobuf.Duration duration = 5;
}

// Optional interface node identifier
message OptionalInterfaceNodeIdentifier {
    oneof value {
        // ID of the Interface Node
        NodeIdentifier node_id = 1;
        // A field to represent `None`. It's usually left as an empty field.
        Empty none = 2;
    }
}

// Optional interface node name
message OptionalInterfaceNodeName {
    oneof value {
        // Name of the interface node
        string name = 1;
        // A field to represent `None`. It's usually left as an empty field.
        Empty none = 2;
    }
}

// Route Synthesis response
message RouteSynthesisResponse {
    // Route interface nodes
    repeated OptionalInterfaceNodeIdentifier interface_nodes = 1;
    // Route interface node names
    repeated OptionalInterfaceNodeName interface_node_names = 2;
    // Number of non-null interface nodes in the route
    uint32 interface_node_count = 3;
    // Hidden nodes in the route
    repeated LongNodeIdentifier hidden_node_long_ids = 4;
    // Boolean indicating whether the route is novel, or was present in the loaded data
    bool is_novel = 5;
}

// Node type
enum NodeType {
    // Error (nodes always have a node type)
    UNSPECIFIED = 0;
    // Interface node
    INTERFACE = 1;
    // Hidden node
    HIDDEN = 2;
}

// Interface device
enum InterfaceDevice {
    // Null device (never this for interface nodes)
    NULL = 0;
    // Reference device
    REFERENCE = 1;
    // Unicode device
    UNICODE = 2;
}

// Node implementation
enum NodeImplementation {
    // Error implementation (LongeNodeIdentifier always has one)
    ERROR = 0;
    // Base Node
    BASE_NODE = 1;
    // Collided Node
    COLLIDED_NODE = 2;
    // Projected Node
    PROJECTED_NODE = 3;
}

// Voyager Identifier
message VoyagerIdentifier {
    // Run ID of the Voyager Identifier
    uint32 run_id = 1;
    // Iteration ID of the Voyager Identifier
    uint32 iteration_id = 2;
}

// Node Identifier
message NodeIdentifier {
    // Type of the node
    NodeType node_type = 1;
    // Numeric index of the node
    uint32 node_idx = 2;
    // (Optional) interface device; necessary if node_type is INTERFACE
    optional InterfaceDevice device = 3;
}

// Long Node Identifier
message LongNodeIdentifier {
    // Node IDs of the Node
    repeated NodeIdentifier node_ids = 1;
    // Node implementation
    NodeImplementation node_impl = 2;
    // Voyager ID of the Node (Base graph if this is None)
    optional VoyagerIdentifier voyager_id = 3;
}

message Empty {}

I will try to reproduce the issue in a different machine(linux machine) and get back to you soon.

I just tried the above spec on my machine, and it's not working unfortunately... I attached the nix configuration I'm using to build on linux here, so please let me know if there are any other questions I can help with.
The Ballerina work (handled by @maxwellb2) is luckily enough happening on a Mac, so we will try to build the updated spec (replacing google.protobuf.Empty with a custom Empty message) and get back to you on that too.
This is the system I'm using:
$ uname -a
Linux mercury 6.11.0 #1-NixOS SMP PREEMPT_DYNAMIC Sun Sep 15 14:57:56 UTC 2024 x86_64 GNU/Linux

@rukmal I couldn't reproduce the issue even in a Linux environment. So, we are planning to fix both this original issue and  https://github.com/ballerina-platform/ballerina-library/issues/7238 and trigger a new patch release for update 10 soon so we can capture the cause of the issue we are facing. I will keep update you progress.

@daneshk I was able to generate the ballerina client code without error on MacOS using the custom Empty
message fix.

This fix will be released with 2201.10.4 patch
https://github.com/ballerina-platform/ballerina-release/issues/2757

@rukmal We have released the 2201.10.2 release with the fix for this issue and https://github.com/ballerina-platform/ballerina-library/issues/7238. When you have a moment, could you please run the command in the new patch distribution? This time, we should see the correct error message instead of "Stream closed."


Hidden files and Plugins not syncing

I updated to the last version of the plugin in all my devices, and wanted to do a “Rebuild Everything” of my vault in my Windows machine.
Everything OK, till I activate the “Sync hidden files” option.
The Console outputs this in loop:
16.3.2023, 09:50:37->Replication activated
16.3.2023, 09:50:40->This request should fail on IBM Cloudant.
16.3.2023, 09:50:40->replication paused
And It doesn't sync the rest of the files while in the Loop.
Even if I deactivate the option, it stays in loop, the only way I could break the loop was to disable the option and then click on the "Fetch Rebuild DB" option.

Also, Plugin synchronization is not working either. Tested on Windows, Android, and iPhone.

Sorry for being late! And I am on a mobile device, so I apologise if I am rude.
This message is displayed when the size of the request is too large.
May I ask about your configuration? The report could be made on the make report button on the hatch pane.

Supplementary information, once the chunk has been made, it could not be deleted automatically. We probably need rebuilding.

Sorry for the delay, I've been busy this whole week. I updated to the last version 0.17.34, and tried again before doing the report.
Still in the loop.
----remote config----
Requesting information to the remote CouchDB has been failed. If you are using
IBM Cloudant, it is the normal behaviour.
 Apart from that, I cannot set "Device and Vault name" field.
Live sync plugin just constantly shows the message "You have to set Device and Vault name", but it is impossible in fact.

@Robertschv
So sorry for being late! The configuration looks almost good.
Possibly, only in limited cases, the queries to the remote database have been bulky. Could you please set Batch size and Batch limit to 100 and 20 once?
@FaraSeer
Thank you for asking me! Have you disabled all synchronisation once? These configurations have been locked while any synchronisation has been enabled.
Would you mind checking them and trying again?

@vrtmrz Hey, I updated to 0.17.34 and re-did the test with Plugin synchronization and alone and then with Sync hidden files.
I tried changing the Batch size and Batch limit as you said, but it still goes into a loop.

Thank you for your reporting and your patience!
May I ask what plugins you have installed?

I have 9 plug-ins installed.

Advanced tables v18.1
Emoji toolbar v4.0
Excalidraw v1.8.22
LanguageTool Integration v0. 3.3
Obsidian Charts v3.7.1
Obsidian Enhancing Export v1.2.1
Omnisearch v1.13.0
Recent files v1.3.5
Self-hosted Live-Sync v0.18.1

@Robertschv So sorry for being late! The configuration looks almost good. Possibly, only in limited cases, the queries to the remote database have been bulky. Could you please set Batch size and Batch limit to 100 and 20 once?
@FaraSeer Thank you for asking me! Have you disabled all synchronisation once? These configurations have been locked while any synchronisation has been enabled.
Would you mind checking them and trying again?

Sorry for long reply, but I managed to set my device name. Thanks for this advice.


[FEATURE] Use only one logging mechanism

Is your feature request related to a problem?
Currently there are a few problems with logging:

2 configuration options: traceLogging in the configuration file and all configuration options from the debug module.
2 logging mechanisms: debug module and a self written LoggingFacade.
Not all configuration options are used throughout all parts of the code.
Default logs contain too many unnecessary log entries, for example, all output file are logged by the JUnitXmlReporter.

What solution would you like?

Only one logging mechanism is used throughout the code.
Configuration is possible in the configuration file, command line and environment variables.
There are several log levels, e.g. warn, info, debug, and a reasonable default like info or warn.

I looked into it and I see use-cases for both logging mechanisms:

The LoggingFacade logs output for users. It uses the user configuration and is therefore only usable after the configuration was parsed. Currently it has 2 log levels: info, trace.
The debug module is intended to be used for debugging and can be used even before the configuration file was parsed. Also, the filtering option by namespace seems pretty useful for debugging.

Well, I tend to keep both and reduce or even change all current info log entries to trace.
What do you think @uniqueck ?


lang: prefer 'purge' instead of 'scrub'

+ other consistency, elaboration in language surrounding the action
Closes #717

Scrub is closer to pruning — tidying and trimming, while leaving some. Here we are removing all snapshots.
(watch) history is favored over snapshots (more complex). Purge is used in other software (ex: rclone), and feels the proper word for it. It's a complex termin, so Clear History is preferred when communicating with the user.
On the confirmation page, multiple words are expressed for the action in the hopes that the user picks up on one of them.

Changed routes as well. If that's ok. It should prevent any future confusion between functions / 'scrub' shown to the user.

mmm but also, it's "scrubbing" all the info from the watch, like last_checked, last_error etc, I do not agree that 'purge' is right.
verb
1.
rub (someone or something) hard so as to clean them, typically with a brush and water.
"he had to scrub the floor"
INFORMAL
cancel or abandon (something).
"the first two races had to be scrubbed because of blustery winds and rough seas"

Scrub is closer to pruning — tidying and trimming,
completely wrong, sorry, look up the definition :/

please re-open, but with "Clear history"

Do you mean:
scrub -> clear_history
or
Clear History -> Clear history (would be inconsistent with other buttons?)

Clear History -> Clear history (would be inconsistent with other buttons?)

I'm confused, there is no 'clear history' button?

What do you want done?
a) The same commit, without funciton renames (they stay 'scrub'), but UI is changed to 'Clear History' (title case)
b) The same commit with functions renamed to clear_history (instead of 'purge') and UI changed to 'Clear History' (title case)
c) The same commit, without function renames (they stay 'scrub'), with 'Clear History' replaced with 'Clear history' (second is lowercase)

b) The same commit with functions renamed to clear_history (instead of 'purge') and UI changed to 'Clear History' (title case)

This option would be super helpful, I would be glad if you can do that :) thanks! :pray:


Error when installing on Opera via Chrome Extensions

screencapture of error
I would really like to install and use your extension
Thank you,
Lee Tait

Hello Lee,
First of all, thank you for interesting with this extension and opening this issue. With version 0.0.2 this issue should be fixed. Feel free to open the issue if the error continues or something else goes wrong.
Best wishes,
Ali

Thank you so much
Sent from my Galaxy
-------- Original message --------
From: Ali Rıza Salihoğlu @.>
Date: 2022-01-13 11:37 a.m. (GMT-08:00)
To: cyberst/go-to-sound-tab @.>
Cc: leetait @.>, Author @.>
Subject: Re: [cyberst/go-to-sound-tab] Error when installing on Opera via Chrome Extensions (Issue #1)
Hello Lee,
First of all, thank you for interesting with this extension and opening this issue. With version 0.0.2 this issue should be fixed. Feel free to open the issue if the error continues or something else goes wrong.
Best wishes,
Ali
—
Reply to this email directly, view it on GitHubhttps://github.com/cyberst/go-to-sound-tab/issues/1#issuecomment-1012447750, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZ46OIKFWQW7XVTWQOMVHTUV4SZDANCNFSM5JQJJPXA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID: @.***>


but do you know something  similar for tabular data - not specific for NLP?

great code
but do you know something  similar for tabular data - not specific for NLP?

Hi, thanks for your interest!
You can actually load in tabular data into RG directly, and the end-to-end workflows should approximately work. I'm working on creating a very simple example for tabular data that should be up by next week. Do you have particular applications or datasets in mind that you would be interested in seeing supported?

this data can be great to try
https://www.kaggle.com/c/tabular-playground-series-feb-2021/data
Tabular Playground Series - Feb 2021
for example if you want only categorical data you can use these features:
cat0 - cat9 are categorical

Thanks for the suggestion! I'll definitely try to put a simple example up with this or similar data.
Out of curiosity, is this something that you'd be interested in seeing supported? Ideally we'd love to find use cases which folks in the community find very motivating.

yes just add data with known patterns to test how different algorithms can find these patterns
for tabular data
I am very surprised why NOBODY doing this
for example
for features A, B, C, D and binary target yes or no
A  B   C  D     target
a1 b3  c21     no
a2  b4  c2      no
a1  b1 c1       yes
a3  b4  c2      no
a1  b1  c1      yes
a1  b6  c5      yes
a6  b23 c8     no
a1 b23  c8     yes
a1 b23  c8     yes
there are 2 patterns for yes
a1  b1  c1
and
a1 b23  c8     yes
then by analogy you create 10 millions rows and 250 features and 578 categorical values for each feature
and you introduce lets say
or
30 patterns
or
200 patterns
or
1000 patterns
with pattern length from  5 to 20 features (random pattern length)
and ratio of number of no to number of yes = 1% -> unbalanced data
this way we can test existing ML models for performance to find these patterns?
I think they afraid from these data sets - since vast majority of ML packages are useless in this case
lets do it?
Hinton: From a very young age I was convinced that many of the things that the teachers and other kids believed were just obvious nonsense. That’s great training for a scientist and it transferred very well to artificial intelligence
https://www.kdnuggets.com/2014/12/geoffrey-hinton-talks-deep-learning-google-everything.html

adding word random :
then by analogy you create 10 million rows and 250 features and random 578 categorical values for

by the way
may I ask how your project is different from
https://github.com/Trusted-AI/adversarial-robustness-toolbox


Feature request: gossfiles to combine resources?

If I have two goss files which I pull into the main goss file using the gossfiles directive, it would be super nice if the resources from both 'sub' gossfiles could be combined.
That way different modules can drop in 'sub' goss files - each with a set of resources (packages, files etc.) and then all the assertions get run when globbed in by the main goss file...

(Sorry, user error)


Implement promised requirements (resolves #729)

Resolves #729, continued from #791

Add a pinch of dill …
… to the list of requirements in setup.py

Jenkins, test this please

Merged https://github.com/BD2KGenomics/cgcloud/pull/167 and created and registered a new toil-jenkins-slave image.
Jenkins, test this please.
Fingers crossed.

Master was bjørked. Retrying …
Jenkins, test this please.

@hannes-ucsc

@hannes-ucsc

@jpfeil please address the issues regarding comments and docs we discussed today and I think we can merge this.

@benedictpaten, I've set the needs work label to reflect your previous statement

@jpfeil, @benedictpaten : Did you guys agree to add a Sphinx document section?

@hannes-ucsc Yes

Jenkins, test this please.

Jenkins, test this please.

Jenkins, test this please.

Jenkins, test this please.

@hannes-ucsc

This has conflicts, I can't review until those are resolved.

Jenkins, test this please.

Looks like the tests failures are directly related to this PR. Leaving as needs work.

@hannes-ucsc


Interface derivation references

Check that we don't have this:
https://github.com/KirillOsenkov/SourceBrowser/issues/32

Verified this is not an issue with e6f055b732710bad7f30c7ddf5aaacc568246d0c


iMessage not working???

Is there any fix for iMessage and FaceTime ???

I do not recommend this because you might get in trouble, but If you wanna take this risk refer below.
Refer here Dortania - iService


Update CSS to add PCB background and improve contrast

@LucasHT22 I merged the main branch into my patch branch to solve the conflicts and to trigger the Vercel Preview:

I also updated the color of the text on the editor to have more contrast:

Sure! I'll try to make it more similar to the background.

@kognise , should I edit the color directly on the current PCB svg with css or upload a new svg element with the new color?

Alright, as long as pcb.svg isn't used anywhere else?

Huh the deployment is still using the old color but this is how the svg element looks now:

Hi! Sorry for the merge issues, I'll try to fix this locally and after that the PR would be ready to check, meanwhile is going to be a draft.


usvg: update rustybuzz dependency to 0.4

this is a trivial PR, but ensures we don't pull in 2 different versions of rustybuzz

Thanks, but I'm usually updating dependencies right before the release. And I don't plan any.
Or do you plan to use master version of resvg?


What is the recommended way to listen for CastPlayer playback state changes?

I am developing a radio app using media3. The app has a MediaLibraryService for playback and a Fragment that controls the UI. The Fragment listens to playback changes using a Player.Listener that has been added to a MediaController. That all works great so far.
I recently began integrating Google Cast into the app. Playback through a CastPlayer in the MediaLibraryService works fine. But now I am stuck: How do I receive information about CastPlayer playback state changes in my Fragment? The existing Player.Listener (basically created in the way recommended here) does not get called at the moment.

I just found the media3 branch of UAMP. My issue was a buggy function that handled swapping between CastPlayer and ExoPlayer. As soon as I adapted ReplaceableForwardingPlayer for my needs, my problem was more or less solved.


Add 3D global SLAM grpc test.

@wally-the-cartographer merge

Merge requested by authorized user gaschler. Merge queue now has a length of 1.


Release v2.39.1

What's Changed
Bug Fixes 🐞

fix(app-tools): router plugin should filter mf entry by @2heal1 in https://github.com/web-infra-dev/modern.js/pull/4773
fix(builder): apply babel-plugin-styled-components correctly by @chenjiahan in https://github.com/web-infra-dev/modern.js/pull/4894
fix(builder): Modify the priority order of source field and the webpack default mainFields by @targeral in https://github.com/web-infra-dev/modern.js/pull/4889
fix: generator package.json template by @caohuilin in https://github.com/web-infra-dev/modern.js/pull/4875
fix: storybook v7 generator dependencies error by @caohuilin in https://github.com/web-infra-dev/modern.js/pull/4874
fix(ssr): loadable import node:fs, handle if we can't read file by @GiveMe-A-Name in https://github.com/web-infra-dev/modern.js/pull/4876
fix(ssr): only node runtime read assets from fs. by @GiveMe-A-Name in https://github.com/web-infra-dev/modern.js/pull/4884
fix: should not filter mf entrys when compiler is rspack by @yimingjfe in https://github.com/web-infra-dev/modern.js/pull/4886

Docs update 📄

docs(main-doc): 导出 LoaderData 类型 检查代码高亮 by @baizhi958216 in https://github.com/web-infra-dev/modern.js/pull/4882

Other Changes

chore: upgrade react-router and remix by @yimingjfe in https://github.com/web-infra-dev/modern.js/pull/4873

更新内容
Bug 修复 🐞

fix(app-tools): 路由插件需要过滤 MF 入口 由 @2heal1 实现， 详情可查看 https://github.com/web-infra-dev/modern.js/pull/4773
fix(builder): 正确注册 babel-plugin-styled-components 插件 由 @chenjiahan 实现， 详情可查看 https://github.com/web-infra-dev/modern.js/pull/4894
fix(builder): 修改 source 和 webpack 默认的 mainFields 的优先级顺序 由 @targeral 实现， 详情可查看 https://github.com/web-infra-dev/modern.js/pull/4889
fix: 修复生成器 package.json 模板 由 @caohuilin 实现， 详情可查看 https://github.com/web-infra-dev/modern.js/pull/4875
fix: storybook v7 生成器依赖安装错误 由 @caohuilin 实现， 详情可查看 https://github.com/web-infra-dev/modern.js/pull/4874
fix(ssr): loadable collector 引用 node:fs, 处理我们可能无法读取文件的情况 由 @GiveMe-A-Name 实现， 详情可查看 https://github.com/web-infra-dev/modern.js/pull/4876
fix(ssr): 只有在 node 运行时才从文件系统中读取资源 由 @GiveMe-A-Name 实现， 详情可查看 https://github.com/web-infra-dev/modern.js/pull/4884
fix: 不应该过滤 mf entry，当 compiler 是 rspack 的时候 由 @yimingjfe 实现， 详情可查看 https://github.com/web-infra-dev/modern.js/pull/4886

其他变更

chore: 更新 react-router 和 remix 由 @yimingjfe 实现， 详情可查看 https://github.com/web-infra-dev/modern.js/pull/4873

@xuchaobei This version does not seem to have been updated to production yet?


Adding plot testing

As the title.
Let's use the pytest plugin pytest-pyvista to compare plots and detect changes. This is going to add a bit of burden to the developer since we might need to update the image cache every time there are changes in anything related to plotting.
But overall, I think this is a very good improvement, because there is the check and also there is the cache. We can inspect manually the cache and see if there is any plot suspicious.
Notes
I did have to disable the cache of some tests because they seemed to change quite a lot between run or between the machine I ran the test locally and the CICD.
I wonder if there is a way to make the CICD update those images. Probably, part of the nightly/scheduled build should be open an issue when important differences are found.
Skipped tests:
Look for:
verify_image_cache.skip = True

The final CICD run showed the following fails:
[FAILED] test_disp_plot_subselection - E           RuntimeError: test_disp_plot_subselection Exceeded image regression error of 500.0 with an image error equal to: 1149.7163398692887
[FAILED] test_nodal_eqv_stress - E        +    where <function allclose at 0x7fc65def0eb0> = np.allclose
[FAILED] test_plot_nodal_eqv_stress - E           RuntimeError: test_plot_nodal_eqv_stress Exceeded image regression error of 500.0 with an image error equal to: 3898.7856209142265
[FAILED] test_general_plotter_returns - E           RuntimeError: test_general_plotter_returns_1 Exceeded image regression error of 500.0 with an image error equal to: 86640.32287580681
= 4 failed, 1253 passed, 231 skipped, 2 xfailed, 12 warnings, 33 rerun in 872.82s (0:14:32) =

Overall, the usage of the plugin looks good to me. I have a comment about the image_cache and the different approaches to save it.
The approach you are using, saving directly the images in the repository, is the one used in pyvista. This works well, but can bloat the repository quickly as the amount of plotting tests increase.
In PyAnsys, the approach we are generally using is to upload the image_cache as an artifact. In each test run, we download the images if available, run the tests and then reupload the images. If you need to reset the cache, you can update the "reset version" of the artifact by changing the reset number and it will generate a new version.
You can see some examples of this in PyGeometry and PyPrimeMesh:
https://github.com/ansys/pyprimemesh/blob/1aee402e03195f1e4aa6f859055b1519454b637a/.github/workflows/ci_cd.yml#L125C1-L147C28
https://github.com/ansys/pyansys-geometry/blob/2a543290e8dbacc6d2d5f25a62859b5e5976bb9b/.github/workflows/ci_cd.yml#L132-L158
If this implementation is doable in PyGeometry, I encourage you to do so, feel free to ask me if you have any doubts 😄

@AlejandroFernandezLuces
Thank you a lot for your detailed comment. I think the idea is good. However, to better a grasp of the plot differences, I will keep the cache in the repo for now. So I can compare when running locally. I think it will be interesting to see the possibles differences, at least for now since we are not very used to use this image cache checking.
Later in the future, I will implement the change you mention once I'm confident on how the plots changes between local and CICD, etc.
I will also like to get rid of the test exceptions I had to implement.  But I didn't want to spend too much time.
Again. I will follow your advice in a near future. Thank you a lot!

LGTM ... because it LGT @AlejandroFernandezLuces


Updated config.yaml but values aren't updated

Hi,
I have updated the config.yaml sit/stand height values but the script still uses the old values. I don't think these values are cached. Can you help please?
Thanks

I had to remove the config.yaml located at ~/.config/idasen-controller and then the values from the example/config.yaml folder were used. Is this expected? meaning the config.yaml at ~/.config/idasen-controller isn't automatically updated when example/config.yaml gets updated?

It is not expected that the example/config.yaml file is used. How have you installed it?
I would recommend installing it using pip:
pip3 install idasen-controller

I just reread your comment. You should edit the values in the  ~/.config/idasen-controller/config.yaml file and the script should use that.
You should not edit example/config.yaml. The only time that is used is if there is no config file in ~/.config/idasen-controller/` in which case it is copied over so you have something to edit.

Cool, thanks.


[vi] cs-221-reflex-models

Hi @shervinea , this is the complete translation for cs-221-reflex-models. Please help me add reviewer wanted label. Thank you

Thanks @rootonchair for all your work! Just added the label. :-)


[TC-289] Delivery service TTLs/SOA data are hard coded in CRConfig generation code

The TTLs and SOA timing data (retry, etc) that appear in the delivery service object in the CRConfig are currently hardcoded. This means, for example, that there is no way to adjust the TTL or timing values in the SOA, or TTLs of things like NS records. These should be configurable on a per-delivery-service basis, and if the values don't exist, the defaults from the Traffic Router's profile parameters should be used. Only if the profile parameters are missing should we fall back to hardcoded values.
https://github.com/Comcast/traffic_control/issues/178
Author: Eric Friedrich
JIRA Link: https://issues.apache.org/jira/browse/TC-289

Values are parameterized in DS and TR profile


How to extract audio only using YoutubeDL class?

I want to simply extract the audio in MP3 format from youtube links, but I can't figure out how to do this without calling youtube-dl from the command line with the --extract-audio option. Is there a way to do this within the YoutubeDL class similar to examples given here?
Here's what I have so far, but it still creates an mp4 file.
import youtube_dl

# download using optimal audio settings
ydl_opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    }],
    'quiet': True,
    'restrictfilenames': True}

ydl = youtube_dl.YoutubeDL(ydl_opts)
ydl.download(['https://www.youtube.com/watch?v=Pnt2cy5MWyw'])

I've just answered you on stackoverflow.
Post the output of script execution with quiet set to False.

Closing since it seems that it's solved in stack overflow.


access: members and approvers

Please help to transfer all permissions (including go-member, gerrit-approver) of this Github&Gerrit account<EMAIL_ADDRESS>to my new Github&Gerrit account (657423312@qq.com). Because I no longer work at Arm, I can no longer use this email account and cannot modify the information, so this account will no longer exist. In the future, I will contribute to this community with my personal account (657423312@qq.com), so please transfer the permissions of my old account to the new account, thank you.
cc @golang/release

is your GitHub account changing (if yes, what's the new name?) or is it just the Gerrit account?

is your GitHub account changing (if yes, what's the new name?) or is it just the Gerrit account?

It's @fangsm26 Both Github and Gerrit account. Thanks.

CC @mdempsky.

Hi, I successfully changed my Github email address, so please leave my Github account as it is. But I cannot modify the information of my Gerrit account, so please help transfer the permissions of my Gerrit account. Thank you.

Hi, I successfully changed my Github email address, so please leave my Github account as it is. But I cannot modify the information of my Gerrit account, so please help transfer the permissions of my Gerrit account. Thank you.

I've transferred the Gerrit approvers access from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>and mailed CL 555459 to update your entry in gophers.go. Please let me know if it's not working as expected. Thank you for contributing to Go.


Add kl by kl

Song Name
kl
Artist Name
kl
Source
Youtube
Youtube Link
W8zk_6x11oowSCVW
Direct File Link
No response
Song ID
621135
Start Offset [ms]
0
Extra
Created from Auto Nong.
Created for level: 4957691

reject
invalid YouTube link


Extraction of Histogram traces does not work

import pylab as p
import numpy as np
import tttrlib
data = tttrlib.TTTR("E:\Users\Hemmen\A488_1.ptu", '0')
mt = data.get_macro_time()
green_indeces = data.get_selection_by_channel(np.array([0, 2]))
red_indeces = data.get_selection_by_channel(np.array([1, 3]))
fig, ax = p.subplots(2, 1, sharex=True, sharey=False)
p.setp(ax[0].get_xticklabels(), visible=False)
ax[0].plot(tttrlib.histogram_trace(mt[green_indeces], 30000), 'g')
ax[1].plot(tttrlib.histogram_trace(mt[red_indeces], 30000), 'r')
ax[1].invert_yaxis()
p.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=0)
p.show()
executing the script gives the following error:
AttributeError                            Traceback (most recent call last)
 in
13
14 p.setp(ax[0].get_xticklabels(), visible=False)
---> 15 ax[0].plot(tttrlib.histogram_trace(mt[green_indeces], 30000), 'g')
16
17 ax[1].plot(tttrlib.histogram_trace(mt[red_indeces], 30000), 'r')
AttributeError: module 'tttrlib' has no attribute 'histogram_trace'

I cannot reproduce this error. Very likely you have a relatively old version of tttrlib installed. I recommend to install tttrlib in its own conda environment.
You can create a new conda environemnt in your command line
conda config --add channels conda-forge tpeulen
conda create --name tttrlib
conda install matplotlib numba numpy scipy tttrlib

Next time you want to use tttrlibsimply activate your environment:
conda activate tttrlib

In case you are using juypter you can follow the instructions on
stackoverflow to make sure that jupyter is using your tttrlibenvironment.

Ok, I just double checked. The version in the anaconda channel was actually pretty old. I just uploaded an new build that supports the requested feature.

Make sure that you install the version 0.0.8 with python 3.7.


Remove obsolete operator-sdk environment variables

As stated in operator-sdk migration.md, the environment variables OPERATOR_NAME and POD_NAME are no longer used. Let's clean them up from kustomization and makefile.

Thanks for contribution!


Add new scales transformations

https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.5.0/new_scale_transformations.ipynb

We already have transformations in scales
What do you mean by "new scales transformations"?

There are some new ones:
https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.5.0/new_scale_transformations.ipynb


Error in production mode: Uncaught Invariant Violation: Expected targetIds to be unique in the passed array.

Hi,
I am getting edit:24 Uncaught Invariant Violation: Expected targetIds to be unique in the passed array. error when I start dragging my component. However this issue only occurs in my production app. Surprisingly our staging which is using same process of deployment works ...
Any idea what could be wrong?

That's an interesting one!  Did you ever figure it out?  I recommend setting a breakpoint and checking what the targetIds array has when you create your DropTarget.

@davidmilo Let me know if you're still having problems with React DnD!

I am facing that problem, Expected targetIds to be registered. it is very hard to repro, cause it is in production, just 1% percentage of users met that crash, is there anyone have a idea about that?

@kesne Hi. I having same problems only in IE and Edge.
Any idea what could be wrong?

I'm having that as well on chrome and only on a few environments. Didn't find the root cause yet

This just randomly started happening to me as well.

Has anyone figured this out? I am also seeing some inconsistent behavior around this

Anyone managed to figure this our?

I'm getting this as well, happens randomly and unexpectedly.   I patched it to include the ids in the error:
Invariant Violation: Expected targetIds to be unique in the passed array.["T2","T38","T38","T18","T18"]

and
Invariant Violation: Expected targetIds to be unique in the passed array.["T6","T6","T341","T416"]

In case it helps anyone.
Not having any idea of what this means, but can we just make this array unique?  Remove the assertion and let them be duplicated?   I can help fix if someone can suggest a direction..
Oh, and please reopen this!

I'm getting this as well, happens randomly and unexpectedly.   I patched it to include the ids in the error:
Invariant Violation: Expected targetIds to be unique in the passed array.["T2","T38","T38","T18","T18"]

and
Invariant Violation: Expected targetIds to be unique in the passed array.["T6","T6","T341","T416"]

In case it helps anyone.
Not having any idea of what this means, but can we just make this array unique?  Remove the assertion and let them be duplicated?   I can help fix if someone can suggest a direction..
Oh, and please reopen this!

I found the root of mine, and it was a conflict with the track.js. So it is worth to check if you have any dependency that is available only on production and could cause such strange behaviour.

I found the root of mine, and it was a conflict with the track.js. So it is worth to check if you have any dependency that is available only on production and could cause such strange behaviour.

@meisammirkahromi are you referring to https://trackjs.com?   I'm not familiar with that and I don't think we have any references to it (yarn why track.js has no results??) If you have any other details I'd appreciate it!

@meisammirkahromi are you referring to https://trackjs.com?   I'm not familiar with that and I don't think we have any references to it (yarn why track.js has no results??) If you have any other details I'd appreciate it!


14_Your_uploaded_cvs_in_My_profile

Description
PR is about Your Uploaded CVs section in the My profile page mockup
Fixes # (issue) #14
How to test?
make a sample array with the name of CVsList matches with the CV table items in the database and one more column that I called it averageStars. So now you can get results.

Checklist

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] This PR is ready to be merged and not breaking any other functionality

Please fix fix the storybook build step. 👍

@pdsorensen I do not get what you mean!! I have made story book and made test samples.

@hamedveloper storybook build step is failing. :)

So weird. Becuse I can see the ressult of storybook!
On Tue, 9 Feb 2021 at 09.38, Patrikk Dyrberg Sørensen <
<EMAIL_ADDRESS>wrote:

@hamedveloper https://github.com/hamedveloper storybook build step is
failing. :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/HackYourFuture-CPH/rate-my-cv/pull/69#issuecomment-775766857,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANC53NBHKKADORGJQZMBV3DS6DYBVANCNFSM4WWCEGRQ
.


Ballerina cannot be exposed as a SOAP web service

Usecase
A client sends a SOAP request to a service and expects the response as a SOAP message
Issue
Ballerina cannot handle SOAP messages out of the box. Need to send the soap message as a HTTP payload.

This is currently possible using the soap connector.


Resolve syncing conflicts from repo_sync_working_branch to master

Pull request opened by Docs to resolve syncing conflicts from repo_sync_working_branch to master.

Resolved the merge conflict; merging the PR.