godot-community permissions: allow repo donors access to their own repos.

Describe the project you are working on:
Managing the godot-community organization.
Describe how this feature / enhancement will help your project:
If someone donates a repository to the organization, then they will have fully transferred ownership. Ideally, we would then find a way to allow them to still have access to the code directly, but without them also having write access to the rest of the organization's public repositories.
My initial thought is: anyone who wishes to join the organization to host a project/addon/plugin/module should be freely able to do so, BUT those people should not be able to arbitrarily mess with repositories that have been donated by someone else, unless they have higher admin privileges.
However, the only thing I can think of would be admins manually creating a Team for every newly created repository and handing write permissions for that repo exclusively to admins and that Team, rather than any Member. This would be a lot of work, but doable. Perhaps using godot-ideas with a special label for people to submit requests for their repos to be added.
The alternative is making organization membership much more exclusive and people would be donating their work wholesale to the organization (without them having individual access to their own donated repository - NOT ideal).
Is there some middleground?  What would be the best way to handle this?

I don't think there'd be a lot of people who would be willing to transfer their repositories to this organization for the sake of it though (such repository would have to cater to most community needs). So what seems to be a lot of work could be trivial to do at first stages, at least for now.

Do you need to maintain the repositories there, can't you just link to them? A searchable tree of info pages with links would be cool:
e.g.
3D
	Graphics
		Animation
		Shaders
		etc
	Sound
	Editor
	Other
2D
	Graphics
	Sound
	Editor
	Other

Then have the links able to appear in more than one section (e.g. some addons may work for 3d and 2d).
Otherwise you'll just end up with a long list of repositories (which maybe few people would look through). And as Xrayez says, at least at first it might be difficult to convince authors to transfer their repositories.

There's similar list already like awesome-godot though.

@lawnjelly

Do you need to maintain the repositories there, can't you just link to them?

Well, I don't know if it's at all similar for others, but at least for me, I tend to create a lot of branches when I'm working on things. And many of them are WIPs, some of which make it to the end, some of which don't (as I'm just experimenting with ideas and whatnot). I also work on stuff between multiple computers, so I often push these branches to my origin just so that I can pull them back down from another machine.
So, for a third party that comes to my plugin and checks it out, if they examine the braches that exist, they'll end up seeing a ton of stuff that isn't ready for use that is just my own miscellaneous work. godot-next was full of these, with only 1 or 2 branches actually intended for others (master and 3.1). Now that I have transferred it over to the godot-community repository, there can be a publicly recognized one that is separate from my own. I can strip away most of the features that people don't need to see until I complete them privately and merge them in.
@Xrayez

So what seems to be a lot of work could be trivial to do at first stages, at least for now.

Sounds good. I haven't gotten anyone wanting move something over, so I suppose that's fine.

There's similar list already like awesome-godot though.

That actually would be a decent contender for moving over here though. That way anyone in the organization can merge people's requests to add their stuff to it. Honestly though, using GitHub taga is a lot more effective. It'd be good if people (like me) used them more often...

Oh, it turns out that my concerns for this are a moot point. I just started investigating things and it looks like if you go to the People page of the godot-community dashboard, the Owner has a "Manage" button beside each user which lets me dictate who has admin/read/write access to repositories in the organization. And it seems like those who transfer ownership to the repo automatically are given Admin access to the repo by default while everyone else only has read access (exactly what we wanted). Soooo...there's no work to be done! Yay.
I'm gonna go ahead and close this issue then.


Added warning about unknown container image source

@serenamarie125 @epwinchell  This is a little non-standard so please tell me if this is acceptable. (notice the red icon)
@abonas @simon3z Please review

Regular registry for reference

@miq-bot add_label providers/containers
@miq-bot add_label ui

@serenamarie125 @abonas @simon3z
In case there are no registries listed on any image, should the total registry count be one or zero?

it could be zero since there are no registries listed however this is misleading since the images did come from somewhere
it could be one but this is also misleading since the system has no information on it

@zeari Looks good to me

@zeari I think displaying unknown, and the use of red makes sense (as shown in your mockup).  I would check with @epwinchell if they have a specific RGB that they use for highlighting in red in MIQ/CF.

maybe "malicious" is a bit too harsh :)
perhaps "unknown" is indeed suffice?

@zeari Try using "#cc0000;" That's the color we use for error messages.

@zeari I think displaying unknown, and the use of red makes sense (as shown in your mockup). I would check with @epwinchell if they have a specific RGB that they use for highlighting in red in MIQ/CF.

@serenamarie125 Great though its not a mockup, its a patch ready to be merged.

maybe "malicious" is a bit too harsh :)
perhaps "unknown" is indeed suffice?

@abonas Then the user wont infer that something might be wrong. Whats a word less harsh than malicious but that still reflects that something is off?

@abonas +1 @zeari "Unknown image source" with the red icon is the way to go.  What does the black dot to the right signify?

@zeari understood on the patch - i should have said screenshot of your patch :)
@abonas I think unknown is sufficient.  The color will identify that there is an issue they should look at, but using something stronger than unknown may misleading.  Is there a way that they can investigate what caused this?

@abonas +1 @zeari "Unknown image source" with the red icon is the way to go. What does the black dot to the right signify?

Added manually for emphasis in screenshots for github. Its not a part of the system.

@zeari Try using "#cc0000;" That's the color we use for error messages.

@epwinchell Changed to #cc0000. Screenshot above is updated.

@abonas I think unknown is sufficient. The color will identify that there is an issue they should look at, but using something stronger than unknown may misleading. Is there a way that they can investigate what caused this?

@serenamarie125 Updated screenshot. I think 'unknown' with a red icon is probably okay since it still indicates something is a miss.

Is there a way that they can investigate what caused this?

there are ways to investigate, but nothing we currently support from miq side.

LGTM
@simon3z , your thoughts?

@zeari @abonas :+1: great!

@epwinchell @blomquisg merge please?

@dclarizio Please review and merge.

one thought I'm having... @zeari @epwinchell @simon3z perhaps the icon should be orange as in warning and not red as in error? because it's potentially a problematic source, not 100% a real problem.

one thought I'm having... @zeari @epwinchell @simon3z perhaps the icon should be orange as in warning and not red as in error? because it's potentially a problematic source, not 100% a real problem.

@abonas IMO It would be just as good.

@serenamarie125 ? any guidelines regarding red or orange?
if none, we'll proceed with this PR as is with red.

@abonas @zeari @epwinchell warning color is #EC7A08.  If it were malicious red would be correct, but since we aren't sure and it's really just unknown, orange is a better solution.  Thanks!

warning color is #EC7A08. If it were malicious red would be correct, but since we aren't sure and it's really just unknown, orange is a better solution. Thanks!

@abonas @zeari @epwinchell Colors changed. Screenshot updated.

Great
On Aug 12, 2015 5:46 PM, "ManageIQ Bot"<EMAIL_ADDRESS>wrote:

Checked commit zeari@2f0b9f9
https://github.com/zeari/manageiq/commit/2f0b9f926788c6c14fe34ceaf1d2c136c83e594a
with rubocop 0.32.1 and haml-lint 0.13.0
1 file checked, 6 offenses detected
app/helpers/container_summary_helper.rb

[image: :red_circle:] Error - Line 1
https://github.com/zeari/manageiq/blob/2f0b9f926788c6c14fe34ceaf1d2c136c83e594a/app/helpers/container_summary_helper.rb#L1,
Col 1 - Syntax - module definition in method body
[image: :red_circle:] Error - Line 94
https://github.com/zeari/manageiq/blob/2f0b9f926788c6c14fe34ceaf1d2c136c83e594a/app/helpers/container_summary_helper.rb#L94,
Col 28 - Syntax - unexpected token error
[image: :red_circle:] Error - Line 97
https://github.com/zeari/manageiq/blob/2f0b9f926788c6c14fe34ceaf1d2c136c83e594a/app/helpers/container_summary_helper.rb#L97,
Col 39 - Syntax - unexpected token error
[image: :red_circle:] Error - Line 99
https://github.com/zeari/manageiq/blob/2f0b9f926788c6c14fe34ceaf1d2c136c83e594a/app/helpers/container_summary_helper.rb#L99,
Col 35 - Syntax - unexpected token error
[image: :red_circle:] Error - Line 103
https://github.com/zeari/manageiq/blob/2f0b9f926788c6c14fe34ceaf1d2c136c83e594a/app/helpers/container_summary_helper.rb#L103,
Col 35 - Syntax - unexpected token tLABEL
[image: :red_circle:] Error - Line 103
https://github.com/zeari/manageiq/blob/2f0b9f926788c6c14fe34ceaf1d2c136c83e594a/app/helpers/container_summary_helper.rb#L103,
Col 39 - Syntax - cannot assign to a keyword

—
Reply to this email directly or view it on GitHub
https://github.com/ManageIQ/manageiq/pull/3800#issuecomment-130327444.

Please rebase and re-push to pick up merged https://github.com/ManageIQ/manageiq/pull/3839 which fixes the Travis failure on gems/pending that this PR is hitting.

Everyone seems happy with this and LGTM


Logs Bridge API - Logger Provider

Create the Logger Provider class for the Logs Bridge API
https://opentelemetry.io/docs/specs/otel/logs/bridge-api/#loggerprovider

Draft PR: https://github.com/kaylareopelle/opentelemetry-ruby/pull/1
Blocked by #1497


File import not working in massmint

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[x] Bugfix
[ ] Feature
[ ] Refactoring

Context
Images nested inside a folder are ignored this pr fixes that
This first zip has the images nested inside a folder
nested images.zip
this one they are not
just images.zip

[x] Closes #6532
[ ] Requires deployment <snek/rubick/worker>

Did your issue had any of the "$" label on it?

[x] Fill up your DOT address: Payout

Community participation

[x] Are you at KodaDot Discord?

Screenshot 📸
zip with nested folder

zip with just images

Copilot Summary

🤖 Generated by Copilot at 1281dab
Simplified the warning condition for zip file entries in useZipValidator.ts to improve readability and avoid false positives.

🤖 Generated by Copilot at 1281dab

isDirectory /
No need for slash check now /
Code is simpler - spring

work wonders, good job!

pay 50 usd

😍 Perfect, I’ve sent the payout
💵 $50 @ 4.98 USD/DOT ~ 10.04 $DOT
🧗 16faLfsywwNATaEfbH2ah75dn6ZmctQWpMS5G4KFhbmj5hnD
🔗 0xd0d2a7a2912629b65b546496f3e12ec44d80888a818fe86e09206d63b903985a
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


make client classes internal

address #886 - an elementary error on my part which i was blind to having looked over the API now so many times.

note: force-push is re-base on to 1.0.x.


Stop updates

Hello,
Is it possible to stop all the updates in progress?
thank you in advance

Hello @BloomPhilippe!
No, it's not possible for the moment, sorry. But this is under consideration 🙂

Hi,
thank you for your reply

@curquiza
Is it possible to speed up the updates?
Is it related to the CPU, to the RAM?
Sorry for my question

Don't be sorry for your questions 😄
We are aware of the RAM we have in the current search engine when importing a lot of data. We are currently working on a new search engine that would be way more efficient during indexation and search!! 🚀
We'll keep you informed when it will be released!
Meanwhile, you can try to push your documents by batch in big batches to avoid having a lot of updates. you can increase the payload size (https://docs.meilisearch.com/reference/features/configuration.html#payload-limit-size). However don't do too big batches, otherwise, it will use too much RAM and MeiliSearch will be killed by the OS.

Thank you very much !
Here is my config, is it correct for Meilisearch?
Hetzner cloud
8 CPU
16GB RAM
250GB Disk

How many documents do you have? It also depends on the size of your documents. What does a basic document look like in your dataset?

+- 60.000 posts in wordpress
Post size = 14KB

It should be enough :) Just do bigger batches and don't push documents one by one. Tell me if it helps you.


feat(command-lm): merge netlify-lm-plugin to CLI

- Summary
Closes https://github.com/netlify/cli/issues/483
Closes https://github.com/netlify/cli/issues/514
Closes https://github.com/netlify/netlify-lm-plugin/issues/43
Closes https://github.com/netlify/netlify-credential-helper/issues/46
netlify-lm-plugin is not maintained well currently, and using some deprecated dependency. This PR is to see if we can merge the plugin into the CLI to make it easy to maintain.
Also, I would love to retire the usage of old getAddons/createAddon, so that it'll better integrated with the development env var like NETLIFY_API_URL.
- Test plan
Very much WIP.
This is also a great chance to add tests!!
- Description for the changelog
Merge netlify-lm-plugin (netlify lm command) to CLI
- A picture of a cute animal (not mandatory but encouraged)

Currently it is half-working. lm:info is running but somehow lm is not working:
$ bin/run lm
 ›   Error: command lm not found
    Error: Command failed: netlify lm --help
$ bin/run lm --help
Handle Large Media operations

USAGE
  $ netlify lm

DESCRIPTION
  The lm command will help you manage a large media for the site

EXAMPLE
  netlify lm:info

$ bin/run lm:info
  ✔ Checking Git version [2.26.0]
  ✔ Checking Git LFS version [2.5.1]
  ✔ Checking Git LFS filters
  ✔ Checking Netlify's Git Credentials version [0.1.9]

Hi @keiko713, how do we want to move forward with this?

thanks for the ping and sorry that I haven't touched this for more than one month...!!! I really would like to get back to this, but at the same time, I'm having hard time finding time for this.
can you please give me, let's say, one more week to see if I can find some time?

can you please give me, let's say, one more week to see if I can find some time?

Should we can do that. I can also raise https://github.com/netlify/cli/issues/483 internally to see if we can prioritize it.

current status:

migrated all the commands
confirmed that super basic paths (lm:info, lm:install, and lm:setup) with platform: macOS 10.15.7 works

TODOs

write tests
more tests with different platform, as well as more edge cases (e.g. when X is not installed)

@erezrokah syncing up with some progress (also no rush, totally fine after 🎄 ):

I managed to run some test, but still it's been failing with all other platforms than macos
there is some difficulty with the test in general (will comment more inline)
I'd love to get some feedback, the tests are failing but the code should be already in a decent shape

Thanks!

@keiko713 Thank you so much for following up on this.
I rebased the branch and added a few more commits to do some code clean - please let know what you think. I might follow up with some more next year :).
For the failing tests, I had to run it on my Windows command to get the error, see https://github.com/netlify/netlify-credential-helper/pull/49
That made lm:install work on Windows (I updated the code to install from the PR's branch), but lm:setup is still failing so I need to look into it.

cc @keiko713 tests are passing on Windows (Node.js 10 failure is unrelated).

cc @keiko713 tests are passing on Windows (Node.js 10 failure is unrelated).

Corresponding PR in https://github.com/netlify/netlify-credential-helper/pull/51


Multiple issues in Fleet (Dashboard and gitRepo Graph views)

Addresses Github issue: #6007
Addresses Zube issue: #6036

add missing prop check for stateObj in FleetBundle model
add missing prop check for color when state is not defined as ENUM in gitRepoChartConfig
add missing state deploying to state ENUM

Thanks @Shavindra ! 🙏 🙇


Reproducible builds using Gitian LXC containers

Reproducible builds using Gitian (the build system used by Bitcoin and Tor) would be really useful, a potential killer app which services like Travis-CI can't handle.  Reportedly Gitian is working within Docker.  Some more info is posted at https://github.com/devrandom/gitian-builder/issues/53 .  Could this be integrated with Drone?

this seems like a good use case for a community-contributed plugin: http://readme.drone.io/devs/plugins/
since this isnt' something we would build directly into drone I'm going to close the issue. But feel free to create a submit a plugin for Gitean to be listed in our plugin index


Unit tests model mocks

Signed-off-by: Sinisa Andric<EMAIL_ADDRESS>Description
Add model mocking to provide framework for writing component unit tests.
Issues Resolved
https://github.com/opensearch-project/security-analytics-dashboards-plugin/issues/370
Check List

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@AWSHurneyt this one is merged with #383, can you please close this PR?

Closing this one as #383 merged these changes


Desired Outcome

Desired Outcome
ShapModelInterpreter to support model_ouput="probability" from SHAP TreeExplainer.
Thanks for a fantastic library.

It is currently supported. The fit() function has keyword argument called **shap_kwargs, which indicates that you can pass keyword arguments to the TreeExplainer.
feature_importance = shap_interpreter.fit_compute(X_train, X_test, y_train, y_test, model_ouput="probability")

You can do this for any argument in TreeExplainer, the only constraint is that you need to explicitly name it in the same way.

It is currently supported. The fit() function has keyword argument called **shap_kwargs, which indicates that you can pass keyword arguments to the TreeExplainer.
feature_importance = shap_interpreter.fit_compute(X_train, X_test, y_train, y_test, model_ouput="probability")

You can do this for any argument in TreeExplainer, the only constraint is that you need to explicitly name it in the same way.


Function of Cancel Button in Jsgrid

Hi, i don't know ask anywhere for my problem. so, hope you help me!
in function callback, example
onItemInserting: function (args) {
// my content
},
i will check a few conditions and if don't satisfy, i wanto cancel insert. so, i need know function of cancel button.
can you help me?
thank you very much!

For canceling, please see Cancel item insetion in the docs: http://js-grid.com/docs/#oniteminserting
But you could also consider using the built-in validation.

In the case of the above I ask not to be clear and effective
I should have asked is worth in case the update not insert
but anyway thank you for your help, from which I learned how to handle similar
but there is one other problem.
for example, I use the command:

    onItemUpdating: function (args) {
        if (args.item.name === "") {
            args.cancel = true;
            alert ( "Specify the name of the item!");
        }
    }

of course, when I hit the update, I will receive the alert and that cell will not be updated, but the problem here is that data cells remain in a state of repair. I wanted to escape from the cell data correction status (as when I hit the cancel button)
in addition I have a few other problems, look forward to your help:
2. I'm having problems with the search box select.
examples like this
`

    Click here to load again table

`
when I opened the first page ($ (document) .ready ...), everything is normal
but when I click on "Click here to load again table", select the search box disappears
I've tried setting async: false and async: true, but were unsuccessful. what should I do?
3.I build multiple tables in one display page. I will draw table t2 using the t1 rowclick function like this
`

`
(depending on the row of t1 that I will load the corresponding data into tables t2)
the problem is when I'm on page 2 of t2 and I click on any row of data t1 which corresponds to that item only in one page, the page still displays t2 2 (a state memory format). so no data will be displayed on t2
How should I handle?

Please, open separate issues for 2nd and 3rd points.

thank you and first problem?

Gonna be also answered, as you see I reopened the ticket.

In this case just call method cancelEdit


vt decompose -s not decomposing TOPMED info field

##fileformat=VCFv4.0
##INFO=<ID=TOPMED,Number=.,Type=String,Description="An ordered, comma delimited list of allele frequencies based on TopMed, starting with the reference allele followed by alternate alleles as ordered in the ALT column. The TopMed minor allele is the second largest value in the list.">
#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
1	10169	rs1456517851	T	C,G	.	.	TOPMED=0.000159276,.
1	10482	rs1307108837	G	A,C	.	.	TOPMED=2.38910e-05,2.38910e-05

is decomposing like this, even with -s invoked:
##fileformat=VCFv4.0
##FILTER=<ID=PASS,Description="All filters passed">
##INFO=<ID=TOPMED,Number=.,Type=String,Description="An ordered, comma delimited list of allele frequencies based on TopMed, starting with the reference allele followed by alternate alleles as ordered in the ALT column. The TopMed minor allele is the second largest value in the list.">
##contig=<ID=1>
##INFO=<ID=OLD_MULTIALLELIC,Number=1,Type=String,Description="Original chr:pos:ref:alt encoding">
#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
1	10169	rs1456517851	T	C	.	.	TOPMED=0.000159276,.;OLD_MULTIALLELIC=1:10169:T/C/G
1	10169	rs1456517851	T	G	.	.	TOPMED=0.000159276,.;OLD_MULTIALLELIC=1:10169:T/C/G
1	10482	rs1307108837	G	A	.	.	TOPMED=2.38910e-05,2.38910e-05;OLD_MULTIALLELIC=1:10482:G/A/C
1	10482	rs1307108837	G	C	.	.	TOPMED=2.38910e-05,2.38910e-05;OLD_MULTIALLELIC=1:10482:G/A/C

What am I doing wrong? Thanks!

Non-standard fields will not be decomposed. You need to decompose the
fields by yourself.
Hyun.
Hyun Min Kang, Ph.D.
Associate Professor of Biostatistics
University of Michigan, Ann Arbor
Email<EMAIL_ADDRESS>On Mon, May 4, 2020 at 2:46 PM Rory Kirchner<EMAIL_ADDRESS>wrote:

##fileformat=VCFv4.0
##INFO=<ID=TOPMED,Number=.,Type=String,Description="An ordered, comma delimited list of allele frequencies based on TopMed, starting with the reference allele followed by alternate alleles as ordered in the ALT column. The TopMed minor allele is the second largest value in the list.">
#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
1	10169	rs1456517851	T	C,G	.	.	TOPMED=0.000159276,.
1	10482	rs1307108837	G	A,C	.	.	TOPMED=2.38910e-05,2.38910e-05
is decomposing like this, even with -s invoked:
##fileformat=VCFv4.0
##FILTER=<ID=PASS,Description="All filters passed">
##INFO=<ID=TOPMED,Number=.,Type=String,Description="An ordered, comma delimited list of allele frequencies based on TopMed, starting with the reference allele followed by alternate alleles as ordered in the ALT column. The TopMed minor allele is the second largest value in the list.">
##contig=<ID=1>
##INFO=<ID=OLD_MULTIALLELIC,Number=1,Type=String,Description="Original chr:pos:ref:alt encoding">
#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
1	10169	rs1456517851	T	C	.	.	TOPMED=0.000159276,.;OLD_MULTIALLELIC=1:10169:T/C/G
1	10169	rs1456517851	T	G	.	.	TOPMED=0.000159276,.;OLD_MULTIALLELIC=1:10169:T/C/G
1	10482	rs1307108837	G	A	.	.	TOPMED=2.38910e-05,2.38910e-05;OLD_MULTIALLELIC=1:10482:G/A/C
1	10482	rs1307108837	G	C	.	.	TOPMED=2.38910e-05,2.38910e-05;OLD_MULTIALLELIC=1:10482:G/A/C
What am I doing wrong? Thanks!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/atks/vt/issues/111, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPY5OLXK2XLEYJV6I6LBEDRP4EO5ANCNFSM4MY7XEMA
.

Thank you!


Investigate DLRM mxr file seg faults

DLRM failures were due to limitation of msgpack that it can not store larger than 4GB binary blobs. Need to handle such cases inside MIGraphX as a feature.


options: Default to RT pipelines on RADV

This roughly triples performance in Portal RTX with RADV from my testing using dxvk.conf overrides.
Note that because this fork's build system isn't compatible with Linux anymore, I haven't been able to build/test this properly. It's not a very complex change though, so it should work.

Did you try setting the Direct Integration ray tracing mode at all on RADV?

I did, it interestingly performed a bit worse.

It is curious though that RADV would work better with TraceRay like this given AMD hardware is more set up to work better with RayQueries (no dedicated traversal units, but maybe it just has something to do with how the shader is being compiled).

Correct. The actual hardware is not the only thing that matters, the shader compilation matters quite a bit here too: In the inlined case, cache hitrates (especially instruction cache hitrates) are considerably worse.
It sort of makes sense if you think about it: Ray traversal consists of calling a lot of things conditionally (any hit shaders only in case of potential hits, closest hit shaders only if the hit is confirmed, etc.). If you inline the function, then skipping the call becomes jumping all the way across the (potentially large) function definition, often guaranteeing an icache miss. OTOH, with RT pipelines, you just jump over a few instructions performing a call. From a quick look at profiling data, I'd guess considerations like this at least play a part in why ray queries turn out slower here.

Hey again, I'll push this PR through our process to get it merged in since I think it's a fine enough change. Can you update it though to add yourself to the Contributors section here though:
https://github.com/NVIDIAGameWorks/dxvk-remix/blob/main/src/dxvk/imgui/dxvk_imgui_about.cpp#L93
Thanks.

Done.

This should be merged now as of https://github.com/NVIDIAGameWorks/dxvk-remix/commit/899497610ec6345fe65f6cf1eb436f276bb45356.
I added one small commit on top of it to fix some slight formatting issues (some tab/space indentation mixing and missing braces on the if statement).
Closing this now that it's merged.


chore: add kafka connector for dev env

Gravitee.io Automatic Deployment
📚 View the storybook of this branch here

Gravitee.io Automatic Deployment
Congrats, all the CI steps were 🟢 . The Bot was able to deploy the build of this PR, so you can now try it directly here! 🚀
Notes: The deployed app is linked to the management API of the Element Zero team's environment.


feat: Add capture functions which takes fingerprint as parameter

raven-go did not support providing specified fingerprint which will be included in the packet that will be sent to the Sentry server. 6da7a07 introduces some new capturing functions that goes with the existing ones side-by-side, which takes fingerprint parameter.
This fixes #231.

This is my very first attempt to make a contribution to an open source project, so please let me know if there's anything that does not meet the requirements.

That's too much of a change for me to review right now, as I'm working on https://github.com/getsentry/sentry-go/ which already has this feature :)


An inside burn with the outside end actually on the boundary of the closed cut are not considered inside. If point 2, isn't addressed, we should add a small (0.5mm?) margin to the outside of the closed cut to check whether a burn path is inside.
A non-closed cut or any other type of burn which crosses the closed cut should be considered inside so that it gets burned before the piece drops out. To avoid difficulties with two closed path cuts which cross, where deciding which is inside which is ambiguous, you should probably only check for closed cuts being entirely inside other closed cuts.

Cuts not treated inside.svg

I fail to see the issue in your file. Which part of the burn are you referring to?

It may depend on Execute settings - I use Group Inner Burns and the short red open line inside the outside closed path are cut at the very end with Group Inner Burns set rather than being cut before each of the outer curves.

A non-closed cut or any other type of burn which crosses the closed cut should be considered inside so that it gets burned before the piece drops out. To avoid difficulties with two closed path cuts which cross, where deciding which is inside which is ambiguous, you should probably only check for closed cuts being entirely inside other closed cuts.

This actually gets notably harder to detect because it would also hold true for any line segments which do not have a point within the shape. Picture a circle with two line segments going entirely across the circle with no vertexes inside that.

You actually would need to check a variety of line segments whether they were ever inside another line segment. It wouldn't be enough to merely detect whether or not a bit of path ever had a point inside another closed path. And really this ambiguity applies to closed paths too.

Here we have three closed paths, none of which could be burned in their entirety if we are going to burn them in drop order. To do this we would need to use the O(N²/log(n)) Bentley-Ottmann algorithm. Which would really only apply to line segments though we could use Zingl-Bresenham rendering to create these line segments out of our curves (assuming we're not using something like gcode that could allow us to use circular arcs directly and thus not need the linerization, but any-way I digress). We'd need to find all line intersections and which of these chopped segments are contained within other segments.  So we'd break the shapes down into the sorts of graphs that clipping algorithms use. We could probably use the same sort of scanline work we did with Bentley-Ottmann (find all line intersections between all lines we have here) to solve for the insideness of the particular segments. This actually is somewhat how the current insideness routine works. It does a scanline system to determine whether if all the points of a particular shape are inside another shape. And the non-closed shapes and the closed shapes would need to be potentially broken up in weird ways.
And this is seemingly to cover a somewhat rare issue that actually should not come up that often.

Fun quirk, the second example there can actually be solved there in a single path as one would assume from the clearly Eulerian nature of the nodes, however it can't be solved if you start from any of the three inner-most vertexes, which would expect given you need to cut the center bit first. You actually must start at any of the 3 outer-most vertexes.
I don't quite see how that would be easily solved. I guess 2-Opt with constraints might be able to solve that, but this stuff gets pretty deep in graph theory.
--- My official recommendation for this problem is not to fix it. It's one of those nagging edge conditions like cutting a circle inside a raster. If you order that correctly the raster which has bounds entirely outside the circle is filled and actually occupies all parts of that circle. So the correct order is raster then cut, but it's kind of hard to detect that situation.

I accept that there are some topologies that are not easy to solve - but that does not mean that the cases described in this issue should not be addressed.

I also have an issue with outer cuts "falling out" before the inner cuts are made.  If outer cuts cause a fall, the inner cuts may be out of focus and may not cut clean.
Maybe part of Optimise to try to find the innermost cuts and work out so that when objects drop/fall, nothing needs to be cut/rastered onto the part that dropped. That test may be easier, find the innermost and work outwards vs out to in...

The horizontal lines are overlapping the outer shape by just so much. If I add a tiny tolerance to the algorithm to establish the 'inside', then it would be properly optimised.

So the question is whether that would not make sense to apply as a general algorithm (maybe device dependent).

That should be properly addressed with the 'Burn Inner First' optimisation potentials.

Partially addressed in https://github.com/meerk40t/meerk40t/pull/1470. Partially as it does not fully cover all cases, but the 'culprit' case mentioned would effectively be covered


(FACT-2881) Exclude nil custom facts from Facter API

Exclude custom fact with nil value from to_user_output, values and to_hash ruby API's.

Jenkins please test this


Add reimbursement infomation on application detail

What this PR does / Why we need it
Self explanatory
Some questions

[x] I have read the contributing guidelines
[x] I abide by this repository Code of Conduct
[x] I understand that my PR won't be merged until Travis gives a "green light"

abandoning this as it requires rebase from master and I dont have time for it atm


Do not start controllers for legacy features if not needed

Many of the legacy features (logging v1, monitoring v1, etc) negatively impact performance because they are watching downstream resources in clusters cause addition bandwidth to be used. We would like to start the controllers for the downstream clusters (which we refer to as "user controllers") only if the legacy feature is in use.

The following controllers will be deferred

[ ] certexpiration
[ ] clusterauthtoken
[ ] networkpolicy
[ ] alert
[ ] approuter
[ ] cis
[ ] globaldns
[ ] pspdelete
[ ] helm
[ ] logging
[ ] monitoring
[ ] pipeline
[ ] systemimage

We should also test an upgrade path where if the feature is enabled in an older version, then it continues to be usable in the upgraded Rancher.

Legacy controllers deferral validation summary:

Created separate HA Rancher setups on 2.6.2 and 2.6.3 (using rke)
Installed monitoring v2 chart on both setups
i. Setup components needed for outputting controller/handler metrics (https://github.com/rancher/rancher/wiki/How-to-setup-prometheus-dashboard-for-controllers)
Collected Controller-Handler Execution Frequency and Controller Execution Total metrics for 2.6.2 and 2.6.3 (before enabling legacy features)
i. Note that for 2.6.3 (on k8s v1.21+) various v1 features are not enable-able by default and so some deferred controller-handlers are not present yet (logging, globaldns, etc).
ii. Note that the overall number of controller-handlers is vastly reduced on 2.6.3. 234 controller-handlers on 2.6.2 vs 143 controller-handlers on 2.6.3
Enabled each legacy feature (listed here) one-by-one and monitored for relevant controller-handlers
i. Note that some legacy features (monitoring, logging, global-dns) were enabled via the v3 API as they were not enable-able via the UI
Collected Controller-Handler Execution Frequency and Controller Execution Total metrics for 2.6.2 and 2.6.3 again (after all legacy features were enabled)
Verified that new controller-handler(s) for each legacy feature exist on 2.6.3. Verified that the relevant legacy feature controller-handlers were always available on 2.6.2

Notes:

Tested on 2.6.2 and 2.6.3
Tested an upgrade path from 2.6.2 -> 2.6.3-rc5
Each time Controller metrics were collected they were exported to excel files for 2.6.2 and 2.6.3

Upgrade path validation summary:

Using the same 2.6.2 setup from above, helm upgrade rancher to 2.6.3-rc5
Wait for rancher pods to become active
Edit the previously-created Rancher ServiceMonitor (created to enable controller metrics) and update the "rancher-" label selector to re-enable controller metrics gathering
Collected Controller-Handler Execution Frequency and Controller Execution Total metrics on 2.6.2 and verified that the controller-handlers for the previously enabled legacy features are still present
i. The new "-deferred" controller-handlers should be present in addition to the legacy feature controllers that were already present


Add tests with SimonSapin/css-parsing-tests

Let's see whether we can convert the tests from https://github.com/SimonSapin/css-parsing-tests into unit tests.

Yes, good idea!


A home for dead jobs and retry limit

A common use case we have is creating jobs for external APIs. Upon repeated failure (failing a certain number of times) stick the job in a list of jobs that an admin needs to look at.
For example:
addjob emailnotify "info here" 0 retry 120 retrylimit 5 failure emailnotifydead
So if a job fails to ack 5 times, either through timeout or being re-enqued, it should go to the failure queue for an admin to look at if provided.
Awesome work, Antirez!

Hello @fritzy, I understand the use case for this, and there is a symmetrical feature in Amazon SQS for example, but at the same time there is no global retry counter being Disque distributed. This problem could be kinda fixed by using a non perfect counter in each node that uses QUEUED messages in order to take the counter updated. However there is another problem due to the distributed nature of Disque, we also need to coordinate nodes so that usually we get just a dead letter for each job that was not able to be processed, otherwise all the nodes having a copy may put the job into the dead letter queue multiple times.
This also seems to be kinda solvable using some protocol that does not ensure unicity but that approximates it. Basically it is not a trivial problem, but with some design we may find ways to solve it.
A few more thoughts:

This means to enlarge the job structure even more, it's already 120 bytes.
Maybe to specify the queue name for dead letters explicitly is not strictly needed? We may just prefix the queue name with something like dead_letter:queue_name. Not sure about that, saves memory but is less flexible, maybe some user may want all the dead letters to go into the same queue.
It is possible to address this in a much more memory efficient way at the cost of other things: we are going to have an iterator to iterate jobs given specific attributes. We may ask to iterate all the jobs inside the node where the approximated_retry_attempt is greater than N. However this makes the problem a per node problem, while all the rest of the Disque API is distributed and not linked to a specific node, so I'm not a big fan of this.
The obvious counter argument for this feature is that this should be up to workers: when they can't process a job they may add a dead letter themselves for people to inspect. This is how Resque works I guess? However this means certain kinds of failures are harder to catch, for example the worker crashing as soon as it starts to process a given message, without having a chance to send a dead letter.

No clear ideas here in my side :-) Need to think / work on this more time. Any feedback?

Three thoughts:
Generated names are fine.
NSQ allows you to listen for requeue events (I believe). If you could do this, a watcher process could manually move it elsewhere, assuming it could prevent a worker from picking it back up.
The accuracy of the counter isn't terribly important. Really we're just looking for a threshold of pain -- this job is not likely to succeed, so we pass it off somewhere else. So if we said 5 failures, and we didn't notice until 10 failures, it's a bit wasteful, and takes up resources, but the number of times itself isn't really that important.

Isn't one global dead job queue enough? It's up to workers to process dead jobs, and report them. Using disque as a "database" for dead jobs doesn't seem like a good idea. Even if it only means to sort them by the originating queue.
I think it could be solved by allowing to add metadata to each message, just as RabbitMQ does. We need it other usecases too. For example for failed jobs we want to add stacktrace and error name to the jobs and put it in dead jobs queue. At the same time we'd like to avoid modyfying body of the original job.

@fritzy @sheerun thanks for your comments. A few random arguments to keep the discussion going.

It's interesting to note that the dead letter could be implemented client side if we offer, via GETJOB, a way to fetch also this approximated "retry counter" so that the worker itself may add the job into the dead letter. The only issue I see with this compared to the other approach of handling this inside the server, is that if we have a failure where the worker immediately crashes once it tries to process the job, it will not be able to add the dead letter.
The Pub/Sub thing would be nice and extremely easy to implement, just a command where you listen for events like: job expired before being processed, job retry limit reached, ... However like any fire and forget thing it is not reliable. But, maybe it's not really needed to be reliable if we re-issue the event every time the job is re-queued with a retry count greater than the retry limit. Eventually some listener will notice. So this could be an option.

I'm a bit more biased towards the client-side solution if you think this could work, for reasons of simplicity of the Disque server and for the reasons @sheerun says: usually we want to augment the failed job with more information that the worker provides.
So a feature sketch for you to evaluate:

Take the approximated count of the number of times a job was reissued in some interesting way. Not super reliable during failures, but reasonably reliable otherwise would be cool. We can use the QUEUED or WILLQUEUE cluster message I guess or something like that.
Provide a GETJOB option to also fetch the retry count for the job, so that the worker can act ASAP if needed and post a dead letter.

Sounds good?

Don't get me wrong. I think putting dead jobs to dead job queue (or job_events queue described below) after timeout (no ack), is quite important. Without this there's no guarantee some jobs won't be dropped, because worker hang or didn't implement dead-job logic.
I think one clean solution would be to:

Not handle retry counts and disque level at all
Introduce unacknowledged / timout state for job.
Create some special job_events queue that both disque and clients can push to. Clients can subscribe to job events selectively in a pub/sub manner (e.g. on transition to unacknowledged)
Client can process events from job_events and re-schedule dead jobs as needed with increased re-try counter (stored in metadata). I still think introducing metadata to jobs is quite important.

On the other hand the body of jobs in job_events queue could serve as jobs metadata. Client's could read it and store somewhere if needed.

Closing this in favor of #68 in order to start a fresh discussion around a different design proposal. My top priority was to explore alternative designs giving the same practical features without to resort to actual dead letter implementation.


[BUG] Auction Values Not Populating

First of all, let me drop a quick note to say how awesome this website / tool is. I think it will do huge things for our league, so thanks a bunch for the work you've put into it.
Describe the bug
On the draft page our auction values don't populate. It simply says "$undefined" where the auction value should be.
Your League ID
League ID is<PHONE_NUMBER>68013824
To Reproduce
Steps to reproduce the behavior:

Go to Drafts page (on the deployed website)

Expected behavior
Was hoping to see the auction amounts paid for players.
Desktop (please complete the following information):

OS: [e.g. iOS] Windows
Browser [e.g. chrome, safari] Chrome

Here is the Vercel website: https://los-socios.vercel.app/drafts


No sorting for methods, properties etc.

When having a file like this:
class Foo:
    # simple methods
    def foo2(self):
        return self.foo1()

    def foo1(self):
        return 1

    # property
    def foo_prop2(self):
        return self.foo_prop1

    @property
    def foo_prop1(self):
        return 2

    # classmethod
    def foo_classmethod2(self):
        return self.foo_classmethod1()

    @classmethod
    def foo_classmethod1(cls):
        return 3

    # staticmethod
    def foo_static2(self):
        return self.foo_static1()

    @staticmethod
    def foo_static1():
        return 4

and running ssort --diff on it,
ssort doesn't modify the file at all (1 file was left unchanged).
I'd expect that all members of Foo class with suffix 1 to be sorted in the way they appear before the respective ones with suffix 2.
Am I missing something? I thought ssort was handling such cases 🤔.

Sorry for slow response.  ssort used to try to sort class methods and attributes topologically, but we found that this conflicted with automatic grouping based on type (attributes, constructors, special attributes, regular methods, etc) and so we stopped doing it.
At the file level, there aren't the same natural groups (except for maybe imports and if __name__ == "__main__":) and things tend to end up as graphs rather than a bag of methods that manipulate the same state.

(related discussion here: https://github.com/bwhmather/ssort/issues/11)

Closing as duplicate of #11


feat(timeseries-chart): add percentage threshold input control

SUMMARY
Implementation of the feature request  in issue #17281
The time-series chart controls have the option to set show values SHOW VALUE and stack the series STACK SERIES. When both are checked there is also the option to show only the series totals ONLY TOTAL but if you want to see all of the values in the stacks you can uncheck ONLY TOTAL.
When ONLY TOTAL is unchecked and the data that's being displayed have small or similar values, the chart labels can become cluttered and tend to sit on top of each other making them difficult to read.
The enhancement is to add an input where you can enter a minimum percentage threshold that would only display labels for values at or above the threshold.
There is an input just like this over in Pie Chart controls as mentioned and shown in the issue that is referenced at the top of this PR.

SHORT DESCRIPTION

Added a TextControl Input for the percentage threshold to the Time-series echarts controls
Added logic in transformProps to conditionally render the labels if above that threshold
Added props to the Time-series Chart storybook story to show these changes
Added some tests fortransformProps for the showValue, onlyTotal, and percentageThreshold props

DETAILED DESCRIPTION
Control Config:
There was already a configuration called showValueSection that holds the other controls mentioned so I added the new control to that.
I set the visibility to only be true if show_value is true, stack is true, and only_total is false. I also set the default to be 5% matching the control in the Pie Chart plugin because it seemed reasonable.
const percentageThresholdControl = {
  name: 'percentage_threshold',
  config: {
    type: 'TextControl',
    label: t('Percentage threshold'),
    renderTrigger: true,
    isFloat: true,
    default: 5,
    description: t(
      'Minimum threshold in percentage points for showing labels.',
    ),
    visibility: ({ controls }: ControlPanelsContainerProps) =>
      Boolean(controls?.show_value?.value) &&
      Boolean(controls?.stack?.value) &&
      Boolean(!controls?.only_total?.value),
  },
};

The showValueSection controls are used in these Time Series Charts.

Area - (Time-series Area Chart)
Bar - (Time-series Bar Chart v2)
Regular - (Time-series Chart)
Line - (Time-series Line Chart)
Stepped Line - (Time-series Stepped Line)
Smooth Line - (Time-series Smooth Line)

All of these charts appear to benefit from this and they all share the same transformProps which is where the logic for these controls exist.

The logic:
We grab the prop that is passed through transformProps by adding it to the list of variables deconstructed out of the formData prop.
Create an array matching the totalStackedValues array but with the calculated threshold value instead of the total.
    totalStackedValues.push(values);
    thresholdValues.push((percentageThreshold / 100) * values);

Pass that down to transformSeries when it is gets called on all the series. Then within that function go on down to where the onlyTotal prop is being checked
BEFORE:
        if (!stack || !onlyTotal || isSelectedLegend) {
            return formatter(numericValue);
        }
        if (seriesIndex === showValueIndexes[dataIndex]) {
          return formatter(totalStackedValues[dataIndex]);
        }
        return '';

Breaking it down super simply, this

returns the series values when NOT stacked or NOT set to show only totals
or
returns the series total when necessary
or
returns empty string

With our thresholdValues we can take separate out !onlyTotal. Then check if the value is greater than or equal to the matching threshold value and return the value or an empty string accordingly.
AFTER:
        if (!stack || isSelectedLegend) return formatter(numericValue);
        if (!onlyTotal) {
          if (numericValue >= thresholdValues[dataIndex]) {
            return formatter(numericValue);
          }
          return '';
        }
        if (seriesIndex === showValueIndexes[dataIndex]) {
          return formatter(totalStackedValues[dataIndex]);
        }
        return '';

Test cases
Added tests for transformProps to test whether props are being successfully transformed. I couldn't find tests for the other showValue controls so I added a couple for them because I was in the area.
Added test cases for:

'should show labels when showValue is true'
'should not show labels when showValue is false'
'should show only totals when onlyTotal is true'
'should show labels on values >= percentageThreshold if onlyTotal is false'
'should not apply percentage threshold when showValue is true and stack is false'

Another thing with the tests is that there were a few different TypeScript errors already in Timeseries/transformProps.test.ts so I did what I could to get them to calm down.

Moving Forward
I wanted to share more thoughts that I had on this feature but feel free to skip over this because it is just ideas.
The TextControl, which is an Antd Input component, works perfectly well but I would say that ideally, we wouldn't want to use a plain input for this control. A percentage can only be between 0 and 100 and the input allows the opportunity to put any numbers into but there isn't a built-in way to add a min and max.
We could add this to the TextControl but I am not the biggest fan of doing this because Antd has the InputNumber component that does have the ability to set a min and max number value. While InputNumber is used in some other places in other controls like with the Y axis bounds, it doesn't appear to have its own control component like the plain Input does with TextControl. I could be wrong about this and if I am please let me know because I would love to try and utilize it for this.
Antd InputNumber link
I also did a version of this with the SliderControl because it felt like it could be a good choice because it has a set range. I ended up deciding against suggesting it for now because it updates the state on onChange and that will update on every 'step' in between the starting number and where it ends. Those state updates rerender the chart and it happens a lot it which makes an unpleasantly sluggish experience.
I believe we could easily get around this by using the prop onAfterChange which is present on Antd slide. The component is currently only using onChange but it wouldn't be too hard to have it take the function passed to onChange and move it to onAfterChange if needed. We could do this by adding an optional boolean value called something like updateAfterChange and if that is true then change the function to run after the change. I haven't tested this so it might not be quite that simple.
I should probably note that onAfterChange runs after onmousup fires. So it would run when the user is done dragging the slider to the desired value and not for every value in between.
Antd Slider link
There is also another option that is shown in the examples on the Slider page where it uses both Slider and InputNumber at the same time while sharing the same state and min/maxes. I liked this one the best because it has both an input and a slider at the same time.
This would require a new control to be made that would combine the two as shown in the Antd Slider examples. I am not sure if this would be useful outside of the Pie Chart and the Time-series charts so it might not be worth making.
Final thoughts for percentage threshold control are:

Change the TextControl to be able to have a min-max value for numbers
Set up a control for InputNumber
Use SliderControl but have state update onAfterChange
Set up a conjoined Slider InputNumber control and use that

These are just ideas though and I am probably wrong about the way to implement them but I figured it wouldn't hurt to share.

BEFORE - BAR

AFTER - BAR

BEFORE - LINE

AFTER - LINE

Doesn't show when stacked is false

Doesn't show when stacked is true and only total is true

Shows when stacked is true and only total is false

---
TESTING INSTRUCTIONS

Open Superset and navigate to Charts
Open up a chart that once stacked would have tightly packed and similar values. I found that Rise & Fall of Video Game Consoles - Area Chart is a good starting place for this
Change the Visualization Type to be one of these: (I suggest Time-series Chart because you can switch between all)

Time-series Area Chart
Time-series Bar Chart v2
Time-series Chart
Time-series Line Chart
Time-series Stepped Line
Time-series Smooth Line

Make sure you have the groupby value set to something with a lot of values. If using Rise & Fall of Video Game Consoles you can leave it on platform or change it to publisher if you are feeling extra spicy
Click the Customize tab at the top and scroll to Chart Options
If you are using Time-series Chart I would suggest changing the Series Style to Bar
Check SHOW VALUE and STACK SERIES, then uncheck ONLY TOTAL
If all goes well you should see the PERCENTAGE THRESHOLD input appear with a value of 5

I would turn on DATA ZOOM too so you can get a better look at the values.
Other than that check it out however you see fit. Maybe check out all the charts mentioned above.
I found it most useful with the bar chart but it seems to be useful on all of them
ADDITIONAL INFORMATION

[x] Has associated issue:
[ ] Required feature flags:
[x] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[x] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up


Timeouts are hidden as "non-compliant scrape target sending blank Content-Type" error

What did you do?
run prometheus
What did you expect to see?
ts=2024-11-05T10:57:11.005Z caller=scrape.go:1406 level=debug component="scrape manager" scrape_pool=node2 target=http://<IP_ADDRESS>:9090/metrics msg="Scrape failed" err="Get "http://<IP_ADDRESS>:9090/metrics\": context deadline exceeded"
What did you see instead? Under which circumstances?
time=2024-11-05T11:53:49.900+01:00 level=ERROR source=scrape.go:1558 msg="Failed to determine correct type of scrape target." component="scrape manager" scrape_pool=node5 target=http://<IP_ADDRESS>:9090/metrics content_type="" fallback_media_type="" err="non-compliant scrape target sending blank Content-Type and no fallback_scrape_protocol specified for target"
System information
No response
Prometheus version
prometheus, version 3.0.0-beta.1 (branch: main, revision: 33a3aebfc4b9e98db3aca45e0b62e76f454dfde4)
  build user:       roidelapluie@nixos
  build date:       19800101-00:00:00
  go version:       go1.23.0
  platform:         linux/amd64
  tags:             netgo,builtinassets,stringlabels

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

upgrade from beta1 to rc0 brings this. a lot of spam in console. it's because of one target is not available (down), but it interprets as empty content-type header
time=2024-11-06T04:17:24.811+07:00 level=ERROR source=/app/scrape/scrape.go:1558 msg="Failed to determine correct type of scrape target."

Also, I didn't follow https://github.com/prometheus/prometheus/pull/15136 closely, but I think Prometheus' /metrics should lead the way and send the appropriate content header so users don't have to set fallback_scrape_protocol to its scrape definition.

Why is this tagged as 3.0 ? Do you believe it is a regression from 2.x ?

#15136 was a last minute breaking change added to 3.0 only.

~Also, I didn't follow #15136 closely, but I think Prometheus' /metrics should lead the way and send the appropriate content header so users don't have to set fallback_scrape_protocol to its scrape config.~ (Weird, I had such errors even when the target was reachable and I managed to get rid of them by setting fallback_scrape_protocol)

Do you have some details of the targets you were scraping to require the override?

~Also, I didn't follow #15136 closely, but I think Prometheus' /metrics should lead the way and send the appropriate content header so users don't have to set fallback_scrape_protocol to its scrape config.~ (Weird, I had such errors even when the target was reachable and I managed to get rid of them by setting fallback_scrape_protocol)

Do you have some details of the targets you were scraping to require the override?

Can't really say, maybe I was doing sth wrong, maybe that log was just hiding the real issue as this issue describes, I'll let you know if I get that again.

One can easily reproduce with the following configuration
- job_name: prometheus
  scrape_interval: 5s
  static_configs:
   - targets: ['doesnotexist.example.com']

The Prometheus logs show
time=2024-11-06T16:10:19.084+01:00 level=ERROR source=/home/simon/workspace/src/github.com/prometheus/prometheus/scrape/scrape.go:1558 msg="Failed to determine correct type of scrape target.
" component="scrape manager" scrape_pool=prometheus target=http://doesnotexist.example.com/metrics content_type="" fallback_media_type="" err="non-compliant scrape target sending blank Conte
nt-Type and no fallback_scrape_protocol specified for target"
time=2024-11-06T16:10:19.084+01:00 level=ERROR source=/home/simon/workspace/src/github.com/prometheus/prometheus/scrape/scrape.go:1558 msg="Failed to determine correct type of scrape target.
" component="scrape manager" scrape_pool=prometheus target=http://doesnotexist.example.com/metrics content_type="" fallback_media_type="" err="non-compliant scrape target sending blank Conte
nt-Type and no fallback_scrape_protocol specified for target"

I agree with @roidelapluie that the issue is at https://github.com/prometheus/prometheus/blob/37f3f3f2db95539a9c84242936018908ffb3dd50/scrape/scrape.go#L1437
In the case where the scraper couldn't connect to the target the contentType is always empty. And there are several places in scrape/scrape.go where we call append() with an empty contentType to insert stale markers.
https://github.com/prometheus/prometheus/blob/37f3f3f2db95539a9c84242936018908ffb3dd50/scrape/scrape.go#L1444
https://github.com/prometheus/prometheus/blob/37f3f3f2db95539a9c84242936018908ffb3dd50/scrape/scrape.go#L1523

I have a fix, just working on the tests. The fix stops logging any errors if the payload to sl.append() is empty, so it will continue to allow stale markers to be inserted without filling up the logs.

having the same problem when scraping ActiveMQ Artemis metrics

Same error on scraping yandex/odyssey
But I'm sure that this is not a timeout issue, because curl /metrics costs just around 50ms

the actual issue about timeouts fixed in 3.0.0-rc.1

Have same issue on 3.0.0. Opened a new issue #15485.


Overridden package's URL is incorrect.

The mysql-python package is manually overridden: https://github.com/brettcannon/caniusepython3/blob/master/caniusepython3/overrides.json#L18.
On the site however the link is not to https://pypi.python.org/pypi/mysqlclient, but to the old https://pypi.python.org/pypi/MySQL-python.

Thanks for bug report.
I just realized that this feature is not there yet i.e all packages have their original url, not overridden one. I am not sure if only replacing link is better way. I guess there has to be some way to indicate that said package Python 3 support is override and that link is to replacement.
This is discussed in old issue here #9


Endpoint::connect_lazy()  cause main thread panic

Bug Report
I tried to use tonic 0.8.3 to create client channel,  but thread main paniced when I invoke:
endpoint
.timeout(Duration::from_secs(5))
.keep_alive_timeout(Duration::from_secs(600))
.keep_alive_while_idle(true)
.connect_lazy();
error message: "no reactor running, must be called from the context of a tokio 1.x runtime". It seems that tokio version in my program was different from which tonic depend on, but my tokio verison in program was 1.25.0.
Version
cargo tree | grep tonic
├── tonic v0.8.3
└── tonic-build v0.8.4
cargo tree | grep tokio
│   │   ├── tokio v1.25.0
│   │   │   └── tokio-macros v1.8.2 (proc-macro)
│   │   ├── tokio-util v0.7.7
│   │   │   ├── tokio v1.25.0 ()
│   ├── tokio v1.25.0 ()
│   │   └── tokio v1.25.0 ()
│   │   └── tokio v1.25.0 ()
│   │   └── tokio v1.25.0 ()
│   │   │   ├── tokio v1.25.0 ()
│   │   │   └── tokio-util v0.7.7 ()
│   │   ├── tokio v1.25.0 ()
│   │   ├── tokio-util v0.7.7 ()
│   │   │   ├── tokio v1.25.0 ()
│   │   │   └── tokio-rustls v0.23.4
│   │   │       ├── tokio v1.25.0 ()
│   │   │   ├── tokio v1.25.0 ()
│   │   │   └── tokio-native-tls v0.3.1
│   │   │       └── tokio v1.25.0 ()
│   │   ├── tokio v1.25.0 ()
│   │   ├── tokio-native-tls v0.3.1 ()
│   │   ├── tokio-rustls v0.23.4 ()
│   │   ├── tokio-util v0.7.7 ()
│   ├── tokio v1.25.0 ()
├── tokio v1.25.0 ()
├── tokio-serde v0.8.0
├── tokio-util v0.7.7 ()
│   │   │   ├── tokio v1.25.0 ()
│   │   │   ├── tokio-util v0.7.7 ()
│   │   ├── tokio v1.25.0 ()
│   │   └── tokio-io-timeout v1.2.0
│   │       └── tokio v1.25.0 ()
│   ├── tokio v1.25.0 ()
│   ├── tokio-stream v0.1.12
│   │   └── tokio v1.25.0 ()
│   ├── tokio-util v0.7.7 ()
├── tokio v1.25.0 ()
Platform
Darwin MacBook-Pro-7.local 21.6.0 Darwin Kernel Version 21.6.0: Sat Jun 18 17:07:25 PDT 2022; root:xnu-8020.140.41~1/RELEASE_X86_64 x86_64
Description
print stack backstrace:
thread 'main' panicked at 'there is no reactor running, must be called from the context of a Tokio 1.x runtime', /Users/bytedance/.cargo/registry/src/github.com-1ecc6299db9ec823/tonic-0.8    .3/src/transport/service/executor.rs:15:9
7 stack backtrace:
8    0: rust_begin_unwind
9              at ./rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:575:5
10    1: core::panicking::panic_fmt
11              at ./rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/panicking.rs:64:14
12    2: core::panicking::panic_display
13              at ./rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/panicking.rs:135:5
14    3: tokio::runtime::scheduler::Handle::current
15              at ./Users/bytedance/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/scheduler/mod.rs:57:27
16    4: tokio::runtime::handle::Handle::current
17              at ./Users/bytedance/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/handle.rs:102:20
18    5: tokio::task::spawn::spawn_inner
19              at ./Users/bytedance/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/task/spawn.rs:184:22
20    6: tokio::task::spawn::spawn
21              at ./Users/bytedance/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/task/spawn.rs:171:13
22    7: <tonic::transport::service::executor::TokioExec as hyper::rt::Executor>::execute
23              at ./Users/bytedance/.cargo/registry/src/github.com-1ecc6299db9ec823/tonic-0.8.3/src/transport/service/executor.rs:15:9
24    8: <tonic::transport::service::executor::SharedExec as hyper::rt::Executor<core::pin::Pin<alloc::boxed::Box<dyn core::future::future::Future+Output = ()+core::marker::Send>>>>::execute
25              at ./Users/bytedance/.cargo/registry/src/github.com-1ecc6299db9ec823/tonic-0.8.3/src/transport/service/executor.rs:41:9
26    9: tonic::transport::channel::Channel::new
27              at ./Users/bytedance/.cargo/registry/src/github.com-1ecc6299db9ec823/tonic-0.8.3/src/transport/channel/mod.rs:162:9
28   10: tonic::transport::channel::endpoint::Endpoint::connect_lazy
29              at ./Users/bytedance/.cargo/registry/src/github.com-1ecc6299db9ec823/tonic-0.8.3/src/transport/channel/endpoint.rs:344:13
I've tried to use tonic 0.7.2 and other lower versions, and other lower tokio verisons(1.20.0, 1.24.1) as well, but doesn't work.

thread 'main' panicked at 'there is no reactor running, must be called from the context of a Tokio 1.x runtime',

This is a general tokio issue unrelated to tonic, it has to do with how you setup your code and it seems like maybe you're not running the code within any async context.

thread 'main' panicked at 'there is no reactor running, must be called from the context of a Tokio 1.x runtime',

This is a general tokio issue unrelated to tonic, it has to do with how you setup your code and it seems like maybe you're not running the code within any async context.

Yes, I'm trying to create a connect-lazy channel in a sync context, because there is only async connect function to use. According to the annotation, connect-lazy channel will actually invoke connect() when it is being used first time. Could you please tell me the reason that the connect_lazy() cannot be used in sync context?

You still need to invoke it in an async context since it needs to spawn stuff even if it doesn't connect right away.


Cursor style on hover #3938

Fixes: #3938 .
The cursor previously displayed a hand pointer when hovering over unused spaces in the message editing area. To address this, I adjusted the cursor value to 'default' within the message editing area. However, this resulted in the cursor appearing as an arrow when hovering over the user's name and avatar. To resolve this, I further modified the cursor value for the name and avatar to 'pointer' when hovered over.

Screenshots and screen captures:
screen-capture.webm

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Thanks for your work on this quite old issue, @sanchi-t!
Everything looks solid here to me, and it tests well, too.
A few small nits about your commit message:

Something like message_edit: would make a better prefix than css:; we like to make it easy for folks reading the log to figure out what areas of Zulip have been modified.
After that prefix, "Fix cursor style on hover in edit area." would give a bit more context still.
Finally, we generally use commit-message bodies to explain the why and how of a change, not the what (as that will be pretty obvious from inspecting the diff). For this commit, your Fixes: line is probably sufficient.

You're welcome to @-mention me when you've fixed that up, and I'll mark this for integration review.

Thank you for your feedback, @karlstolley. I'll ensure to improve my commit messages moving forward. I have already revised my latest commit.

Looks good! I'm marking for integration review, but note that things may not move along all that much until after January 1.

I changed the class name from 'sender_name_hovered' to 'sender_info_hovered' because it is more appropriate. This adjustment reflects the fact that hovering over both the avatar and username triggers the addition of this class to the '.message_row' element. The grep search result is provided below:

@timabbott I think the PR is ready for another review.

Merged, thanks @sanchi-t and @karlstolley!


Rename Rule one-declaration-per-line to single-line-per-property

Scss-lint has a rule called SingleLinePerProperty, which is functionally identical to our existing rule one-declaration-per-line. For the sake of consistency would it be worthwhile renaming the existing rule to match scss-lint's naming?
This caused some confusion when I opened #283 requesting the Scss-lint rule to be added after not finding an that named rule in sass-lint's rules, only to find it did exist, just named differently.
Related question: What is Sass-lint's stance on compatibility with scss-lint? Should it be trying to mimic all existing features to become a drop-in replacement or is scss-lint going forging it's own path? In either case should we attempt to share naming conventions where possible?

I specifically did not carry over the name syntax as it does not accurately describe what our rule enforces. While it enforces single line per property, it also (should) enforce single mixin per line and single variable per line, which are not properties but rather declarations.

We also have a slightly more declarative naming convention for our rules, which single-line-per-property wouldn't quite match

To answer your second question, we are aiming for feature parity, not config parity, while working towards the mental model of ESLint (small, discrete rules with few exceptions that are always strict unless a user specifically says otherwise) which may result in some minor changes between the way items are linted.

single-line-per-declaration would better match and at the same time be consistent naming with the single-line-per-selector rule. Either that or we should rename single-line-per-selector to one-selector-per-line, Personally I prefer the former.

We are not checking that a property only spans one line, like single-line-per-property suggests, but rather that there is only one property on a given line. The former is just ambiguous enough to cause problems, where the later is unambiguous.

On Oct 10, 2015, at 7:44 PM, Dan Purdy<EMAIL_ADDRESS>wrote:
single-line-per-declaration would better match and at the same time be consistent naming with the single-line-per-selector rule. Either that or we should rename single-line-per-selector to one-selector-per-line, Personally I prefer the former.
—
Reply to this email directly or view it on GitHub.

Yeah you're right, so do we think that the selector rule should be similarly named then? I mean I know they can't span multiple lines but the intention is the same?

Yah has that rule officially been released? If not, we should rename it before 1.3. If so, we need to keep it around and document that users should move to the new name as to not introduce a breaking change, and we can officially deprecate the old name in 2.0

On Oct 10, 2015, at 8:37 PM, Dan Purdy<EMAIL_ADDRESS>wrote:
Yeah you're right, so do we think that the selector rule should be similarly named then? I mean I know they can't span multiple lines but the intention is the same?
—
Reply to this email directly or view it on GitHub.

Yeah, I think it was part of 1.0. So do we duplicate the rule and have the previous rule also output a deprecation warning or do we just remove it's functionality but leave a warning that would always output when used but not actually report any other errors?

@DanPurdy Let's open a new issue to track this. Rename current rule and update as needed, use require to bring updated rule in to deprecated rule, and add a console.log non-blocking warning to the top of the deprecated rule file.


Enable Lint Rule: import-shadowing

Which problem is this PR solving?

Partial fix for #5506

Description of the changes

Enabled import-shadowing in revive linter.
Changed ambiguous attribute names.

How was this change tested?

make lint make test

Checklist

[x] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md
[x] I have signed all commits
[ ] I have added unit tests for the new functionality
[x] I have run lint and test steps successfully

for jaeger: make lint test

Hey @yurishkuro!
Can you take a look? thanks!

Thanks


Update Heroku configs

I want to merge this change because...

#11723

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[x] Privileged queries and mutations are guarded by proper permission checks
[x] Database queries are optimized and the number of queries is constant
[x] Database migration files are up to date
[x] The changes are tested
[x] GraphQL schema and type definitions are up to date
[x] Changes are mentioned in the changelog

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

@vitalii-bulyzhyn Thanks a lot for opening the PR!


geom_stats() not shown

On 01/30/2017 07:54 AM, Franziska Witzel wrote:

Hello!
Thank you very much for ggcyto!!!!
I have a flowset for which I have created a 1D rectangular gate, like this
posgate <- rectangleGate("FL4.A"=c(1e3,Inf),filterId = "pos")
Then I replicate this gate for each frame in my flowset.
posgates <- sapply(sampleNames(egfset), function(x) posgate)
I want to draw the data AND the gate AND also show the stats:
ggcyto(egfset,aes(x=FL4.A)) + geom_density() + geom_gate(posgates) +
geom_stats() + scale_x_flowJo_biexp()
However, the stats always get removed from view, as also indicated by the
warning (egfset contains 5 flow frames):
Removed 5 rows containing missing values (geom_label).
I saw that one other person had posted this issue on github and it was caused by NA
values in the data. However, firstly, I have not transformed my data when reading them in.
My frames contain a lot of zero values, but no negative values. The gate checks out "ok",
because it can be used for subsetting the data successfully. It is also drawn correctly with
geom_gate(posgates).
As I could not reproduce this problem with data from here:  data(GvHD), I guess it must be
related to my data. Do you have any other ideas/suggestions about what might cause this issue?

Indeed, your data somehow has exaggerated measurement range (compared to the actual data range).
> egfset[[1]]
flowFrame object 'A06_solventCt.fcs'
with 26461 cells and 14 observables:
      name  desc    range minRange maxRange
$P1  FSC.A FSC-A 16777216        0 16777215
$P2  SSC.A SSC-A 16777216        0 16777215
$P3  FL1.A FL1-A 16777216        0 16777215
$P4  FL2.A FL2-A 16777216        0 16777215
$P5  FL3.A FL3-A 16777216        0 16777215
$P6  FL4.A FL4-A 16777216        0 16777215

> range(egfset[[1]], type = "data")
       FSC.A   SSC.A FL1.A FL2.A FL3.A  FL4.A   FSC.H   SSC.H FL1.H FL2.H FL3.H  FL4.H Width Time
min  2326916  102522     0     0     0      0 1255702   95444    81     0     0    137    73  155
max 12826179 1992038 90881 36056 48274<PHONE_NUMBER>722 9188389 24631  8763 12380 296188   390 2344

geom_stats computes the stats location based on this instrument range by default, which is why you won't see it on the plot.
The solution is to explicitly supply the data_range with the correct values
rg <- range(egfset[[1]], type = "data")
p + geom_stats(data_range = rg)

Note that range(x, type = "data") method is only available in the latest flowCore 1.41.5 , if you don't want to update it,  you can do it manually:
rg <- data.frame(apply(exprs(egfset[[1]]), 2, range))

There was some debate on which range should be the default.  The actual data range is not always desirable when the extreme outlier events are present,  e.g.
autoplot(gs, "CD8") + ggcyto_par_set(limits = "data")

we have seen the case where the outliers are even more far left and Imagine instead of ellipseGate, if we have a rectangelGate here that is intended to cover the whole top left quadrant , using the actual data range will push the 2D density far right and stats label to far left thus the plots won't be visually helpful.
On 02/01/2017 01:04 AM, Franziska Witzel wrote:

Hi Mike!
Thank you for resolving this and posting the issue!
I guess it will help people after all because without
explanation of geom_stats' inner workings nobody
can find this issue (except by reading the code, I didn't
want to got that far :-)
I see that you added this to the documentation
of geom_stats(), that is great!
One remark about the "exaggerated" measurement range.
It is simply the instrument range of our flow-cytometer.
I have realised that this range is listed in the flow frames
INDEPENDENT of the actual data range. It is also not adjusted
after subsetting the data (egfset is the result after applying two
filters).
So this leads me to the following very kind(!) suggestion:
Either flowCore should be adapted to adjust the range slot
automatically OR geom_stats() should calculate the real data
range internally without need of the user to supply this.
I think, it would make things a lot easier. However, it is only
a suggestion and maybe there are other issues that make my
suggestions not feasible.


execute.if.score and execute.unless.score do not accept Scores directly

Duplicate of #172

Do note that it might be relatively complicated compared to the other duplicates of #172 to generalize this, since Scores are one argument while their primitive counterparts are two.

It's already done ;D


It's not a state, but still is import as recorded data

Andrew and Doug, if you read this, skip to last paragraph first.
We have had lots of conversations about states and how strict we should be with them. Totally get that we want to be scientifically accurate in what we call states. Also totally get that this is preventing us from recording other important information...so far.
One thing to consider is that PBot schemas are data entry tools, not treatises. Precedent has been set (MLA) that the schema tool is not as particular about recording states and non-state information. However, that doesn't mean we have to follow a loose precedent. So...
What if we use something like check boxes for non-state information such as not observed, not-applicable, indeterminate? Those node properties can be identified as not states in reports (based on their name) but still be gathered within the character state data for reporting.
One option is to have check boxes at the character level, in some cases only part of the state hierarchy can be observed while the fine detail is not observed. So we need to think this out. How can we implement "checkbox" in the Create character instance box universally--so all in one place/less work for Doug.
Areolation might be an example to think about. You're in the Create Character Instance: Areolation box. You can tell areolation is present, but have so little of it and can't pick a particular substate. Could the user select present and click the indeterminate "checkbox" which would be interpreted as reporting researcher confirms that areolation is present but detail below that is indeterminate on that specimen?
Feedback, other ideas? This issue needs to be addressed in the current implementation of PBot AFTER HackAThon, but in a way that won't drive Andrew and Doug batty :)

I am closing this as there have been many conversations and changes since this.  User testing and experience will likely guide whether we need to add more functionality for this in V2 or V3!


mockApi failing on WSL2

Describe the bug
It seems like mockApi is failing in a WSL2 windows 11 environment
To Reproduce

Workflow
name: Act Push Test 1
on: push
jobs:
  push1:
    runs-on: ubuntu-latest
    steps:
      - run: echo "push 1"
      - name: secrets
        run: echo $TEST1
        env:
          TEST1: ${{secrets.SECRET1}}
      - name: env
        run: echo $ENV1
      - name: pass
        run: echo "pass"
      - name: fail
        run: echo "fail" && exit 1

Code
Taken from act.test.ts
 test("run with proxy", async () => {
    const mockapi = new Mockapi({
      google: {
        baseUrl: "http://google.com",
        endpoints: {
          root: {
            get: {
              path: "/",
              method: "get",
              parameters: {
                query: [],
                path: [],
                body: [],
              },
            },
          },
        },
      },
    });

    const act = new Act();
    const output = await act.runJob("mock", {
      workflowFile: resources,
      mockApi: [
        mockapi.mock.google.root
          .get()
          .setResponse({ status: 200, data: "mock response" }),
      ],
    });
    expect(output).toStrictEqual([
      {
        name: "Main https api call",
        status: 0,
        output: expect.stringMatching(/<HTML><HEAD>.+/),
      },
      {
        name: "Main http api call",
        status: 0,
        output: "mock response",
      },
    ]);
  });

Expected behavior
Test should pass. Test passes in other linux environments
Logs
run › run with proxy

    expect(received).toStrictEqual(expected) // deep equality

    - Expected  - 7
    + Received  + 2

      Array [
        Object {
          "name": "Main https api call",
    -     "output": StringMatching /<HTML><HEAD>.+/,
    -     "status": 0,
    -   },
    -   Object {
    -     "name": "Main http api call",
    -     "output": "mock response",
    -     "status": 0,
    +     "output": "",
    +     "status": 1,
        },
      ]

      133 |       ],
      134 |     });
    > 135 |     expect(output).toStrictEqual([
          |                    ^
      136 |       {
      137 |         name: "Main https api call",
      138 |         status: 0,

      at Object.<anonymous> (test/unit/act/act.test.ts:135:20)

I am running in WSL with no issues


How to query subset of data

Apologies if this is outside the scope of this, but I'm attempting to port an application across from AngularJS to React and hoping there may be a solution here.
So my RTDB structure is set up as follows:
-customers
    -customer1
        -orders
            -key1:true
            -key2:true
            -key3:true

-orders
    -key1
    -key2
    -key3

Previously with AngularFire (for AngularJs) I could use the $extend functionality allowing me to return an array of Firebase objects with:
  var customerOrders = firebase.database().ref('customers/' + customerId + '/orders/');
  var orders = firebase.database().ref('orders');
  var OrdersList = $firebaseArray.$extend({
    $$added: function (snap) {
      return new Promise(function (resolve, reject) {
        $firebaseObject(orders.child(snap.key)).$loaded().then(function (orderData) {
          resolve(orderData);
        }).catch(reject);
      });
    }
  });
  return new OrdersList(customerOrders);

Hey @matthieunelmes
Just to confirm, are you basically looking to do:
-customers
    -customer1
        -orders
            -key1:true
            -key2:true
            -key3:true

Get the order ids for customer1, in this case -key1, -key2 and -key3. With your orders:
-orders
    -key1: order data...
    -key2
    -key3
    -keyX

Within your orders object, grab only the orders by keys which were noted above?
If so that should be doable - however in your example isn't that loading each order one by one?
Cheers

Yes that's correct. So as you say, return the orders for a specific customer.
I can't comment on how performant the AngularFire solution was, but it was great as it returned an array of Firebase snaps so you had the listeners attached.

This is fully untested and off the top of my head, but something like this should work. It makes use of useQueries.
Also still working through docs, but they're here for database: https://react-query-firebase.invertase.dev/database
Plan on reworking them but they should help understanding the below:
const customerId = 'customer1';

// Query the customer straight away:
const customerQuery = useDatabaseValue(["customer", customerId, "orders"], ref(db, `customers/${customerId}/orders`));

// Get the ids for the customer (or none if its loading)
const orderKeys = Object.keys(customerQuery.data ?? {});

// Query all order records, only once the customer data is available.
const ordersQueries = useQueries(orderKeys.map((orderId) => {
  return useDatabaseValue(
    ["customer", customerId, "orders", orderId],
    ref(db, `orders/${orderId}`),
    {},
    {
      enabled: customerQuery.isSuccess,
    }
  );
});

if (customerQuery.isLoading) {
  return 'Loading';
}

return (

    {ordersQueries.map((orderQuery) => {
      if (orderQuery.isLoading) {
        return
Loading order...
;
      }

      return
{orderQuery.data.id}

    })}

);

You'd get a hard loading state while the customer is loading, and then each order row will load once it's ready. Since we are using unique query keys too it'd work well for updating too.

Ok great! I'll do some tests and report back

Ah so there's a better way to do this thinking about it, and useQueries isn't great with TypeScript if you use that (see here).
We can just extract things out into their own components instead :)
function Orders() {
  const customerId = 'customer1';

  // Query the customer straight away:
  const customerQuery = useDatabaseValue(
    ["customer", customerId, "orders"],
    ref(db, `customers/${customerId}/orders`)
  );

  if (customerQuery.isLoading) {
    return 'Loading';
  }

  const orderIds = Object.keys(customerQuery.data);

  return (

      {orderIds.map((id) => (
        <Order key={id} customerId={customerId} orderId={id} />
      )}

  );
}

function Order({ customerId, orderId }) {
  const orderQuery = useDatabaseValue(
    ["customer", customerId, "orders", orderId],
    ref(db, `orders/${orderId}`
  );

  if (orderQuery.loading) {
    return
Loading order...

  }

  return
{orderQuery.data.id}

}

Ahhh, I don't think I'll get around to this tonight. Already hit and issue because react-query-firebase tried to resolve firebase/database but I'm using react-native-firebase.
Sorry my bad, should've mentioned I'm using react native

Ah no problem!


Nested variant can only match the first of the nested variants

I have a case where I am nesting variants. I discriminate first based on the type, and then for some nodes values, on the subtype. However, valibot fails on any subtype except the first one in the list.
Given this schema:
import { literal, number, object, parse, variant } from 'valibot'

const procedural = variant("subtype", [
  object({
    type: literal("procedural"),
    subtype: literal("cache"),
    depth: number(),
  }),
  object({
    type: literal("procedural"),
    subtype: literal("const"),
    value: number(),
  }),
]);

const layer = variant("type", [
  object({
    type: literal("circle"),
    radius: number(),
  }),
  object({
    type: literal("rect"),
    width: number(),
    height: number(),
  }),
  procedural,
]);

Using the procedural schema, I can match both of these:
parse(procedural, { type: "procedural", subtype: "cache", depth: 20 });
parse(procedural, { type: "procedural", subtype: "const", value: 11 });

However, using the wider layer schema, I can only match the first one.
parse(layer, { type: "procedural", subtype: "cache", depth: 20 });
// This one fails with a "Type error"
parse(layer, { type: "procedural", subtype: "const", value: 11 });

I think this behavior is currently intended. When I implemented variant, I assumed that no two options would use the same discriminator value. I will look into this and try to find a solution.

This is fixed in v0.25.0


Provide an HTTP server for local development preview

Perhaps http-server or live-server.
Related to https://github.com/ably/specification/issues/90.

I'd recommend serve


Add SVG arrow to CTA buttons

As seen in mockup.


Fix wrong notification on merge

This PR fixes the mail notification on a merge action, which was notified as "closed" instead of "merged".

Codecov Report

Merging #9450 into master will increase coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #9450      +/-   ##
==========================================
+ Coverage   41.51%   41.51%   +<.01%
==========================================
  Files         570      570
  Lines       74639    74639
==========================================
+ Hits        30983    30988       +5
+ Misses      39818    39810       -8
- Partials     3838     3841       +3

Impacted Files
Coverage Δ

modules/notification/mail/mail.go
22.38% <0%> (ø)
:arrow_up:

services/pull/temp_repo.go
31.62% <0%> (-2.57%)
:arrow_down:

services/mailer/mail.go
46.28% <0%> (+0.87%)
:arrow_up:

models/unit.go
67.56% <0%> (+5.4%)
:arrow_up:

modules/indexer/code/indexer.go
55.26% <0%> (+10.52%)
:arrow_up:

Continue to review full report at Codecov.

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


May i know the difference between the QII and Shapley values?

As we know that QII is quantitative input influence and similarly the shapley values state the same too, that is, the fair distribution of the gains and costs for each feature involved in decision making. So what is the difference between QII and shapley values then, are these both the same?

I would assume you are not meant to compare SHAP with QII, which could be found in great details here.
To my understanding, in the context of game theory, Shapley value refers to a sampling approach over permutation set to approximate the contribution of each agent i in the set of agents N. This can work assume you have a function f(.) that given a set of agents S \in N, one can know their reward/utility.
I would say QII is an adapted version of Shapley value in the Interpretable Machine Learning field. It does that by defining a way to encode the absence of feature (agent) i in an input and the utility function f(.):

Feature absence encoding: Instead of creating a new interpretable feature space as in LIME, QII can do directly on the original feature. They reason that the missing of a variable is equivalent to the average prediction of all possible values that that variable can take. For example, assume your input has two variables x_1 and x_2, each can have {1, 2, 3} as possible values. To compute how an ML model behaves with x_1 absent, it's equivalent to the average outcome of f(x_1=1, x_2), f(x_1=2, x_2), and f(x_1=3, x_2) combine.
Utility function: QII let you determine this function using the quantity of interest. Normally the predicted probability of the class of interest (cat/no cat in a cat classifier for example) is used, but not limited to. For this second point, due to its flexibility, I would say this is an extension.

Hope this helps.


Final UI Check

Master issue to cover any issues with UI during deployment

#131

https://hackernoon.com/low-effort-high-value-integration-tests-in-redux-apps-d3a590bd9fd5

Cypress could be a good option for end to end testing: https://www.cypress.io/
Or maybe TestCafe: https://devexpress.github.io/testcafe/

I asked around in the chat rooms to see what the general consensus was for E2E testing and pretty much everyone raved about Cypress. It's too bad they don't do cross browser testing.
For cross browser testing, it seems Selenium and/or Nightwatch are the most popular choices.


Cache/pre-compute series mappings between blocks

Comparing label sets is relatively expensive. The block design requires us to do a lot of those comparisons when merging series with the same label sets from different blocks.
This mostly affects range queries and gets more significant the more blocks a query spans. The performance penality becomes relatively stronger the more series are queried.
While blocks should generally stay independent, it should be possible to compute (and potentially persist) mappings of series IDs from different block, which could significantly speed up merges.
This will be particularly tricky for memory blocks where series constantly get added.

Benchmarks currently indicate no need for this.


having issues posting a contribution to afinn 111

fails the check but won't tell me why

Can you link to or I can't find it in the closed or open ones


chore(main): release svelte-fluent 0.7.0

:robot: I have created a release beep boop
0.7.0 (2023-07-17)
Features

add cjs build of rollup plugin for legacy rollup projects like sapper (74b49e8)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/nubolab-ffwd/svelte-fluent/releases/tag/svelte-fluent-v0.7.0 :sunflower:


sync main with dev

Purpose

Describe the problems, issues, or needs driving this feature/fix and include links to related issues in the following format: Resolves issue1, issue2, etc.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.3 out of 4 committers have signed the CLA.:white_check_mark: a5anka:white_check_mark: anupama-pathirage:white_check_mark: shaniR:x: udhanMtiYou have signed the CLA already but the status is still pending? Let us recheck it.


RUM-391 add networkInfoEnabled option in TraceConfiguration

What does this PR do?
Add a setNetworkInfoEnabled option in the TraceConfiguration used to enable the feature
Motivation
This is part of several PRs to allow enabling/disabling attaching network info in spans collected in an Android app

Codecov Report

:exclamation: No coverage uploaded for pull request base (xgouchet/RUM-391/0_trace_network_info@6e245fa). Click here to learn what that means.
The diff coverage is n/a.

@@                           Coverage Diff                            @@
##             xgouchet/RUM-391/0_trace_network_info    #1636   +/-   ##
========================================================================
  Coverage                                         ?   83.68%
========================================================================
  Files                                            ?      456
  Lines                                            ?    15715
  Branches                                         ?     2338
========================================================================
  Hits                                             ?    13150
  Misses                                           ?     1940
  Partials                                         ?      625


scrub unused UIDs from traits

As noted in #56 we don't use them anymore, but they still appear in the repo (and might cause confusion). So unless we need them for legacy reasons we should remove them.

@jamesdabbs can you think of any reason we need to keep UIDs on space/property pairs? They don't seem to be used anymore.

"Not breaking old bookmarks" is the only reason I can think of. At some
point we had a URL compatibility layer that would redirect traits/T...
from an old routing scheme to spaces/.../properties/.... I'm not entirely
sure if that's in the current version. If not, I'm all for trimming this.
If it is, I'm less sure. We could try to capture some analytics, but it
may just not be worth the trouble.
On Fri, Sep 11, 2020 at 10:45 AM Steven Clontz<EMAIL_ADDRESS>wrote:

@jamesdabbs https://github.com/jamesdabbs can you think of any reason
we need to keep UIDs on space/property pairs? They don't seem to be used
anymore.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pi-base/data/issues/58#issuecomment-691228550, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIHPZWREVMHGII75IV4VQ3SFJO3XANCNFSM4QQ3WV4A
.

I didn't check the viewer source, but I did try variations on /T000001 and /traits/T00001 on topology.pi-base.org and didn't seem to get anything but 404s. So it sounds like running a search on /spaces/*/properties/* and removing any uid: lines is reasonable.

@StevenClontz The work is now done.  You can close the issue.


Linux Enviroment Variable $env:ComputerName is missing

Steps to reproduce
In Windows OS PowerShell, type: $env:COMPUTERNAME or hostname.
Result = Earth
In Ubuntu Linux 16.04.1, type:
$env:computername   (of course it doesn't exist)
or
hostname
Result = orion
Expected behavior
In Linux to see the $env:computername variable and its value.
Is it possible to use the 'hostname' value to create the $env:COMPUTERNAME variable?
Actual behavior
$env:computername   (of course it doesn't exist)
or
hostname
Result = orion
See attached images

Environment data
Linux: Ubuntu 16.04.1 64bit

PS /home/maxt> $PSVersionTable
Name                           Value

PSVersion                      6.0.0-alpha
PSEdition                      Core
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   <IP_ADDRESS>
GitCommitId                    v6.0.0-alpha.10
CLRVersion
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

This is a special case of #1262

I'm going to close this as a duplicate.

Sounds Good! Thanks

if anybody find this via google. here what works for hostname and user on linux:  (tested on ps container image)
echo "My hostname is $([Environment]::Machinename) and My User $([Environment]::Username)"