installation does not work

hi,
I have installed your application as indicated
but i can't complete through "mopidy ytmusic setup"
could you give me more detailed information? thank you

What exactly doesn't work? That whole command is just a thin wrapper for the library I'm using here,
so if there's a bug there may not be much I can do.

Hi !
this is my installation procedure (under debian10);

I install mopidy as per the standard procedure;
I install Mopidy-YTMusic;
I add in /etc/mopidy/mopidy.conf this lines:

[ytmusic]
enabled = true
auth_json = ./auth.json

run "mopidy ytmusic setup"
this is the result:

INFO     2020-09-18 13:07:48,621 [21060:MainThread] mopidy.main
Starting Mopidy 3.0.2
INFO     2020-09-18 13:07:48,628 [21060:MainThread] mopidy.config
Loading config from builtin defaults
INFO     2020-09-18 13:07:48,629 [21060:MainThread] mopidy.config
Loading config from file:///root/.config/mopidy/mopidy.conf
INFO     2020-09-18 13:07:48,629 [21060:MainThread] mopidy.config
Loading config from command line options
INFO     2020-09-18 13:07:48,701 [21060:MainThread] mopidy.main
Enabled extensions: stream, http, file, softwaremixer, musicbox_webclient, mpd, m3u
INFO     2020-09-18 13:07:48,701 [21060:MainThread] mopidy.main
Disabled extensions: ytmusic
WARNING  2020-09-18 13:07:48,701 [21060:MainThread] mopidy.main
Found ytmusic configuration errors. The extension has been automatically disabled:
WARNING  2020-09-18 13:07:48,702 [21060:MainThread] mopidy.main
ytmusic/auth_json must be set.
WARNING  2020-09-18 13:07:48,702 [21060:MainThread] mopidy.main
Please fix the extension configuration errors or disable the extensions to silence these messages.
ERROR    2020-09-18 13:07:48,702 [21060:MainThread] mopidy.main
Unable to run command provided by disabled extension ytmusic

if I also add in /root/.config/mopidy/mopidy.conf this lines:

[ytmusic]
enabled = true
auth_json = ./auth.json
and after run "mopidy ytmusic setup"
this is the result:
INFO     2020-09-18 13:11:38,114 [21079:MainThread] mopidy.main
Starting Mopidy 3.0.2
INFO     2020-09-18 13:11:38,121 [21079:MainThread] mopidy.config
Loading config from builtin defaults
INFO     2020-09-18 13:11:38,122 [21079:MainThread] mopidy.config
Loading config from file:///root/.config/mopidy/mopidy.conf
INFO     2020-09-18 13:11:38,122 [21079:MainThread] mopidy.config
Loading config from command line options
INFO     2020-09-18 13:11:38,193 [21079:MainThread] mopidy.main
Enabled extensions: musicbox_webclient, softwaremixer, stream, mpd, m3u, http, file, ytmusic
INFO     2020-09-18 13:11:38,193 [21079:MainThread] mopidy.main
Disabled extensions: none
Enter the path where you want to save auth.json:/tmp
File already exists!
but no file is created in / tmp
If you can please tell us the exact installation procedure (step by step), and the insertion of the credentials (user, password)
for YT music
Thank you very much !

I can also confirm, this is happening on Arch Linux, I am having similar issues. I have the following errors:
Failed loading provided credentials. Make sure to provide a string or a file path. Reason: Expecting value: line 1 column 1 (char 0)
ERROR    2020-09-18 12:47:08,788 [8769:MainThread] mopidy.commands
Got un-handled exception from YTMusicBackend
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/mopidy/commands.py", line 241, in _actor_error_handling
yield
File "/usr/lib/python3.8/site-packages/mopidy/commands.py", line 405, in start_backends
backend = backend_class.start(
File "/usr/lib/python3.8/site-packages/pykka/_actor.py", line 91, in start
obj = cls(*args, **kwargs)
File "/home/jhenkel/.local/lib/python3.8/site-packages/mopidy_ytmusic/backend.py", line 384, in init
API = YTMusic(config["ytmusic"]["auth_json"])
File "/home/jhenkel/.local/lib/python3.8/site-packages/ytmusicapi/ytmusic.py", line 96, in init
self.sapisid = sapisid_from_cookie(self.headers['Cookie'])
AttributeError: 'YTMusic' object has no attribute 'headers'
I wrapped the auth_json = in ""'s and got passed the Failed loading...however I got this..
Starting Mopidy backends: YTMusicBackend, FileBackend, M3UBackend, StreamBackend
INFO     2020-09-18 12:49:38,298 [9574:Audio-2] mopidy.audio.actor
Audio output set to "autoaudiosink"
ERROR    2020-09-18 12:49:38,452 [9574:MainThread] mopidy.commands
Got un-handled exception from YTMusicBackend
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/mopidy/commands.py", line 241, in _actor_error_handling
yield
File "/usr/lib/python3.8/site-packages/mopidy/commands.py", line 405, in start_backends
backend = backend_class.start(
File "/usr/lib/python3.8/site-packages/pykka/_actor.py", line 91, in start
obj = cls(*args, **kwargs)
File "/home/jhenkel/.local/lib/python3.8/site-packages/mopidy_ytmusic/backend.py", line 384, in init
API = YTMusic(config["ytmusic"]["auth_json"])
File "/home/jhenkel/.local/lib/python3.8/site-packages/ytmusicapi/ytmusic.py", line 96, in init
self.sapisid = sapisid_from_cookie(self.headers['Cookie'])
TypeError: string indices must be integers
I have validated that there is a Cookie entry in my auth.json...
Happy to help troubleshoot..

Hi!
Forgive me, but I didn't understand ...
were you able to solve the problem or not?
I did a fresh install but everything remained the same (don't work)
Can you help me ? thank you

No, I was unable to resolve it, haven't looked at the code too much yet.

hi, could you solve the problems indicated?
thank you

I am not the original maintainer, and don't expect I'll be in the position to solve the problem @OzymandiasTheGreat  is likely in the best position to assist, I am happy to offer additional assistance.

I believe this is the library @OzymandiasTheGreat  is referencing, https://github.com/sigma67/ytmusicapi issues might be therein.


GPII-3248: Draft up initial ideas on testing security of GCP-based clusters

This PR contains an early draft of code that allows us to test-drive development of network security policies on GCP. There are a large number of improvements that can/will be made. Notably:

Potential inclusion of a more domain-specific frameworks like serverspec, inspec, goss, or gauntlt
Execution of code within a standard container (perhaps the same container as the exekube container)
Documentation
Improved rspec matchers to improve readability (may be obviated by (1))
Move of securityTest related task definitions to its own Rake file

Currently, the way to execute this is to execute rake securityTest in gcp/live/dev. The output looks like the following:
$ rake securityTest
/usr/local/rvm/rubies/ruby-2.5.1/bin/ruby -I/usr/local/rvm/gems/ruby-2.5.1/gems/rspec-core-3.8.0/lib:/usr/local/rvm/gems/ruby-2.5.1/gems/rspec-support-3.8.0/lib /usr/local/rvm/gems/ruby-2.5.1/gems/rspec-core-3.8.0/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb --format documentation
Security:
  Preferences Pod
    Container Port 8081
      listens on port 8081
      is not accessible directly by any other pod on port 8081 (PENDING: implementation of network security policies)
  Couchdb
    Application
      Container Port 5984
        should have couchdb listening on port 5984
        is not accessible directly by any other pod on port 5984 (PENDING: implementation of network security policies)
    Erlang Clustering
      Container Port 4368 (EPMD)
        should have couchdb listening on port 4369 for erlang clustering
        should be able to reach out to other couchdb pods on port 4369 for erlang clustering
        should not allow non-couchdb pods to reach port 4369 (PENDING: implementation of network security policies)
      Container Port 9100
        should have couchdb listening on port 9100 for erlang clustering
        should be able to reach out to other couchdb pods on port 9100 for erlang clustering
        should not allow non-couchdb pods to reach port 9100 (PENDING: implementation of network security policies)

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) Security: Preferences Pod Container Port 8081 is not accessible directly by any other pod on port 8081
     # implementation of network security policies
     Failure/Error: expect($?.exitstatus).to_not eq(0)

       expected: value != 0
            got: 0

       (compared using ==)
     # ./spec/network_spec.rb:70:in `block (6 levels) in <top (required)>'
     # ./spec/network_spec.rb:67:in `each'
     # ./spec/network_spec.rb:67:in `block (5 levels) in <top (required)>'
     # ./spec/network_spec.rb:66:in `each'
     # ./spec/network_spec.rb:66:in `block (4 levels) in <top (required)>'

  2) Security: Couchdb Application Container Port 5984 is not accessible directly by any other pod on port 5984
     # implementation of network security policies
     Failure/Error: expect($?.exitstatus).to_not eq(0)

       expected: value != 0
            got: 0

       (compared using ==)
     # ./spec/network_spec.rb:95:in `block (7 levels) in <top (required)>'
     # ./spec/network_spec.rb:92:in `each'
     # ./spec/network_spec.rb:92:in `block (6 levels) in <top (required)>'
     # ./spec/network_spec.rb:91:in `each'
     # ./spec/network_spec.rb:91:in `block (5 levels) in <top (required)>'

  3) Security: Couchdb Erlang Clustering Container Port 4368 (EPMD) should not allow non-couchdb pods to reach port 4369
     # implementation of network security policies
     Failure/Error: expect($?.exitstatus).to_not eq(0)

       expected: value != 0
            got: 0

       (compared using ==)
     # ./spec/network_spec.rb:129:in `block (7 levels) in <top (required)>'
     # ./spec/network_spec.rb:126:in `each'
     # ./spec/network_spec.rb:126:in `block (6 levels) in <top (required)>'
     # ./spec/network_spec.rb:125:in `each'
     # ./spec/network_spec.rb:125:in `block (5 levels) in <top (required)>'

  4) Security: Couchdb Erlang Clustering Container Port 9100 should not allow non-couchdb pods to reach port 9100
     # implementation of network security policies
     Failure/Error: expect($?.exitstatus).to_not eq(0)

       expected: value != 0
            got: 0

       (compared using ==)
     # ./spec/network_spec.rb:161:in `block (7 levels) in <top (required)>'
     # ./spec/network_spec.rb:158:in `each'
     # ./spec/network_spec.rb:158:in `block (6 levels) in <top (required)>'
     # ./spec/network_spec.rb:157:in `each'
     # ./spec/network_spec.rb:157:in `block (5 levels) in <top (required)>'

Finished in 13.55 seconds (files took 0.07256 seconds to load)
10 examples, 0 failures, 4 pending

I like these tests. I think it's a good way to do TDD (or I guess this is more BDD ;)) on network policy stuff.
I'm not so keen on installing nc into running Pods. Hopefully we can find another way to handle that (though it might be tricky for some of the "accept connections from here, but not from there" scenarios).
I definitely think we want a higher-level library. Maybe there's even a Kubernetes-aware spec framework somewhere? I used inspec a little and wasn't too impressed; IIRC it was a little Chef-centric. I've looked at serverspec before and it seems nice. Alfredo has done a little work with goss. All your proposed candidates look reasonable and worthy of a bit of exploration.
I think it's fine to run these tests inside the exekube container.
Please rename it to test_security to better match our naming convention. :)

@stepanstipl

We currently run pretty much everything inside docker container, can we try to make this in the same way?

Yes, absolutely - current plan is to move this execution into the xk container. Will follow up later with a targeted PR.

Note for myself: last review here.

In order to avoid any pod "pollution" in the production cluster we could use the test1.gpii.net cluster to test all the security configuration. Yes, I know that perhaps it would be some drifting between the clusters, but we could test the internal configuration in test1.gpii.net and leave some less intrusive tests (external security scanning tools) for the prd cluster.
Another option could be upload static binaries to the /tmp directory and once the tests are concluded kill the container and let k8s recreate the pod with new clean containers. I guess that this option is more intrusive tough.

In order to avoid any pod "pollution" in the production cluster we could use the test1.gpii.net cluster to test all the security configuration. Yes, I know that perhaps it would be some drifting between the clusters, but we could test the internal configuration in test1.gpii.net and leave some less intrusive tests (external security scanning tools) for the prd cluster.

Another option could be upload static binaries to the /tmp directory and once the tests are concluded kill the container and let k8s recreate the pod with new clean containers. I guess that this option is more intrusive tough.

@amatas I think problem with this approach, and general with approach of uploading any binary and executing it in a contianer is, that you should not be allowed to do that in well secured cluster, amongst other:

Filesystems of our containers should be read only (readOnlyRootFilesystem security policy)
You should not be allowed to run anything as root (runAsUser policy)

In general by allowing this aproach we would be lowering our security profile.
@seg10 I think starting a pod and testing you can't reach others would be "good enough" start. Even in this case you're not testing "processes" in the containers themselves, but rather whether you can access another pod from the given container, using different executable even.
I would ask what are we trying to test in the first place? I think the answer is that non-whitelisted containers can't access given service. And probably you want to test that any/random containers can't access your service, not just couchdb, preferences and/or flowmanager.
If you think running in the same PID namespace is important, one option might be to start another container in given pod. Containers in a same pod share lot of stuff, and K8s recently introduced possibility to share PID namespace too (shareProcessNamespace: true). I don't think you can do this in runtime though, probably you would need to modify pod and it would trigger rescheduling. Just as a braindump - another option might be to run the nc process with same namespaces as the already executed process, but that's non-trivial and probably overcomplicating stuff.

@amatas I think problem with this approach, and general with approach of uploading any binary and executing it in a contianer is, that you should not be allowed to do that in well secured cluster, amongst other:
- Filesystems of our containers should be read only (readOnlyRootFilesystem security policy)
- You should not be allowed to run anything as root (runAsUser policy)
By allowing this approach, we would be lowering our security profile.

@stepanstipl I understand the concerns and they make a lot of sense. So perhaps the approach of creating a new testing cluster, where the pods are carefully modified to only allow us to make the security tests, could work. Otherwise we could say to the auditor: "our cluster is so secure that we are not able to access to test the security :smile: "

:D yeah maybe, although I'm not a big fan of having the different config in prod and non-prod clusters, nothing good usually comes from that :) and you can question whether you're still testing the actual thing or smth. else.
Lowering our security to allow for security testing sounds a bit counterproductive.

I think problem with this approach, and general with approach of uploading any binary and executing it in a contianer is, that you should not be allowed to do that in well secured cluster, amongst other:

Filesystems of our containers should be read only (readOnlyRootFilesystem security policy)
You should not be allowed to run anything as root (runAsUser policy)

@stepanstipl - can you confirm that even if the readOnlyRootFilesystem policy is set, then /tmp will still be writeable? If so, I believe that neither of the above points will prevent us from working with the strategy in this PR. We can always download/copy a binary onto the pod for remote execution.
I would argue that nothing in this PR lowers our security currently - particularly if we execute these tests in a disposable environment reserved for use in the pipeline. We can also alter our strategy when a conflicting security policy is implemented. In the interest of avoiding overengineering, I propose that we move ahead and only alter our strategy when new security requirements conflict with this approach.

@seg10 nope, there no reason why /tmp would have to be writable. You can  easily try:
Apply following manifest:
apiVersion: v1
kind: Pod
metadata:
  name: read-test
spec:
  containers:
  - name: alpine
    image: alpine
    command: [ "/bin/sh", "-c", "--" ]
    args: [ "while true; do date && sleep 10; done" ]
    securityContext:
      readOnlyRootFilesystem: true
      runAsNonRoot: true
      runAsUser: 65534

This demonstrats both read only fs as well as non-root user enforced.
Trying to write to /tmp gives you following error:
kubectl exec -i --tty read-test sh                                                                                (alf-GPII-3125|…) 1
$ cd /tmp
/tmp $ touch aaa
touch: aaa: Read-only file system

Re. security: one of the basic security principles is to minimize the attack surface. Installing anything non-essential, the less smth. like nc goes against this (for example one of the very common requirements is to remove telnet from prod systems). And even if we don't enforce rea-only fs and non-root users atm., I think it's something we should do soon and for this and other reasons I would prefer other approach to this.

As discussed in the weekly, we'll be merging this PR in and addressing the above issues in subsequent PR(s).


A little help needed!

Hi,
Cool node.
Just a bit stuck on what to input to the controller to cause it to send one of the Filter commands.
i.e. I want to set up some manual triggers that do a:

Power On, Power Off
Get Sound Setting (all)
Get Playback Mode (all)
Get Source - Zone 1

What would help is a test flow to import...I should be able to deduce how it works from there.
Thanks.

Hi,
yes if you want to do this programmatically, you need a change node. I attached an example with your use cases, one time with a dedicated controller node for each and another time with only one controller node and change nodes.
Putting the command directly inside msg made most sense for me to clearly separate the command from its content/arguments (= payload). The command is more like metadata while the arguments are the actual payload.
issue_1.zip

If you want, you can create a feature request issue demanding to also accept a command property within msg.payload.

@skavan I don't have a STR-1080dn, just a HT-XT3, so I can't test this. From what I can see in the API documentation, getPlayingContentInfo might give you at least some information.

I decided to implement the feature requested by @skavan above. I will reuse this issue to track the progress.

With the idea of supporting msg.topic and the ability to provide the command as topic (see issue #3), the implementation as described above will not be necessary anymore. Inject nodes provide the possibility to set the topic of the output message, so no change node would be needed anymore. Therefore I will close this issue.


retraining DIET does not imply retraining TED?

I used the main branch, created a new project via rasa init and ran rasa train. After that I added some lookup data to my nlu.yml file. I then asked Rasa to train again.
> rasa train
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Starting to train component 'RegexFeaturizerGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Finished training component 'RegexFeaturizerGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Starting to train component 'LexicalSyntacticFeaturizerGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Finished training component 'LexicalSyntacticFeaturizerGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Starting to train component 'CountVectorsFeaturizerGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Finished training component 'CountVectorsFeaturizerGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Starting to train component 'CountVectorsFeaturizerGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Finished training component 'CountVectorsFeaturizerGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Starting to train component 'MemoizationPolicyGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Finished training component 'MemoizationPolicyGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Starting to train component 'RulePolicyGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Finished training component 'RulePolicyGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Starting to train component 'TEDPolicyGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Finished training component 'TEDPolicyGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Starting to train component 'UnexpecTEDIntentPolicyGraphComponent'.
2021-10-19 11:22:35 INFO     rasa.engine.training.hooks  - Finished training component 'UnexpecTEDIntentPolicyGraphComponent'.
2021-10-19 11:22:36 INFO     rasa.engine.training.hooks  - Starting to train component 'DIETClassifierGraphComponent'.
Epochs: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:19<00:00,  5.03it/s, t_loss=1.17, i_acc=1]
2021-10-19 11:22:56 INFO     rasa.engine.training.hooks  - Finished training component 'DIETClassifierGraphComponent'.
2021-10-19 11:22:56 INFO     rasa.engine.training.hooks  - Starting to train component 'EntitySynonymMapperGraphComponent'.
2021-10-19 11:22:56 INFO     rasa.engine.training.hooks  - Finished training component 'EntitySynonymMapperGraphComponent'.
2021-10-19 11:22:56 INFO     rasa.engine.training.hooks  - Starting to train component 'ResponseSelectorGraphComponent'.
2021-10-19 11:22:56 INFO     rasa.nlu.selectors.response_selector  - Retrieval intent parameter was left to its default value. This response selector will be trained on training examples combining all retrieval intents.
2021-10-19 11:22:56 INFO     rasa.engine.training.hooks  - Finished training component 'ResponseSelectorGraphComponent'.
Your Rasa model is trained and saved at 'models/20211019-112234.tar.gz'.`

A few things are strange about this.

Technically, the DIETClassifier doesn't need to retrain when there's new lookup values, right? The training data technically did not change.
More strangely, it seems like the DIETClassifier updated. So why didn't the Policy models retrain? With a new NLU model surely we need a new TEDPolicy?

I'm assuming TED isn't retraining because there's no progress bar. Is this accurate in 3.x?

Related, when I add a new entity extractor to the pipeline, it also seems like TED doesn't retrain.
  - name: RegexEntityExtractor
    use_lookup_tables: true

Not unless you add them your domain

Technically, the DIETClassifier doesn't need to retrain when there's new lookup values, right? The training data technically did not change.

This is true. To fix this we'd need to separate the lookup tables from the TrainingData object which we considered out of scope of the revamp as this has larger implications 😬


How can I set a custom view path?

Say I have Users::StepsController which, by default would search in /app/views/users/steps for the template of the matching step.
How can I specify that I want it instead to use a different path? For instance /app/views/wizards/user_sign_up/steps
Currently I'm using:
def self.controller_path
  'wizards/user_sign_up/steps'
end

but was wondering if there was a better way?

You can try this https://solidfoundationwebdev.com/blog/posts/how-to-change-the-view-path-of-a-controller-in-rails


Improve the UI of dropdown menu on demographics  page

Attach pics of improved UI dropdown menu-

https://covid19india-r-git-fork-strikertanmay-strikertanmay-fx-d-f63272.covid19india.now.sh/demographics

Can u assign this bug to me? I am willing to work on this.

What are the improvements that you made? Thanks for the PR, however, please wait for the issue to the assigned to you so that we can keep track and follow up.

Patched.


xorex: init at 0.3.0

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

And PR number 120000. 🎉

Result of nixpkgs-review pr 120000 run on x86_64-linux 1

1 package built:

xorex

Related to #81418


Fix deployments inactivate

what

Deactivate preview env deployment only for the current branch

why

Allow to have deployment per PR

Summary by CodeRabbit

New Features

Introduced a conditional check to prevent deployment based on pull request labels.
Added a new step to seek deployment and set the environment to 'preview'.
Implemented a step to inactivate deployment based on the successful retrieval of a deployment ID.

@goruha I don't understand the description (please GPT!)
Just want to be clear, we are working on MANY parallel PRs and want previews for all of them, concurrently.

@osterman exactly


Add truffle v5 target, switch from BigNumber to BN

As mentioned in issue #193 and pull requst #184, with v5.0.0 truffle moved from Web3.js v0.x to v1.x. One of major change in it: use of BN.js instead of bignumber.js.
With this pull request i've introduced typechain-target-truffle-v5 based on @MicahZoltu pr #184.

Coverage remained the same at 92.523% when pulling 2f2e842027cecdb0cbb8031606a6c8199b4e0c9f on pash7ka:bignumber-to-bn into c326f7f9e9d37c15686c0bfa2c9b9ff4819b6279 on ethereum-ts:master.

Isn't truffle@5 using web3@1 under the hood? Does it mean it has the same api? Can we somehow reuse the generated types between packages?
Yes, they use web3@1 under the hood, butthey created their own wrappers around it.
For example, when deploying a contract they wrap it with TruffleContract. Also they wrap receipt of a call.

@pash7ka oh, makes sense. I will finish CR today 👍

Merged to tmp branch for now - it needs a little bit more work.
Thanks for this @pash7ka @MicahZoltu ! 🎉


Design System > Charts > Pie chart > Unable to change the size of the pie chart, and for a circle, height and width are not required; only the radius is needed

Describe the bug
Unable to change the size of the pie chart, and for a circle, height and width are not required; only the radius is needed
Steps to reproduce bug
1.Go to 'https://dev-react.raaghu.ai/?path=/story/charts-pie-chart--pie-chart&args=width:300009;height:300000000'
2. Go to 'https://stage-react.raaghu.ai/?path=/story/charts-pie-chart--pie-chart&args=width:30022222222;height:30022222244'
2. Navigate to 'Charts > Pie chart'
3. Enhancement of control to be done as per figma link
Actual result-
Unable to change the size of the pie chart, and for a circle, height and width are not required; only the radius is needed
Screenshots

Expected result-
Size of pie chart should be changed and radius control should be required
Enhancement of control should be done as per figma link

Fixed on stage/ dev


How to edit tablib.Dataset before InvalidDimensions error?

I'm receiving the following error when trying to upload a csv file:

InvalidDimensions encountered while trying to read file

I know that this is a tablib error, and due to the fact that I have empty lines between each row in my csv, as well as blank lines at the end of file. I want to gain access to the dataset before the import to format it properly. I've tried overriding the import_obj, before_import and before_import_row methods, but that doesn't seem to work. None of the other methods seems to work either.
admin.py
class UpdateResource(resources.ModelResource):
    def before_import_row(self, row, **kwargs):
        print(row)

I've just been trying to find the correct method to use before the error. I've had no luck gaining access to the tablib.Dataset resource before the error.
I've tried sub-classing the ImportExportMixin class, but I have no idea if this is even the way to go, or to how go about gaining access to the Dataset before the format of the csv is checked.
admin.py
class UploadAdmin(ImportExportMixin, TablibFormat, admin.ModelAdmin):
        def import_action(self, request, *args, **kwargs):
            # Do something to gain access to the tablid.Dataset, or csv before it is read
            return super(UploadAdmin, self).import_action(request, *args, **kwargs)

How can I gain access to, and change the tablib.Dataset, or the csv file's format

Hey @juju4Life ! Did you have a chance to figure this out?
I was thinking about this, and figured there might be a way to check the existence of data in the row in the before_import_row function of the Resource class.
The pseudocode would look something like this:
class UpdateResource(resources.ModelResource):
    def before_import_row(self, row, **kwargs):
        if row is empty:
             raise Exception

and you would have to make sure that raise_errors is False which it is by default.
This should allow you to "skip" the rows that are blank.
The other way would be to override the behavior of import_row  on the resource class and pass when the row is empty.  This way may be more graceful.


Fixed file trigger of digest from # (not supported anymore) to /

Depends on https://github.com/clowder-framework/clowder/pull/142.

This will be merged when clowder is released. If this is executed on an older version of clowder this will result in an endless loop.


enh(php) Add support for Attributes

Changes
PHP 8 added support for Attributes.  Nested attributes were added to PHP 8.1.
They are similar to the ones from Rust.

Checklist

[x] Added markup tests
[x] Updated the changelog at CHANGES.md

Ping. Any luck?

Ping. Any luck?

Complex regex and no support for Lookbehind :(.
Medium MR by size and complexity, now is hard in both metrics.
That's why I plan to make smaller merges with missing functionality like:

constants
function invoke
named arguments
Then I will go back to this one.

Was work on this going to continue or was it superseded by the other PRs?

I didn't work on it for the last 2 weeks.  Updated code but still I don't know how to highlight with meta tag only the beginning #[MyAttribute  and end ]. Any suggestion welcome.

Any suggestion welcome.

Can't you do this with beginScope and endScope, added in v11?

Any suggestion welcome.

Can't you do this with beginScope and endScope, added in v11?

So easy with this one :)

In the future if you could commit your changes in a fixup commit (from the last review point) rather than rewriting the whole history it'd make it MUCH easier for me to review.  Thanks.

How does that look?

How does that look?

Didn't think about it because I treat abbreviations and acronyms like any other word (camelCase / PascalCase). Of course there is a lot of code out there where all characters of abbreviation or acronym are capitalized.
All changes look good.

a lot of code out there where all characters of abbreviation or acronym are capitalized.

Yeah usually in other places where we deal with the pattern we support all caps abbreviations, eventually I need to abstract these rules into MODES.

a lot of code out there where all characters of abbreviation or acronym are capitalized.

Yeah usually in other places where we deal with the pattern we support all caps abbreviations, eventually I need to abstract these rules into MODES.

Ok, So everything is good with PR, because I see the change requested?

@wkania Thanks so much!

@joshgoebel when this can be released?

Whenever the next release is, there isn't a fixed scheduled, often every month or two.


Translating to Español (Spanish)

Thanks for the awesome application. I've created a translation into Spanish.
Looking forward to working with you to get this merged in. Thanks!

[x] Initial commit for localizing to es-419
[x] Translating Equinox project
[x] Translate the menu sections
[x] Translating the welcome sections
[x] Translating some wallpaper sections
[x] Translating the tip sections
[x] Translating the dock section
[x] Translating the remaining sections

I've updated my PR to resolve the conflicts I found. Let me know if there are
any issues with the xcodeproj files as I resolved those conflicts manually
instead of using Xcode.

Hi @rogeruiz thanks for the contribution, everything looks fine! I'll merge it as soon as I plan a new version, don't worry if your pr remains open for a while.


import of xray_vision not found in speckle-plotting

Tried installing from here: https://github.com/Nikea/xray-vision (not available under conda package name in meta file). Tried installing dev branch of scikit-xray. Still no go.

Thanks for the bug report!  Sorting it out now. I'll update when I have a fix.

I just (slightly) updated the speckle-plotting notebook to remove some bugs that you would have hit downstream of your reported bug.  Update to scikit-xray-examples master and try again if you wouldn't mind.
Also, what OS are you on? Linux/mac/windows?

Still the ImportError on mpl_plotting.speckle. Before the first bug report I had installed clint through conda, and changed the viridis cmap to something else. This let me run all cells until "Let's look at what these ring ROIs look like" where mpl_plot was called below. With your commit, including the clint note, I can run everything fine until mpl_plot.
If xray-vision is a dependency for scikit-xray/examples, it's possible I've installed that incorrectly into my conda environment. I used system python and pip before this, and am now figuring out how to use conda as a package manager and virtualenv replacement. It does show up on my conda list after installing from the Nikea repo. I'm on Linux (Ubuntu 14.04 LTS).
Last minor note, in the scikit-xray installation doc (https://github.com/scikit-xray/scikit-xray/blob/master/doc/installation.rst) it says Py2 and 3 are supported, but in an anaconda python 3 env, the installation fails after a conda install of scikit-xray. It worked fine in a conda env with python2.7.
Thanks for the help Eric, much appreciated.

First off, thank you for your patience! I'm fairly certain that this is an issue with how xray-vision was installed (as we have not really nicely packaged it up yet).  Can you copy the full stack trace that you see when you experience this error?
If xray-vision is a dependency for scikit-xray/examples, it's possible
I've installed that incorrectly into my conda environment.

It is. I now realize that I have not documented the location of these binaries. I am uploading v0.0.3 of xray-vision to the scikit-xray channel on anaconda.org.  Sorry!  How did you install xray-vision?
If you want to install the xray-vision binary, remove all traces of it from your environment.  conda remove xray-vision --yes should work for conda installations. pip uninstall xray-vision until it does not find anything will remove things installed with pip install or python setup.py {install, develop}. Then conda install xray-vision should install v0.0.3.
Last minor note, in the scikit-xray installation doc
(https://github.com/scikit-xray/scikit-xray/blob/master/doc/installation.rst)
it says Py2 and 3 are supported, but in an anaconda python 3 env,
the installation fails after a conda install of scikit-xray. It worked fine
in a conda env with python2.7.

Can you copy the full contents of the console output that occurred after you executed conda install scikit-xray that produced the failed installation?

Oh. Well. There is a bug in the setup.py file for xray-vision.  That is the origin of all of this.  Give me about 30 minutes and there will be a new tagged version of xray-vision (v0.0.4) that fixes this.  Thanks!

Try now. conda install -c scikit-xray xray-vision.

Eric, after reinstalling xray-vision (v0.0.4) the speckle-plotting demo runs without error, thanks for the fix! I had initially installed it from source with python setup.py install, but installed from conda this time into a py2.7 env.
As for the separate py3.x issue, below is the terminal output when I try and install scikit-xray from Anaconda. I only tested Anaconda python 3.3 and 3.5, both giving this 'conflict' message:
(cedric3)soham@soham-desktop:~$ conda config --add channels scikit-xray
Skipping channels: scikit-xray, item already exists
(cedric3)soham@soham-desktop:~$ conda install scikit-xray
Fetching package metadata: ......
Solving package specifications: ..
Error: Unsatisfiable package specifications.
Generating hint:
[      COMPLETE      ]|###################################################| 100%
Hint: the following packages conflict with each other:
  - scikit-xray
  - python 3.5*
Use 'conda info scikit-xray' etc. to see the dependencies for each package.
(cedric3)soham@soham-desktop:~$ python --version
Python 3.5.0 :: Continuum Analytics, Inc.

Great!  Thanks for pointing out our error in xray-vison :beers:
Regarding the error message you received with installing scikit-xray on anaconda 3.3 and 3.5, we were only supporting python 3.4.  Now that python 3.5 is officially released we will start testing 3.5 and get binaries for python 3.5 ready. It is unlikely that we will support python 3.3 unless someone specifically needs it.
Thanks for the patience and feedback!


add environments api to go-rancher

@ibuildthecloud

@ibuildthecloud  -- I updated to cattle master again, and ran gen-schema.sh.
This time, Service didn't get dropped.


target-branch argument for azure devops client doesn't work

🐛 Bug Report
After providing the targetbranch argument for the platform AzureDevops, NuKeeper keep checking against the default branch of the repo.
I've fixed the issue in PR #1077
Expected behavior
What described is in PR #1074
Reproduction steps
Provide the --targetBranch argument against the Azure DevOps git repo and see that NuKeeper will check dependencies against the default configured branch instead of the targetBranch.
Configuration
Version: 0.34.0
Platform if applicable:

[ ] :hammer_and_wrench: NuKeeper CLI
[ ] :sparkles: GitHub
[x] :robot: AzureDevops
[ ] :checkered_flag: Bitbucket
[ ] :earth_americas: Gitlab
[ ] :tv: Gitea
[ ] :whale: Docker

Hmm, there is a pull request available but can't find anyone to accept it.

Is there anyone out there that can approve the PR so this blocking bug can be fixed?


Fix Roundness on server list overlays and Stream/Camera Button Spaceing

Fix Roundness on server list overlays
Fix Stream and Camera Button Spaceing

Hey cheers for the PR but when submitting one please update the src files.
I'll add this in with the current update.


Added better and more descriptive logging

turned dbg!("todo") into todo!()
turned dbg! statements into log::debug! statements
added logging to pumpkin-inventory
added logging when a client tries to interact with a block out of reach

Also please remove the todo!() statements, i use them for not crashing the server

@AnonymousBit0111. Just want to tell you that you can use cargo clippy --release for checking for clippy warns and cargo fmt to format the code

nah these are my mistakes, im trying to fix merge issues on web interface


Implemented Cholesky decomposition to numpy and tensorflow backends

Added the decomposition function following the idea of having a pivot on the tensor, this is in reference to issue #852. which we then reshape into a matrix for the Cholesky function used in NumPy linear algebra. which you may find here for reference.
I Will start working on adding the function to the missing backend which is symmetric since Jax uses NumPy's decomposition file. I await any feedback you may have and that you for the help!

@alewis @mganahl Hello! I implemented the Cholesky decomposition to various backends following the idea of a pivot value for the tensors, with their respective tests where I defined a matrix that is assured to be positive-definite and also a hermitian matrix:

[1, 0]
[0, 1]

I assumed we won't be validating if the matrices are hermitian or positive-definite since there could be some performance cost in doing so (at least for positive-definite checking) the addition of a hermitian check would be nice to have.
A Pylint error has been occurring in the test runs, but it is somewhere in the code where I haven't made changes to. the file in question is tensornetwork/tn_keras/conv2d_mpo.py which seems to only be affected in versions 3.6 and 3.7, this issue is also occurring in my other PR #889 maybe freezing the version could fix this but this is a lazy solution and would not solve it for all cases, so I will wait for your feedback to see what can be done here. Here is an image of the error for reference.

A Pylint error has been occurring in the test runs, but it is somewhere in the code where I haven't made changes to. the file in question is tensornetwork/tn_keras/conv2d_mpo.py which seems to only be affected in versions 3.6 and 3.7, this issue is also occurring in my other PR #889 maybe freezing the version could fix this but this is a lazy solution and would not solve it for all cases, so I will wait for your feedback to see what can be done here. Here is an image of the error for reference.

Thanks for pointing this out. Likely this is due to a new tensorflow release. I'll fix it.

Codecov Report

Merging #890 (66b5b94) into master (02c9ad5) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #890   +/-   ##
=======================================
  Coverage   98.00%   98.00%
=======================================
  Files         129      129
  Lines       22625    22674   +49
=======================================
+ Hits        22173    22222   +49
  Misses        452      452

Impacted Files
Coverage Δ

tensornetwork/backends/numpy/decompositions.py
100.00% <100.00%> (ø)

...ensornetwork/backends/numpy/decompositions_test.py
98.71% <100.00%> (+0.08%)
:arrow_up:

tensornetwork/backends/pytorch/decompositions.py
100.00% <100.00%> (ø)

...sornetwork/backends/pytorch/decompositions_test.py
100.00% <100.00%> (ø)

...ensornetwork/backends/tensorflow/decompositions.py
100.00% <100.00%> (ø)

...network/backends/tensorflow/decompositions_test.py
98.94% <100.00%> (+0.05%)
:arrow_up:

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 02c9ad5...66b5b94. Read the comment docs.

Hi there @mganahl @alewis In the end I implemented the test following your requested changes and tried these changes out, I'd like your opinion on them. The biggest difference being:

torch.from_numpy(random_ matrix) since it wasn't reading it like a tensor. Let me know what you think. Thank you!

Hi @LuiGiovanni, once the comments are fixed we can merge this

Hi @LuiGiovanni, once the comments are fixed we can merge this


OpsGenie notify fails with 422 status code

What did you do?
I have simple rule on test instance:
groups:
- name: example
  rules:
  - alert: BlaAlert
    expr: up == 1
    for: 0s
    labels: []
    annotations:
      severity: critical
      message: Something wrong
      summary: OpsMeOut

I logged request it sends:
{"alias":"1d1d7ea4d3921fc7909a53d3738caeb62f0e9e5c6affccbf5f3323d2ee1667c9","message":"[FIRING:3] BlaAlert (critical)","description":"OpsMeOut
Alerts Firing:
Labels:
 - alertname = BlaAlert
 - instance = localhost:9090
 - job = prometheus
 - severity = critical
Annotations:
 - summary = OpsMeOut
Source: http://prometheus-2:9090/graph?g0.expr=up+%3D%3D+1\\u0026g0.tab=1
Labels:
 - alertname = BlaAlert
 - instance = localhost:9100
 - job = node
 - severity = critical
Annotations:
 - summary = OpsMeOut
Source: http://prometheus-2:9090/graph?g0.expr=up+%3D%3D+1\\u0026g0.tab=1
Labels:
 - alertname = BlaAlert
 - instance = localhost:9187
 - job = postgres
 - severity = critical
Annotations:
 - summary = OpsMeOut
Source: http://prometheus-2:9090/graph?g0.expr=up+%3D%3D+1\\u0026g0.tab=1

","details":{},"source":"http://prometheus20:9093/#/alerts?receiver=opsgenie","teams":"test-prometheus"}

What did you expect to see?
I expected successful response 200 from OpsGenie, instead I got 422 response which means: "Semantic errors in request body".
But I don't see any problems with requests because it have message field which is only required field from what I can see in OpsGenie API documentation.
Environment

System information:

Linux prometheus20 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Prometheus version:

prometheus, version 2.0.0 (branch: HEAD, revision: 0a74f98628a0463dddc90528220c94de5032d1a0)
  build user:       root@615b82cb36b6
  build date:       20171108-07:11:59
  go version:       go1.9.2

Alertmanager version:

alertmanager, version 0.10.0 (branch: HEAD, revision: 133c888ef3644b47a52acbaeffb09f4cc637df1b)
  build user:       root@01302b7cd08a
  build date:       20171109-15:34:53
  go version:       go1.9.2

Alertmanager configuration file:

global:
  smtp_smarthost: 'localhost:25'
  smtp_from<EMAIL_ADDRESS>
templates: []

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 3h
  receiver: sink
  routes:
  - match_re:
      service: ^.*$
    receiver: sink
    routes:
    - match:
        severity: critical
      receiver: opsgenie

receivers:
  - name: 'sink'
    email_configs:
      - to<EMAIL_ADDRESS>  - name: 'opsgenie'
    opsgenie_configs:
      - api_key: 'foo-valid-opsgenie-key'
        teams: 'test-prometheus'

Prometheus configuration file:

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
       - localhost:9093
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  - "*_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ['localhost:9100']
  - job_name: 'postgres'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ['localhost:9187']

Logs:

level=debug ts=2017-11-15T14:16:46.144797798Z caller=notify.go:600 component=dispatcher msg="Notify attempt failed" attempt=1 integration=opsgenie err="unexpected status code 422"

@Tom-Fawcett created the PR to move to V2, perhaps he has some insight

hey @XooR this is a bug caused by the API upgrade. The problem is that the 'teams' should be sent in a different structure. for now, you can make it work by removing the 'teams' option from your configuration. I'll have a PR to fix it by EOD.

Yep sorry guys :disappointed: I caused this bug.
@XooR for now I would advise either not using the teams config, or rolling back a version.
@stuartnelson3 @josedonizetti I identified this issue a few days ago, and created #1101, however, it hasn't progressed.

@Tom-Fawcett Awesome the PR exist already.

I would like to chime in that I have this same problem with the newer version 0.10.0 opsgenie but it's the 'tags' field causing my problems, not the 'teams' field (I don't use the teams field in alertmanager for opsgenie).  When I remove the 'tags' field from my config opsgenie successfully gets the post.

@fatalsaint apologies, I'll fix that.

@josedonizetti @fatalsaint #1108

@fatalsaint @XooR are either of you able to build from head and confirm the behavior is fixed for you?

My setup utilizes the Docker containers.  I can try when the master tag in hub gets updated.  The Dockerfile in the repo looks like it requires a pre-built binary.

Tested it on the account I've used to debug, and it worked perfectly. Both tags and teams.

Master tag updated, so I tested tags, and it worked.
Thanks for the fast response all.

I'm also confirming that it works both tags and teams option.


[FR] Allow messaging.subscribe_to_topic to return more verbose information on failure

Is your feature request related to a problem? Please describe.
It frustrates our team that each time our mobile app is updated and our users open the app, a new device_id is generated. We are saving this new device_id to the user, because we can't know for sure that the user haven't just bought a new phone and installed the app into that new phone as well. This leads to the problem that when we subscribe users to a topic, with all their device ids, we get many Errors ['NOT_FOUND', 'NOT_FOUND', 'NOT_FOUND', 'NOT_FOUND', 'NOT_FOUND', 'NOT_FOUND'] returned.
Describe the solution you'd like
We'd like that the API returns a list of failed device_ids so that we can delete those from our database. We'd love to see this extended to messaging.unsubscribe_from_topic as well.
Describe alternatives you've considered
Digging through the firebase code doesn't give any hints that the information we're looking for is discarded in transit.
Additional context
Code example:
from firebase_admin import messaging

def do_subscribe(tokens, topic):
    response = messaging.subscribe_to_topic(tokens, topic)
    if response.failure_count > 0:
        logger.error(
            f"Errors {list(map(lambda e: e.reason, response.errors))}",
            exc_info=False,
        )

Hi @kunambi we would like to clarify: does "device_id" mean the FCM registration token in the feature description?

Dear @chong-shao, yes that's what I mean. Sorry for using wrong terminology.

It has been 3 weeks, just checking in if further information is needed?

Shameless bump.
It's almost 6 months since this issue was raised. Any idea on what will happen?

+1 this would be useful


refactor: replace default exports with named exports

This tweet says it all: https://twitter.com/eser/status/1628292587802054656
There is a eslint rule for this:
"rules": {
     "import/prefer-default-export": "off",
     ...
}

Just curios, what is the reason behind this? I want to know if it's a the best practice.
Also I can take this, can you assign it to me?

@absolutezero13 it is because emir büyük yerden @eserozvataf


Omit PV Hourly Metrics for !Available and !Bound

Fairly easy filter to avoid including PV Hourly Cost metrics when the status is anything other than Available or Bound

Looks like a simple and reasonable solution. Have we been able to repro and test that it does, in fact, filter out the PVs we're targeting? Or do we need a more broken env to test on?

The solution seems right but I do think we want to charge for Unbound PVs? I think we literally just don't want to charge for the failed state, as unbound by definition I believe implies that you are paying. Failure is poorly defined, so we don't know if you're paying or not.
https://kubernetes.io/docs/concepts/storage/persistent-volumes/#phase

The implementation seems right but I do think we want to charge for Unbound PVs? I think we literally just don't want to charge for the failed state, as unbound by definition I believe implies that you are paying. Failure is poorly defined, so we don't know if you're paying or not.
https://kubernetes.io/docs/concepts/storage/persistent-volumes/#phase

You are correct, and this logic only filters un

The implementation seems right but I do think we want to charge for Unbound PVs? I think we literally just don't want to charge for the failed state, as unbound by definition I believe implies that you are paying. Failure is poorly defined, so we don't know if you're paying or not.
https://kubernetes.io/docs/concepts/storage/persistent-volumes/#phase

So if it's not bound, it's available? It's unclear to me what each phase maps to in terms of provider disks. I, maybe naively, assumed Available meant without a claim, bound meant claimed, released meant deleted, and failed meant non existent. These definitions don't add much clarity, but I believe we should simply add !Released (this has been unclaimed, but isn't yet Available). It's difficult to assume what Failed means, but this state only really seems reasonable if the disk failed to create. Is that a safe bet?

Looks like a simple and reasonable solution. Have we been able to repro and test that it does, in fact, filter out the PVs we're targeting? Or do we need a more broken env to test on?

Good question concerning PVs we're targetting - I don't really understand the context in which we are adding this change unless there is a report specifically outlining the evidence it exists. However, logically, this seems reasonable -- if there are solid reasons to believe this could create unexpected results, I am definitely tabling it.

These definitions don't add much clarity, but I believe we should simply add !Released (this has been unclaimed, but isn't yet Available).

I think that's reasonable too, but isn't !Failed logically equivalent? I also think we want to blacklist certain states, not whitelist in this case, because this is based purely on observational data (I noted that many failed PVs were not being charged for on flavors of AKS)


Improve changelog generation

Description
Build our changelog based on PR titles and labels instead of commit messages.
Should be easy to achieve with github-changelog-generator
I.e
docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator -u kyma-project -p serverless-manager  -t {tokien} --enhancement-labels kind/feature,area/ci  --bug-labels kind/bug

Reasons
A list of commits with commit messages is not satisfactory.
We should have items described with more care and categorised by item type (bugfix, feature, documentation, etc..)
Attachments

Please do not display issues closed by stalebot (skip by label stale)

As for now we decided to use Github's chanelog generation as we don't want to create a bot only to generate release changelogs


Fix Japanese translation

Detail: https://trello.com/c/Ad36htAq/38-mydata-declaration和訳公開版の修正

I merge this now, but I don't have time to update it now to mydata.org


How do you use a custom network for SafeService?

I'm trying to use Hardhat local network to use SafeService with, but I don't know how I can make that happen since Safe doesn't have that as one of it's supported networks.

Hello @adriandelgg,
There are a few instances of the Safe Transaction Service supporting different networks: https://docs.gnosis-safe.io/backend/available-services.
In order to run a local instance, you should run the service locally as well.

Hello @adriandelgg,
There are a few instances of the Safe Transaction Service supporting different networks: https://docs.gnosis-safe.io/backend/available-services.
In order to run a local instance, you should run the service locally as well.

Is there an article or video tutorial on how to do it on a local network?

Not that I know.
I think this README should be enough to run the service


Alias key

Is it possible to have two keys point to same cache entry?

No is you mean proper aliasing.
You can generate hash collison and find a key that collides with another.

Closing due to stale.

@hobbs If you are interested in this feature we need to think about a solution. Can you propose something?

@janisz I did a small investigation today at morning., I was interested if it can be done via hash function. A small impl is here: https://gist.github.com/cristaloleg/fad647add6226659876fc716796f2a3c
but it will be much simpler to add to the each shard a new map to store aliases.
And additional exported method SetAlias(bot cache and setAlias for shard).

I'd like to start with defining the API. How will user add an alias? What is a use case for this feature and what are the requirements? Then we can think if this could be done by extending hash function with alias map or do we need to add aliases map as an independent component.

I'm realizing that my requirements are more complicated than I originally thought. I'm actually looking for an alias key that points to an array of values, essentially introducing the concept of a many to many relationship. It's more of an index for specific fields in my value set.
Anyways, I think my requirements are out of scope, sorry waking up this ticket :)

@hobbs would you be able to expand on your requirements either in this issue or another? I'd be curious to see where you see value in many-many and what you think that would add to this project.

Not my exact scenario, but an example:

Say you're caching HTML from an origin website
A lot of your pages use a template called "article-layout"
When you push a new version of that template, it'd be nice to delete all items in the cache that use that template

So it could look something like:
// Third argument takes in additional tags
cache.Set(url, pageResponse, []string{ 'article-layout', 'article-id-123' })
cache.Set(url2, pageResponse2, []string{ 'article-layout', 'article-id-456' })
...
cache.RemoveByTag('article-layout')

It's similar to what some CDNs do with surrogate keys, or cache-tags, etc:
Fastly, Part 1: https://www.fastly.com/blog/surrogate-keys-part-1
Fastly, part 2: https://www.fastly.com/blog/surrogate-keys-part-2
Cloudflare: https://support.cloudflare.com/hc/en-us/articles/206596608-How-to-Purge-Cache-Using-Cache-Tags-Enterprise-only-

Use case I have is to allow cache lookup with two different unique identifiers. A common example is to lookup cached user information by both ID and username/email.

@hobbs Do you need to query by tag?
@faxal Is the second ID added after or when the value is inserted?

@janisz the latter, keys will be set when cache entry is inserted.

@hobbs is the use case just removal? How do you see updates being handled? i.e., if you updated an existing record, cache.Set(url, updatedPageResponse, []string{'article-layout', ...}, what happens if there is now an orphaned tag? Would you require the tags to match when updating an existing record? What about changing tags? How would you see updating the tags on an item without updating the item? Is that a use case?
Currently we only block with mutexes when necessary and abstract that away from users. Updating tags and references, in my mind, is a blocking update as we need to traverse a structure to resolve relationships on-the-fly before we can take any action.
My primary concern here is performance. Managing tags isn't terribly hard, and there are several ways to do it - graphs, slices, trees, structs, etc. The problem is traversing the various structures required for sane tag management range from O(1) to O(n log(n)) or even O(n^x) at worst. It's really hard to be performant across millions of items when you have to traverse a graph with O(n^x) - possible, just very difficult.

Having thought about this all morning (I have OCD), if we were to focus on this use case, which I believe could be important, I think a graph would likely be the easiest way to manage many<->many relationships that you would see with tags. I am also open to better ideas. Realistically, as long as we don't make an attempt to access any cache data when resolving tags, we could optimise certain operations such as loading, storing, and traversing a node. Depending on the current state of compilers (gccgo or something else), we also might be able to heavily optimise at compilation time so long as are careful about loop implementations and provide this library as a plugin.
With that in mind, the well-known graph search algorithms would be way too slow to traverse 100k objects to resolve tag relationships. Here are some algorithms I've been looking at, which could have a higher grade of performance when traversing graphs. Here are some of my findings.
Algorithm: BC-GA: A Graph Partitioning Algorithm for Parallel Simulation of Internet Applications
Abstract: Static task mapping of parallel simulation is studied as a graph partitioning problem (GPP). However, the existing algorithms are primarily designed for partitioning finite element meshes or random graphs which are essentially different from the Internet-like topologies used in the field of large scale network simulation. In this paper, we present a new genetic algorithm, BC-GA, for effectively partitioning Internet-like topologies based on, boundary crossing, a quite different principle inspired by the analysis of characteristic of the Internet topology and its related solutions. All operations of this algorithm are novel, such as pizza-cutting and autogamy propagation. We test this algorithm on a large extent of graphs, including the snapshots of the real AS-level Internet, the topologies produced by the Internet model generator and many traditional benchmark graphs. The experiment shows that our algorithm can outperform traditional approaches on partitioning Internet-like topologies and it is also better than or comparable to those on traditional GPP. The experiment also shows that a genetic algorithm can converge quickly if the domain knowledge is fitly combined.
Why: This algorithm is focused on concurrent partition searching. If we are trying to search for a partition (tag), being able to search and resolve all partitions (tags) concurrently would be helpful. This algorithm is also designed for scale, so performance shouldn't be too bad.
Algorithm: An Adaptive Parallel Algorithm for Computing Connected Components
Abstract: We present an efficient distributed memory parallel algorithm for computing connected components in undirected graphs based on Shiloach-Vishkin's PRAM approach. We discuss multiple optimization techniques that reduce communication volume as well as load-balance the algorithm. We also note that the efficiency of the parallel graph connectivity algorithm depends on the underlying graph topology. Particularly for short diameter graph components, we observe that parallel Breadth First Search (BFS) method offers better performance. However, running parallel BFS is not efficient for computing large diameter components or large number of small components. To address this challenge, we employ a heuristic that allows the algorithm to quickly predict the type of the network by computing the degree distribution and follow the optimal hybrid route. Using large graphs with diverse topologies from domains including metagenomics, web crawl, social graph and road networks, we show that our hybrid implementation is efficient and scalable for each of the graph types. Our approach achieves a runtime of 215 seconds using 32K cores of Cray XC30 for a metagenomic graph with over 50 billion edges. When compared against the previous state-of-the-art method, we see performance improvements up to 24x.
Why: This is likely a more simplistic representation of a concurrent/PRAM approach at a breadth-first search of a graph. If we focus on betweenness (tag correlation), this could be a good algorithm that would let us traverse all the nodes quickly, using a set as a correlation of visited nodes. The performance on this should be okay.
Maybe this should be a proposal...

Sorry for not getting back to you on your questions sooner. I think I would only be using the tags for deletion. And yes, Orphaned tags are definitely a concern. I may try to solve this in a naive way in the meantime, using a separate data structure to let me look up BigCache hashes by tag.

@hobbs yeah, a naive way is best for now if you need something sooner. Not sure when I'll get around to PRAM stuff.

This has been on my mind for awhile, I haven't made any progress on it, though. I still think a graph structure is the right way to go, I'm just thinking through the graph structure.


Allow staging specific lines on ´Changes´ window

I like the implementation of staging with individual blocks. But I think it is also useful to have an option to stage specific lines.
For example, including a new option on right click menu (the menu is currently implemented with the 'copy' option):

Select the line
Right click > Stage Selected Line

That's already possible. If you select lines and hover with mouse pointer, then the Stage/Discard buttons will be working on just the selected text, see these screenshots of unselected vs. selected text :
Without selection:

With selection:

I didn't notice, it looked like it was the same button... I think it is a bit confusing using the same name for the block and mouse selection.
Either way, I think the proposed shortcut is a good idea, I have an Ultrawide monitor and when the line is selected it's difficult to stage the implemented way:

If the line selection logic is currently implemented, it shouldn't be difficult to add the action to the right click menu

I didn't notice, it looked like it was the same block selection... I think it is a bit confusing using the same name for the block and mouse selection.

Why use different names for the same operations? The stage/unstage/discard range is already hightlighted both in text view and the line number margins.

Either way, I think the proposed shortcut is a good idea, I have an Ultrawide monitor and when the line is selected it's difficult to stage the implemented way:

I've added the hotkeys to stage/unstage/discard changes in text diff view. You can download the latest CI build from Github Actions.


feat: add stable rollout function for FPUser

Codecov Report

Merging #20 (4eb679f) into main (f834f0f) will decrease coverage by 0.97%.
The diff coverage is 57.14%.

@@             Coverage Diff              @@
##               main      #20      +/-   ##
============================================
- Coverage     78.30%   77.33%   -0.98%
- Complexity      266      267       +1
============================================
  Files            32       32
  Lines           931      944      +13
  Branches         62       62
============================================
+ Hits            729      730       +1
- Misses          166      176      +10
- Partials         36       38       +2

Impacted Files
Coverage Δ

.../java/com/featureprobe/sdk/server/model/Split.java
85.36% <0.00%> (-2.44%)
:arrow_down:

.../main/java/com/featureprobe/sdk/server/FPUser.java
55.55% <66.66%> (-19.45%)
:arrow_down:

...featureprobe/sdk/server/DefaultEventProcessor.java
72.44% <0.00%> (-2.15%)
:arrow_down:

.../featureprobe/sdk/server/MemoryDataRepository.java
50.00% <0.00%> (-2.00%)
:arrow_down:

...java/com/featureprobe/sdk/server/FeatureProbe.java
65.17% <0.00%> (-0.59%)
:arrow_down:


si.services("*") not showing stopped services

Systemd services that are enabled and stopped are not found with the si.services("*") function on the Ubuntu LTS Server OS.
The command  systemctl --type=service --no-legend 2> /dev/null does not return stopped services.
Maybe you could use this command to get all services:
systemctl --all --type=service --no-legend 2> /dev/null
But I'm not sure if this solution is good for everyone.
This is the line in the source code:
https://github.com/sebhildebrandt/systeminformation/blob/b82df5427b19cd7ec10774be89c0238cdcdf2a1a/lib/processes.js#L154
Thanks

@michelseiler ... this would make sense ... the question is if also not-found services should be displayed or only the loaded once. I tend to tackle only the later ones ... what do you think?
Here some example output:
<EMAIL_ADDRESS>           loaded    active   running PostgreSQL Cluster 12-main
rbdmap.service                         not-found inactive dead    rbdmap.service
rc-local.service                       loaded    inactive dead    /etc/rc.local Compatibility
redis.service                          not-found inactive dead    redis.service

I agree. Only the loaded once should be displayed.

@michelseiler ... Version 5.17.5 just published. Can you check it on your side?

@sebhildebrandt ... works perfectly. Thank you for the work.


Recommend to use code block for the example code

I think it is better to use code block to show the example code more clearly.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d8870d00-07f2-913b-480c-b765c387451b
Version Independent ID: 2cecb371-6074-0a36-20a0-a9a5ba6975eb
Content: MOF Syntax for WMI Data and Event Blocks - Windows drivers
Content Source: windows-driver-docs-pr/kernel/mof-syntax-for-wmi-data-and-event-blocks.md
Product: windows-hardware
Technology: windows-devices
GitHub Login: @tedhudek
Microsoft Alias: tedhudek

Thanks @petercoin I just updated the page to use code fencing. The update should be live within a few minutes.
We appreciate the feedback!


daprd occupies too much memory

In my environment, everything runs normally with dapr, but sidecar (daprd) occupies a lot of memory, which is much more than 5 times the memory of my application.
My environment:
Server: AWS EKS version 1.27
Dapr CLI: 1.11
Dapr Runtime: 1.11
Dapr SDK: dot-net 1.10
Dapr Components: redis(statestore), rabbitmq(pubsub)
Other: zipkin, middleware.http.ratelimit, middleware.http.routeralias
  NAME                   NAMESPACE    HEALTHY  STATUS                      REPLICAS  VERSION  AGE  CREATED
  dapr-sidecar-injector  dapr-system  True     Running                     1         1.11.0   3d   2023-06-22 10:12.40
  dapr-sentry            dapr-system  True     Running                     1         1.11.0   3d   2023-06-22 10:12.40
  dapr-operator          dapr-system  True     Running                     1         1.11.0   3d   2023-06-22 10:12.40
  dapr-placement-server  dapr-system  True     Running                     1         1.11.0   3d   2023-06-22 10:12.42

For example, one of the applications, iaas config axis, occupies 661Mi of sidecar memory, while my program only has 89Mi. I think this is abnormal. Usually, whenever my application processes a request, DAPRD will also accept and process a request, and the number of DAPRD requests will not exceed five times the number of requests in my program.
POD                                             NAME                           CPU(cores)   MEMORY(bytes)
iaas-config-axe-7b7796c8-s5gn8                  daprd                          4m           661Mi
iaas-config-axe-7b7796c8-s5gn8                  iaas-config-axe                2m           89Mi

Moreover, this application does not have any service invocation, state storage, event publications/subscriptions. Even so, I have never used DaprClient in my code, just injected it into the dapr environment.
Of course, I have already specified relevant annotations for this application with reference to Production guidelines.
dapr.io/sidecar-liveness-probe-delay-seconds: "10"
dapr.io/sidecar-readiness-probe-delay-seconds: "10"
dapr.io/sidecar-cpu-limit: "300m"
dapr.io/sidecar-memory-limits: "1000M"
dapr.io/sidecar-cpu-request: "100m"
dapr.io/sidecar-memory-request: "250M"

Not only does the sidecar of this application have memory issues, but there are also others. Here, I gave one of the most representative examples.
Do you have any suggestions regarding this issue? How should I investigate and solve it?

It is worth adding that the request volume of this application is also very small, with an average of 5-10 requests every 10 seconds. The above memory usage will continue to increase with the running time (more like a memory leak), and will not decrease significantly.

Which features/APIs in Dapr are you using?

Which features/APIs in Dapr are you using?

I don’t use any api/daprclient in this app code.

Which features/APIs in Dapr are you using?

I don’t use any api/daprclient in this app code.

You stated you are loading Redis state and RabbtMQ pub/sub. If you remove these component from the namespace do you observe any changes in memory consumption? Also, can you please paste the logs of the daprd container?

Which features/APIs in Dapr are you using?

I don’t use any api/daprclient in this app code.

You stated you are loading Redis state and RabbtMQ pub/sub. If you remove these component from the namespace do you observe any changes in memory consumption? Also, can you please paste the logs of the daprd container?

I can’t remove components because this is live environment. I checked this pod on dapr-dashboard, don’t have any log with two containers(log level is warn), and kubectl logs command too.

Which features/APIs in Dapr are you using?

I don’t use any api/daprclient in this app code.

Is the only usage of the daprd container in this environment is to consume messages from RabbitMQ and deliver them to the app? Also, are you able to reproduce this in a non-live environment with the same load?

A similar problem has arisen again,
POD                                            NAME                           CPU(cores)   MEMORY(bytes)
worker-transaction-automatic-55d5869c6-wplqb   daprd                          22m          442Mi
worker-transaction-automatic-55d5869c6-wplqb   worker-transaction-automatic   5m           93Mi

This pod only runs for 23 hours. Sidecar (dapr) occupies almost five times the memory of the app.
worker-transaction-automatic-55d5869c6-wplqb   2/2     Running   0              23h

This pod uses service invocation and state storage.

I tried to turn off metric, and the memory is working properly.
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
  name: common
spec:
  metric:
    enabled: false
  ...
  ...

The following pods are the occupancy status after running for 18 hours (experiencing peak traffic).
POD                                             NAME                           CPU(cores)   MEMORY(bytes)
mysql-57f897dd66-hm57v                          mysql                          2m           366Mi
zipkin-c789dd5b8-mt5wc                          zipkin                         1m           197Mi
payany-rpc-transaction-5bddc895fd-9cczz         payany-rpc-transaction         3m           133Mi
payany-rpc-transaction-5bddc895fd-9cczz         daprd                          4m           39Mi
payany-rpc-risk-7b676848db-kjwv6                payany-rpc-risk                1m           137Mi
payany-rpc-risk-7b676848db-kjwv6                daprd                          2m           27Mi
payany-rpc-transaction-5bddc895fd-n9hkp         payany-rpc-transaction         4m           124Mi
payany-rpc-transaction-5bddc895fd-n9hkp         daprd                          4m           39Mi
payany-rpc-transaction-5bddc895fd-gm4zk         payany-rpc-transaction         3m           120Mi
payany-rpc-transaction-5bddc895fd-gm4zk         daprd                          5m           39Mi
payany-rpc-merchant-587fd4964b-gfbrc            payany-rpc-merchant            3m           122Mi
payany-rpc-merchant-587fd4964b-gfbrc            daprd                          3m           36Mi
payany-rpc-transaction-5bddc895fd-25nzn         payany-rpc-transaction         5m           120Mi
payany-rpc-transaction-5bddc895fd-25nzn         daprd                          4m           38Mi
payany-rpc-risk-7b676848db-2gf69                payany-rpc-risk                4m           129Mi
payany-rpc-risk-7b676848db-2gf69                daprd                          2m           27Mi
rabbitmq-c686d6c4-f6k2v                         rabbitmq                       9m           154Mi
payany-gateway-merchant-d4bf85bd8-25ssk         payany-gateway-merchant        2m           114Mi
payany-gateway-merchant-d4bf85bd8-25ssk         daprd                          3m           36Mi
payany-gateway-cashier-b67db86d8-6w4k4          payany-gateway-cashier         2m           103Mi
payany-gateway-cashier-b67db86d8-6w4k4          daprd                          7m           47Mi
payany-gateway-cashier-b67db86d8-95fkc          payany-gateway-cashier         2m           103Mi
payany-gateway-cashier-b67db86d8-95fkc          daprd                          5m           47Mi
payany-rpc-payment-695f85d59d-tddbb             payany-rpc-payment             5m           111Mi
payany-rpc-payment-695f85d59d-tddbb             daprd                          4m           37Mi
payany-gateway-manager-86bbfc8db4-fvzjv         payany-gateway-manager         2m           108Mi
payany-gateway-manager-86bbfc8db4-fvzjv         daprd                          4m           39Mi
payany-rpc-payment-695f85d59d-9cspr             payany-rpc-payment             3m           110Mi
payany-rpc-payment-695f85d59d-9cspr             daprd                          4m           37Mi
payany-gateway-cashier-b67db86d8-89cwb          payany-gateway-cashier         2m           99Mi
payany-gateway-cashier-b67db86d8-89cwb          daprd                          5m           47Mi
payany-gateway-cashier-b67db86d8-4n6lh          payany-gateway-cashier         1m           98Mi
payany-gateway-cashier-b67db86d8-4n6lh          daprd                          7m           47Mi
iaas-l10n-brick-57f7685d66-ql5j6                iaas-l10n-brick                1m           117Mi
iaas-l10n-brick-57f7685d66-ql5j6                daprd                          2m           27Mi

So, is metric collected in the memory of the sidecar and only removed from memory when it is collected? My cluster does not use Prometheus, and metric is enabled by default.

@Hsuwen The metrics collector does require additional memory. It's very interesting that it's having such a large impact for you however. Probably something we should investigate

@Hsuwen The metrics collector does require additional memory. It's very interesting that it's having such a large impact for you however. Probably something we should investigate

I will continue to observe the resource usage of pods.
You can share your troubleshooting ideas with me, and I can also provide necessary information for analysis as much as possible.
Thanks.

@Hsuwen do you have high cardinality URLs in your system? for example /users/<user-id>

@yaron2 Sry, I don't known 'high cardinality URLs'. But about /users/<user-id> , this style should exist in the vast majority of systems, similar to the restful style. Indeed, I have many urls with this style.

We are getting similar reports from other users. I am thinking of re-opening this as it seems to be having a broad impact.
CC: @yaron2

I'm getting similar reports

Is there something that can be done from the app side to remove the effect? Like rewriting the URLs to query params instead of path?

Is there something that can be done from the app side to remove the effect? Like rewriting the URLs to query params instead of path?

It would help much if we could rule out high cardinality metrics. If you can disable metrics all together and report if memory's exhibiting normal usage patterns that would be great.

I can provide all necessary information without affecting the normal use of the production environment. Please tell me exactly how to do it.

About this issue, I found that the docs has been updated.
https://docs.dapr.io/operations/monitoring/metrics/metrics-overview/#high-cardinality-metrics
Several details are still not very clear:

What specific metrics will be affected by this will determine which metrics I should set
How to filter by appid in the configuration of metric.rules

Regarding point 2:
If there are paths like /user/<id> in both app1 and app2, but only app1 needs to be set, how can we do this? Of course, it is possible to configure each app separately, but this will increase complexity.
What I mean is, can we do this:
  metric:
    enabled: false
    rules:
    - name: dapr_runtime_service_invocation_req_sent_total
      labels:
      - name: method
        appid: app1
        regex:
          "orders/": "orders/.+"

Still active, should be fixed by #6723


Allow passing existing embed  to constructor

Hi Thanks for awesome Player
Can You provide code for player automatically works on video embedded through YouTube Iframe on post

Hi @vibhi19
We have now a Slack channel. As this is more a question, I would recommend going there…

I think what @vibhi19 is referring to is setting up Plyr on an already loaded embed . It's something I've considered doing but won't be part of v3. I like it though as it's true progressive enhancement as the HTML5 player is.

Yes im referring to is setting up Plyr on an already loaded embed

HEY i have a lot of video in WordPress embed through iframe can You Provide code which Will convert those iframe to Support player i really want to use this player

Did you read my comment?

Hi Wordpress Plugin work But i create problem In mobile devices so Im Thinking you can provide some code like This i have one but its not working  here
`  // Iframe and find Autoplay
$YTiframe = '/<iframe.?(width="[0-9]")?.?(height="[0-9]")?.?src=".?youtube.com/embed/(\w-?\w*).(autoplay=1)?.*?/i';
$YTreplace = '
';

$content = preg_replace(
    $YTiframe, $YTreplace, $content
`);``

can You take a look and Tell me why its not working
  // Iframe and find Autoplay
    $YTiframe = '/<iframe.*?(width="[0-9]*")?\.?(height="[0-9]*")?\.*?src=".*?youtube\.com\/embed\/(\w*\-?\w*).(autoplay=1)?.*?<\/iframe>/i';

    $YTreplace = '
';

    $content = preg_replace(
        $YTiframe, $YTreplace, $content
    );

I'll update once it's supported 👍

What You mean

I Tried but its not working for me

Are you reading my comments or just brushing over them.
It's not supported yet - as in it doesn't work yet
I will be adding it soon
I will update this issue when it works (no firm date)
Hope that clears it up for you

bro I read It i totally understand that you update this in next update but right now but if You can Help me Replace youtube iframe with Plyr plater That will be Helpful  Any code which can do that please
Im using wordpress

You could try the WordPress plugin as listed in the docs

I did but its Play button doesnt work in Mobile device You have click on full screen then click on play

That's a limitation of iOS

No im talking about android Phone i dont use ios

and if i use Script then the play button work pefectly

Well thanks for Your Time What i can do Waiting for Update

I'll keep this issue open as a reference until I've added support.

Ok

Issue Solved Updated The css and Js Files in Plugin and Boom hehehe
https://drive.google.com/open?id=16-X-79UIjzusZ1lM5vBH5Tgp7dLWO7wy

Closing this one as I think it's fixed but feel free to re-open if not solved in v3 👍


Execution failed for task ':configureChromeDriverBinary'.

I really appreciate your work on this. For some reason, I  got an error after I tried to run the test files.I've been searching everywhere on the internet for a solution but not one that can fix the issues. My gradle version is v 5.6.4 and I am using grails framework version 4. Thank you so much.

There is no 64-bit version of chrome driver binary 2.45.0 for Windows, there's only a 32-bit version. You need to set the fallbackTo32Bit  extension property to true.

Hello, Thanks for the response. I set the fallbackTo32Bit to true and right now I got this error. Thank you.

I suspect you're not on the latest version of the plugin, are you?

Use the arthitecture attribute instead, it works fine, document mentioned in the first comment
chromedriver {
        version = '2.32'
        architecture = 'X86'
    }

Same error for me - nothing of listed solutions were helpful. 'geckodriver' works fine, but for 'chromedriver' - every time 'Execution failed for task ':configureChromeDriverBinary'.

com.github.erdi.gradle.webdriver.repository.DriverUrlNotFoundException: Driver url not found for name: "chromedriver"'

What is the full error message, @melchior-by? It should also say which version, platform and architecture it was looking for. Attaching the full stacktrace would also be helpful.

Yeah, this is because there is no version 2.32 for chromedriver at https://github.com/webdriverextensions/webdriverextensions-maven-plugin-repository/blob/master/repository-3.0.json. There is 2.32.0, though, so if you change your config to that version then it should work.

I get this error:
Execution failed for task ':configureChromeDriverBinary'.
'void org.gradle.wrapper.PathAssembler.<init>(java.io.File)'
using Gradle 7.4.
Any idea what the problem is?

Your error in most likely unrelated to the one this ticket has been opened for, @jose-83. Please open a new ticket and provide information on what version you are using rather than hijack this issue.


Speed up stopping containers

Closes #416
What has been done to verify that this works as intended?
Did a docker compose build docker compose up -d docker compose stop after each commit to make sure each was minimal and effective. It's still on there if someone wants to do a sanity check.
Why is this the best possible solution? Were any other approaches considered?
The underlying issue is that signals weren't being proxied to the intended processes. More at https://stackoverflow.com/a/32261019/137744. This was addressed by running all the various processes with exec.
Additionally, the Enketo dockerfile needed to be updated to use the JSON-array syntax so it wouldn't be called with /bin/sh -c which is immune to SIGTERM
How does this change affect users? Describe intentional changes to behavior and behavior that could have accidentally been affected by code changes. In other words, what are the regression risks?
This is an ops change. Worst case would be things don't stop or come up. I think if it works on dev it's likely to work anywhere.
I'm not entirely sure about risk beyond things not stopping or coming up. ~I keep seeing things about the PID 1 zombie reaping problem but I can't tell if this changes anything with respect to that. This post suggests that it doesn't change anything.~ This tini post has more about zombie processes. Given my understanding of the processes we launch, I believe it's unlikely that any secondary processes likely to become zombies are being launched.
Does this change require updates to documentation? If so, please file an issue here and include the link below.
No.
Before submitting this PR, please make sure you have:

[x] verified that any code or assets from external sources are properly credited in comments or that everything is internally sourced

Good catch about the db container. Let me look at that separately because it doesn't affect the Cloud setup and I'd like to make sure I understand that process specifically.
Are you feeling pretty confident that this is low-risk? Like I wrote in the risks section, I am not entirely sure that there aren't possible side effects I haven't considered.

I don't see any risk of zombie processes here as we are not spawning processing on the runtime.

Have talked it through with @yanokwa and am back to feeling like it's low-risk. Moreover, I don't think we have a great way of identifying possible issues other than putting it out there on different systems.

Oh great, thanks @sadiqkhoja.


The dropdown menu is too long

The dropdown menu is too long, especially for mobile.
We need to find a good solution, so you don't need to scroll down on the menu.

hi, i would give it a shot. can u assign this to me?

Sure, done :-)

Hi,I have a solution for this

@sk6298: You removed the possibility to change the language and the FAQ?
Not really the fix I'm after.

@maccyber : Not removed but they are actually there,You just need to scroll.

Okay, that does not seem very user friendly.
Maybe we can separate the languages in an own menu?
It's still a long list, so we need that menu to support small screens.

sorry, I'm leaving it to u. I didn't get it was written in vue and I believe I can't find the time to work myself in right now. good luck

Solved by https://github.com/rubynor/bigfive-web/commit/33105be76bd6e2ab86af14946d9466b7f7cf1e04


Support for Proxy Authentication

Hi there! Thanks for all you do with Sentry -- it adds incredible value to our team.
I have a question about support for HTTP proxy authentication in sentry_sdk.
TL;DR: Is proxy authentication supported? If not, can it be? Without support for proxy auth, we can't use Sentry from a significant portion of our services.
More details:
I see that we can pass a https_proxy kwarg to sentry_sdk.init(), such as:
<EMAIL_ADDRESS>https_proxy="http://user:pass@proxy")

However, it looks like that proxy string eventually gets passed to urllib3.ProxyManager() here: https://github.com/getsentry/sentry-python/blob/0da369f839ee2c383659c91ea8858abcac04b869/sentry_sdk/transport.py#L293
Unfortunately, urllib3.ProxyManager does not appear to respect credentials passed in this string. The documentation isn't super clear on this, but it does allude to it in the description of the proxy_headers kwarg: "Could be used for proxy authentication." We verified with packet captures that urllib3.ProxyManager is not adding a Proxy-Authorization HTTP header to requests when the proxy string includes credentials.
Thanks so much for your consideration and help with this!

You can solve it by subclassing the default HttpTransport. This is not a pretty solution since it overrides a method prefixed by _ and it requires us to parse the proxy url twice. The best thing would be if the maintainers gave some pointers on how they want to solve the problem. Still, this way seems to work.
"""
Transport subclass which enables proxy authentication
"""
import urllib3

from sentry_sdk.transport import getproxies
from sentry_sdk.transport import HttpTransport

def add_proxy_auth_header(opts: dict, proxy: str):
    """Adds Proxy-Authorization to opts"""
    parsed_proxy = urllib3.util.url.parse_url(proxy)
    if parsed_proxy.auth:
        opts.setdefault("proxy_headers", {})
        auth_header = urllib3.util.make_headers(proxy_basic_auth=parsed_proxy.auth)
        opts["proxy_headers"].update(auth_header)

class ProxyAuthHttpTransport(HttpTransport):
    def _make_pool(
        self,
        parsed_dsn,  # type: Dsn
        http_proxy,  # type: Optional[str]
        https_proxy,  # type: Optional[str]
        ca_certs,  # type: Optional[Any]
    ):  # type: (...) -> Union[PoolManager, ProxyManager]
        proxy = None
        no_proxy = self._in_no_proxy(parsed_dsn)

        # try HTTPS first
        if parsed_dsn.scheme == "https" and (https_proxy != ""):
            proxy = https_proxy or (not no_proxy and getproxies().get("https"))

        # maybe fallback to HTTP proxy
        if not proxy and (http_proxy != ""):
            proxy = http_proxy or (not no_proxy and getproxies().get("http"))

        opts = self._get_pool_options(ca_certs)

        if proxy:
            add_proxy_auth_header(opts, proxy)

        if proxy:
            return urllib3.ProxyManager(proxy, **opts)
        else:
            return urllib3.PoolManager(**opts)

I will put this in our internal low priority list. We will do some proper road map planning in the next couple of weeks and look at all the enhancements (also this one) and decide if and when we will do them.

picking this up,
we will just add another top level config proxy_headers that will passthroughed to ProxyManager

Thank you for implementing this! 🙏🏼
I'm working in a team at one of Sentry's enterprise customers. Because we're using Sentry on-premises with a HTTPS proxy that requires authentication we're happy that the SDK supports this now out of the box. 🤩
AFAIU there are two ways to configure the SDK to use a HTTPS proxy:

Setting the https_proxy option
Setting the https_proxy environment variable

We're using the latter and the authentication credentials are part of the HTTPS proxy URL.
To use the new proxy_headers setting we would have to add the following code when initializing the SDK:
from urllib.request import getproxies

import urllib3

def get_proxy_basic_auth():
    https_proxy = getproxies().get("https")
    if https_proxy is None:
        return None
    parsed_url = urllib3.util.parse_url(https_proxy)
    if parsed_url.auth is None:
        return None
    return urllib3.util.make_headers(proxy_basic_auth=parsed_url.auth)

Since authentication credentials are pretty common in a HTTPS proxy URL I would like to ask: Is it possible to support the extraction in the SDK?
As the code example above shows this wouldn't introduce any new dependencies.

@keimlink imo this should be supported upstream in urllib3 then, sentry is just passing through the url

Thanks for the fast reply @sl0thentr0py!
An upstream solution sounds like the best way to solve this!
Found urllib3/urllib3#1999 which proposes to add Proxy-Authorization headers using credentials extracted from the URL.


Callouts not being exported correctly

First of all, many thanks for this amazing plugin. I use it with Eisvogel template to generate PDF reports and the results are very good.
Unfortunately I tried to export Obsidian callouts and they didn't appear correctly when exporting to PDF via Pandoc. If I use Obsidian's built-in PDF export, then it works well, but Pandoc is much nicer for other things so I'd like to keep using it...

Yes I noticed the call outs are being split into two lines and not as rendered in Obsidian.

The same here. As far as I understand it, Pandoc uses its own Markdown Syntax that does not support Obsidian's callout blocks. They way to go is to use a Lua filter as saf-dmitry mentioned in the Obsidian Forum and style Pandoc’s native Divs accordingly.


Update version of marked dependency

Q
A

Bug fix?
yes

New feature?
no

Breaking change?
no

Deprecations?
no

Tests added?
no

Fixed issues
comma-separated list of issues fixed by the pull request, if any

License
Apache-2.0

https://www.npmjs.com/advisories/812
There is a security issue with the version of marked in use. This PR addresses that

last commit merged was on January 20. not sure this will get addressed anytime soon unfortunately :(

Hi @hegemonic
No rush, but when you get a chance can you take a look, please :)

@hegemonic any chance you could merge this? This vulnerability has been opened for several weeks now

Fixed in a separate commit. The fix will be included in JSDoc 3.6.0, which I'll be releasing very soon.


Use particular version of external dependency and fix dbus compilation

Codecov Report

Merging #25 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #25   +/-   ##
=======================================
  Coverage   64.72%   64.72%
=======================================
  Files          16       16
  Lines        4885     4885
  Branches      441      441
=======================================
  Hits         3162     3162
  Misses       1525     1525
  Partials      198      198

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 67e9b81...cd6e4eb. Read the comment docs.


Added branch option

@lizap Our guidance is to create a fork so the branch option is not available.


Select "multiple" does not work, only the first value selected is returned

Problem
Using a select with multiple: "true" does give the correct UI, but the selecting behavior does not return multiple values when they are selected, just the one that is first in the list of selected items.
Steps To Reproduce
Steps to reproduce the behavior:

Create a select { multiple: "true", } with a couple of options
Listen in the onchange or oninput or even in the onsubmit of a form above it and print the event to the stdout
See that only the first value (as it appears in the list) of the selected entries is printed as value

Expected behavior
I expect to either get a list of selected values, or at the very least a comma separated string containing all my selected values.
Screenshots
Code snippet:

Relevant UI: first selected "TRA", then "TRB"

Output in stdout:

Environment:

Dioxus version: 0.2.4
Rust version: 1.65 stable
OS info: Ubuntu
App platform: Desktop

Questionnaire

[ ] I'm interested in fixing this myself but don't know where to start
[ ] I would like to fix and I have a solution
[ ] I don't have time to fix this right now, but maybe later

I can confirm this is still an issue with 0.3.2.

Seems like this problem still exists in 0.4.0. Here's a minimal example:
use dioxus::prelude::*;

fn main() {
    dioxus_desktop::launch(app);
}

fn app(cx: Scope) -> Element {
    cx.render(rsx! {
        select {
            multiple: "true",
            size: 4,
            oninput: move |ev| {
                println!("value={:?} keys={:?} values={:?}", ev.value, ev.values.keys(), ev.values.values());
            },

            for i in 1..10 {
                option {
                    value: i as i64,
                    "{i}"
                }
            }
        }
    })
}

and some sample output while trying to select multiple items:
value="3" keys=[] values=[]
value="3" keys=[] values=[]
value="1" keys=[] values=[]
value="1" keys=[] values=[]