Attributes ignored when pushing data through OTLP endpoint

What did you do?
I have an OpenTelemetry collector gathering kubelet metrics.
The metrics have attributes attached.
The Collector pushes data to Prometheus through the api/v1/otlp endpoint.
See this post for full setup and Collector configuration.
What did you expect to see?
I would expect the metrics attributes to be available as labels in Prometheus, so that I can partition the data using those attributes.
What did you see instead? Under which circumstances?
The metrics gathered by the Collector are available through the Prometheus UI but no labels are attached to them.
System information
No response
Prometheus version
Helm chart:

  - name: prometheus
    version: 25.17.0
    repository: https://prometheus-community.github.io/helm-charts

Prometheus configuration file
prometheus:
  configmapReload:
    prometheus:
      enabled: false
  alertmanager:
    enabled: false
  kube-state-metrics:
    enabled: true
  prometheus-node-exporter:
    enabled: true
  prometheus-pushgateway:
    enabled: false

  server:
    extraFlags:
      - "enable-feature=exemplar-storage"
      - "enable-feature=otlp-write-receiver"
    global:
      scrape_interval: 10s
      scrape_timeout: 5s
      evaluation_interval: 30s
    persistentVolume:
      enabled: false
    service:
      servicePort: 9090

Alertmanager version
No response
Alertmanager configuration file
No response
Logs
No response

It seems the same issue has already been reported.

There's a PR open to solve the issue for over one year.

I found a way to circumvent the problem, but I do not fully understand what the underlying problem is.
To get the attributes to attach to the metrics as labels, the following block needs to be added to the OpenTelemetry collector pipeline:
      transform:
        metric_statements:
          - context: datapoint
            statements:
              - set(attributes["namespace"], resource.attributes["k8s.namespace.name"])
              - set(attributes["container"], resource.attributes["k8s.container.name"])
              - set(attributes["pod"], resource.attributes["k8s.pod.name"])
              - set(attributes["pod_id"], resource.attributes["k8s.pod.uid"])
              - set(attributes["node"], resource.attributes["k8s.node.name"])
              - set(attributes["app"], resource.attributes["k8s-app"])

This processor maps the attributes from the Otel format to a format Prometheus understands.
I am not sure if the underlying issue is the nesting of the attributes or the fact that the original attributes are separated by a dot (which Prometheus does not support).
I would appreciate the help of the Prometheus community on that topic if anyone has more background.
The manifest of a full working Collector is attaches in the original Otel ticket.

Are they Resource attributes?
See #14200.
Likely duplicate of #13192.

The new otlp configuration options that were added in #14200 are only available in Prometheus 2.54, which was released last week.
The chart you're using still needs to add support for that. You can see the chart repository here: https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus
Please open an issue in their repository requesting this feature... or even better, if you're comfortable with helm templates you can also open a PR implementing your request :)

To illustrate, the Prometheus config goes in an otlp section at top level, and might look like this:
global:
  scrape_interval: 15s
  scrape_timeout: 15s

otlp:
  promote_resource_attributes: ["env", "service.name"]

storage:
  tsdb:
    out_of_order_time_window: 10m

Thank you @bboreham
And sorry @ArthurSens for my late reply.
I can surely try craft that PR!

Hi,
didn't want to since it might be related. Is there any documentation on what otlp.promote_resource_attributes does?
I'm testing the 3.0.0-beta.0 and was running into this.
Thanks

Any updates on this or any work arounds?

You can find documentation here: https://prometheus.io/docs/guides/opentelemetry/#promoting-resource-attributes.
Configuration reference can be found here.
After testing this myself, I don't see anything working incorrectly, so I'm losing the issue. I'm not sure if the helm chart already supports this configuration, but the issue tracking the development should be opened in their repository.


hdparm: 9.55 -> 9.56

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/hdparm/versions.
These checks were done:

built on NixOS
ran /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/bin/hdparm -h got 0 exit code
ran /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/bin/hdparm -V and found version 9.56
ran /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/bin/hdparm -h and found version 9.56
found 9.56 with grep in /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56
directory tree listing: https://gist.github.com/288d8bff26d3af52b38fbd8055ee2aac

cc @fuuzetsu for review

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: hdparm
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on aarch64-linux (full log)
Attempted: hdparm
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/zf356wq0lkizbrih9aa2wdf3452fpz3d-hdparm-9.56
shrinking /nix/store/zf356wq0lkizbrih9aa2wdf3452fpz3d-hdparm-9.56/sbin/hdparm
gzipping man pages under /nix/store/zf356wq0lkizbrih9aa2wdf3452fpz3d-hdparm-9.56/share/man/
strip is /nix/store/3zq400fri5dv7d30lpxlqm2v9y1iis6j-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/zf356wq0lkizbrih9aa2wdf3452fpz3d-hdparm-9.56/sbin
patching script interpreter paths in /nix/store/zf356wq0lkizbrih9aa2wdf3452fpz3d-hdparm-9.56
checking for references to /build in /nix/store/zf356wq0lkizbrih9aa2wdf3452fpz3d-hdparm-9.56...
moving /nix/store/zf356wq0lkizbrih9aa2wdf3452fpz3d-hdparm-9.56/sbin/* to /nix/store/zf356wq0lkizbrih9aa2wdf3452fpz3d-hdparm-9.56/bin
/nix/store/zf356wq0lkizbrih9aa2wdf3452fpz3d-hdparm-9.56

Success on x86_64-linux (full log)
Attempted: hdparm
Partial log (click to expand)
elif [ -d /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/man ]; then install -m 644 -D hdparm.8 /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/man/man8/hdparm.8 ; fi
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56
shrinking /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/sbin/hdparm
gzipping man pages under /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/share/man/
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/sbin
patching script interpreter paths in /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56
checking for references to /tmp/nix-build-hdparm-9.56.drv-0 in /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56...
moving /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/sbin/* to /nix/store/c646kg7w31rm3rz30n145jf77kjw2dmg-hdparm-9.56/bin

Applied to master (09049153e561eca38bfa357a43e380586b5c5d07).


Half-height scroll bar tiles

If we use U+2580 UPPER HALF BLOCK (▀) and U+2584 LOWER HALF BLOCK (▄) we can draw the scroll bar in 2x resolution.
As a note, it is a pity that 1/8-height blocks, from 1/8 to 7/8, are only available for lower blocks and not for upper blocks. If they are we can draw the scrollbar in 8x resolution.

Abadoning since we are no longer using block characters to draw the scrollbar.


Received 400 bad request when trying to make a put request to update user's name

function used:
    def UpdateUserName(self, data, username, headers=None, query_params=None):
        """
        Update the user his firstname and lastname
        It is method for PUT /users/{username}/name
        """
        uri = self.url + "/users/"+username+"/name"
        uri = uri + build_query_string(query_params)
        return self.session.put(uri, data, headers=headers)

parameters
data = {'firstname' :  'test', 'lastname' : 'test'}

https://github.com/Jumpscale/go-raml/issues/170

https://github.com/itsyouonline/identityserver/commit/ea3373ca8653ff5e26c8a9b391a18648a96f208b should fix this since the client is now generated using a go-raml version that handles this better.

The server expects the arguments to be send as JSON, not query parameters. After you set the token header, go to the body tab, then select raw. Finally, from the drop down menu that should have appeared, select JSON. This will also automatically add a "Content-Type": "application/json" header to your request.

@LeeSmet
i followed your steps and the response still Bad Request

You need to write the json in the field, like I did in the screenshot i linked above. So in the second screenshot, in the field that is currently empty, you should write the json representation. Currently you are sending an empty body.


RuntimeError: CUDA out of memory

While training the model on dota1.0, gpu memory keeps on increasing after every few iterations until it runs out of memory. I have tried both docker and without docker training. Any ideas on why this is happening?

Never had this issue before. Did you change anything in the dependencies or in the code?

No I didn't. Below is the complete error:
Traceback:
File "./tools/plain_train_net.py", line 602, in main
do_train(cfg, model, resume=args.resume)
File "./tools/plain_train_net.py", line 452, in do_train
loss_dict = model(data)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 881, in _call_impl
result = self.forward(*input, **kwargs)
File "/app/dafne/dafne/modeling/one_stage_detector.py", line 48, in forward
return super().forward(batched_inputs)
File "/app/detectron2_repo/detectron2/modeling/meta_arch/rcnn.py", line 313, in forward
proposals, proposal_losses = self.proposal_generator(images, features, gt_instances)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 881, in _call_impl
result = self.forward(*input, **kwargs)
File "/app/dafne/dafne/modeling/dafne/dafne.py", line 124, in forward
results, losses = self.dafne_outputs.losses(
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 523, in losses
training_targets = self._get_ground_truth(locations, gt_instances)
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 264, in _get_ground_truth
training_targets = self.compute_targets_for_locations(
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 393, in compute_targets_for_locations
reg_targets_abcd_per_im = compute_abcd(corners, xs_ext, ys_ext)
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 75, in compute_abcd
abcd = dist_point_to_line(left, right, xs_ext[..., None], ys_ext[..., None])
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 61, in dist_point_to_line
nom = torch.abs((y2 - y1) * x0 - (x2 - x1) * y0 + x2 * y1 - y2 * x1)
Error: CUDA out of memory. Tried to allocate 534.00 MiB (GPU 0; 11.92 GiB total capacity; 9.61 GiB already allocated; 447.12 MiB free; 10.41 GiB reserved in total by PyTorch)
Traceback (most recent call last):
File "./tools/plain_train_net.py", line 665, in
launch(
File "/app/detectron2_repo/detectron2/engine/launch.py", line 82, in launch
main_func(*args)
File "./tools/plain_train_net.py", line 656, in main
raise e
File "./tools/plain_train_net.py", line 602, in main
do_train(cfg, model, resume=args.resume)
File "./tools/plain_train_net.py", line 452, in do_train
loss_dict = model(data)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 881, in _call_impl
result = self.forward(*input, **kwargs)
File "/app/dafne/dafne/modeling/one_stage_detector.py", line 48, in forward
return super().forward(batched_inputs)
File "/app/detectron2_repo/detectron2/modeling/meta_arch/rcnn.py", line 313, in forward
proposals, proposal_losses = self.proposal_generator(images, features, gt_instances)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 881, in _call_impl
result = self.forward(*input, **kwargs)
File "/app/dafne/dafne/modeling/dafne/dafne.py", line 124, in forward
results, losses = self.dafne_outputs.losses(
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 523, in losses
training_targets = self._get_ground_truth(locations, gt_instances)
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 264, in _get_ground_truth
training_targets = self.compute_targets_for_locations(
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 393, in compute_targets_for_locations
reg_targets_abcd_per_im = compute_abcd(corners, xs_ext, ys_ext)
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 75, in compute_abcd
abcd = dist_point_to_line(left, right, xs_ext[..., None], ys_ext[..., None])
File "/app/dafne/dafne/modeling/dafne/dafne_outputs.py", line 61, in dist_point_to_line
nom = torch.abs((y2 - y1) * x0 - (x2 - x1) * y0 + x2 * y1 - y2 * x1)
RuntimeError: CUDA out of memory. Tried to allocate 534.00 MiB (GPU 0; 11.92 GiB total capacity; 9.61 GiB already allocated; 447.12 MiB free; 10.41 GiB reserved in total by PyTorch)

Are you sure it runs OOM due to some memory leak or does the model simply not fit into your memory with the batch size you are using?

The memory consumption increases after every few iterations.

Can you try this out with a batch size of 4 or 2 to see if the same issue happens but simply after more iterations?

Tested with batch-size 2 and 4 as well. Still facing the same issue.

At which iteration is this now happening? Still around 500 or much later now?

With batch-size 2 it is after 2700 iteration.

Okay, then this really looks like a memory leak. Since I cannot reproduce this problem I can't really help you here, sorry. Maybe you can try your luck with the PyTorch Profiler and set the maximum number of iterations to just a few hundred before the OOM happens to see which parts take up the largest chunk of memory.

Keep me posted if you happen to find out anything interesting based on the profiler results.

Cool. Thanks for the guidance.


Account for sirepo-bluesky API change

There was a change/simplification on the create_classes function signature, so the connection.data does not need to be passed to the function, introduced in v0.7.0 (see https://github.com/NSLS-II/sirepo-bluesky/issues/140 for details).

looks like a simple change, thanks for making it Max


use default sheetName instead of a hard-coded one

use default sheetName instead of a hard-coded one.
improved error handling in some cases

Thanks, looks good!


Does it support other models? For example BL616

I am currently using BL616, but the compiled binary does not run properly after being flashed using BouffaloLabDevCube. I think it might be because the binaries generated by rust need to be flashed using other tools?

I don't know because I have no device to test.
But I guess it don't support BL616. Flashing need a bootrom (https://github.com/spacemeowx2/blflash/tree/main/blflash/src/chip/bl602/image).

I don't know because I have no device to test.
But I guess it don't support BL616. Flashing need a bootrom (https://github.com/spacemeowx2/blflash/tree/main/blflash/src/chip/bl602/image).

Thank you for your response. May I inquire if the bootrom file you mentioned is obtained through compiling a file similar to https://github.com/bouffalolab/bouffalo_sdk/blob/master/examples/wifi/sta/wifi_ota/port/bl602/bflb_port_boot2.c?


Control GCE zone with cloudbuild substitution

Fixes issues with machine quota, gives more control to the build requestor.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 65.255%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1418

Relevant Lines:
2173

💛  - Coveralls


Allstar In-context Failure With IE and Edge

Description
Please provide a short description of the issue here, along with:

Screenshots or videos that show the issue
Your code
The paypal.version from your browser console
Edge and IE 11
www.magicbax.com
TypeError: Unable to get property 'close' of undefined or null reference
Does the issue also occur at developer.paypal.com/demo/checkout? No
Does the issue occur consistently, or intermittently? Consistently

Steps to reproduce
add something to your cart then click PayPal to checkout. see error
Affected browsers

[ ] Chrome
[ ] Safari
[ ] Firefox
[x ] Edge
[ x] IE
[ ] Chrome Mobile/Tablet
[ ] Safari Mobile/Tablet
[ ] Web View / Safari ViewController
[ ] Other

This is a Braintree integration.

[ closing as not an issue with checkout.js, this is a standalone braintree integration ]


Web component: Leadspace breadcrumbs - The current/selected bread crumb is clickable and it re direct.

Detailed description
Issue:
Leadspace breadcrumbs - The current/selected bread crumb is clickable and it re direct.
Additional information

@Praveen-sr
This is working as intended, as the breadcrumbs are demostration only they are using blank links, so it redirects.
Thanks!


Typescript intellisense not working

VSCode Version: Version 1.9.1
OS Version: Windows 10 Version 1511

Steps to Reproduce:

Create an NPM project on a Windows shared drive
Use the Typescript included in Visual Studio Code

I am working on a project that sits on a shared drive.  When I start Visual Studio Code, the intellisense feature for Typescript works fine with the @Types installed.  Eventually, after using it once, it starts to fail.  It stops giving suggestions.  I have to close code and then re-open.  Either reloading the window or restarting code seems to fix the problem.

There were a few issues with network drives in TypeScript 2.1.6 that shipped with VSCode 1.9. Please try upgrading to TypeScript 2.2 by using VSCode 1.10 which should be coming out shortly (you can also always use the current insiders build).
Please let me know if this still fails with TypeScript 2.2 on VSCode 1.10.
Thanks


metab_simple class w/ predict_metab and predict_DO

other functions in the metab_model_interface should be taken care of by the parent metab_model class, but predict_metab and predict_DO will be specific to this one.

Addressed with #31


Beware of example when using async-await

In the example CompilerServices.CompilerGeneratedAttribute is excluded from code coverage. If you exclude this attribute all your async await code will be excluded. When using async-await the code is translated by the jitter and marked with this attribute.
Truly generated code (code not written by you) should have Compiler.GeneratedCodeAttribute, which is also included in the example.

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

ID: 43dc6fcf-df9f-9d2a-5c6e-8da0f6925afc
Version Independent ID: d0bf2cae-9b59-d537-7acb-7af5f560d8c1
Content: Customizing Code Coverage Analysis - Visual Studio
Content Source: docs/test/customizing-code-coverage-analysis.md
Product: visual-studio-windows
GitHub Login: @gewarren
Microsoft Alias: gewarren

Excluding the CompilerGeneratedAttribute also excludes yield return implementations and auto-implemented properties and maybe more... t`hese


[ENH] Remove BaseEstimator methods

Removes clone_tags, set_params, get_param_defaults, get_param_names, and _get_init_signature. set_params is an overload of the sklearn base, which seems to only add a call to reset for some reason. None of the other methods have usages in the package itself, except for get_param_defaults in a test. IMO there is not much value in retaining these for users.
This is mostly an effort to remove method bloat from the base class (and subsequently every aeon estimator). One of my gripes with the API is that there are a massive amount of inherited methods which I don't believe people use (i.e. https://www.aeon-toolkit.org/en/stable/api_reference/auto_generated/aeon.classification.convolution_based.Arsenal.html#aeon.classification.convolution_based.Arsenal). These are not the only removal candidates, I just dont want to do too much at once.
Adds a random_state param to clone and a keep_attributes param to reset.

I completely agree, but could you do a full run of CI and codecov just to check?


Fix: set max_width for icons in the quick open popup

This fix https://github.com/godotengine/godot/issues/93690.

Squashed!

Thanks! And congrats for your first merged Godot contribution :tada:

Thank you for the fix!


vscode add more planemo options

Hi,
Sorry me again...
It would be great if we could use for example --no_cleanup or --job_output_files for planemo tests...
Thanks

Nothing to be sorry about! just the opposite! this is the kind of feedback that we need, please keep it coming :)
I must confess I am not a proper tool developer myself (I just wrapped a really simple one :laughing:) so the feedback coming from more experienced tool developers is of huge importance here!
Please make a list of all the options that will be useful for you and we will try to add all of them to the settings. And thanks again for your feedback, it is really appreciated!

--update_test_data might be useful as well.


[Bug] [Edit User Info]  Problems caused by modifying the administrator user information.

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened

User state

When I logged in as an administrator, I modified the user information, changed the administrator's status to disabled, and modified the administrator's user name, all interfaces were unavailable.

The same problem exists in the user management section.

Authorized operation of admin user

The administrator should have all the permissions by default, and there is no need to perform authorization related operations.

What you expected to happen
Administrators cannot modify their own status, but they can modify the status of ordinary users. Ordinary users cannot modify their own status and the status of administrators and other ordinary users. The administrator does not need to assign any permissions to himself.
How to reproduce
Log in with any identity to modify your personal status.
Anything else
No response
Version
dev
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I will fix this issue.

I assigned to you

I will fix this issue.

@calvinjiang Do you have any plan about how to do it? It seems we have other permission issues like that, maybe we should consider them together. Such as https://github.com/apache/dolphinscheduler/issues/7288

@zhongjiajie I think that the user shouldn't have permission to disable its own account. But the account's name might need to be altered in some case.


ActionButton without Items.

Hi,
What do you think about to add onPress on ActionButton?

Hi,
You mean just a callback on pressEvent . ?

Yes,
I want to start work with the simple one button on the first screen of my app and 3 action buttons on the second screen.
First screen:
  <ActionButton buttonColor="rgba(231,76,60,1)"  onPress={ () => console.log("Yep!")}>
    <Icon ... />
  </ActionButton />

Second:
 <ActionButton buttonColor="rgba(231,76,60,1)">
   <ActionButton.Item buttonColor='#9b59b6' title="New Task" onPress={() => console.log("notes tapped!")}>
     <Icon name="android-create" style={styles.actionButtonIcon} />
   </ActionButton.Item>
...
...

With v1.1.0, it's possible!
The code would simply look like that:
<ActionButton
   buttonColor="rgba(231,76,60,1)"
   icon={<Icon ... />}
   onPress={ () => console.log("Yep!")}
/>


Fix output paths in Webpack config

This is needed to make code-splitting and async chunk loading work

Thanks for the PR. I've tested this locally by applying it, starting the app, and hitting it. Will merge.


Allowing the override of duplicate connection exception

I would like somehow to be able to detect the duplicate connection event on the server. The use case is, if a member has registered an account with a social media provider (provider A), and then registered a second account with a different social media provider (provider B), and then tries to connect the account registered using provider B to provider A directly, a 'merge account' option should be provided. In my case I send an email when a duplicate connection exception occurs along the lines of
So you'd like to connect your account on  to your google account?
For your own online security, we just need to check. Is this you?

Yes it's me!
Or verify your identity by using the following link
http://{siteurl}/api/v1/members/member/merge?code=l4htlFgyRa2HFpSwl9me4g
Clicking on the link pops up a 'merge account warning' and then after confirming merges the users accounts on .
Perhaps there is another way to achieve this and I have missed it? If not perhaps we can include code along the lines of this pull request?

I would think this is possible with the APIs already existing, just that you would have to check using thinks like provideruserid and your application’s userid to check for new duplicates that are associated with one or more of your application users.
Spring Social has no idea what/where or anything about your own internal application user accounts to check. Only your own application would know that.
I could also be mis-interpreting what you as looking for, and I am no expert, just my opinion here.
Mark Spritzler

On Jun 29, 2015, at 6:30 AM, John Deverall<EMAIL_ADDRESS>wrote:
I would like somehow to be able to detect the duplicate connection event on the server. The use case is, if a member has registered an account with a social media provider (provider A), and then registered a second account with a different social media provider (provider B), and then tries to connect the account registered using provider B to provider A directly, a 'merge account' option should be provided. In my case I send an email when a duplicate connection exception occurs along the lines of
So you'd like to connect your account on to your google account?
For your own online security, we just need to check. Is this you?
Yes it's me!
Or verify your identity by using the following link
http://{siteurl}/api/v1/members/member/merge?code=l4htlFgyRa2HFpSwl9me4g
Clicking on the link pops up a 'merge account warning' and then after confirming merges the users accounts on .
Perhaps there is another way to achieve this and I have missed it? If not perhaps we can include code along the lines of this pull request?
—
Reply to this email directly or view it on GitHub https://github.com/spring-projects/spring-social/pull/172#issuecomment-116660169.

That may be true, but this seems the most practical method. The server is required to not only detect the duplicate connection event but then return a sensible response to the UI. Controllers, in this case an overridden ConnectController seems an excellent place to return an http response.

My question is how do you propose Spring Social to know about your User type in your application. It is different for everyone, and not even related to Facebook or Twitter or anything that Spring Social works with. It is like asking the Grocery store to come in and cook your dinners. The grocery store can sell you stuff to make your dinner, but it doesn’t know what you want for dinner or how to make it for you.
That is my only point.
Thanks
Mark

On Jun 29, 2015, at 5:07 PM, John Deverall<EMAIL_ADDRESS>wrote:
That may be true, but this seems the most practical method. The server is required to not only detect the duplicate connection event but then return a sensible response to the UI. Controllers, in this case an overridden ConnectController seems an excellent place to return an http response.
—
Reply to this email directly or view it on GitHub https://github.com/spring-projects/spring-social/pull/172#issuecomment-116883863.

I already use my own implementation of Spring Social's connection framework. I had no choice but to implement my own implementation as I am using a graph database. This is the interface between my user accounts and spring social.

I see where this PR is going, but the more I think about it, I'm not a fan of things that require ConnectController to be extended. Ideally, ConnectController would be final (I'll likely never change it to be that way, but it should be treated that way as much as possible). My thinking is that the more use cases that require ConnectController to be overridden, the more difficult it is to auto-configure it in a Spring Boot app.
For things like this, I think I'd rather have a strategy that defines the handling of the duplicate connection. Instead of calling handleDuplicateConnectionException(), invoke a similarly purposed method from an injected DuplicateConnectionHandlingStrategy.
WDYT?

Yes, I think something along those lines would be better although a strategy for only one exception seems in some way like overkill and a bit piecemeal? I notice DuplicateConnectionException is not the only exception being swallowed by ConnectController and also there are more reasons other than exception handling for extending ConnectController. Some kind of larger ConnectControllerStrategy that  provides methods to optionally configure a range of ConnectController behaviour might be nice?
What is your view on the behaviours that should be configurable by such a strategy? There's DuplicateConnectionException, but also Provider Error type exceptions. Maybe even connect and connectedView configuration?

One more thought... I also seem to recall some annoyances at being able to only register a Connect / Disconnect Interceptor per Provider, but I could never see a way to register a general Interceptor for all providers. Ideally I'd be able to generally register for Connect and Disconnect events, and then make my own decisions about what I wanted to do with them based on their provider type :)
This brings me to the thought that we might be able to create a more generalised version of Connect / Disconnect Interceptors, that fire on all Connect / Disconnect events, provide details such as Connection and Exception information, and allow any relevant behaviour to be overridden if necessary?

Closing PR and then will immediately reopen, in hopes of triggering Travis CI.

Trying once more...Closing PR and then will immediately reopen, in hopes of triggering Travis CI.

@johndeverall Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.


Create project if not exists

It would be nice, when making a publish, check if the project exists, and if not. create it.
That will also require to have an extra option to define which the production branch will be.
Like you do with wrangler pages project create PROJECT-NAME --production-branch=NAME-OF-PROD-BRANCH
Use case, we publish multiple sites from a base template that builds on CI for each store.
It will save some time if we just had to add the store details in the CI matrix, and the action took care of the project creation.

This would also help use cases such as monorepos, allowing to just create a new project on the monorepo and it automatically having a cloudfare pages instance to preview it ready to go.

Hello! We're working on porting this repo to wrangler-action, and stepping up maintenance there. This functionality doesn't exist in wrangler today, so we cannot support it from an action. You can request it as a feature in the workers-sdk repo. In the meantime, I suggest that you add an if statement to your yaml to check to see if the project exists. You can then create it before moving on to the deploy step.


"Noise" injected when a user starts speaking

General Troubleshooting
Hey there! Before you report a bug or suggest a new feature,
please make sure to follow these steps first!

[x] I have checked for similar issues.
[x] I have updated to the latest JDA version.
[x] I have checked the branches or the maintainers' PRs for upcoming features/bug fixes.

This is not the place to learn Java. Please refer to StackOverflow
for your general programming questions.

Issue
Sometimes the encodedAudio in the AudioPacket contains a prefix, 0x9000 that when run through the Opus decoder, it manifests as garbled sound in the PCM output.
Issue Type

[x] Bug Report
[ ] Feature Request

For questions join the official JDA discord server: https://discord.gg/0hMr4ce0tIl3SLv5

Description
I noticed this happening about a week ago, I bet this is a change that is coming from Discord. I read through their developer documentation but I wasn't able to find anything regarding what this prefix is or what it does.
I got a tip from another bot developer, Yahweasel, saying that if you remove that prefix, then the audio works just fine.
I've forked JDA and applied a work around, however here's the small patch I've applied:
net.dv8tion.jda.core.audio.Decoder:73
...
if(encodedAudio[0] == (byte)0x90 && encodedAudio[1] == (byte)0x00) {
    System.arraycopy(encodedAudio, 2, encodedAudio, 0, encodedAudio.length - 2);
}
...

Here are two audio samples one showing the problem and one showing the recording after the patch, the test consisted of me saying "testing 1, 2, 3" pause, mic tap:

broken
"fixed"

Anyway, this fix doesn't feel like a permanent solution, so at this point I surrender my findings to you and hopefully some better thought out solution can be applied.

I also found another solution
net.dv8tion.jda.core.audio.AudioPacket:87
- while (data[i] == 0)
-    i++;
+ do {
+     i++;
+ } while(data[i] == 0);

@jvtrigueros could you try this patch and tell me if this resolves your issue without side-effects? I noticed this only happens when a user sends audio (client issue?) while it does not happen when a bot sends audio.

@jvtrigueros can you confirm that build 419 fixes this issue?

@MinnDevelopment yes it does! Thank you for the quick fix!


Remove condition field from rules' error key

Description
Condition field has been deprecated from the provided rules. This commit removes the related field in the structure used for parsing the error key that contains it.
Type of change

Breaking change (fix or feature that would cause existing functionality to not work as expected)
Documentation update

Testing steps
Not fully tested yet

Easy peasy... :)

Yup. I didn't remove the field from the RuleErrorKey struct because it seems to be used for the corresponding table in DB (by IRA). So that one needs to stay for now.


chore: align message with Node.js standard

Node.js uses (or will use) Ctrl+C with no spaces. To unify the
messages from inspect with other messages from the REPL and elsewhere,
make that change in node-inspect too.

Is there a timeline for getting this back into node? Or is it a "when convenient"?

Is there a timeline for getting this back into node? Or is it a "when convenient"?

When convenient.

Is there a timeline for getting this back into node? Or is it a "when convenient"?

When convenient.

Meaning: When convenient for you and other node-inspect maintainers. If you'd rather have it get into Node.js sooner than later, I'm happy to do whatever I can to make that easier if there's anything that's an obstacle.


FIx broken link in README.md

There is a broken link under the "Good Articles" section:

What every programmer should know about memory - PDF

This link is not reachable and is broken:

A working alternative must be provided.

this issue has been fixed.


Remove notif on landing

@exezbcz  how about this one? Should we keep it?
"Connect on Farcaster"

#10924

yeah you can leave the farcaster one, thank you


[SPARK-12959] [SQL] Issue Warning Messages when Writing Bucketed Data with Bucketing Disabled

When users turn off bucketing in SQLConf, we should issue some messages to tell users these operations will be converted to normal way.
Also added a test case for this scenario and fixed the helper function.
Do you think this PR is helpful when users use bucket tables? @cloud-fan Thank you!

Test build #49888 has started for PR 10870 at commit 2e1b60d.

Test build #49888 has finished for PR 10870 at commit 2e1b60d.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49888/
Test FAILed.

I think the bucketing config should only impact read path, not write path?

yeah, looks like it is.

Thank you! @cloud-fan @rxin @viirya .
Then, should we change the current conf name? The current name sounds like covering both writing and reading. spark.sql.sources.bucketedTable.read -> spark.sql.sources.bucketedTable.read？I am not good at naming.

No, it will impact write path: https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/sources/interfaces.scala#L466 and https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/WriterContainer.scala#L314

Yeah, I am learning your PR. @cloud-fan  I am thinking if we should have two functions for getBucketSpec? Something like getBucketReadingSpec and getBucketWritingSpec ?

I think this config should not impact write path logically, how about we use maybeBucketSpec instead of getBucketSpec in write path?

Yeah, that is a good idea! Will make a try

Test build #49907 has started for PR 10870 at commit 9570d65.

Test build #49907 has finished for PR 10870 at commit 9570d65.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49907/
Test PASSed.

LGTM

LGTM

Thanks - going to merge this.

Thank you for your reviews!


SDK Dependency Issue

When We're trying to install React SDK it shows dependency warning/error for dependent package frappe-js-sdk and socket.io-client, it doesn't stop the install process but at the end it only install React SDK package.
We're trying install on Node 16 through Yarn
@nikkothari22 Can you please help us with this?

Hi @tsmanagers ,
Frappe React SDK uses both socket.io and frappe-js-sdk internally. When you install frappe-react-sdk, both of those libraries are also installed along with it - they are dependencies so they won't show up in your package.json file. They will show up in your yarn.lock file though.
Thanks.

@nikkothari22 Yes, I know that Frappe React SDK uses the socket.io and frappe-js-sdk internally and it will not show up in package.json file, but it show me inside node_modules folder, right? That's not showing which means it didn't install those dependent packages.
Please kindly help.

Got it. I think it's because they were added to peerDeps by mistake. Pushing an update that fixes it now.

@tsmanagers - just released a new version v1.2.1. Installing this version should bring SWR, socket and frappe-js-sdk.

Thanks @nikkothari22 for quick update. Appreciate it.


Modify item

Hello how can i modify book which i hold in my hand for example i want do automatic to write on page 1 "Hello it's example automat book written" ty.
@Steveice10

https://wiki.vg/ is a good resource for protocol documentation.


Let server return different responses

I would like to test a retry mechanism. Therefore I want the server to return different responses. The first response should be a 500 and the second one a 200. I tried to do that with the following code, but its not working. The callback is only called once. Do you have an idea how to achieve this?
void main() {
  final dio = Dio(BaseOptions());
  //Adding retry interceptor here, which would execute the GET again with the same Dio after receiving the 500
  final dioAdapter = DioAdapter(dio: dio);

  const path = 'https://example.com';

  int counter = 0;

  test("retry", () async {
    dioAdapter.onGet(
      path,
      (server) {
        if (counter == 0) {
          counter += 1;
          server.reply(
            500,
            {},
          );
        } else {
          server.reply(
            200,
            {'message': 'Success!'},
            // Reply would wait for one-sec before returning data.
            delay: const Duration(seconds: 1),
          );
        }
      },
    );

    final Response response = await dio.get(path);
    expect(response.statusCode, 200);
  });
}

Thank you!

@AdrianDev0 As per RESTful standards, usually you should expect the same result from the same endpoint. If not - there might be something wrong with the implementation.
If you need to test different scenarios on the same endpoint, I suggest using dioAdapter.onGet but per one request/per one response.

hi @LukaGiorgadze
If I understand RESTful standard correct, there no expectation to have the same result from the same endpoint. It depends from time or better from state at server (perhaps database).
for example: If I do a GET from "http://localhost/cars/1" probably the response contains a car entity (with Id 1).  But if this car entity was changed or deleted I'will get another response.
How can I test these scenario with http-mock-adapter in one test?
Thank you

hi @LukaGiorgadze If I understand RESTful standard correct, there no expectation to have the same result from the same endpoint. It depends from time or better from state at server (perhaps database).
for example: If I do a GET from "http://localhost/cars/1" probably the response contains a car entity (with Id 1). But if this car entity was changed or deleted I'will get another response.
How can I test these scenario with http-mock-adapter in one test? Thank you

Okay, let's take your example [GET] http://localhost/cars/1
This endpoint potentially can return a different response per different status codes, but not a different response with the same status code (when I'm saying response I mean the structure of the response, not the actual values).
Now imagine, you have a frontend typescript schema that expects a Cars entity with the pre-defined fields for status 200, how correct it will be if you get a different data structure but the same status code 200? Your front end won't understand what to expect and when.
Well, in the above case if you expect breaking changes on the front end, ideally you should version your API by URL. http://localhost/v1/cars/1

Hi @LukaGiorgadze,
yes absolutely. You are right. A frontend can't handle different structure of a response for the came api request.
But how can I handle different values and different status code in the same test for the same URL?
for example this test scenario:

GET Request to http://localhost/cars/1 delivers 404 (not found)
POST Request to http://localhost/cars/1 for creating the car entity (http status 200)
GET Request to http://localhost/cars/1 delivers 200 with some cars data
POST Request to http://localhost/cars/1 deliver 409 ("conflict" or something other)

Requests 1 and 3 are going to the same path with different responses. Request 2 and 4 too. There is a history (aka recording) mechanism inside http-mock-adapter , isn't it?
Any ideas?

@meltzow Yeh, that makes sense. Currently, it's not supported, but definitely good to have. I'll keep this issue open. Thank you!

Hi @LukaGiorgadze, yes absolutely. You are right. A frontend can't handle different structure of a response for the came api request. But how can I handle different values and different status code in the same test for the same URL? for example this test scenario:

GET Request to http://localhost/cars/1 delivers 404 (not found)
POST Request to http://localhost/cars/1 for creating the car entity (http status 200)
GET Request to http://localhost/cars/1 delivers 200 with some cars data
POST Request to http://localhost/cars/1 deliver 409 ("conflict" or something other)

Requests 1 and 3 are going to the same path with different responses. Request 2 and 4 too. There is a history (aka recording) mechanism inside http-mock-adapter , isn't it?
Any ideas?

@meltzow You can reconfigure the mock responses after you made your calls like this:
    test('test retry mechanism', () async {
      const path = 'http://localhost/cars/1';

      var data = {'id': 1, 'name': 'mock'};
      Response<dynamic> response;
      final dioError404 = DioException(
        error: {'message': 'error'},
        requestOptions: RequestOptions(path: path),
        response: Response(
          statusCode: 404,
          requestOptions: RequestOptions(path: path),
        ),
        type: DioExceptionType.badResponse,
      );
      final dioError409 = DioException(
        error: {'message': 'error'},
        requestOptions: RequestOptions(path: path),
        response: Response(
          statusCode: 409,
          requestOptions: RequestOptions(path: path),
        ),
        type: DioExceptionType.badResponse,
      );

      // 1. GET Request to http://localhost/cars/1 delivers 404 (not found)
      dioAdapter.onGet(path, (server) => server.throws(404, dioError404));
      dioAdapter.onPost(
        path,
        (server) => server.reply(201, 'Created'),
        data: data,
      );

      expect(() async => await dio.get(path), throwsA(isA<DioException>()));

      // 2. POST Request to http://localhost/cars/1 for creating the car entity (http status 200)
      response = await dio.post(path, data: data);
      expect(response.statusCode, 201);
      expect(response.data, 'Created');

      dioAdapter.onGet(
        path,
        (server) => server.reply(200, data),
      );

      // 3. GET Request to http://localhost/cars/1 delivers 200 with some cars data
      response = await dio.get(path);
      expect(response.statusCode, 200);
      expect(response.data, data);

      // 4. POST Request to http://localhost/cars/1 deliver 409 ("conflict" or something other)
      dioAdapter.onPost(
        path,
        (server) => server.throws(409, dioError409),
        data: data,
      );
      expect(() async => await dio.post(path), throwsA(isA<DioException>()));
    });

If you have a more complex solution I would usually go for a self-storing solution. Create a map in your test var cars = <String, Car>{}; and then make the endpoints general something like this:
      dioAdapter.onGet(
        path,
        (server) => server.reply(
          200,
          (RequestOptions options) {
            final carId = options.path.split('/').last;
            return cars[carId];
          },
        ),
      );
      dioAdapter.onPost(
        path,
        (server) => server.reply(
          201,
          (RequestOptions options) {
            final carId = options.path.split('/').last;
            cars[carId] = options.data;
            return 'Created';
          },
        ),
        data: data,
      );

However, here you would need to introduce a fallback for the cases where the car does not exist (GET) or even already exists (POST). I tried with the approach like this:
      dioAdapter.onGet(
        path,
        (server) {
          final carId = path.split('/').last;
          if (!cars.containsKey(carId)) {
            server.throws(404, dioError404);
            return;
          }

          server.reply(
            200,
            (RequestOptions options) {
              final carId = options.path.split('/').last;
              return cars[carId];
            },
          );
        },
      );

But it does not work as the guard clause for not-found cars is happening on the registering level and thus only called once (in comparison to the callback for the request). If I'm not mistaken there's at the moment no way to decide if we want to reply or throw an exception only based on the request. The callback would have to be on an entire level higher (the entire request and not just the body).
I'm also not quite sure what the reason behind the history feature of this package is as I currently do not see any benefits. Or is it so that we could easily test the entire call history?

Here is a small workaround for returning different status codes with different requests:
final adapter = DioAdapter(dio: dio);
adapter.onGet('foo', (server) {
  // Reply with 401 on first response
  server.reply(401, (request) {
    // Reply with 200 on second response
    adapter.onGet('foo', (server) => server.reply(200, 'OK'));
    return 'Unauthorized';
  });
});

Not very elegant, but I need this for testing an interceptor for a token refresh flow, so the first response must return 401 (access token invalid and must be refreshed) and the second should return 200 (token valid).
A solution could be to allow "enqueuing" response, e.g. like okhttp/mockwebserver: https://github.com/square/okhttp/tree/master/mockwebserver


Missing modules in mnt

When I ran trace-kernel.sh, errors happened because of missing modules under mnt.
Seems the step make install-kernel-modules set the wrong path of modules.

I was trying to run ./trace-kernel.sh /benchmark-scripts/apache-bench.sh, but got the following error:
user@user-x1:~/workspace/Cozart$ ./trace-kernel.sh /benchmark-scripts/apache-bench.sh
Parsing GLOBAL raw trace ...
rm -rf *.tmp
sudo umount --recursive /home/user/workspace/Cozart/mnt
umount: /home/user/workspace/Cozart/mnt: not mounted
make: [Makefile:93: get-modules] Error 1 (ignored)
sudo mount -o loop /home/user/workspace/Cozart/qemu-disk.ext4 /home/user/workspace/Cozart/mnt
sudo mv /home/user/workspace/Cozart/mnt/modules modules.tmp
mv: cannot stat '/home/user/workspace/Cozart/mnt/modules': No such file or directory
make: [Makefile:95: get-modules] Error 1 (ignored)
sudo chown user:user modules.tmp
chown: cannot access 'modules.tmp': No such file or directory
make: *** [Makefile:96: get-modules] Error 1
Getting module config information...
Getting line information...
cat: modules.tmp: No such file or directory
./trace2modline.sh: line 45: modules.tmp: No such file or directory
Getting directive config information...
Getting filename config information...
./line2directive-config.sh: line 3: go: command not found
./line2directive-config.sh: line 3: go: command not found
Combining all configs...
Including config dependencies
Traceback (most recent call last):
  File "include-dep.py", line 2, in <module>
    import kconfiglib
ModuleNotFoundError: No module named 'kconfiglib'

@cxreet It seems the mount failed
umount: /home/user/workspace/Cozart/mnt: not mounted

Can you check if you can mount manually?

Hi Tianyin,
I can mount mnt manually, I think the problem is there is no modules under mnt.
user@user-x1:~/workspace/Cozart$ sudo umount --recursive ./mnt
user@user-x1:~/workspace/Cozart$ sudo mount -o loop qemu-disk.ext4 ./mnt/
user@user-x1:~/workspace/Cozart$ ls mnt/
benchmark-scripts  boot  docker-ce_18.06.2~ce~3-0~debian_amd64.deb  home  lib64       mark   mnt  proc  run   srv  tmp  var
bin                dev   etc

@hckuo can you take a look?

@cxreet  Sorry for the late reply. Can you pull and test the latest commit?

Hi @hckuo , it works now, thank you a lot!


Support theory symbols

Suport this:
#theory lp {
    lin_term {
    - : 2, unary;
    * : 1, binary, left;
    + : 0, binary, left;
    - : 0, binary, left
    };
    bounds{
    - : 4, unary;
    * : 3, binary, left;
    / : 2, binary, left;
    + : 1, binary, left;
    - : 1, binary, left;
    .. : 0, binary, left
    };

    &lp/0   : lin_term, {<=,>=,>,<,=,!=}, bounds, any;
    &sum/0   : lin_term, {<=,>=,>,<,=,!=}, bounds, any;
    &objective/1 : lin_term, head;
    &minimize/0 : lin_term, head;
    &maximize/0 : lin_term, head;
    &dom/0 : bounds, {=}, lin_term, head
}.

{a;b}.

&sum{W*X:coef(ID,I,W),var(ID,I,X)} <= K :- lp(ID), rel(ID,le), bound(ID,K).

&sum{x} >= 4000 :- a.

&dom{L..U}=X :- dom(X,L,U).

&maximize{W*X:b, obj(W,X); x: not b; -2*y: not b} :- obj(max).

#show a/0.
#show b/0.

closed by a059776


Fix ORT stable diffusion pipeline

Trying to get a meaningful documentation at https://huggingface.co/docs/optimum/main/en/onnxruntime/package_reference/modeling_ort#stable-diffusion
Fixes https://github.com/huggingface/optimum/issues/1242

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Problem running the program

Hi there,
Thanks a lot for the go version of the utility, but I'm having trouble running the utility,
When I run the program against a mp4 file that works with the python implementation of the qt-faststart, the go program throws the following error
17:08:03 › go run qt-faststart/main.go /Users/ian/Downloads/DDB-274.mp4 /tmp/fixed.mp4
Invalid file format: Atom  at offset %!i(uint64=5134598885) reported a size of only %!i(uint64=0) bytes

Any advise on this?
Thanks a lot,

Could you provide a copy of the video that causes the issue?


Feature request: Add hotkeys

I would like to have a hotkey to archive links on the current note.
Maybe this is already possible within Obsidian settings, but I couldn't find it.
PS: thanks for this plugin, I was about to develop the same thing :)

Great request, I'll add it to the list!

This will probably appear as a means to assigning a hotkey, but please could it also appear in the command palette.

@laurastephsmith I think whatever I add as a "command" will appear in both places :)

Excellent! Thanks :)

Any news on this issue?

Hey,
Sorry life got a little busy since spring - I haven't had too much time to spend on the plugin. I hope I'll free up in a while and then update it for Obsidian 1.0 alongside with a few other things.

Hey,
Sorry life got a little busy since spring - I haven't had too much time to spend on the plugin. I hope I'll free up in a while and then update it for Obsidian 1.0 alongside with a few other things.

Personal life should get the highest priority. Glad to know that the plugin is still being developed.


Staging draft submissions needs to change

Currently there is a common shared directory that submissions are staged in, and it is exposed by the www.ietf.org webserver.
The reasons leading to this are all no longer relevant, and the way submission staging is handled needs to be redesigned.
Staging should happen in a way that only those that can approve the submission can access it, and should be cleaned away when the submission is approved, or when the submission expires (see #1514).
Currently, I think these should be captured in the database (and perhaps scrubbed from the developer dumps) rather than placed on the filesystem. Access to the staged artifacts for use during the approval process should occur only through the datatracker.
Guards against DOS/abuse of the submission/approval process should be re-examined during this change.

The Submission object should be adjusted at the time to clear away assumptions about uploaded files and to remove fields like "file_size" that can be computed if needed.


Adding missing MIT license.

Hi guys - creating a quick PR based on the discussion in this forum post. Thanks!

I'll fix the "year" on a follow-up edit.  Thanks, @hwillson.  😶
*sigh*
:wink:

Wow, forgot about this one - thanks @abernix! 🙂


Publish process not working

I have upgraded to preview 7 and now I'm trying to publish Blazor project but I keep getting this error:

Fatal error in IL Linker
Unhandled Exception: Mono.Linker.Steps.XmlResolutionException: Failed to process XML description:  --->
Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Microsoft.AspNetCore.Mvc.Core, Version=<IP_ADDRESS>,
Culture=neutral, PublicKeyToken=adb9793829ddae60' ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve asse
mbly: 'Microsoft.AspNetCore.Mvc.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'
at Mono.Linker.DirectoryAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
at Mono.Linker.AssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
at Mono.Linker.LinkContext.ResolveReferences(AssemblyDefinition assembly)
at Mono.Linker.Steps.ResolveFromXmlStep.ProcessAssemblies(LinkContext context, XPathNodeIterator iterator)
at Mono.Linker.Steps.ResolveFromXmlStep.Process()
--- End of inner exception stack trace ---
at Mono.Linker.Steps.ResolveFromXmlStep.Process()
at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
at Mono.Linker.Pipeline.Process(LinkContext context)
at Mono.Linker.Driver.Run(ILogger customLogger)
at Mono.Linker.Driver.Execute(String[] args, ILogger customLogger)
at Mono.Linker.Driver.Main(String[] args)

The publish process was working fine with previous versions of Blazor just fine.
Is there any workaround I can do to make it work for now?
PS. I found this:
1: https://github.com/mono/linker/issues/604
2: https://github.com/dotnet/core/issues/2637

Thanks for contacting us, @stsrki.
You can only reference .Net Standard libraries from your Blazor app. The fact that you see ...MVC.Core in here is surprising. Why do you have that dependency. Would help to see your project file.

I had it only because I wanted to have the same setup for both client-side and for server-side Blazor projects. The thing is they both have different applications builder so I had to include both frameworks to make it to work.
#if NETSTANDARD2_0

        public static IComponentsApplicationBuilder UseBootstrapProviders( this IComponentsApplicationBuilder app )
        {
            var componentMapper = app.Services.GetRequiredService<IComponentMapper>();

            RegisterComponents( componentMapper );

            return app;
        }

#elif NETCORE3_0

        public static IApplicationBuilder UseBootstrapProviders( this IApplicationBuilder app )
        {
            var componentMapper = app.ApplicationServices.GetRequiredService<IComponentMapper>();

            RegisterComponents( componentMapper );

            return app;
        }

#endif

So that later in Startup.cs I could do this:
app.
    .UseBootstrapProviders()
    .UseFontAwesomeIcons();

It worked until preview 7. So now I have removed all of that and added interface to IServiceProvider instead.
public static IServiceProvider UseBootstrapProviders( this IServiceProvider serviceProvider )
{
    var componentMapper = serviceProvider.GetRequiredService<IComponentMapper>();

    RegisterComponents( componentMapper );

    return serviceProvider;
}

But the "problem" is now I have different API for client-side and for server-side projects. Notice the app.Services and app.ApplicationServices!
Client-side:
public void Configure( IComponentsApplicationBuilder app )
{
    app.Services
        .UseBootstrapProviders()
        .UseFontAwesomeIcons();

    app.AddComponent<App>( "app" );
}

Server-side:
public void Configure( IApplicationBuilder app, IWebHostEnvironment env )
{
    ...

    app.ApplicationServices
        .UseBootstrapProviders()
        .UseFontAwesomeIcons();

    ...
}

It would be great if both IComponentsApplicationBuilder and IApplicationBuilder could have the same base interface.
If you want to have better look you can see the project files at https://github.com/stsrki/Blazorise

That's not going to work. Referencing .Net Core 3.0 app from Blazor client-side project is not a supported scenario.

That's not going to work. Referencing .Net Core 3.0 app from Blazor client-side project is not a supported scenario.

Hi @mkArtakMSFT can you clarify? Isn't the whole point of Blazor is to run on the client, compiled to web assembly and run in the browser? @SteveSandersonMS clearly shows this in his NDC lectures.

Sure. But there is difference between Blazor client-side and server-side. For client-side runtime supports .Net Standard 2.0. This will probably change when it will RTM.


How to not trigger completion in specific cases

When the code below is true I don't want it to trigger completion automatically.
vim.fn["vsnip#available"](1) ==  1

what should I do?
I want to add this to the original completion trigger base, not replace the original completion trigger base.

Well, I found the enabled option. But it doesn't work very well.
For example: try is a fragment, when I type try, the enabled of cmp will be directly set to false,
What I want to achieve is that cmp will not be set to false until I select a fragment.
The following picture expresses what I mean:

Here is my setup:
enabled = function()
    if vim.fn["vsnip#available"](1) == 1 or vim.b.visual_multi then
        return false
    end
    return true
end,

When I type try, completion is automatically turned off
This is because vim.fn["vsnip#available"](1) = 1 is true。
I want the completion menu to not pop up when typing in the fragment...
When I insert text by pressing c in $1 or $n, The completion menu pops up automatically, which is annoying and I have to manually close it to get my tab to jump to the $n+1 position.
Is there any way to make it do better?

I can finish the menu by triggering it manually, instead of it triggering automatically.
So do you have any good suggestions for this?

I think this feature request is too specific so you should try and error for this.
I think you can use
require('cmp.config').set_onetime({
  completion = {
    autocomplete = false
  }
})

For example, you can feed keys the above snippet with vsnip expand/jump keys.

inoremap <Plug>(stop-completion-onetime) <Cmd>lua require('cmp.config').set_onetime({ completion = { autocomplete = false } })<CR>

imap <Plug>(my-vsnip-expand) <Plug>(vsnip-expand)<Plug>(stop-completion-onetime)

OK, I'm willing to try this. Hope it works out...

If this works great to you. I can consider to add reuqire('cmp').setup.onetime as public API.
(My above suggestion is to use a private API. Please report if you achieve your expectation or not.

I'm a neovim beginner, so this is a bit of a hassle for me.
If there is a public API, I think I can handle it.
I don't know how to temporarily set autocomplete to false temporarily.
Because there is no such API right now.

how is it now？

I found a solution.
But it's not perfect:
vim.api.nvim_create_autocmd(
    {"TextChangedI"},
    {
        pattern = {"*"},
        callback = function()
            local cmp_config = require("cmp.config")
            -- vim-visual-multi and vsnip
            if vim.fn.mode() == "i" and vim.fn["vsnip#available"](1) == 1 or vim.b.visual_multi then
                cmp_config.global.completion.autocomplete = false
            else
                if not cmp_config.global.completion.autocomplete then
                    cmp_config.global.completion.autocomplete = {"TextChanged"}
                end
            end
        end
    }
)


Investigate Cognito Logging

Answer some questions:

What kind of data is available by default
If we wanted audit data at the IDP level, could we get it?
If we wanted audit data at the client app level, could we get it?
How would we set up notifications?
If an IDP interaction fails for some reason, would we be able to troubleshoot?
Does it use CloudWatch? How much does it cost? (might have to ask the cloud pathfinder team)

Cloudwatch
Turning on auditing for a user pool under advanced security gives some default logging:

List of cloudwatch metrics
Cloudwatch events focused on whether you are being throttled or if the login/password reset has risky credentials.

These cloudwatch events are nice to make widgets in the console for graphing and easy to setup email notifications.
Cloudtrail
Cognito API events are logged into cloud trail, e.g creating a pool, deleting a pool by default. Saved for 90 days but can be saved into an S3 butcket for longer life. More information here
Lambda
for more granular logging, lambda functions can be setup, which support triggers like pre-authentication. See here for a full list of available triggers.
If logging with a pre-authentication trigger you can see the identity provider used in the attempt, along with timestamp and user information. So generating an audit log of sign in attempts and ID providers is possible.
There isn't a failed auth trigger though, only a post-auth (successful authentication) trigger. So auditing failed auth attempts could be tricky.


Updating Contributing.md

Signed-off-by: Manigandan Gopalakrishnan<EMAIL_ADDRESS>

https://jenkins.code.rdkcentral.com/job/github-triggered/677/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/13788/ started.


Russian language is not russian anymore

Preflight Checklist

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Describe the bug
Russian language is not russian anymore but ukrainian
To Reproduce
Choose russian language
Expected behavior
Well, usual russian words and letters
Screenshots

draw.io version (In the Help->About menu of the draw.io editor):
20.5.2
Additional context
Don't blame russian language for being russian. It is not guilty.

Hello @Techlone , for latin-only speakers, could you please give more details about the issue you're seeing? Are the non-latin strings not Russians at all or are you pointing our attention to some English strings that were not localized, like "Search" and "Scratchpad" ?

Hi @ajoga, yes the entire russian text has been replaced by ukrainian.
You can find the diff here in the 20.5.2 release:

I understand that dia_{lang}.txt files are generated from the Google document. You can check it out - now russian language is unsupported for some reason:

Well, we all do know the some reason but hey a language is just a language.


Model attribute value

@raoul2000,
First of all, bravo and thanks for this amazing workflow engine.
Really cool.
I read everything I found about WorkflowDbSource. Very interesting.
A lot of tips and good examples.
I wonder if there is a way to get a dynamic workflow definitions for a model according to its type.
I am after something like a task_type which will provide a json encoded workflow rules to be used per task. Meaning definitions would be stored in the task type table.
Any tips or suggestion would be welcome.
In advance thanks

hi @alladas,
and thnks for your nice comments.
I had not thought about this use case so I need a little bit of thinking to reply. Let's see ... of course at some point you will need a workflow source able to read a JSON workflow definition and provide workflow objets (Statusn Transition, Workflow). In itself this should not be a problem...
Now a potential problem for this new workflow source would be to be able to provide a workflow definition depending on the model it is attached to through the behavior. (more precisely, based on the task_type attribute value of the model). The workflow source component has no knowledge of the model it is used by: the model attaches the behavior, and the behavior initializes the workflow source component....
Humm... ok, for now, I don't see how to implement such thing as a DynamicWorkflowSource (finding a name is the easiest part :smile: ) but I'll think about it and let you know if I found a solution ...
ciao

@raoul2000
Many thanks for your reactivity.
Yes, DynamicWorkflowSource is the best name for that. :smile:
A way to pass the task type to the behavior.
Merci.

I've been thinking of a possible solution that may reply to your problem. You would need to write a WorkflowDbSource component that would load the workflow definition from the task table (column task_type). The workflow ID value would be the same as the primary key of the task, so you would have one workflow per task. Then the only thing you have to pay attention to is assigning the correct initial status of a task. This can't be done through the defaultWorkflowId because this is a parameter of the workflow behavior, (identical for all tasks) but it can be easely done after task is inserted in the table (then you have it's PK).
For example :

a task is inserted (pk = 231)
update the task (assuming you have selected which workflow is should be inserted to)
status : set the selected workflow initial status value (e.g. 231/new)
task_type : workflow definition in JSON format

After that, when for instance, the behavior invokes the workflow source to find "reachable statuses" starting from 231/new, the workflow source will simply read the task_type column from line 231, parse the JSON as a workflow definition, and use it.
The drawback is that you need 2 DB access on each task insertion : one to get the PK, another one to update status and task_type columns.
That's all I can think about right now...
Hope it helps.
ciao
:sunglasses:

Hello @raoul2000,
Hope this post finds you well.
Many Thanks for coming back with a solution.
Yes, this could be the best way to go. I will give it a try.
Worrying about big data handling, I've been thinking about grouping the workflows through the task_type. Concerning this I would like to ask you:

what would look like the best to access the behavior's public properties from a TaskWorkflow class?
I am thinking about a private function in the TaskWorkflow class which would be a kind of definitions provider for the getDefinition function. Maybe a bad idea!  :laughing:

hi @alladas ,
you're right to be concerned about big data handling because storing one workflow per task in a task table column would mean load and parse a complete workflow each time you access a task (unless you implement some caching feature) I don't know what your requirements and constraints are, but if you have one workflow per task type, it would be much more efficient to store them in a separate table (the task_workflow table).
Now I'm sorry but I'm not sure to understand your questions. TaskWorkflow class has no knowledge of the model (i.e or its attached behavior's public properties) ... I may be missing something here as it seems you want to create some sort of dynamic TaskWorkflow where a private function would provide different workflow definition based on a behavior's attribute. That's brave !! :open_mouth: ... and I don't know how to do it.
hope it helped
ciao
:sunglasses:


fix indentation

Docs Build status updates of commit b6eb1ec:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/develop/manifest-element-ordering.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


After installing VS Code updates, when running npm scripts, I get stdin is not a tty

Issue Type: Bug
when starting the IDE today, the terminal I preset by me (Bash) was replaced to Microsoft shell, and after that, when running npm script commands, I get the message "stdin is not a tty"
changing the terminal to the previously set Bash did not lead to anything - the error is still present
I started executing the script by commands - everything works
I noticed that if to run commands for execution in parallel via & - this error occurs
Please help - the work has stopped (
VS Code version: Code 1.63.0 (7db1a2b88f7557e0a43fec75b6ba7e50b3e9f77e, 2021-12-07T06:26:56.179Z)
OS version: Windows_NT x64 10.0.19044
Restricted Mode: No

System Info

Item
Value

CPUs
AMD FX(tm)-6300 Six-Core Processor              (6 x 3512)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
23.90GB (11.87GB free)

Process Argv
--disable-extensions --crash-reporter-id db8247ca-9b13-487a-a022-6636eb0e2750

Screen Reader
no

VM
0%

Extensions disabled
A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
pythontb:30283811
pythonvspyt551:30345470
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscorecescf:30384386
pythondataviewer:30285071
vscod805:30301674
pythonvspyt200:30340761
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
pythonrunftest32:30373476
pythonf5test824:30373475
javagetstartedt:30391933
pythonvspyt187:30373474
vsaa593:30376534
pythonvs932:30410667
vscop804cf:30404767
vscop940:30404999
vsrem710cf:30405999
vscexrecpromp3t1:30407762

Here is my custom terminal settings
{
    "terminal.integrated.cursorBlinking": true,
    "terminal.integrated.enableBell": true,
    "terminal.integrated.fontFamily": "Consolas, 'Courier New', monospace",
    "terminal.integrated.minimumContrastRatio": 4.5,
    "terminal.integrated.defaultProfile.windows": "Git Bash",
    "terminal.integrated.profiles.windows": {
        "Bash": {
        "path": "C:\\Program Files\\Git\\bin\\bash.exe",
        "args": []
      }
    },
    "terminal.integrated.scrollback": 500000,
    "terminal.integrated.enablePersistentSessions": false,
    "terminal.external.windowsExec": "'C:\\Program Files\\Git\\bin\\bash.exe`"
  }

P.S.:  script has no any docker -it  commands

Please provide a screenshot or a gif illustrating the problem (attaching images won't work via email, you need to go to github.com). See this wiki page for more general info on how to report actionable terminal issues.
/label "needs more info" terminal

@budarin to clarify, if you run yarn run start-dev in a regular pwsh terminal (not a task), does it work?

Could this bug be due to the installation of a new version of Git?

Oh, you're running Windows and trying to run sh? Yeah, this seems like some issue with whatever shell you're trying to run sh within (git bash?). I'd recommend trying to get ./scripts/start-dev.sh running in whatever shell you usually use, it's not going to work in powershell.


Hosting and Infrastructure

Hi,
We are a technology consultant company here in Canada and we came across your project. Is there anything we could do to help you distribute the hosting for this project through to a server here in Canada?
Cheers

Hi,
thank you for your support.
The last couple of week I made some changes on the server side and I optimized a lot of things.
Now I've got two little VPS that are running one in Europe and one in NY area and with those VPS I can still manage a 100K users/day.
If this number will increase drastically, can I contact you here?
Thank you

Yes for sure
From: Miki<EMAIL_ADDRESS>Sent: April 23, 2020 10:42 AM
To: TheJoin95/covid19-market-waiting-times<EMAIL_ADDRESS>Cc: Chris Wishart<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [TheJoin95/covid19-market-waiting-times] Hosting and Infrastructure (#22)
Hi,
thank you for your support.
The last couple of week I made some changes on the server side and I optimized a lot of things.
Now I've got two little VPS that are running one in Europe and one in NY area and with those VPS I can still manage a 100K users/day.
If this number will increase drastically, can I contact you here?
Thank you
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/TheJoin95/covid19-market-waiting-times/issues/22#issuecomment-618542645, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APIBXNCUVRSRC4W2U3MDETTROB4XNANCNFSM4ML3PTSQ.

Yes for sure


Bumped ccx-rules-ocp version

Codecov Report

Merging #324 (d1ca82c) into master (3b46902) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #324   +/-   ##
=======================================
  Coverage   72.58%   72.58%
=======================================
  Files          11       11
  Lines         580      580
=======================================
  Hits          421      421
  Misses        134      134
  Partials       25       25

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 3b46902...d1ca82c. Read the comment docs.


How to call host.salt() with keyword arguments ?

Hello, documentation shows that I can call with a list of strings:
host.salt("grains.item", ["osarch", "mem_total", "num_cpus"])

I have two questions:

How do I transform the following command-line salt invocation into a Testinfra call:
 salt 'minion' state.apply foo pillar='{"cheese": "spam"}'

Is there a way to pass, say, a Python dictionary (the pillar in the previous example) or do I have to convert everything to a string ?

thanks!

Maybe: host.salt('sate.apply', 'foo', pillar={'cheese': 'spam'} ?

If I use your suggestion
host.salt('state.apply', 'foo', pillar={'cheese': 'spam'})

I get from pytest:
>     host.salt('state.apply', 'foo', pillar={'cheese': 'spam'})
E     TypeError: __call__() got an unexpected keyword argument 'pillar'

On the other hand if I put everything inside a list AND stringify the dictionary I don't get any errors:
host.salt('state.apply', ['foo', "pillar={'cheese': 'spam'}"])

And it seems to be working! If I use pillar.items to get all the pillar data, the assert passes:
    assert {'cheese': 'spam'} == host.salt('pillar.items',
                                           ["pillar={'cheese': 'spam'}"])

I can now proceed with my code, thanks!
I suggest to add this example to the documentation, it shows how powerful Testinfra is, because you can test states that require custom pillars without fiddling with temporarily moving into place a pillar file, you can just pass the pillar dictionary as a string from the test!

Hi,
does this still work for you?
If I try
host.salt('state.show_sls', ['suse_ha', "pillar={'test': false}"])
it results in a broken command with lots of escaped quotation marks:
command=b'sudo /bin/sh -c \'salt-call --out=json state.show_sls suse_ha \'"\'"\'pillar={\'"\'"\'"\'"\'"\'"\'"\'"\'test\'"\'"\'"\'"\'"\'"\'"\'"\': {\'"\'"\'"\'"\'"\'"\'"\'"\'with_fencing\'"\'"\'"\'"\'"\'"\'"\'"\': False}}\'"\'"\'\''

If I swap the single and double quotes in my call:
host.salt('state.show_sls', ['suse_ha', 'pillar={"test": false}']
the quote mess is shorter, but still wrong
command=b'sudo /bin/sh -c \'salt-call --out=json state.show_sls suse_ha \'"\'"\'pillar={"test": false}\'"\'"\'\''

I tried the pillar.items example, but the pillar does not seem to be passed, as it does not show up.


Task 1317-1322

Thanks, I made a couple of edits to the definitions in 1317, 1318, 1320, 1321, they are good to go now.
Couple of changes you need to make:
In 1319, can you change the instances which have ranges as follows:
"input":"United States drugs",
"output":[ "030","031", "032","033", "034","035", "036","037", "038","039"]
In 1322, in the defintion, you need to be more explicit about the possible answer choices.
The second sentence should be: "The following are possible government types that are considered valid answers: _____"
List every unique government type from your instances in that space.

Updated task1319

Updated task1319 definition and instances

Please make sure to set the "Categories": [""] and "Domains": [""] fields according to the taxonomy presented here.


there is a error when run sml=Speedml(...)  using the given example

the error:

sml = Speedml(train='../input/train.csv', test='../input/test.csv', target = 'Survived',uid = 'PassengerId')
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/site-packages/speedml/init.py", line 46, in init
base.data_n()
TypeError: unbound method data_n() must be called with Base instance as first argument (got nothing instead)

thanks

@leepand thanks for posting this. Seems like a Python 2.7 issue. I will investigate further and revert on this thread.

@manavsehgal thanks for your quick response, I have just solved the problem by adding @staticmethod on the data_n() function.

Ok. that was a quick solution, thanks. I am exploring if that is the best solution for this problem and will fix it in the next release accordingly.

@leepand Your solution worked well. Many thanks. The fix is now live. https://github.com/Speedml/speedml/releases/tag/v0.9.2


cmsplugin_filer_link lost reference inside ckeditor

Inside a generic text cms plugin:

add inside ckeditor a cmsplugin_filer_link
save
edit again the text

Le reference to che cmsplugin_filer_link is lost: the is only a
<p> </p>

Unable to reproduce. Please re-open if still relevant.


Update bioentity view to change label to co-annotation

Fixes #443

You're right, it's only co-annotation if a term is already selected

I think this points to having more specialized pages. We don't have a term page that lists genes, the term page lists annotations by default. You can then hop to getting all genes for that term but this links to query results rather than a page.

Or pages that display wither gp or anns depending as default, but have both. (Note that earlier versions of A2 had this, but it was deemed confusing; that time may have passed.)

Or pages that display wither gp or anns depending as default, but have both. (Note that earlier versions of A2 had this, but it was deemed confusing; that time may have passed.)

I think I would prefer this. I reckon many people are oblivious to whether they are looking at gene products or annotations. It should be clearer. I often get the wrong one  (I usually want annotations). I have already set all my filter and I only know that I'm in the wrong place because I know the numbers I am expecting. Then I switch to gene products, and I lose all of my filters. Annoying. It should be more explicit.

Portable filters would be great. I know that is bugging  a few of us! @pgaudet
But despite this, I still think it is often not obvious if you are looking at gene products or annotations, and this will be 100x more so for a naive user.


Create Between Two Sets.py

This is the solution for one of hackerrank problems in python.

Hi @Sanober494 ,
Thank you for your contribution. However, it would be really helpful if you could mention the issue number that your pull request is addressing. This will make it easier for us to track the progress and context of the issue. You can do this by adding #issue_number in your pull request description.
For example:
Closes #issue_number

This will automatically link your pull request to the issue and help us maintain a clean and efficient project management workflow.
Thank you for your understanding and cooperation.


Great Expectations Quality Object linked in the docs.

Description
This pull request adds a link to the Great Expectations Quality Object in our documentation. The goal is to provide users with direct access to detailed information about the Quality Object, facilitating easier understanding and integration into their workflows.
Changes Made
Documentation Update:

Added a link to the Great Expectations Quality Object in the relevant sections of the documentation.
Ensured the link is prominently displayed and contextually relevant.
Updated any references to the Quality Object to include the new link for better accessibility.

We'll be merging something like https://github.com/datacontract/datacontract-specification/pull/65 soon. Just FYI.
Other than that, thanks for the contribution! :-)


Version up to TeX Live 2023

Closes nukopy/ubuntu-texlive-ja#3, fixes #7
What

[x] Version up to TeX Live 2023
[x] Automate building and pushing to Docker Hub with GitHub Actions when a tag pushed
[x] Enhance README.md

Release checklist

[x] Update the environment variable TEXLIVE_VERSION in Dockerfile is updated to the new version
[x] Update the variable TAG in Makefile is updated to the new version
[x] Build Docker image with tag of new version
[x] Run tests for the new version with Docker container built on local
[x] Push Docker image to Docker Hub
[x] Run tests for the new version with Docker container pulled from Docker Hub

LGTM!


Emit #[must_use] in Generate new assist

Closes #11736

bors r+

Hm, I would say it's better to not do this -- this adds to noise, and IDE noise is something which we should proactively fight.
That is, I don't think this #[must_use] brings any significant benefit: in rust-analyzer, we have about 500 fn new, and I don't think we've ever missed must uses on them.
At the same time, #[must_use] certainly brings some amount of noise to every instance where it is used.
Now, if you are something like stdlib, it makes sense to #[must_use] public APIs, but even in case of, eg, liballoc, it seems that only about have of the news are tagged with #[must_use], probably because even there a significant chunk of them are just not public API.

Maybe it should be configurable? See also https://twitter.com/m_ou_se/status/1481684384096923652 for context.
I don't think the #[must_use]s are doing much, but IDEs are very important learning tools, so it feels right to nudge the user into following the language idioms.

Interestingly, one of my specific concerns here is that new users would a) be forced to learn about using #[must_use] earlier than necessary, b) can be confused about the extent #[must_use] should be used (eg, they can believe that one should always #[must_use], while even for stdlib it's more like only a (public) half of the cases).
I do agree that education is a major goal of an IDE, but we should be mindful of contextlessness, which can lead to confusion.
I would say, for educational purposes:

we should complete #[must_use] attribute
maaayeb we should have a :bulb: for pub functions which look like they can be #[must_use].

CC @Walther

:thinking: given the stats for std (<50% of new functions are must use), I am inclined to say that we probably don't even need config here.

What about the others (len, is_empty, is_variant)?

And any emission or suggestion of #[must_use] on functions should be disabled when return type is already #[must_use], which I think this PR doesn't consider?

Okay, I'll file a revert PR tomorrow morning.

What about the others (len, is_empty, is_variant)?

Similarlish picture of only must-using the public API
λ rg -F 'fn is_empty(' -B 3
src/env.rs
820-    fn len(&self) -> usize {
821-        self.inner.len()
822-    }
823:    fn is_empty(&self) -> bool {
--
861-    fn len(&self) -> usize {
862-        self.inner.len()
863-    }
864:    fn is_empty(&self) -> bool {

src/sys_common/wtf8.rs
536-    }
537-
538-    #[inline]
539:    pub fn is_empty(&self) -> bool {

src/sys_common/process.rs
113-    fn len(&self) -> usize {
114-        self.iter.len()
115-    }
116:    fn is_empty(&self) -> bool {

src/sys/unix/process/process_common.rs
510-    fn len(&self) -> usize {
511-        self.iter.len()
512-    }
513:    fn is_empty(&self) -> bool {

src/sys/sgx/waitqueue/mod.rs
140-        WaitQueue { inner: UnsafeList::new() }
141-    }
142-
143:    pub fn is_empty(&self) -> bool {

src/sys/sgx/waitqueue/unsafe_list.rs
47-        }
48-    }
49-
50:    pub fn is_empty(&self) -> bool {

src/sys/windows/process.rs
874-    fn len(&self) -> usize {
875-        self.iter.len()
876-    }
877:    fn is_empty(&self) -> bool {

src/process.rs
1080-    fn len(&self) -> usize {
1081-        self.inner.len()
1082-    }
1083:    fn is_empty(&self) -> bool {

src/ffi/os_str.rs
755-    #[stable(feature = "osstring_simple_functions", since = "1.9.0")]
756-    #[must_use]
757-    #[inline]
758:    pub fn is_empty(&self) -> bool {

src/io/cursor.rs
257-    /// assert!(buff.is_empty());
258-    /// ```
259-    #[unstable(feature = "cursor_remaining", issue = "86369")]
260:    pub fn is_empty(&self) -> bool {

src/os/unix/net/ancillary.rs
438-    /// Returns `true` if the ancillary data is empty.
439-    #[must_use]
440-    #[unstable(feature = "unix_socket_ancillary_data", issue = "76915")]
441:    pub fn is_empty(&self) -> bool {

src/collections/hash/set.rs
223-    /// ```
224-    #[inline]
225-    #[stable(feature = "rust1", since = "1.0.0")]
226:    pub fn is_empty(&self) -> bool {

src/collections/hash/map.rs
540-    /// ```
541-    #[inline]
542-    #[stable(feature = "rust1", since = "1.0.0")]
543:    pub fn is_empty(&self) -> bool {

Also, there's a general guideline of composability: we don't need to write everything immediately, we should make it easy to compose a sequence of actions into the desired result. In this sense, the fact that we have completion for attributes is more or less it.

I think pattern here is that the attributes were added for public APIs, leaving the private ones unchanged. They might or might not get the attributes if they were written from scratch today.
I wonder if @m-ou-se or the libs team would have an opinion on whether #[must_use] would ideally be applied to user code, including private methods.


🧑💻 : Enhancement of Recipe Book Page – Homepage, Recipe List, and Image Upload Feature

🔴 Title: Enhancement of Recipe Book Page – Homepage, Recipe List, and Image Upload Feature
🔴 Enhancement Aim:
To curate a visually appealing homepage, enhance the recipe list with user updates, and allow users to add images when submitting new recipes for a more engaging experience.
🔴 Changes:

Design and implement a beautiful homepage for the recipe book.
Enhance the recipe list, allowing users to add, update, and delete their recipes.
Implement functionality to allow users to upload images with their recipes.
Ensure the webpage layout is visually appealing, user-friendly, and responsive.

Screenshots 📷
Current Front Page:

Proposed Idea:

Enhanced Home Page:

Enhanced Recipe List:

Functionality to allow users to add images:

Visually appealing functionality:

✅ Details to Include When Taking the Issue:
Name: Anuoshka Singh
Participant Role: GirlScript Summer of Code (GSSOC)-Extd 2024 (Contributor), Hacktoberfest(Contributor)

@iamrahulmahato  I would really love to work on this issue identified by me. It would be really great if you could assign this issue to me. Thank you.


Sample Code Many-to-Many

Dario
Are there any examples on the sails code to insert records for either Car and Vechile color examples or the Team and Stadium associations?
It would be good to grasp the concepts defined on the models demonstrated.
Tom

Hi @tommykennedy,
I'm not aware of any sails Car and Vehicle Many-to-Many association example. There is a very good example of a Many-to-Many association (Driver and taxis) insertion in the waterline-adapter-tests.
Team and Stadium is a Many-to-Many through association but all CRUD operations are handled in the same way as regular many-to-many. For some code you can check waterline-orientdb's integration-orientdb folder.
Feel free to re-open the issue if these don't answer your question.

Thanks Dario
I posted a question on stack overlow. Im having trouble understanding on how to create bi-directional edges using waterline. Help would be much appreciated.
http://stackoverflow.com/questions/28985075/waterline-orientdb-bi-directional-edge

Hi @tommykennedy, I've replied to this on stackoverflow, but just for reference, a working example can be found at:
https://github.com/appscot/waterline-orientdb/blob/master/example/associations/many-to-many.js


3.4 Calico node inconsistent behaviour when generating bird.cfg when acting as route reflector

We're trying to replace a 3.2 route reflector setup with a 3.4 cluster with calico-node as route reflectors.
We have followed the guide but the result, without a single a change in configuration, that sometimes it generates the /etc/calico/confd/config/bird.cfg correctly, sometimes it generates with the default AS number instead.
Expected Behavior
 Every execution to generate the correct /etc/calico/confd/config/bird.cfg

Current Behavior
 Inconsistence of generating /etc/calico/confd/config/bird.cfg.

Possible Solution
Would like some help on pointing where to look for this one.

Steps to Reproduce (for bugs)

We have followed the BGP configuration guide linked above.

We have set up the nodes with labels and routereflector cluster id:

calicoctl get nodes <IP_ADDRESS> -o yaml --export
apiVersion: projectcalico.org/v3
kind: Node
metadata:
  creationTimestamp: null
  labels:
    route-reflector: "true"
  name: <IP_ADDRESS>
spec:
  bgp:
    ipv4Address: <IP_ADDRESS>/32
    routeReflectorClusterID: <IP_ADDRESS>
apiVersion: projectcalico.org/v3
kind: Node
metadata:
  creationTimestamp: null
  labels:
    route-reflector: "true"
  name: <IP_ADDRESS>
spec:
  bgp:
    ipv4Address: <IP_ADDRESS>/32
    routeReflectorClusterID: <IP_ADDRESS>

This is our bgpconfiguration object. Notice we do not use the default value (64512).
apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
  creationTimestamp: null
  name: default
spec:
  asNumber: 64513
  logSeverityScreen: Info
  nodeToNodeMeshEnabled: false

We have fully followed the guide and created all kinds of different types of configuration of bgppers in order to figure out what is wrong. This is our current configuration:
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
  creationTimestamp: null
  name: peer-to-rrs
spec:
  asNumber: 0
  nodeSelector: '!has(route-reflector)'
  peerIP: ""
  peerSelector: has(route-reflector)

(I noted that the documentation has  nodeSelector: !has(route-reflector) without quotes, and as is, it does not get recorded into the ETCD backend. But anyways, We've tried with it, without it, and we still get inconsistent behaviour).
As a result of this configuration, we expect all of our nodes to pair with both route reflectors.
MOST of the times, when we start calico-node on route reflector, the bird.cfg shows up with the peers set with the WRONG as number (64512, which is the default).
There is no occurence of 64512 on the ETCD database, so I'm assuming confd is either setting default for some reason:
# cat /etc/calico/confd/config/bird.cfg
...
# Template for all BGP clients
template bgp bgp_template {
  debug { states };
  description "Connection to BGP peer";
  # this is the correct number, as configured in the bgpconfiguration object.
  local as 64513;
  multihop;

...

# For peer /host/<IP_ADDRESS>/peer_v4/<IP_ADDRESS>
protocol bgp Node_10_79_63_11 from bgp_template {
  # When it DOESN'T work, the as get set to 64512 somehow and I do not know where it comes from.
  neighbor <IP_ADDRESS> as 64512;
}

# For peer /host/<IP_ADDRESS>/peer_v4/<IP_ADDRESS>
protocol bgp Node_10_79_63_12 from bgp_template {
  # When it DOESN'T work, the as get set to 64512 somehow and I do not know where it comes from.
  neighbor <IP_ADDRESS> as 64512;
}

Sometimes, we start it and without any manual intervention it just plain works.
# cat /etc/calico/confd/config/bird.cfg
...
# Template for all BGP clients
template bgp bgp_template {
  debug { states };
  description "Connection to BGP peer";
  # this is the correct number, as configured in the bgpconfiguration object.
  local as 64513;
  multihop;

...

# For peer /host/<IP_ADDRESS>/peer_v4/<IP_ADDRESS>
protocol bgp Node_10_79_63_11 from bgp_template {
  neighbor <IP_ADDRESS> as 64513;
  rr client;
  rr cluster id <IP_ADDRESS>;
}

# For peer /host/<IP_ADDRESS>/peer_v4/<IP_ADDRESS>
protocol bgp Node_10_79_63_12 from bgp_template {
  # When this works, this line shows the correct AS and the rr client and cluster id shows up.
  neighbor <IP_ADDRESS> as 64513;
  rr client;
  rr cluster id <IP_ADDRESS>;
}

One thing we noticed is that if they started in the "not working" setup, and we recreate a bgppeer object (without any changes, just a basic --export | replace), it always works.
I'd guess there's some problem sometimes with initial calico-node configuration; when reading data to process confd templates, maybe the order or processing might mess some values. After the recreation of a bgppeer object, it resyncs and corrects itself.
Could really use a hand on figuring out where to look, because this inconsistent behaviour is killing me!
Context
 Basic setup with 2 route reflectors integrating with a regular router to broadcast Calico networks.

Your Environment

Calico version: 3.4 running on ETCD backend (not kubernetes internal)
Orchestrator version (e.g. kubernetes, mesos, rkt): kubernetes 1.12, but I think its not relevant.
Operating System and version: CoreOS 1911.3.0
Link to your project (optional):

@caseydavenport Is this available on 3.5? Experiencing the same issue. And re-applying the bgppeer always resolves it for me too. Experienced one on reboot today, with 3.5.0.
calicoctl node status
Calico process is running.

IPv4 BGP status
+--------------+---------------+-------+----------+-----------------------------+
| PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |            INFO             |
+--------------+---------------+-------+----------+-----------------------------+
| <IP_ADDRESS>   | node specific | start | 18:23:38 | Idle BGP Error: Bad peer AS |
+--------------+---------------+-------+----------+-----------------------------+

IPv6 BGP status
No IPv6 peers found.

[root@worker ~]# calicoctl node status
Calico process is running.

IPv4 BGP status
+--------------+---------------+-------+----------+-------------------------------+
| PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |             INFO              |
+--------------+---------------+-------+----------+-------------------------------+
| <IP_ADDRESS>   | node specific | start | 18:23:38 | Active BGP Error: Bad peer AS |
+--------------+---------------+-------+----------+-------------------------------+

IPv6 BGP status
No IPv6 peers found.

[root@worker ~]#
[root@worker ~]# calicoctl node status
Calico process is running.

IPv4 BGP status
+--------------+---------------+-------+----------+-------------------------------+
| PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |             INFO              |
+--------------+---------------+-------+----------+-------------------------------+
| <IP_ADDRESS>   | node specific | start | 18:23:38 | Active BGP Error: Bad peer AS |
+--------------+---------------+-------+----------+-------------------------------+

IPv6 BGP status
No IPv6 peers found.

[root@worker1 ~]# calicoctl node status
Calico process is running.

IPv4 BGP status
+--------------+---------------+-------+----------+-------------+
| PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
+--------------+---------------+-------+----------+-------------+
| <IP_ADDRESS>   | node specific | up    | 18:25:01 | Established |
+--------------+---------------+-------+----------+-------------+

IPv6 BGP status
No IPv6 peers found.

Using the default ASN - upon a few restarts - it works fine, sometimes. But re-applying the config always seems to work.