Connection Options should be immutable.

Currently options can be changed after the connection is created. It's not clear if the changes are respected, we would have to look on a per field basis. Mostly bringing this up in light of V2.

AlterNats already uses a record type for connection options, which is immutable

As @caleblloyd mentioned, it's already immutable. Closing.


Deprecate ResponseMemoryProbs & MultiResponseProbsMessage

Log a deprecation warning from the constructor for ResponseMemoryProbs & MultiResponseMemoryProbs
Replace usage of ResponseMemoryProbs with ResponseMemory
Replace usage of MultiResponseProbsMessage with MultiResponseMessage
AddClassificationsStage and AddScoresStage now accept an optional output_name="probs" constructor argument.
breaking Any custom stages which only return MultiResponseMemoryProbs from the accepted_types method will fail during pipeline build.
Includes changes in PR #655

fixes #697

Below is the final list of changes after all updates.
Breaking Changes

All memory classes, TensorMemory, ResponseMemory and InferenceMemory now require keyword only args (Necessary to ensure consistency between the classes)
ResponseMemory and InferenceMemory have been deprecated in favor of just using TensorMemory

This doesnt remove any functionality besides checks on required tensor names

AddScoresStage and AddClassificationStage require keyword only argument and the order has changed

This is due to the fact that they now inherit from a base class and should share constructor argument ordering

Additional Changes

The MultiTensorMessage class has a new property id_tensor_name

This property stores the name of the tensor to use for message ID lookup. Before this was hard coded to seq_ids and was inflexible
A new method, get_id_tensor() has been added to streamline calling get_tensor(self.id_tensor_name)

The MultiResponseMessage class has a new property probs_tensor_name

This property stores the name of the tensor that contains inference output probabilities. Before this was hard coded to probs and was inflexible
A new method, get_probs_tensor() has been added to streamline calling get_tensor(self.probs_tensor_name)

/merge


Community multi-arch image building update for 4.10 rebase

arm32 building disabled as fedora-36 minimal container images
aren't provided anymore

riscv64 is still not working due to some in-podman building issue
with the tty availability

use skopeo to transform remote docker images into OCI when imported
to workaround: https://github.com/containers/buildah/issues/3981

Which issue(s) this PR addresses:

Closes #

/retest

@mangelajo Please rebase to latest to pull in the recent CI changes.

Closing this for now, not relevant anymore


Update command: not working at all

Environment:
Mac OS 10.9.1, Bower 1.2.8, Node 0.10.20
Steps to reproduce:

Create a new folder on the desktop.
Open terminal and cd to your new folder.
Run this command: bower install jquery#2.0.1
Run bower list and verify that jQuery 2.0.1 is installed.
Run bower update
Run bower list and find that jQuery 2.0.1 is still installed and that Bower reports 2.0.3 as the latest available version.

Expected Results:
After running bower update, jQuery 2.0.1 should be replaced with jQuery 2.0.3.
Actual Results:
jQuery is not updated to the latest version available.
Extra information:

Adding --force and/or --force-latest has no effect.
The presence of a bower.json file in the project's root folder has no effect.
Note that I'm using jQuery as an example --- the same issue manifests for all packages I attempt to update.
I have some old projects lying around that have older versions of various libraries (jQuery, Foundation, etc) that were installed using Bower, but were installed without a specific target hashtag. That is, I did: bower install jQuery to get the latest version available at that time. These projects also fail to update if I run bower update on them.

Other
I'm not an expert with bower, but according to every tutorial I can find online, the above process should automatically update my installed components to the latest available versions. Apologies in advance if the reason for the failure is a misunderstanding on my part.

+1

Could @bdkjones please add the solution at the top? I had to read through all of the messages to find the fix (just running a bower install XXX to update the package to the last version).


column suggestion out of order 3.6.8

In addition to #467 it appears 3.6.8 also changed the order in which column suggestion results are presented. I imagine that this is the result of #435.
I propose changing it so that the completion results are always presented in the order the columns appear in the table.
That being said I could understand an argument for "% matching" ordering but I would prefer that would be implemented as an option so users could decide which method they prefer.
Currently however it appears that the column results are returned randomly as I see no reason for k_factor_09 being returned before key_01
example below

Yes, this is the result of #435. Objects are ordered according to "search score". If strings have the same score then they ordered alphabetically.
Agreed it's better to sort by column ordinal position than by column name.


Permissions + CRDs

What kind of request is this (question/bug/enhancement/feature request):
Feature
Steps to reproduce (least amount of steps as possible):

create project with all permissions except:

create namespaces
manage project catalogs
manage project members

try to list crds with above user (here shopify / kubernetes-deploy is used):

Result:
~> [INFO][2019-09-07 16:50:27 +0000]
[INFO][2019-09-07 16:50:27 +0000]	------------------------------------Phase 1: Initializing deploy------------------------------------
[INFO][2019-09-07 16:50:27 +0000]	Context test found
[INFO][2019-09-07 16:50:27 +0000]	Namespace test found
[INFO][2019-09-07 16:50:28 +0000]	All required parameters and files are present
[WARN][2019-09-07 16:50:28 +0000]	The following command failed and will be retried (attempt 1/5): kubectl get CustomResourceDefinition --namespace\=test --context\=test --output\=json --request-timeout\=15
[WARN][2019-09-07 16:50:28 +0000]	Error from server (Forbidden): customresourcedefinitions.apiextensions.k8s.io is forbidden: User "u-zbw65mdtej" cannot list resource "customresourcedefinitions" in API group "apiextensions.k8s.io" at the cluster scope

Other details that may be helpful:
Would expect those permissions view/manage to be manageable same way as others..
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): 2.2.7
Installation option (single install/HA): HA

regards,
strowi

CRDs are a cluster-level resource managed by cluster roles.

Oh right, I forgot.. Thx!


feat: flexible choice of whether to be a task execution node

flexible choice of whether to be a task execution node is supported; in other words, the node can be configured to perform a task or publish only a task

flexible choice of whether to be a task execution node is supported; in other words, the node can be configured to perform a task or publish only a task
Avoid forcing synchronous to asynchronous and transaction management issues in some scenarios

Hello! Thank you very much for your contribution and interest in helping improve the Quartz community.
After a period of dormancy, the Quartz project is back under steady maintenance by multiple volunteers, who are working to once again handle contributions such as yours.
We notice that your contribution was made without use of the DCO feature (the sign-off feature on commits via the -s option). Can you please update your PR with commits that use the -s option, agreeing to assign copyright ownership and other terms as described at the contributor agreement referenced here: https://github.com/quartz-scheduler/contributing/blob/main/CONTRIBUTING.md
You can easily add signoff to your previous commits by running (on your PR branch):
git commit --amend --signoff --no-edit
git push -f

Or (for multiple commits):
# change 5 to the number of commits
git rebase HEAD~5 --signoff
git push -f

This set of commits seems to have a bunch of code for setting the new property and plumbing it through into the internals, but seems to not have any code checking the property and modifying behavior based upon it.
Also, what is the real difference hoped for in this change, as compared to simply not calling scheduler.start() on the nodes that are to be publishers only?

scheduler.start, if executed, can serve as a node for task management: instances can be registered (and expired instances compensated, etc.).
It is a solution of synchronous loading and asynchronous scheduling: on the premise that the common transaction management of tasks and businesses ensures strong data consistency, the asynchronous scheduling of tasks is realized.

2021年8月2日 下午10:07，jhouserizer @.***> 写道：
This set of commits seems to have a bunch of code for setting the new property and plumbing it through into the internals, but seems to not have any code checking the property and modifying behavior based upon it.
Also, what is the real difference hoped for in this change, as compared to simply not calling scheduler.start() on the nodes that are to be publishers only?


gui

hi,
love this, but i tried to implement it in a wpf proyect and can't get it to work. not very experienced in programing. it doesnt throw any exception or error, but it just freezes when i click on the button that is supposed to run everthing. i suppose the problem is running this line in the button's click event: MainAsync(args).GetAwaiter ().GetResult(); ? isnt this supposed to run in a different thread so it doesnt block the UI? i dont get it, since when i run the cloned project runs fine. but when implementing it in a gui based solution it just freezes. In java there was something called swingworker or something like that where you did this kind of things. For what i've read, in C# there is BackgroundWorker, but i read that it's being substituted by this async/await thing, which is what you use in your code right? so it shoudnt block the gui... damn, if you could help i'd be grateful. i know this Issues spot is not for asking question, but i've been trying like for 6 hours now and i'm kind of desperate. thx and sorry for asking!

Hi.
You are right, this question is neither relevant to the project, nor is it really possible to give a simple answer.
You should read more about async/await pattern and look at some examples. Your GUI application should have async methods awaiting other async methods in a chain which eventually leads to fire-and-forget event handlers.


Option list of select component animates two times on open in Chrome with much elements

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior 🤔
Option list with more than 1000 elements of select component should just animate once on opening like it happens in Firefox:
https://codesandbox.io/embed/71xkkj7o81
Current Behavior 😯
Option list with more than 1000 elements of select component is animation twice on opening like it happens in Chrome:
https://codesandbox.io/embed/71xkkj7o81
Steps to Reproduce 🕹
Link: https://codesandbox.io/embed/71xkkj7o81

Open select component in Chrome
The option list will be animated twice

Context 🔦
With the current behaviour it seems that the option list is loaded twice from a server, which seems like a bug.
Your Environment 🌎
Google Chrome Version 74.0.3729.131

Tech
Version

Material-UI
v3.9.2

@Chico741 You can't render more than 100 items with the non-native select. You should go with the native implementation if you need 1k.


Make traits optional in manifest deserialization

Motivation
We are caching manifest JSONs to speed up loading. It can happen that we cached a manifest with an older SwiftPM version and have to load the manifest from JSON with a newer SwiftPM version. With the first traits PR we made the new fields non-optional. This led to failures when loading the manifest from the cache https://github.com/apple/swift-package-manager/pull/7680.
Modification
This PR makes the fields optional and we default to empty sets after loading deserialization.

@swift-ci test

@MaxDesiatov i was trying to write a test for it but I wasn't able to find a way to inject things into the cache.


Justified Tabs component (new)

Description
Justified tabs allow you to justify the tabs across the width of the container. The width is distributed equally between tabs and the labels are center-aligned. This layout works best for small containers (width less than 500 px) with 2 to 4 tabs.
Documentation
With Smart Resizing
By default, smart resizing is enabled for justified tabs. When the width of the container exceeds the threshold (pre-defined as 500 px), the container automatically switches to regular tabs.
This is helpful when developing responsive applications that will be accessed on all form factors: from phones to large displays. On the phone, the screen width is small and the use case is typically limited. With the few tabs you might need to display, it is helpful to justify the tabs to maximize the touch area for each tab. When the application is viewed on a larger display, the component automatically switches to regular tabs, which allows you to contextually display additional tabs (and even use tab overflow functionality) for a more in-depth use case.

Without Smart Resizing
You can also use justified tabs without smart resizing.
This is helpful when you want to justify tabs purely from a stylistic point of view. This style is often seen in marketing pages and in software applications such as the Safari Browser and the Mac Finder. However, use this style with discretion. In large containers, the tab labels might be spaced far apart and affect the visual discoverability of the non-active tabs.

Labels
In addition to the general tab usage guidelines below, consider the following when labeling justified tabs:
• A minimum of 12 px padding is applied to the left and right of each tab label.
• If the labels are too long to fit in a single line, then they will wrap.

Original request - 1135

I do not understand the need for this new component.  We already have a tab component.  We should just add responsiveness to the current tab component.  A field could be added, JustifiedWhenSmall.    If true, then below threshold tabs become justified.
I also think that there should be a max form factor above which the tabs are always regular tabs no matter the setting.  You said yourself, "use this style with discretion. In large containers, the tab labels might be spaced far apart and affect the visual discoverability of the non-active tabs."  Rather than a warning, lets just prevent that mistake from happening.

@dworman To your point the "smart resizing" seems to be just that.  It seems like this should be a feature of responsive tab, where the user could apply a "xs-justified" or an "md-default" on the regular tab component to make it change behaviour per responsive threshold.  Or maybe don't call out a default state and instead layer in the thresholds you want to be responsive, like "xs-justified sm-justified" and then md and above would be normal tabs.  Just a thought.

@dworman and @joshjohnson72
This isn't just a responsive feature. We've had requests for tabs that can span the full width of containers -- especially for those using Clarity for website designs.
These are also useful for tabs inside of cards or tabs inside a sidebar or other smaller container.
The behavior adjusts based on the width of the container-- which may or may not be the full width of the screen.

@mathisscott Fair enough.  It sort of bugs me that there will be multiple 'branches' of the tab component rather than flags on a single component, but truth is I don't see myself actually using this component, so I guess it doesn't matter to me in practice.

@mathisscott  I understand your point about the tabs having difficult behaviors in difficult containers.  However, I agree with @joshjohnson72  that it feels wrong to have different branches of tabs.  We could just have a single tab component with choices on behavior.  developers can then add the tabs to a card and apply "xs-justified".  So, they get the behavior, but no need for another component.  We could have defaults for different container sizes.

@dworman and @joshjohnson72
I think there is some confusion based on the presentation here.
Justified tabs are going to just be a variant of existing tabs.
Making tabs justified will or should be accomplished with a simple CSS class. The switching based on container size will be an Angular-only behavior that might be part of the existing tabs component or may be an extension of the existing component.
Hopefully that is clearer.

Ah, I assumed this was an entirely new component rather than a variation of an existing one.  That's good to know and makes a lot of sense.

Yeah!  ... and, yup!, was confused.  Like Josh I had thought this was an entirely new component.  Very happy that we are all aligned.  Thanks for explaining.  :)

The feature request here has been captured into our list and we’re going to take it into consideration as we develop Clarity Core capabilities. In an effort to clean up our backlog and focus our attention, I’m going to close this as captured in our feature requests. Please follow our development and releases to see when we release relevant components to make this possible. Future feature requests can be made in our GitHub Discussions.


After validation remove downloaded file

This will prevent volume filling up. This is a temporary fix until we pass an undownloaded entity rather than the filepath per Sage-Bionetworks/synapsegenie #30

This becomes slightly unfortunate due to the egress charges. That said, this is a workable solution in the interim.
One thing we should also think about is if this code runs in scheduled job product, there will never be caching of file downloads.  That said, direct access to S3 will hopefully mitigate some of the egress charges.  I'm unsure how this looks like within GCP, but are we able to leverage GCP compute through ISB?
The code should also be improved to only download the files that require to be validated again.  It becomes a bit trickier to handle processing since we don't currently track if a file has been processed.

Agree.
I am able to create a GCP instance for this through ISB's HTAN DCC project - have a test instance up and running.
For now we could process google-bucket-backed projects there and S3-bucket-backed projects in Service Catalog EC2.
Once we pass entities in I can setup a s3  streaming object file class (previously tested per this)
to pull just the headers (a few KB) from both S3 and GCP storage with minimal egress

GCP buckets are: DFCI, HTAPP, WASHU, SRRS and BU
All others are S3


[SSO] (Certifiates) Better emphasis on self-signing certificate note

@abidrahman-MSFT went through this tutorial recently and encountered difficulties after missing this note in question. This better highlights the information to developers and reduces the number of links they have to follow to find their information.

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

File
Status
Preview URL
Details

docs/develop/create-sso-office-add-ins-nodejs.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.


fix: remove global logger

What is the purpose of this pull request?

What problem is this solving?

Types of changes

[ ] Feat: (new functionality)
[ ] Bug fix: ([#ref number] non-breaking change which fixes an issue)
[ ] Chore: (improvements that will not reflect in production behaviour)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Requires change to documentation, which has been updated accordingly.

#168  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @keeganpotgieter and the rest of your teammates on  Graphite


Created check prime number function

ahahahaha my bad, will fix it in a minute

just fixed the problem :)

No problem, haha. Hope you enjoyed practicing to create a pull request! Feel free to experiment more if desired.
P.S. This can be made more efficient actually, you only need to check up to math.floor(num**0.5) and make the step 2 at a time (instead of the default 1 at a time) starting the check from 3


[GSoC 2022] Shenyu add logging-kafka plugin

Volunteer help
Description
Add logging-kafka plugin, it Use Kafka to store shenyu's logs.
Take the shenyu gateway log information, write it to Kafka and display it.
Can add module like this ：
shenyu-plugin

shenyu-plugin-logging-kafka

Task

[ ] Add shenyu-plugin-logging-kafka module and impl write it to kafka
[ ] Complete unit test for this module
[ ] Complete the integration for this module
[ ] Complete doc for this module in shenyu website

Recommended Skills
Familiar with Java
Know the usage of shenyu plugin ecology
Know the usage of Kafka java client
Have some knowledge about  Docker
Mentor
Zhang Yonglun, PPMC of Apache ShenYu, https://github.com/tuohai666<EMAIL_ADDRESS>

@hutaishi  Fortunately, gsoc lifted the restrictions this year. Any adult can participate in the gsoc.

This is really good news , can i get involved ？

Hi, I also would like to contribute my time and effort to this feature if possible.

I have used Java and kafka and am very interested in it and want to participate in the project

I would like to contribute to this feature if possible.

Hi, I'm Mehrdad, currently in the second year of the Software Engineering program at Centennial College (Toronto, Canada).
I would like to kickstart my open-source development journey with ASF and GSoC.
The following is a summary of my skills and qualifications:

Data Structures and Algorithm design.
Java, Maven, and IntelliJ.
Spring Framework and its community (Spring Boot, Spring Security, Spring Data, and HATEOAS).
Microservices and RESTful architecture.
HTTP, SSL, SSH, and WebSocket.
Comfortable working in Unix/Linux environment and Git.
Passionate about open-source community.

@mehrdadmoradii
hi, You have very good skills and look forward to your participation GSoc 2022

@yu199195 Hi Xiaoyu, thanks for your response. I will submit the proposal.
I am looking forward to working with you.

What is the rationale for logging into Kafka?
Is there any specific scenario where this is useful?


Wrldbaems 87

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix WRLDBAEMS-87
Test URLs:

Before: https://main--world-bank--aemsites.hlx.live/
After: https://WRLDBAEMS-87--world-bank--aemsites.hlx.live/

Authoring URL<EMAIL_ADDRESS>Test Page URL: /en/drafts/rajesh/carousel

@adobe-rpal A11y has gone down. Also, I don't see the carousel on the linked page. Kindly check again.

@adobe-rpal

Left side text is not aligned properly
EDS:

Figma:

Arrows should be on right side
EDS:

Figma:

Image corner should be round

is

@adobe-rpal

Left side text is not aligned properly
EDS:

Figma:

Done

Remove the margin from bottom text

Done

Arrows should be on right side
EDS:

Figma:

-Done

Image corner should be round

Done

Card - fields should be required

Done


Configure Zappr

This is a reduced example of a configuration file for Zappr.
If you have questions you can reach us

in our Gitter channel
on Twitter

These are the features we currently support:
Approvals

Approve pull requests with comments and configurable pattern
"Veto" (ie. block) pull requests with comments and configurable pattern
Configure how many approvals your pull request needs before merging
Extensively configure who can approve or veto in your project

Pull Request guidelines

Block a PR until it has the required set of labels (e.g. reviewed)
Block a PR as long as it has unfinished tasks

Specification guidelines

Configure minimum length of pull request title and description
Configure if pull request description can be the same as pull request template

Commit message guidelines

Configure patterns that all commits in a pull request must match

Automatic branch creation

Automatically create a branch in your repository for every issue

Coverage remained the same at 89.216% when pulling a2250eb794700e8f1571350ce5fe9f9ef76610fb on configure-zappr into 8edbfc113cd6c26bc873b84062310f7f995ee7d4 on master.

Coverage remained the same at 89.216% when pulling a2250eb794700e8f1571350ce5fe9f9ef76610fb on configure-zappr into 8edbfc113cd6c26bc873b84062310f7f995ee7d4 on master.

Coverage remained the same at 89.216% when pulling a2250eb794700e8f1571350ce5fe9f9ef76610fb on configure-zappr into 8edbfc113cd6c26bc873b84062310f7f995ee7d4 on master.

Coverage remained the same at 89.216% when pulling a2250eb794700e8f1571350ce5fe9f9ef76610fb on configure-zappr into 8edbfc113cd6c26bc873b84062310f7f995ee7d4 on master.


Window title bar background not consistent in high-contrast mode

Is the bug present when using the default Obsidian theme?
No
Is the bug present when snippets and plugins are disabled?
Yes
Minimal theme version
6.0.0
Describe the bug
On macOS, since Obsidian 0.16 the window title bar background not consistent in high-contrast mode: There is a grey area in the top left corner. In other modes the area has the same colour as the rest of the bar.

Debug info
SYSTEM INFO:
Obsidian version: v0.16.1
Installer version: v0.14.6
Operating system: Darwin Kernel Version 21.6.0: Wed Aug 10 14:28:23 PDT 2022; root:xnu-8020.141.5~2/RELEASE_ARM64_T6000 21.6.0
Login status: logged in
Catalyst license: insider
Insider build toggle: on
Live preview: off
Legacy editor: off
Base theme: light
Community theme: Minimal
Snippets enabled: 1
Restricted mode: off
Plugins installed: 28
Plugins enabled: 25
1: Text Format v1.8.1
2: Calendar v1.5.10
3: Charts View v1.1.9
4: Contextual Typography v2.2.4
5: DEVONlink v2.2.1
6: Dictionary v2.21.1
7: Focus Mode v1.9.0
8: Hotkey Helper v0.3.15
9: Minimal Theme Settings v6.0.0
10: Note Refactor v1.7.1
11: Smart Typography v1.0.18
12: Sortable v0.2.6
13: Style Settings v0.4.11
14: Readwise Official v2.0.1
15: Native Scrollbars v1.0.1
16: File Explorer Note Count v1.2.0
17: Obsidian Git v1.31.0
18: Reading Time v1.1.1
19: Better Word Count v0.8.1
20: Dataview v0.5.43
21: Pandoc Plugin v0.2.5
22: Obsidian TODO | Text-based GTD v0.2.7
23: Better footnote v1.0.1
24: Pane Relief v0.3.0
25: Sliding Panes (Andy's Mode) v3.4.0
RECOMMENDATIONS:
Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

Fixed in 6.0.2


Locale resets when using license page

When clicking on any package in the pre-defined license page (i.e. showLicensePage from material/about.dart), the locale resets to en_US.
This is because _PackageLicensePageState in material/about.dart overrides the current Locale locally.
However, this local change has global effects as well, which are unwanted in almost every case.
This is actually a big issue and should be inspected properly, I think

This issue appears to be about some flutter code. https://github.com/flutter/flutter/blob/5ecc3f67047706e163894dddb99e55c46ae38120/packages/flutter/lib/src/material/about.dart#L222
I can't transfer this issue across orgs so I'll close for now and you can reopen at https://github.com/flutter/flutter/issues
When you reopen the issue please add more information and a reproduction case.

As it turns out, this issue seems to be related to intl_utils rather than intl itself. Thanks for your infromation @natebosch!
For a follow-up on this, see here: https://github.com/localizely/intl_utils/issues/19 and https://github.com/localizely/intl_utils/pull/18


Implementing Error

I've been trying to run your codes, but for some reason, it seems like it doesn't work on my settings.
I ran into this error mentioned below.
Is there any solution?
warnings.warn('Was asked to gather along dimension 0, but all '
Traceback (most recent call last):
  File "train.py", line 600, in <module>
    main()
  File "train.py", line 564, in main
    train_result = trainer.train(model_path=model_path)
  File "/home/qmin/DiffCSE/diffcse/trainers.py", line 514, in train
    tr_pos_sim += model.sim.pos_avg
  File "/home/qmin/anaconda3/envs/diffcse/lib/python3.7/site-packages/torch/nn/modules/module.py", line 779, in __getattr__
    type(self).__name__, name))
torch.nn.modules.module.ModuleAttributeError: 'DataParallel' object has no attribute 'sim'

changing model.sim.pos_avg to model.module.sim.pos_avg in trainers.py line 514~519 makes code work
tr_pos_sim += model.module.sim.pos_avg
tr_neg_sim += model.module.sim.neg_avg
tr_others["electra_acc"] += model.module.electra_acc
tr_others["electra_rep_acc"] += model.module.electra_rep_acc
tr_others["electra_fix_acc"] += model.module.electra_fix_acc

changing model.sim.pos_avg to model.module.sim.pos_avg in trainers.py line 514~519 makes code work
tr_pos_sim += model.module.sim.pos_avg
tr_neg_sim += model.module.sim.neg_avg
tr_others["electra_acc"] += model.module.electra_acc
tr_others["electra_rep_acc"] += model.module.electra_rep_acc
tr_others["electra_fix_acc"] += model.module.electra_fix_acc


Settings Sync doesn't sync my settings.json

🐛 Settings Sync doesn't sync my settings.json
I have my customization of Visual Studio Code done on my official laptop ( mac ). When I install the plugin on my personal laptop ( Linux ) & download all the editor customization, nothing changes.
Restarting Visual Code also doesn't help.
🌴 Visual Studio Code Version : [ 1.36.1  ]
🌴 Code Settings Sync Version : [ 3.4.1]
🌴 Proxy Enabled: [ No ]
📰 To Reproduce
Steps to reproduce the behavior:

Make editor customization on a mac , upload the settings.
Go to a Linux machine, Install the VS Code
Install plugin Settings sync
Download the settings on the Linux machine.
Editor customization doesn't get reflected

💪 Expected behavior
I expected the editor customization to get reflected after downloading the settings through Settings Sync

can you share your GIST ID.
Is there any exception logged in developer console log in help menu, post an image.

My gist id : ddfeba8214686d5dea41bf5955da7fd8
I didn't remember seeing any exception. However, I will check once again & post that here once I go back home.

I didn't remember seeing any exception. However, I will check once again & post that here once I go back home.

alright.

Similar issue here on the exact same versions as @nitinshambhu, the Gist isn't being updated.
I checked the console and all that is output is:
[Extension Host] Sync : Connected with user : 'bymayo'
When I run Sync: Update/Upload Settings

@bymayo are you also facing in Mac or its other OS. Can you post your Steps to reproduce the behavior.

This is the screenshot I see. So, it doesn't fail. At the same time, my changes also don't get applied.

@nitinshambhu
Can you try on latest v3.4.3 version of Settings Sync.


[develop] Reset feature flags before assertion + tests

This is #14402, with some additional tests using infrastructure that isn't available in that branch, as well as a temporary hack around a bug in proof-systems to make the test work. This also carries some changes from the merge with it.
From #14402:

This PR changes the handling of feature_flags in Pickles for wrap circuits. Previously, we were propagating the flags from the step circuit, which could cause a sanity-check assertion to fail when we convert the 'full' set of values back to the 'wrap only' set of values. This PR fixes that by always resetting the flags before entering that conversion.
This PR does not change any circuits, protocol constants, etc.; the behavior is only changed when those offending flags are set. As such, this can be deployed to snark workers as a compatible bugfix version.
Tests to follow.

Checklist:

[ ] Dependency versions are unchanged

Notify Velocity team if dependencies must change in CI

[ ] Modified the current draft of release notes with details on what is completed or incomplete within this project
[ ] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[ ] Tests were added for the new behavior

Document test purpose, significance of failures
Test names should reflect their purpose

[ ] All tests pass (CI will check this if you didn't)
[ ] Serialized types are in stable-versioned modules
[ ] Does this close issues? List them

!ci-build-me

This now includes https://github.com/o1-labs/proof-systems/pull/1334

!ci-build-me

!ci-build-me

!ci-build-me


[WIP] fix issues in contracts

:x: Build AElf <IP_ADDRESS>04 failed (commit https://github.com/AElfProject/AElf/commit/86d117e26e by @xiangxingxing)

:x: Build AElf <IP_ADDRESS>17 failed (commit https://github.com/AElfProject/AElf/commit/fd5dcf8b3f by @xiangxingxing)

:x: Build AElf <IP_ADDRESS>27 failed (commit https://github.com/AElfProject/AElf/commit/39548cf0c1 by @xiangxingxing)

:white_check_mark: Build AElf <IP_ADDRESS>32 completed (commit https://github.com/AElfProject/AElf/commit/4c3c0a3c55 by @xiangxingxing)

:x: Build AElf <IP_ADDRESS>76 failed (commit https://github.com/AElfProject/AElf/commit/21de375d1d by @xiangxingxing)


FIx for issue #2910 : Service remove button click event propagates to…

… underlying element

fixes #2910 : Service remove button click event propagates to underlying element

Thanks for the contribution. Can you please edit the main body of the PR to include the "fixes #2910" text from your first reply. It needs to be in the original for Github to recognize it, link it to the issue, and close that issue when this PR gets merged.

Thanks @wetneb for your comments. I actually tried to use event.preventDefault in here $('')
.html(" ")
.addClass("recon-dialog-service-selector-remove")
.prependTo(record.selector)
.click(function(e) {
ReconciliationManager.unregisterService(service, function() {
self._refresh(-1);
    });
    e.preventDefault();
  });

But this line "self._serviceRecords.push(record);" is causing the loading to take place, that's why I moved this line to the selector link 'recon-dialog-service-selector', apparently, it didn't work though.


Issues uploading my backup file (Json file ext)

When I attempt to upload a json abckup i did of my previous luckperms config, it says it is unable to fidn the file. The minecraft output seems to shorten the location fo the directory it is searching against, but I have made sure that this file is available in /server/luckperms and /server/config/luckperms
The command I am using is
lp import file.json
lp import file.json [--upload]
lp import <file.json>
lp import <file.json> [--upload]
The issue it seems is that it cannot fidn the file itself. I am using Spongeforge Sponge 7.3, MC 12.2
Any help is greatly appreciated.

I believe the output should be a json.gz file, that can then be imported with /lp import filename (providing it's in the LuckPerms plugin folder, plugins/LuckPerms)

I believe the output should be a json.gz file, that can then be imported with /lp import filename (providing it's in the LuckPerms plugin folder, plugins/LuckPerms)

It was - Fefo on discord ended up helping me. I was using the gz extension as well, but it turned out, the import method was case sensitive, and I had an intial capped letter. Fefo resolved this for me. Thank you very much for your insanely fast response, and thank you for having such an amazing community.

It was - Fefo on discord ended up helping me. I was using the gz extension as well, but it turned out, the import method was case sensitive, and I had an intial capped letter. Fefo resolved this for me. Thank you very much for your insanely fast response, and thank you for having such an amazing community.


Allow logged in users to post anonymously

This was present in v1. Allow logged in users to choose whether to post with their name or anonymously.

This is urgent as platforms will be conducting data collection after they complete migration.


Move all the option definitions to a separate header file

Codecov Report

Merging #4918 into master will decrease coverage by 0.18%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #4918      +/-   ##
==========================================
- Coverage   81.66%   81.47%   -0.19%
==========================================
  Files         126      126
  Lines      146182   146182
==========================================
- Hits       119378   119101     -277
- Misses      26804    27081     +277

Impacted Files
Coverage Δ

src/option.c
82.59% <ø> (-4.86%)
:arrow_down:

src/mbyte.c
65.18% <0%> (-1.23%)
:arrow_down:

src/gui_gtk.c
30.49% <0%> (-0.97%)
:arrow_down:

src/misc2.c
86.09% <0%> (-0.89%)
:arrow_down:

src/gui_gtk_x11.c
57.62% <0%> (-0.79%)
:arrow_down:

src/autocmd.c
87.01% <0%> (-0.74%)
:arrow_down:

src/crypt.c
92.51% <0%> (-0.69%)
:arrow_down:

src/spell.c
80.36% <0%> (-0.39%)
:arrow_down:

src/popupwin.c
93.54% <0%> (-0.28%)
:arrow_down:

... and 17 more

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 410e98a...942a51c. Read the comment docs.


Sea Hag spellcasting does not conform to new spellcasting object shape

Sea Hags have Shared Spellcasting (Coven Only) as a special ability, which has spells & spell slots in its description, but does not conform to the new spellcasting array with slots, spell array, etc.

Damn. That was clearly missed.
I bet the other Hag monsters have the same issue too.

 I didn't notice because the other hags already had Innate Spellcasting. But the Sea Hag either is missing its Innate Spellcasting ability, or else just doesn't have it in the SRD.
All the hags Shared Spellcasting seem to give them access to different spells from their Innate Spellcasting.

Is anyone working on this? If not, I can give it a shot. Also, it does not look like the sea hag has innate spellcasting, so that part is fine.

Also, I'm having trouble finding anything about hag covens in the srd pdf, and the descriptions include spells that also don't seem to be in the srd like Ray of Sickness. Rays of Sickness is also not included in the spells json. Should shared spell casting even be included?

The Hag Covens rules are not part of the SRD. A simple search on the word "Coven" or "shared spellcasting" and the lack of result is proof enough. I've taken the liberty to remove those sections from the Monsters file in #312. This absence in the SRD is enough for me to close this issue. If any question remain, please reopen.


Error handling & http-errors

Error handling documentation doesn't specify that errors created using http-errors have special handling (I couldn't find from the source code where this handling was done, but apparently it is).
Please confirm that the special handling described is indeed done and I can create a PR for the docs.
Triggered by expressjs/body-parser#391

I believe the default error handler is a package called finalhandler. It's in the express source code at the application level.
There isn't necessarily special handling for http-errors. Any error with a status and a message can be passed into the default error handler and have those fields used. However, the docs could definitely be improved to explain that behavior.

I believe the default error handler is a package called finalhandler. [...]
There isn't necessarily special handling for http-errors. Any error with a status and a message can be passed into the default error handler and have those fields used.

Yep, this is exactly correct.

However, the docs could definitely be improved to explain that behavior.

Definately agree there! There are a lot of aspects of things that have minimal / no documentation, which is I think an unfortunate consequence of the most likely people to contribute are looking to do so through code changes / improvements and not as much through docs. So docs can end up lagging behind in the changes in the code implementation. It doesn't help when the people closest to the implementation just "know" how it works and don't even realize there isn't docs around it :)

PR was made and merged.


Fix some docs examples and formatting

Many thanks for putting this together.
Proposed changes:

Fix config's duckling_dimensions example
Use public URL to clone repo
Fix some rst formatting

Status:

[ ] ready for code review
[ ] there are tests for the functionality
[ ] documentation updated
[ ] changelog updated

nice thanks for the corrections :+1:


Running git-radar --bash is slow

In a repository with a .git folder that is ~30MB big, it's takes around ~6 seconds to run git-radar --bash which is too slow, especially when constantly opening new terminal sessions. Is there any way to speed up the command or is this a limitation that can't can't be optimized? Thanks.

Not having looked into the depths of git-radar but it is definitely fixable. I made my own "Poor man's git-radar" and had a similar issue. The trick was to bail out of any further processing if you can avoid it.
eg,

If git branch returns nothing, bail out all other work.
If git status returns nothing, bail out
Avoid reflog. I can't remember why but a snippet that suggested how to scrape some information worked for small repos but big ones took 15 secs to get a prompt to load....
Use git cherry to figure out the difference in commits between remote branches and the local tracking branch.

As to debugging which parts of git-radar --bash are taking up so much time... not sure.

Definitely can be optimised. I've fell out of maintaining git-radar due to it satisfying my need but it's been nagging me that it is slow.
As @neozenith says there are optimisations that can be made but ultimately Bash is slow at processing strings.
I'm tempted to reimplement fairly soon using a faster language that can access the libgit2 instead, thus optimising usage of git as well. Go would probably be a good choice.

Maintenance
@michaeldfallen as a starting point I'd be happy to be assigned this issue and work through some test cases to improve the speed.
Also the git-radar organisation on github isn't taken yet. Completely up to you but if you wanted to move this project off your personal account and let become a V1.0 community endeavour that is an option. In a weird way I kind of like that it is all bash scripts. From the git-radar organisation you can spin up the GoLang implementation.
Another option is keep it all here. I'd be happy to step up as a maintainer, triage issues, run code reviews etc. Not sure if you have elevated anyone to a maintainer status already or not.
It's a really well developed project (just look at that README) and I personally think it'd be a shame to let it go quiet. I get quite a few comments from my poor man's version https://github.com/neozenith/vim-dotfiles#git-bash-prompt
Possible Test Cases
Back to the core issue though if I am picking it up...
I know a good repository that is notoriously large to test this against. YouCompleteMe autocomplete engine.
There was another one that a company I was working for had python scripts generating and updating C++ files that were version controlled that would be good tests.
Even having a sample repo commit node_modules and then each week blow away package-lock.json and npm install latest dependency trees would be a good test.


Upgrade NDI library to NDI 5

With the announcement today of NDI 5, I would like to look at using NDI 5 as the library.
It reports to have performance improvements, as well as new features.

are you using the fkms driver?... vlc has great performance using that. If you can create a NDI 5 source over fkms on the raspberry pi 4 - this would really rock!... :)
Also - rpi4 has wifi over 5ghz so, as NDI 5 brags that it fixed some NDI over WiFi problems... I would say that it's really worth a shot!... :)
And... combined with a FullHD capture card... would make a great (cheap) NDI 5 video source for church broadcasting!... :)

Hello,
I installed the ND5 library with the new dedicated driver for rpi4 and it works fine, I need to familiarize myself with github to do a pull

Is this issue still open? I see that in the changelog "
Upgraded NDI library to v5.0.0"
However the library in the lib/ndi folder still shows 4.6.
I believe that with NDI 5 we could possibily use NDI HX3?

Hello, id like to ask about this since i havent got a pi camera and just a webcam and 3b+, planning to get a rev1.3 for testing. Been struggling with 1080p using dicaffeine with webcam even 720p. I volunteer on a small church, im planning on making a permanent small cam for livestream been using phone with ndihx.
Just want to ask if this can perform true to 1080p30 using pi cam?  Thank you

hello, I use a pi3 b+ and 8 pi4 ptz to film in 1080p 30 for music groups on my youtube channel lapallette.tv

Is this issue still open? I see that in the changelog " Upgraded NDI library to v5.0.0" However the library in the lib/ndi folder still shows 4.6.
I believe that with NDI 5 we could possibily use NDI HX3?

The upgrade to NDI5 is under test at the moment.
As to whether HX3 could be used, I'm not sure. Because my use case is not bandwidth limited, it's not something that I've looked at, however if you want to look into it, then that is fine. If you submit a pull request then I'll happily consider it for inclusion.

Hello, id like to ask about this since i havent got a pi camera and just a webcam and 3b+, planning to get a rev1.3 for testing. Been struggling with 1080p using dicaffeine with webcam even 720p. I volunteer on a small church, im planning on making a permanent small cam for livestream been using phone with ndihx. Just want to ask if this can perform true to 1080p30 using pi cam? Thank you

I've been running mine at 1920x1080 without issue. As to whether it hits 30fps, I'm not sure; it is smooth enough for what I need it for, so have no need to check the framerate.

What I have noticed is with the RPI3, it can run fine at 1080p30, but it has much more delay than with the RPI4. I will stage a comparison shot of latency and update the ReadMe with my findings.

I have done some testing with the RPI3 and the RPI4 to determine latency differences,
the RPI3 at 1280x720/30 has about 1.45 seconds of latency, while the RPI4 has 200ms of latency. I believe this is due to the faster RAM on the RPi4.

Is this issue still open? I see that in the changelog " Upgraded NDI library to v5.0.0" However the library in the lib/ndi folder still shows 4.6.
I believe that with NDI 5 we could possibily use NDI HX3?

Just spotted this one - apologies for the delay in responding. v2.x is on NDI 5. I can't remember whether I upgraded 3.x to NDI 5, I would have to check.

Just spotted this one - apologies for the delay in responding. v2.x is on NDI 5. I can't remember whether I upgraded 3.x to NDI 5, I would have to check.

Is 3.x running NDI 5?  Can I assume with NDI 5 there is support for GPU acceleration?

3.0.x is now running on NDI5, and github actions autobuilds a 32 and 64 bit version, along with the associated libraries.
There's a bug in 3.0.1 which prevents it from interacting with the neopixel system, however I'm not sure how many others are using that beyond just me, so it may not affect you. 3.0.2 will contain the fix for that (currently testing).


How to train for robust relative depth estimation instead of metric-depth

I can see your models are relative depth estimation but you only have a guide for metric-depth estimation.
How do I train for relative depth estimation instead?

@torchesburn Do you have any news?

@torchesburn Do you have any news?

they have not responded with anything, unless you have a thread to follow?

watch


[WIP] Support for #[sqlx(default)]

Closes https://github.com/launchbadge/sqlx/issues/308
I'm not used to doing stuff with macros, but this seemed easy enough to give it a try.
Still needs documentation, more tests? (where?) and whatever fixes are necessary :smiley:

This looks pretty good. Thank you for working on it. The FromRow trait documentation needs a bit of work to talk about the different attributes, see here: https://github.com/launchbadge/sqlx/blob/master/sqlx-core/src/from_row.rs#L8
If that's something you want to work on, please go ahead ❤ . I'll go ahead and merge this though as its a nice bump forward. 👍


Newline in output

Thanks a ton for developing this awesome update, it's amazing to see all this customization available to the user. I was wondering, is there a way to put newlines in the text displaying the stats?

Thanks a ton for developing this awesome update, it's amazing to see all this customization available to the user.

You bet, happy you're liking it! ^^

is there a way to put newlines in the text displaying the stats?

Yep, there's actually a couple ways to achieve this! Since the output from the textbox is read in HTML, you can use any HTML elements you want there and it should format it, respectively, when displaying it on the main window!
So, for your current setup, you could try something like:
%total_hrs </br> %total_rev for the "Total" output and
%range_hrs </br> %range_rev for the "Past 2 Weeks" output (assuming you're using range time here)
Or, if you want, you can also mess around with the stat view's HTML itself from the code expandable
(the little </> icon at the bottom right).
With that the formatting options are pretty open-ended, but you'd probs still want to do something similar to the above, but replacing {{Output}} with %total_hrs </br> %total_rev, etc., instead.
Hope that helps!


Startup requirements

App doesn't start without .NET Core SDK and WebView2 Runtime installed on the target system.
Needs to either be packaged with the app or otherwise provided with it.

Documentation provided in wiki. Closed for now.


Performance of Wrapped & Structured Arrays

Problem Description
Currently, our approach to dealing with Wrapped Arrays is (considering the case of mul!:
function mul!(C::TracedRArray, B::AnyTracedRArray, A::AnyTracedRArray)
    B = materialize_traced_array(B)
    A = materialize_traced_array(A)
    Ops.dot_general(....)
    return C
end

This ensures that the code works as long as a wrapper type implements materialize_traced_array. But this is not the most efficient solution, trivial to see with the simple case of a Diagonal wrapper (see @mofeing's comment https://github.com/EnzymeAD/Reactant.jl/pull/369#issuecomment-2541402690 for implementation of Diagonal using dot_general)
Current list of slow fallbacks

[ ] mul!
[ ] diag
[ ] diagm

This is more of a $N \times M$ problem: it's the combination of array types with methods. For example, a PermutedDimsArray on a matrix multiplication or on a more genera einsum can also have a more efficient implementation without materializing it. But there might be some array type or method where using the default is fine.
Also, check it out that thanks to the high-level opt passes we added in Enzyme-JAX, the implementation of some of the default implementations could have the same performance as writing it by hand. But I prefer to directly emit optimal code.


[Change Request] table 179 "Reversal Entry" - procedure InsertReversalEntry

Hello, can you please change the procedure InsertReversalEntry from local to global ?
    procedure InsertReversalEntry(Number: Integer; RevType: Option Transaction,Register)
    var
        TempRevertTransactionNo: Record "Integer" temporary;
        NextLineNo: Integer;
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforeInsertReversalEntry(Rec, Number, RevType, IsHandled);
        if IsHandled then
            exit;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 11024.


More examples for crypto library usage

Please answer these questions before submitting your issue. Thanks!
It is too brief and hard to understand. Can you add more explanation?
e.g.
https://golang.org/pkg/crypto/sha1/
What version of Go are you using (go version)?
1.7.x
Does this issue reproduce with the latest release?
What operating system and processor architecture are you using (go env)?
What did you do?
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
What did you expect to see?
What did you see instead?

Which part of sha1 do you not understand? Is the problem not knowing what does sha1 do?
For help you would be better off asking in one of the places linked in https://github.com/golang/go/wiki/Questions

I'm going to gecko we this issue as there is no actionable information in this report. As @AlexRouSg said, we don't use the issue tracker for support questions.


Timer does not resume on loading finishing

Timer does not unpause when changing zones
https://youtu.be/zlZc8aSDKRo

Fixed. Should be a bit more consistent/accurate as well. Probably a bit more to do in terms of verifying the load sequencing, but it's pretty darn close.


Missing Semantic Segmentation labels in OpenDrive generated maps

Hi,
I'm writing to point out that the semantic segmentation is not working properly with maps generated from .xodr files (Carla 0.9.9 in Ubuntu 18.04). Indeed, the road/sidewalks labels are not assigned to the road/sidewalks mesh (while they are to other objects). I guess a potential workaround could be to modify the Tagger.cpp TagActor method, however I can't figure out what's the component tree of the procedurally generated meshes.

@marcgpuig @Axel1092 this issue has your name on it.

Hi @FrancescoPinto, this is in our roadmap and it will be addressed soon! Hopefully for the next release 0.9.10 or 0.9.11. We also need to investigate how to properly do it, so if you make some progress make sure to report it here, it will be helpful, thanks!

Hi @marcgpuig , I implemented a temporary fix in this branch

That's great! We will take a look at your fork when we push for it. Thanks!


test coverage

add calculation of coverage in tests, could be done using coverage

@pbiecek it seems that codecov app still requires updating some more permissions, and this action needs to be performed by the organisation owner

added
the coverage should be visible here:
https://app.codecov.io/gh/xai4space/meteors/

Closing the issue as it was resolved


Not Able to run locally

After cloning the repository successfully and installing dependencies successfully.There is missing run script command.
npm run start
npm ERR! missing script: start

Re-added script


Dealing with shared ownership (Rc and Arc)

A central idea behind this crate is that most resources in Rust have one well-defined owner. heap_size_of_children can trace recursively and only consider owned resources. For &T references it can return zero since they usually either point to non-heap memory, or to heap memory owned by something else that will be accounted for there.
This breaks down for types like Rc<T> and Arc<T> that introduce "shared ownership". They do have heap memory that we want to count, but in a fully generic context there is no clear single point where it should be counted.
(In a more specific context there count be a "main" Rc reference for a given resource. For example, following only the "first child" and "next sibling" references in a Kuchiki tree allows traversing the whole tree without duplication.)
In the current version (90dd7e0f23dfc8d7497efc956d72021734d905dd) this crate has:
impl<T: HeapSizeOf> HeapSizeOf for Arc<T> {
    fn heap_size_of_children(&self) -> usize {
        (**self).heap_size_of_children()
    }
}

This impl is returns an incorrect number for two reasons:

It’s too low because it only counts the size of resources owned by T, not the size of T itself and the two reference counts that Arc holds internally. This part is easy to fix.

It’s too high because there could be many Arc references to the same T value, and this impl duplicates by that many times the count of memory owned by T.
One idea that I’ve heard/read (I don’t remember from who, sorry) was to divide by the strong reference count. If all strong references are traced correctly these fractions should add up to the correct value. But the usize return type would have to be changed to f32 or f64 to get remotely accurate results, which is weird at best. And Arc::strong_count and Rc::strong_count are still #[unstable]: https://github.com/rust-lang/rust/issues/28356

The current version of this crate has another impl:
impl<T> HeapSizeOf for Vec<Rc<T>> {
    fn heap_size_of_children(&self) -> usize {
        // The fate of measuring Rc<T> is still undecided, but we still want to measure
        // the space used for storing them.
        unsafe {
            heap_size_of(self.as_ptr() as *const c_void)
        }
    }
}

My understanding of it as that, in practice, when we can’t have a correct impl of HeapSizeOf, Servo sometimes implement it (incorrectly) returning zero because an underestimated answer is better(?) than no answer.
This Vec<Rc<T>> follows this idea, just making the error smaller: don’t count Rc’s but count the Vec containing them.
Still, I don’t think there’s a reason to treat Rc<T> and Arc<T> differently.

Yeah, that's an odd inconsistency. I'm surprised we have an implementation for Arc at all.

If heapsize is going to cope with Rc<T> it looks like it would have to implement a graph-marking algorithm. This would mean something like keeping track of a set of pointers, then on reaching an Rc<T>, checking to see if the pointer is in the set: if it is, return a constant, and if it isn't, add it to the set before recursively calculating the size. This makes calculating heap size quite expensive, as it means keeping track of the set of all visited Rcs.
If we could guarantee that only one heapsize calculation at a time was needed, we could try to cram the marker into the Rc, but this would have to be done unsafely since the heap_size_of_children function only has &self, not &mut self.  Arc is probably even trickier, since we'd have to ensure thread-safe access to the marker.

@asajeffrey What would be the end goal of maintaining that graph?

Only visiting each Rc<T> once. The pathalogical case is something like:
enum BTree {
    Leaf,
    Node(Rc<BTree>, Rc<BTree>),
}

let tree0 = Rc::new(BTree::Leaf);
let tree1 = Rc::new(BTree::Node(tree0.clone(),tree0.clone()));
let tree2 = Rc::new(BTree::Node(tree1.clone(),tree1.clone()));
...

If you use tree-traversal on treeN, you visit 2^N nodes, with graph-marking you just visit N.

And it’s not (just) about traversal time, it’s to avoid duplicating the count of memory used by T in Arc<T>.

Indeed, we can avoid having to divide by the ref count by only counting each Rc once.

Firefox's memory profiling still doesn't handle ref-counted types well. For some of the types we return the full size if the refcount is 1, and 0 otherwise. I've thought about doing the divide-by-the-refcount idea (and using integer division) but never gotten around to it. I think using fractional types would be silly and not worth it.
In general it is indeed better to under-measure than over-measure, because you can get the total heap size (from the allocator) and then subtract the size of all known heap data structures and end up with an "unknown" bucket (called "heap-unclassified" in Firefox's about:memory) and you want that "unknown" bucket to be accurate. If you over-measure it could go negative, which is confusing. (Double-counting any memory can have similarly bad effects.)
In general, ensuring correctness of these measurements is a hard problem. When your code says your memory usage is X, how can you trust that? Firefox has a tool called DMD (https://developer.mozilla.org/en-US/docs/Mozilla/Performance/DMD) that verifies memory reporting by identifying which heap blocks are measure zero times, 1 times, and more than 1 times. It's really important for improving coverage and debugging the measurement code. I was hoping to implement something similar for Rust/Servo but never got around to it, at least partly because it requires (a) wrapping allocations and (b) getting and saving lots of stack traces, both of which are tricky in Rust.

Aww, what’s wrong with reporting<PHONE_NUMBER>0000000004 bytes of memory usage? :)

Another "interesting" thing is that Rc and Arc can introduce cycles.

If we're dealing with cyclic structures, then pretty much we have to either do graph marking, or ignore any Rc with refcount > 1. Are we concerned that ignoring Rc with refcount > 1 would cause reported size to change as Rc's are cloned / dropped?

I think I’d prefer not to have a generic impl<T: HeapSizeOf> HeapSizeOf for Arc<T> (which can not assume anything about how Arc/Rc is used) in this crate at all, but rather answer these questions case by case in specific contexts.

@asajeffrey I assume that there's also a third point there - you can choose not to ignore any Rc with a refcount > 1 if it's instantiated at a type that can't be cyclic, right? Though I suspect that's getting into a level of plugin wizardry that's a bit silly.

@larsbergstrom yes, you could try to be clever and get metadata about the type, like can it introduce cycles, but it seems like it would be tricky to get to fly without over-engineering it.

@asajeffrey I just thought it might be worth looking at, since a lot of the stuff we Rc in servo is basically a heap-allocated integer, a hash table instantiated at immediate types, etc. There may be very few cases where it's possible to create cycles.

As a hack, we could abuse the refcount, with something like:
   if (refcount < LARGE_NUMBER) {
      refcount += LARGE_NUMBER;
      recursively_calculate_heapsize();
      refcount -= LARGE_NUMBER;
   }

Yuck. It would probably work, but yuck.

@asajeffrey @larsbergstrom @SimonSapin @nnethercote @jdm Thanks for the really helpful discussion!  I appreciate it!  My original question to @larsbergstrom and @asajeffrey (over email) was why Rc<_> wasn't implementing this HeapSizeOf trait, but now I have a much better appreciation of the issues involved.  It seems tricky to define this trait for shared structures without complicating it with a way to maintain its traversal history.
The context of my original question is a library for Adapton in Rust (See http://adapton.org and https://github.com/cuplv/adapton.rust specifically).  My use of Rc<_> in that library may be simpler than in servo, but sharing is widespread, and many uses of Rc<_> are used to create linked structures (like lists) that share common suffixes.
In many cases, I can traverse of the shared Rc<_>s such that I visit each only once.  This is possible for those Rc<_>s that are indexed by a large global hash map (which implements the library's "memo table", used for incremental reuse, the principle purpose of the library).  This memo table creates sharable nodes that point at one another, and are guaranteed to always form a DAG (specifically, there are no cycles, except for well-defined "back edges" that I will simply not traverse).  In general, traversing a general DAG while avoiding double-visits requires storing a history of visited nodes (either as a set, or with mutable bits, etc.), but in the case of Adapton in Rust, since the nodes are all indexed by a hash map, the traversal problem is really easy: I just visit each node in the hash table, and do not follow its outgoing edges to other nodes, which all reside in the same table.
However, there are many other Rc<_>s that the library uses to create list-like keys that index this memo table, and those lists share common suffixes.  I need to think about a traversal strategy that avoids double-visiting these suffixes, and though it seems doable at the moment, it does not seem obvious to me yet.  I'll give it some more thought, since the non-double-visit traversal seems to require something more clever than the traversal for the table of DAG nodes.
In sum, what is clear to me now is that I need to exploit the specific invariants and structure of my library to do a non-double-visit traversal of its DAG structure of memoized nodes.  Further, I need to think about what invariants will help me do something clever and (hopefully equally) simple to traverse the keys that index these memoized nodes.
Thanks again for the discussion!

In many cases, I can traverse of the shared Rc<>s such that I visit each only once. This is possible for those Rc<>s that are indexed by a large global hash map
[…]
I need to exploit the specific invariants and structure of my library to do a non-double-visit traversal

Yes, this is the kind of thing I had in mind with “case by case specific contexts”.

@SimonSapin Yes.  This stance ("exploit the invariants of the application domain, and do not attempt to give a generic solution") seems right to me now as well, for what it's worth. ;)

I’m currently changing Servo so that it can build with impl<T: HeapSizeOf> HeapSizeOf for Arc<T> removed. The plan (discussed in person with @nox) is to remove that implementation. The issues with it are described in the first message of this issue.

FWIW, in malloc_size_of I've handled Rc/Arc by allowing users provide a table that records which pointers have been measured. This is working well for Stylo.


react-testing-library example?

I'm currently adding some tests using react-testing-library, but I am having a difficulty with verifying that the menu has closed. In particular, it does not appear that the class rc-menu--open is removed after clicking the button a second time. I have tried setting the prop keepMounted={false} and updated my test logic, but that also does not appear to work.
This may not be an issue with react-menu itself, but the way I am testing it with react-testing-library.
const PredefinedMenu = () => {
  return (
    <Menu
      menuButton={<button>Test Menu</button>}
      keepMounted={false}
      animation={false}
    >
      <MenuItem value="item1">Item 1</MenuItem>
      <MenuItem value="item2">Item 2</MenuItem>
      <MenuItem value="item3">Item 3</MenuItem>
    </Menu>
  )
}

test('react-menu', async () => {
  const {container} = render(<PredefinedMenu />)
  const menuButton = container.querySelector('button')
  expect(container).toBeInTheDocument()

  // First render will not render the list element and only render the button
  expect(container.querySelector('ul')).toBe(null)
  expect(menuButton).toHaveTextContent('Test Menu')

  // Upon clicking the button, the list element will be rendered and displayed
  fireEvent.click(menuButton)
  expect(container.querySelector('ul')).not.toBe(null)
  expect(container.querySelector('ul')).toHaveClass('rc-menu--open')

  // Upon clicking the button again, the menu should close and be removed from DOM
  fireEvent.click(menuButton)
  await waitForElementToBeRemoved(container.querySelector('ul'))
})

Code Sandbox

Hi @kaabij ,
Clicking the menu button only causes menu to open.
Closing a menu relies on the onBlur event. As a result, simply focus something outside the menu will cause it close.
I pushed an example that demonstrates the behaviour: https://github.com/szhsin/react-menu/blob/e50fc6908b6040cfc59fd00ce825cfc199f1f5c4/src/components/tests/Menu.test.js#L89

Thanks for the prompt response @szhsin!
I also noticed that if the test does not wait for focus to land on the menu itself, the test will fail. Anyways, appreciate all the tests you have added in e50fc6908b6040cfc59fd00ce825cfc199f1f5c4.


fluxes with bad reaction ids

if data to apply refers to reactions not in model, should render nice warning and proceed with other reactions rather than 500

[x] Proceed with other reactions.
[ ] Render a nice warning about unknown identifiers.


AzureRmWebAppDeployment@4 with webAppContainer started failing with BadRequest - The parameter LinuxFxVersion has an invalid value. (CODE: 400)

Question, Bug, or Feature?
Type: Bug
Enter Task Name: AzureRmWebAppDeployment@4
Environment

Server - Azure Pipelines or TFS on-premises? Azure Pipelines

Agent - Hosted or Private: Hosted

Issue Description
The task started failing with 400s and the message: The parameter LinuxFxVersion has an invalid value.  There were no changes to the pipeline configuration.  This same issue is now hitting all of our deployment pipelines - none of which have changed.
Pipeline YAML

resources:
  containers:
  - container: buildContainer
    type: ACR
    azureSubscription: 'REDACTED'
    resourceGroup: 'REDACTED'
    registry: 'REDACTED'
    repository: 'REDACTED'

stages:
- stage: DeployDev1
  displayName: Deploy Dev1
  jobs:
  - deployment: DeployDev1
    displayName: DeployDev1
    environment: Dev1
    pool:
      vmImage: 'ubuntu-latest'
    strategy:
      runOnce:
        deploy:
          steps:
            - task: AzureRmWebAppDeployment@4
              inputs:
                ConnectionType: 'AzureRM'
                azureSubscription: 'REDACTED'
                appType: 'webAppContainer'
                WebAppName: 'REDACTED'
                DockerNamespace: 'REDACTED.azurecr.io'
                DockerRepository: 'REDACTED'
                DockerImageTag: '$(resources.container.buildContainer.tag)'

Task logs
Trying to update App Service Configuration settings. Data: {"linuxFxVersion":"DOCKER|REDACTED.azurecr.io/REDACTED:$(resources.container.buildContainer.tag)"}

Starting: AzureRmWebAppDeployment
==============================================================================
Task         : Azure App Service deploy
Description  : Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby
Version      : 4.198.0
Author       : Microsoft Corporation
Help         : https://aka.ms/azureappservicetroubleshooting
==============================================================================
Got service connection details for Azure App Service:'REDACTED'
Trying to update App Service Configuration settings. Data: {"linuxFxVersion":"DOCKER|REDACTED.azurecr.io/REDACTED:$(resources.container.buildContainer.tag)"}
##[error]Error: Failed to patch App Service 'REDACTED' configuration. Error: BadRequest - The parameter LinuxFxVersion has an invalid value. (CODE: 400)
Successfully updated deployment History at https://REDACTED.scm.azurewebsites.net/api/deployments/6091647287836678
App Service Application URL: http://REDACTED.azurewebsites.net
Finishing: AzureRmWebAppDeployment

I have some additional information.  On the last pipeline run that succeeded the variable $(resources.container.buildContainer.tag) was resolved to the resource that is referenced by the task.  It looks like the variable is no longer being injected.

Hi,
We're seeing this too.