Latest linux update broke Blackjack

Feb 09 03:44:22 evacbot bash[21662]: 0 03:44:22 Blackjack | Waiting for doan#0923's move Feb 09 03:45:17 evacbot bash[21662]: -1 03:45:17 ShardsCoordinator | StackExchange.Redis.RedisTimeoutException: Timeout performing LRANGE Mjc3Nzc4OD_shardstats, inst: 1, queue: 1, qu: 0, qs: 1, qc: 0, wr: 0, wq: 0, in: 0, ar: 0, clientNa Feb 09 03:45:17 evacbot bash[21662]:    at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor1 processor, ServerEndPoint server) in c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange
Feb 09 03:45:17 evacbot bash[21662]:    at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor1 processor, ServerEndPoint server) in c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange\Redis\RedisBase Feb 09 03:45:17 evacbot bash[21662]:    at StackExchange.Redis.RedisDatabase.ListRange(RedisKey key, Int64 start, Int64 stop, CommandFlags flags) in c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange\Redis\RedisDatabase.cs:lin Feb 09 03:45:17 evacbot bash[21662]:    at NadekoBot.Core.Services.ShardsCoordinator.<>c__DisplayClass15_0.<<RunAsync>b__1>d.MoveNext()
Here's what it looks like in Discord http://evac.gg/i/u9ub1.png

Restart your server and try again.

having same issue, on my server, if i use the .hit command, exception is thrown.
Process is terminating due to StackOverflowException.
Shard restarts after a few secionds.

Same issue after restarting VPS. .stand crashes the blackjack session.

Update. Blackjack has some serious issues, it's disabled in the latest update.

@Kwoth This is fixed, I assume?

Blackjack is enabled again.


Mounting a file share with a key containing a control character silently fails to mount

This is autogenerated. Please review and update as needed.
Describe the bug
Hello, we just solved an issue after hours of debugging with not being able to mount a file share using az container create.
The issue is that if your --azure-file-volume-account-key contains a control character like so <storage-key>\r, the container will be created as if the storage key was correct, however, it will hang in a Waiting state, and after a few minutes, you start getting FailedMountAzureFileVolume warnings.
If you remove the control character from <storage-key>, the mount will succeed as expected.
We hope you can fix this issue as it can lead to frustrating debugging sessions.
Command Name
az container create
Errors:
You get no errors on wrong storage key if the key contains a control character

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

STORAGE_KEY=123434\r
az container create --resource-group {} --name {} --image {} --location {} --ports {} --azure-file-volume-account-name {} --azure-file-volume-account-key $STORAGE_KEY --azure-file-volume-share-name {} --azure-file-volume-mount-path {} --registry-username {}

Expected Behavior
An error is raised on wrong storage key
Environment Summary
Windows-10-10.0.19041-SP0
Python 3.10.4
Installer:

azure-cli 2.37.0

Additional Context

@iSplasher Thank you for reaching out, we are looking into it.

I was using the command with bash using WSL. I'm not sure how the control character appeared but I remember copying and pasting commands spanning over multiple lines. I was also using an environment variable like below. The control character couldn't be seen with echo AZURE_FILE_KEY, only in the --debug log of the az command.
export AZURE_FILE_KEY="key\r"
az container create -g Issue22830 --name issue22830container --image mcr.microsoft.com/azuredocs/aci-helloworld --location eastus --azure-file-volume-account-name issue22830storage --azure-file-volume-account-key AZURE_FILE_KEY --azure-file-volume-share-name issue22830volume --azure-file-volume-mount-path /mnt/azfile

@iSplasher Let me try with WSL and get back to you.

Yes, I'm not sure how that control character ended up in my string, and I also fail to reproduce it. We can close this.


Improve error handling and providers

This work approaches a solution to #201 and #202.

Error handling is centralized into the Application rather than hidden away as part of the TwigServiceProvider.
Status codes from OAuthException are now reflected in all cases through conditional check for exception type.
Status codes from exception implementations of HttpExceptionInterface are now used when rendering JsonResponse on-error. (Note: Our exceptions are not currently implementing this yet. We have some work to do in organizing an exception hierarchy for consistency)
There are now three endpoint gateways for the API, OAuth and Web endpoints. I suggest that our current Http namespace begin to move towards that structure as a measure to clearly document entry-points to service layer.
Rather than pass around a big closure duplicated across gateways, RequestCleaner was introduced as an invokable that wraps HTMLPurifier for the purposes of recursively cleaning the Request object.

Miscellaneous:

Adjust some tests that relied on Twig environment variables being set. Because these are set in a before filter, the application must be run to execute callbacks. These are wrapped in an output buffer so that output is not rendered in middle of test-suite running. This whole problem goes away as we move controllers to being services with explicit dependencies as we will not need to boot the entire application.
Whitespace fix for PSR-2

Just more information; this work is done in preparation building a PHP client for the API that third-parties can take advantage of. This also helps shield them from changes to what honestly is an infant API. Specifically, this is formalizing error handling at the boundary of HTTP. I want to take this even a step further to formalize error handling at service boundaries. For example, current Sentry and OAuth identity providers CAN throw different sets of exceptions. This should be fixed in the future as the exceptions a unit throws is part of its public API and since they implement the same interface, that causes confusion.

Thanks @mdwheele


Add block header socket processing

Codecov Report

Merging #66 (e2ae232) into monitor (e8f8377) will decrease coverage by 0.47%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##           monitor      #66      +/-   ##
===========================================
- Coverage    58.86%   58.39%   -0.48%
===========================================
  Files          103      104       +1
  Lines         9408     9484      +76
===========================================
  Hits          5538     5538
- Misses        3506     3582      +76
  Partials       364      364

Flag
Coverage Δ

unittests
58.39% <0.00%> (-0.48%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

action_blockheader.go
0.00% <0.00%> (ø)

client_internal.go
83.00% <0.00%> (ø)

monitor_event_handler.go
0.00% <0.00%> (ø)

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 e8f8377...e2ae232. Read the comment docs.


FE-3: Radio Group Component

Purpose
Add a reusable Radio Group component for use with the walkthrough questions
Notes

I refactored the data a little bit after using it in the component. All values are strings now.
I tweaked some icons to make the more consistent
I added a new button variant for the glossary style since those will also be buttons that open the side model instead of links

Testing
I've added an example radio button component to the root page with all the other examples. It uses data being pulled in from the 9.9.9.json walkthrough file. It is unselected by default, but required, so if submit is pressed before selection it will show the error message.

@laurenrevere Done and done!

Build:
Device Info: Safari on Sanoma 14.4.1, Edge and Chrome on Windows 11, Safari on an iPhone 11 (OS 17.0.2), Samsung Internet on a Google Pixel 4 (Android 10)
Reviewed radio button for:

Design (!)
Voiceover (/)
Color Contrast (/)
Keyboard Navigation (/)

Observations/Notes:

When you navigate with the arrow keys, the selected value is changed. This is acceptable behaviour. (When you tab away from the input the last selected item stays selected.)
Do we have an example of how to add a background to a radio button as shown in the designs?

@laurenrevere I'm not 100% sure what you mean by adding a background like in the designs. Do you mean the hover state?
Screenshot of 3 states

Yes, that is what I meant. I was focusing so much on keyboard navigation that I missed it, Thanks.


new TUI doesnt allow pointer events

Verify canary release

[X] I verified that the issue exists in the latest Turborepo canary release.

Link to code that reproduces this issue
not necesary for this issue, just create a monorepo and run a task
What package manager are you using / does the bug impact?
npm, pnpm, Yarn v2/v3/v4 (node_modules linker only)
What operating system are you using?
Linux
Which canary version will you have in your reproduction?
2.0.2
Describe the Bug
If you have a monorepo with turborepo and next js, when you run turbo dev, you can't click the port that next js exposes for development, which makes it annoying.
same with errors: if your server throws an error, you cant select it with your mouse and paste it on google to search its solution.
Expected Behavior

[ ] allow text selection
[ ] allow click links

To Reproduce
create a monorepo
create a script
run turbo <script>
try to select text
Additional context
No response

Thanks for the report! Duplicate of #8372. Please upvote there so we can capture your interest on it. 👍


Inline comments don't render correctly

Comments only render when the line starts with the comment, but not if they are after code.

I'll give it a look when I have the free cycles, thanks for letting me know~


Cooldown on /hypixelverify

Feature description
Cooldown is way too long - have to wait after being told what to do to verify, in order to verify.
Alternative solutions

Decrease the cooldown.
Allow two or three attempts to verify before cooldown.

Additional context
I wrote all of this during this cooldown, that's just how long it is.

The cooldown of 10 minutes on the hypixelverify command is intentional and will not change. This is because the API we use to fetch the data from Hypixel caches your data for 10 minutes after it was accessed, so if you change anything within that timeframe the bot wouldn’t know because the data would be outdated.

Here's a suggestion then:
Use the official, uncached, Hypixel API just for this feature.

That is something I can consider since we don’t need any of the data transformations that slothpixel does, however we’d need to be careful not to hit ratelimits. You should open a different issue if you want to keep that tracked but I may end up doing it either way.


Can I get the header-one text from editor

Which i need to auto-gengrate the article's title
thx~

You want to iterate through the rawContentState.blocks to find the one with the type === 'header-one' I think!

You want to iterate through the rawContentState.blocks to find the one with the type === 'header-one' I think!

yeah! you are right. thank you very much!


module not found chatter bot

Please add the current directory to your python path for example in Linux OS export PYTHONPATH=$PYTHONPATH:.


Removing the term ECU Key

Per @plapczyn suggestion, I've used the term ECU Identity key rather than the less specific "ECU Key." This matches the re-naming suggested in PR #250 on the Standards Repo. When both of these PRs are approved, we can close Deployment Issue #139 .

@plapczyn Can you give a look and let me know if this is OK? Merging it puts us one step closer to closing out this issue.

@plapczyn  2nd call. Does this properly address your suggestions?

@jhdalek55 - This change will need to coincide with a change to the standard itself. We refer to an "ECU key" multiple times in the standard, however this is very confusing and we should try to clarify a better term. In the standard, there are some inconsistencies in the way we use the term. We say that the key can be symmetric, then talk about signatures. Honestly, I think we need to refactor the key usage and clearly describe the properties we are assuming for the keys. For instance, if we rely on a non-repudiation, we should not allow symmetric keys (or at least clarify that additional protections are needed when using these types of keys). It may be possible to configure the system with certain key flags to allow this property.


The meaning of "p1" and "p2" in the training log

Thank you for your excellent code, do "p1" and "p2" in the training log represent the values of "Protocol #1" (MPJPE) and "Protocol #2" (P-MPJPE) in the paper?

Yes~

Thank you for your generous answer！


Add html export for Slide deck template

Hi,
It would be useful (for me at least) to be able to export the HTML file corresponding to a Slide deck.
Thanks
Bérénice

Generally speaking, we need to think about the export features (markdown, html, pdf), whatever the template we are using.


OneDrive Service exception to create public link

OneDrive Service exception [This is an unexpected error from OneDrive, please report this at https://github.com/OneDrive/onedrive-sdk-android/issues]
Error code: Unable to parse error response message
Error message: Raw error: OneDriveOur services aren't available right nowWe're working to restore all services as soon as possible. Please check back soon.Ref A: 0C68BA1938FF4D3DB65BCDE6912A321E Ref B: 8DC3082A6678EEE90D22F6C350DFDF40 Ref C: Thu Jun 16 02:19:10 2016 PST
                                                                                POST https://api.onedrive.com/v1.0/drive/items/31A5A0FA7864B2D4!104/action.createLink
                                                                                X-RequestStats : SDK-Version=Android-v1.0
                                                                                Authorization : bearer EwCIAq1DBAAUGCCX[...]
                                                                                {"type":"edit"}

                                                                                503 : Service Unavailable
                                                                                X-MSEdge-Ref : Ref A: 0C68BA1938FF4D3DB65BCDE6912A321E Ref B: 0400DE712BCB7CF8EB88D8B4D8CC8F67 Ref C: Thu Jun 16 02:19:10 2016 PST
                                                                                Cache-Control : no-store
                                                                                X-Android-Sent-Millis :<PHONE_NUMBER>393
                                                                                Content-Type : text/html
                                                                                X-Android-Selected-Protocol : http/1.1
                                                                                Date : Thu, 16 Jun 2016 09:19:10 GMT
                                                                                Server : Microsoft-IIS/8.5
                                                                                Content-Length : 1001
                                                                                X-Android-Response-Source : NETWORK 503
                                                                                X-Android-Received-Millis :<PHONE_NUMBER>620
                                                                                [...]

                                                                                [Some information was truncated for brevity, enable debug logging for more details]
                                                                                com.onedrive.sdk.http.OneDriveFatalServiceException: [This is an unexpected error from OneDrive, please report this at https://github.com/OneDrive/onedrive-sdk-android/issues]
                                                                                Error code: Unable to parse error response message
                                                                                Error message: Raw error: <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><meta content='text/html; charset=utf-8' http-equiv='content-type'/><title>OneDrive</title>

Our services aren't available right now

We're working to restore all services as soon as possible. Please check back soon.

Ref A: 0C68BA1938FF4D3DB65BCDE6912A321E Ref B: 8DC3082A6678EEE90D22F6C350DFDF40 Ref C: Thu Jun 16 02:19:10 2016 PST

@gaurnagchauhan If you repeat the request do you still get the same error?  Looking at the inner error text, a 503 error is reported, which are typically transient based on network conditions.
Side note: It looks like you are using an older version of the SDK, you might want to upgrade to version 1.2.1+

@gaurnagchauhan Please reopen if this is still an issue


Open API typemapping model -clone method erroring after model creation

When we use typemapping to a known java class
example ---> Multipart= org.springframework.web.MultiPartfile.
The model or request Body where we use this typemapping ... The Open API generate model for them . In that processs it creates a clone method for the typemapping object and it errors out saying clone is of protected type . Please advice ..how we handle this .

This seems like a question that's related to a specific library, not directly OpenAPI. Please file an issue with the respective project instead.

No .. ron ... By default the open api is trying to provide public clone()
in the models ...If I type map any predefined java object ... It is failing
in compilation for clone() being protected in object.java
On Sun, Jul 11, 2021, 4:09 PM Ron @.***> wrote:

This seems like a question that's related to a specific library, not
directly OpenAPI. Please file an issue with the respective project instead.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/OAI/OpenAPI-Specification/issues/2647#issuecomment-877853976,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AT2YBVQIT223FV3ROBRBTD3TXH27TANCNFSM5AFLOKGA
.

No, OpenAPI is a specification, not a library. Any code impact you're experiencing is coming from a specific library you use within your code.
Since you're using Spring, there's a decent chance you're using Springfox. However, there are several other libraries you may be using. Find out which one, and check with them. We cannot help with any specific implementations here.


离线部署时在应用OCR识别时遇到问题。

由于项目要求，应用环境不允许联网，在部署TagUI时需要应用OCR功能，click 指令后跟图片文件，但启动tag文件时遇到错误。如图片所示。请问如何解决。

没有装JDK

Hi @shusukui how do you download and install TagUI? If you get from https://tagui.readthedocs.io/en/latest/setup.html it will have this file. But this error will show the first time it runs while it auto-configures SikuliX's dependency.
If you run and try to zip up tagui locally to copy to another PC you will get this error because that dependency is moved away by SikuliX. Try to copy using above original TagUI zip file.

Also tagging @woshizhoujiafu


Prevent dev browser from running client tests when headless browser is simulaneously

If I'm running in TEST_WATCH mode, while developing, my client tests are running in duplicate. I'd prefer the tests to only run in nightmare/phantomjs for consistency ( and be isolated in another process). This also affects any web reporter that eventually may be installed.
I guess there are two options:

Have a window global variable set for the headless browsers, and the client tests wait for it.

Or use a URL with query string, and have the client check the document href. There could be unexpected interactions with routers.

Either way it seems to require changes here and in dispatch:mocha

If you mean that they're running in the browser where you're developing, then that is probably a Meteor issue. Meteor runs the client tests automatically on startup when you load the app in any browser.

Yes that's what I'm referring to. I'm wondering if we could have a variable on both dispatch:mocha and aldeed:browser-tests which effectively skips the tests if your are not in the nightmare/phantomjs environment.

Should be possible. I'd just want to think carefully about whether there is any reason someone would want them also running in the browser. Since this would be an issue affecting all driver packages, it potentially should have a solution within the Meteor codebase. The relevant file is here: https://github.com/meteor/meteor/blob/devel/packages/meteor/test_environment.js
One simple backward compatible solution would be for the driver package to export a boolean shouldSkipTests in addition to the runTests function, and then we can check that in test_environment.js. @tmeasday might have an opinion.

True the patch should belong in meteor. Until then do you think it's workable to have an ENV variable to suppress running client tests outside of the intended headless browser? I can propose something if you think it's worthwhile.

@aldeed if the driver is deciding whether to export shouldSkipTests = true | false couldn't it just set runTests to a null function?

Or just runTests =  () { if (process.env.WHATEVER) return false; ... }?

@tmeasday Yes it could. I guess I was thinking there would be some benefit to standardizing behavior rather than every driver package implementing this slightly differently.
In general this use case isn't documented in the guide. The guide suggests running unit tests on a different port while developing, but I can't think of any reason why it wouldn't be OK to run app-tests while developing off the same process. If we add some guidance in the guide for the expected way to do this, then it will be easier for test driver packages to do what is expected. For example, in app test mode, maybe runTests should not be automatically run on startup by Meteor. Maybe the driver should have the flexibility to run tests automatically on CI but let the user call it manually when not in CI, with a button somewhere in their app or an extension.

@aldeed, another edge case related to this: running acceptance tests is not possible as-is. If you write an acceptance test (nightmare on server test suites), running it will open a browser window, which in turn will trigger client tests.  IMO client tests should only run when specifically called, not on any browser request.

@keyscores Do you mean *.app-tests.* acceptance tests that you run with meteor test --full-app? Why wouldn't you want those tests to kick off immediately?
If you have some other custom script running acceptance tests in nightmare, then you would be using normal meteor run to start the app and this package wouldn't be involved.
Technically client tests DO only run when specifically called. It's just that Meteor calls them immediately upon page load. We could get around that if we need to.

Regarding acceptance tests, yes currently I'm running nightmare in parallel
to a normal meteor run. But it would be convenient to run it in the same
process, on the server tests.
Regardless I think we should solve the issue of meteor triggering client
tests on every browser start. I vote for using a localstorage variable.
I don't foresee MDG making changes in the short term to meteor tests.
On Apr 10, 2017 3:26 AM, "Eric Dobbertin"<EMAIL_ADDRESS>wrote:

@keyscores https://github.com/keyscores Do you mean .app-tests.
acceptance tests that you run with meteor test --full-app? Why wouldn't
you want those tests to kick off immediately?
If you have some other custom script running acceptance tests in
nightmare, then you would be using normal meteor run to start the app and
this package wouldn't be involved.
Technically client tests DO only run when specifically called. It's just
that Meteor calls them immediately upon page load. We could get around that
if we need to.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aldeed/meteor-browser-tests/issues/2#issuecomment-292828885,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABTQLK2vunCbAevifNdIIPtdF6YCRtN-ks5ruYUygaJpZM4MHlVr
.

@keyscores ok, this isn't a development process I'm familiar with so maybe that's why I'm not understanding the reasoning. Is this what you're trying to do:

Run locally with meteor test --full-app in watch mode instead of meteor run
Make changes, having acceptance/integration tests rerun on the server when it changes, but only rerun on the client when you click a button?

Normally if I wanted tests to rerun while I'm developing, I would kick off a meteor run in one process and meteor test and/or meteor test --full-app with watch mode in separate processes, running on different ports.
I agree it might be handy to have meteor run flags like --unit-tests and --app-tests which would additionally rerun those tests so that you don't have to start up multiple processes. We'd have to work with MDG on that. I think ideally tests would be served on a separate port automatically.
In the short term we can have client tests not run on startup, but I'm still not sure how you envision someone starting them.

Let me try to clarify.

Run locally with meteor test --full-app in watch mode instead of meteor
run
Make changes, having acceptance/integration tests rerun on the server
AND ELECTRON when it changes. Never run in the dev's browser.

What I'm proposing is a replacement of practicalmeteor's interface.  The UI
is to give feedback as to the test state, and run/rerun tests/suites. Using
the command line args is workable (now that we have grep), but it's very
tedious for large apps with long rebuilds.
I have a working version of this, but I'm getting duplicate tests for the
client since it runs in electron and browser (the dev is using a browser to
control the test suite).
So, importantly, we can't have tests running in the dev's browser if it's
also running in electron (I see no use case for running client tests in the
dev's browser). All tests should be run in the target environment (server
in the meteor process, and client in the electron environment).
Lucas Geiger
On Mon, Apr 10, 2017 at 5:06 PM, Eric Dobbertin<EMAIL_ADDRESS>wrote:

@keyscores https://github.com/keyscores ok, this isn't a development
process I'm familiar with so maybe that's why I'm not understanding the
reasoning. Is this what you're trying to do:

Run locally with meteor test --full-app in watch mode instead of meteor
run
Make changes, having acceptance/integration tests rerun on the
server when it changes, but only rerun on the client when you click a
button?

Normally if I wanted tests to rerun while I'm developing, I would kick off
a meteor run in one process and meteor test and/or meteor test --full-app
with watch mode in separate processes, running on different ports.
I agree it might be handy to have meteor run flags like --unit-tests and
--app-tests which would additionally rerun those tests so that you don't
have to start up multiple processes. We'd have to work with MDG on that. I
think ideally tests would be served on a separate port automatically.
In the short term we can have client tests not run on startup, but I'm
still not sure how you envision someone starting them.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aldeed/meteor-browser-tests/issues/2#issuecomment-292978334,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABTQLKIWcnTtvnzoyfi5u-doujLATvIrks5rukWRgaJpZM4MHlVr
.

@keyscores For that scenario, I guess I don't know why you don't just run meteor test --full-app --port=3010 and meteor run at the same time in two separate windows.
When you say "other browsers not", what about the web reporter that we are adding? I'm just trying to figure out exactly how the client code would know when to run and when not to. Obviously we can kick it off manually for the headless options, but how does the user start the tests running after they load the page in a browser? In my experience it's much more common that you open the page in the browser and you DO want the tests to run.
I like your vision of combining the run and test commands more, but I'm worried that making it work well this way will break things for people with a different expectation.

@aldeed. This proposal only applies to testing using headless, so it shouldn't impact non-headless, (direct testing).
If we want the client tests to run in a controlled environment, usually Electron or Phantom, then having client tests also run in the dev's browser (Firefox, Opera, whatever) is unintended. As I see it, we don't have any control at the moment as to how and when the client tests run; they always run on startup.

what about the web reporter that we are adding?
In my design, headless-only mode, the webreporter should only report test results which ran in the controlled environment.

why you don't just run meteor test --full-app --port=3010 and meteor run at the same time in two separate windows.
The problem is still the same. The test reporter will show duplicate test results for client tests.
If the dev still wants to run two meteor instances on different ports that's fine, but would be redundant with the change proposed.


Integration of Health Checks with wait-for Not Honoring Container 'Healthy' Status

Background
The recent addition of health checks to Containerlab, implemented in Pull Request #1426, has been a significant advancement aligning Containerlab closer to Docker Compose's feature set. However, it has been observed that the wait-for: <containername> functionality is not fully integrating with these health checks, specifically, it does not wait for the container it is dependent on to reach a 'healthy' state before initiating.
Relation to Past Issues and Discussions
This behavior seems related to previous discussions which can be seen in:

Issue #1042 and Discussion #1048 regarding wait-for functionality for vrnetlab containers.
Issue #1027 on DependencyManager enhancement, where the difference between a container being 'readily configured' versus 'healthy' was brought up, and a redesign to allow the post-deploy phase to run per node was considered.

Current Problem
The wait-for mechanism proceeds with subsequent container startups without ensuring that the prior container has a 'healthy' status. This is inconsistent with the orchestration logic expected by users who are familiar with Docker Compose's health check dependencies.
Expected Behavior
It is anticipated that the wait-for flag would delay the startup of dependent containers until the preceding container is marked 'healthy' by the new health check system.
Steps to Reproduce

Implement health checks for container A.
Set up container B to include wait-for: A.
Start the Containerlab environment.
Notice that the initiation of container B is not delayed until container A reaches a 'healthy' state.

Impact
This issue undermines the reliability and predictability of container startup sequences in orchestrated environments, particularly where containers have explicit dependencies on the operational readiness of others.
Suggestion for Resolution
Revising the wait-for functionality to integrate a polling mechanism for health check status could provide a solution. This enhancement should consider the health check implementation details in PR #1426 and the insights from the related issues mentioned above.
Appreciating the team's efforts and looking forward to a collaborative resolution.

done in #1759, thanks @steiler !


Preserve comments in YAML/TOML in the Remarshal func

Do some string replacement
"# My comment" => "hugocomment = "My comment" => and back.
Ignore the last step for JSON (which does not support it).

For JSON, may be use a hack like shown here: https://stackoverflow.com/a/244858/1219634
..
"_hugo_comment": "My comment",
..

I'm interested in this, it would helpful for readers to view important annotation. I have a question is that is it possible preseve the comments and display it in-place?
foo:
  bar:
    fizz: buzz # annotation for fizz.

Remarshal to TOML.
[foo.bar]
fizz = "buzz" # annotation for fizz.

Yea, well, this needs to be supported by the upstream formats, and until that happens, I'll close this.


Android Studio Dart analyzer erroneously shows 'colors' property of LinearGradient class as non-existent

Android Studio Dart analyzer erroneously shows 'colors' property of LinearGradient class as non-existent.
Try to write something like
LinearGradient(colors: [Color(0xFFFF4F4F), Color(0xFFB454FF)])
and you will see the following error: "The named parameter 'colors' isn't defined."
At the same time CLI dart analyze doesn't include this error
Also autosuggest shows strange list of available fields

Version information

Flutter (Channel stable, 1.22.2, on Mac OS X 10.15.7 19H2, locale en-RU)
Dart SDK version: 2.10.2 (stable) (Tue Oct 13 15:50:27 2020 +0200) on "macos_x64"
IDEA Dart plugin 201.9002
IDEA Flutter plugin 50.0.2
IDEA AI-201.87<IP_ADDRESS>58069
2.10.2
AI-201.87<IP_ADDRESS>58069, JRE 1.8.0_242-release-1644-b3-6222593x64 JetBrains s.r.o, OS Mac OS X(x86_64) v10.15.7, screens 1440x900  Retina

For me, its the opposite behaviour. dartanalyze does report this incorrect error, but VScode doesnt raise it.

I suspect something thinks this is a null safe library, and something else thinks this is not a null safe library. So the parameters of LinearGradient are being read as

begin (with type AlignmentGeometry)
end (with type AlignmentGeometry)
List (with type required)

Closing as stale, since we now only support null-safe libraries; but please re-open if you can reproduce this with a recent version of Dart.


HIVE-23853: CRUD based compaction also should update ACID file version metadata

Made sure that the version metadata is update at file creation, and the version file is created.
Updated tests as well

Had to recreate the patch request, since I was not able to push my changes after manually merging stuff here :(
Please check https://github.com/apache/hive/pull/1259
Thanks!


Select button to submit with

Is there a way to select the button with which the browser submits the form?

If you use StatefulBrowser, then submit_selected has a btnName argument: https://github.com/hickford/MechanicalSoup/blob/master/mechanicalsoup/stateful_browser.py#L112
Otherwise, look at Form.choose_submit.
We don't really have a good doc (yet?), but testcases may help.

Does the message above answer the question? If so, please close the bug or ask me to do so. If not, please clarify what you need.

Sorry, didn't see that you answered. It does answer my question, the problem I was having in fact was that the form used a multipart data encription type, which doesn't seem to be supported by this library. I opened an issue with this: https://github.com/hickford/MechanicalSoup/issues/90. Closing this one!


A bit of documentation on task_set class would be nice

For example for the plot function

This documentation exists but does not appear on the webpage (see https://github.com/Continvvm/continuum/issues/105)

What about the in-code doc?


Improve relative and absolute path handling

Codecov Report

Merging #30 (257b610) into main (d80967e) will increase coverage by 1.54%.
The diff coverage is 82.00%.

@@            Coverage Diff             @@
##             main      #30      +/-   ##
==========================================
+ Coverage   66.77%   68.31%   +1.54%
==========================================
  Files           6        6
  Lines         313      344      +31
==========================================
+ Hits          209      235      +26
- Misses        104      109       +5

Impacted Files
Coverage Δ

flux_local/repo.py
0.00% <0.00%> (ø)

flux_local/kustomize.py
97.72% <95.00%> (+0.75%)
:arrow_up:

flux_local/command.py
97.29% <100.00%> (+1.46%)
:arrow_up:

flux_local/helm.py
90.47% <100.00%> (+0.47%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add Atomic Scheduler Master Lock

Make setting the scheduler master lock and setting the expiration atomic. The SET command allows passing both an expiration and specifying to only set if the key doesn't exist.
Fixes #281

Thank you so much!

released! https://github.com/taskrabbit/node-resque/releases/tag/v5.5.4


Yulif The Carpenter disappeared

So, was playing, and Yulif was building the cafe, and he got stuck on a block while trying to path. I hit him with an open hand because I couldn't get to him to push him out of the block, and he disappeared. he didn't respawn at the carpenter's house, and I can't even spawn him back in creatively. I go to place down the Yulif Spawn item, and nothing happens. So now i have no carpenter, and an unfinished cafe. using version 0.5.12 when he first disappeared, tried updating to 0.5.13, but he's still missing. do i need to build a new carpenter's house outside of the village or is there a command or something to recall Yulif?

 The npc spawning item should only fail if there's a yulif already around. Try the /hf npc command and see if he's listed. God knows why he randomly disappeared, i guess i should make the item always spawn him, I didn't before because you tended to end up spawning too.
NPCs are getting really annoying. I've got people reporting them disappointing and others saying they keep duplicating >.>, why can't they just work! D=  (never had either happen to me)

Found him! He had teleported to a cave right below the cafe. 20 blocks below the cafe, in fact, which is kinda a good thing, because I found a really cool cave system.

Hehe, glad you found him. Dunno why he teleported down but not back up.


AspNetClaimTypes not available

I noticed that the AspNetClaimTypes table is not available when trying to list all available.
Note that when setting up the IdentityServer4 with entity the follow will work with Identity, Operations and Persistants.
var builder = services.AddIdentityServer(options =>
                {
                    options.Events.RaiseErrorEvents = true;
                    options.Events.RaiseInformationEvents = true;
                    options.Events.RaiseFailureEvents = true;
                    options.Events.RaiseSuccessEvents = true;

                    options.UserInteraction = new UserInteractionOptions
                    {
                        LogoutUrl = "/Account/Logout",
                        LoginUrl = "/Account/Login",
                        LoginReturnUrlParameter = "returnUrl"
                    };
                })
                .AddAspNetIdentity<ApplicationUser>()
                 // this adds the config data from DB (clients, resources, CORS)
                 .AddConfigurationStore(options =>
                 {
                     options.ConfigureDbContext = b =>
                         b.UseSqlServer(connectionString,
                             sql => sql.MigrationsAssembly(migrationsAssembly));
                 })
                            // this adds the operational data from DB (codes, tokens, consents)
                .AddOperationalStore(options =>
                {
                    options.ConfigureDbContext = b =>
                        b.UseSqlServer(connectionString,
                            sql => sql.MigrationsAssembly(migrationsAssembly));

                    // this enables automatic token cleanup. this is optional.
                    options.EnableTokenCleanup = true;

                });

However, when dealing with getting access to all available ClaimsTypes within the database there is no real way to get what is currently added.  What are ways to access the currently added claims available for administrative purposes?
Or how does Identity Server maintain the list of Available Claims?

I noticed that the AspNetClaimTypes table is not available when trying to list all available.

I'm not sure what you mean. Which AspNetClaimTypes table are you referring to? I don't see one in the ASP.NET Identity code:
https://github.com/aspnet/AspNetCore/blob/master/src/Identity/EntityFrameworkCore/src/IdentityDbContext.cs
or
https://github.com/aspnet/AspNetCore/blob/master/src/Identity/EntityFrameworkCore/src/IdentityUserContext.cs

I was following the IdentityServer.Templates is4admin.  I am trying to mimic the functionality of the AdminUI and noticed that the list of ClaimsTypes actually refers to a table AspNetClaimTypes of the AspIDUser.db which is not in the DataMigration.

I'm unable to find the way IdentityServer gets the list of the ClaimTypes available for Scopes/Identity Resources.

That table is from the AdminUI product, not ASP.NET Identity. // @scottbrady91

Therefore,  I will create a table called "ClaimTypes" and change the IdentityClaims.Type to have a foreign key against the ClaimTypes.Name column.  Since, IdentityClaims only lists "IdentityResources"s available claims.
Thanks

AdminUI community edition only supports SQLite. If you want to use a different database we can set you up with a demo<EMAIL_ADDRESS>


Annotate packagegen/testdata/library.proto

Add proto annotations to packagegen's test library.proto. These changes won't directly be tested right now, but since we're moving to proto annotations, we might as well change library.proto now.

Codecov Report

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

@@            Coverage Diff            @@
##             master    #2264   +/-   ##
=========================================
  Coverage     86.75%   86.75%
  Complexity     5134     5134
=========================================
  Files           452      452
  Lines         20388    20388
  Branches       2189     2189
=========================================
  Hits          17687    17687
  Misses         1930     1930
  Partials        771      771

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 c057d4a...e5ddd25. Read the comment docs.


Setting page needs some icons for any cells

Setting page needs some icons for any cells.
I'll get them from the repo of Android.

http://www.easyicon.net/iconsearch/iconset:Dashel-icons/


feat(Dropdown): dropdown menu fixed positioning

PopperJS can position poppers in a "fixed" mode. I think this feature could be useful and it would be great to support it.

@Johann-S, I reworked it. Please, could you review it again?

LGTM 👍 Can you make a live demo please ?

@Johann-S, yep, here it is https://z6lr2rw3rx.codesandbox.io/. It is very simple.

@vepanimas: can you rebase one more time?

@Johann-S can you decide about this? I retargetted to master BTW.

Closing since the fork is deleted.


maps.me Link does not work iOS Chrome

To reproduce:
Use an iPhone, Google Chrome

open http://campaigns.hotosm.org/campaign/bc98b1f4d73c4b3fb2cc29c7bc5633b4
click the maps.me link
IS => nothing happens
SHOULD => open maps.me with file/link

It does work in iOS Safari.

This should be now fixed via #640. Button downloads a KML and opens in Maps.me (depending on mobile browser you're using, it might require you to choose to open in Maps.me).


⚠ Bofrost.es has degraded performance

In 4fe2357, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1740 ms

Resolved: Bofrost.es performance has improved in 67b8a87 after 9 minutes.


Updated docs about gym

Following the talk we had on twitter, I think this was crucial to me to start using the new ✨ gym action.
Added basic use documentation for gym action within Fastlane actions.

Thanks @JaviLorbada :+1:

Awesome! Keep the good work up! And really thanks for Faslane! 👌


UF-264 : TempFiles class for test utils

Something we quite often need. Simplifies the setup.
We could place this into a drools/jbpm test util module, but we do not have one. This functionality is usually needed when making real paths/uberfire projects for tests. I see myself committing utility classes for an Uberfire filesystem set up later, they will depend on this class.

Other than my comment above; +1 to merge.

@Rikkola We know have this: https://github.com/droolsjbpm/drools/tree/master/kie-test-util
..although I don't know if that's the type of module you meant?

Thanks @mrietveld had forgotten about that.
I could put this class there, but since I need this to make a helper class for testing Uberfire FileSystem it adds the dependency for Uberfire into drools. Based on this Uberfire is a better location.

Going to place this into guvnor for now.

I saw that Uberfire already has some sort of test util class for managing the file system.
This is mainly just used by other test util classes that make more sense in guvnor/kie-wb-common


can fine-tining with fast_lora_chat_v1_sunlight model?

can i fine-tine fast_lora_chat_v1_sunlight modle ?
https://huggingface.co/icybee/fast_lora_chat_v1_sunlight
with your train code
python3 finetune_fastchat.py \

I think so. It should be no problem.

thanks I try it


missing types

I want to use place.geometry.viewport and is not typed.
is there a type defined for it?

Refer below ticket
https://github.com/rajan-g/angular2-google-place-autocomplete/issues/32


Editor instead of Entry in AutoFormView

Hey there 👋
I'm just curious if there is some attribute to set input as editor?
I need to be Description as editor (need to be visually multiline and can input new lines)
I've got this. But DataType does not seems work ..
[Editor]
[DataType(DataType.MultilineText)]
[Display(Name = "Popis")]
[MaxLength(2048)]
public string Description { get; set; }

And this is how I'm calling it
ContactFormViewModel form = new ContactFormViewModel()
{
	FlatNumber = model.Contact.FlatNumber,
	FirstName = model.Contact.FirstName,
	LastName = model.Contact.LastName,
	Email = model.Contact.Email,
	Phone = model.Contact.Phone,
	BankNumber = model.Contact.BankNumber,
	Type = (ContactType)model.Contact.Type,
	Description = model.Contact.Description,
};

var result = await model.DialogService.DisplayFormViewAsync("Úprava kontaktu", form);

And lastly .. I sent u email, but I will try this way either. Can I build Discord server for you for your projects? I think it will be much easier to help with issues and communicate with your community 💪

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Both of you @TerminatedGA and @rphmauriciodev are reported 💪

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."

This is an experimental feature and we'll improve the usage, but for now it uses reflection, you can add some configuration to use different components:
MauiProgram.cs
builder.Services.Configure<AutoFormViewOptions>(options =>
{
    options.EditorMapping[typeof(string)] = (property, propertyNameFactory, source) =>
    {
        var propertyName = propertyNameFactory(property);

        var dataTypeAttribute = property.GetCustomAttribute<DataTypeAttribute>();

        if (dataTypeAttribute != null && dataTypeAttribute.DataType == DataType.MultilineText)
        {
            var textArea = new EditorField();
            textArea.SetBinding(EditorField.TextProperty, new Binding(propertyName, source: source));
            textArea.Title = propertyName;
        }

        var editor = new TextField();
        editor.Title = propertyName;
        editor.SetBinding(TextField.TextProperty, new Binding(property.Name, source: source));
        return editor;
    };
});

I'll enhance this experience, but currently you can configure it manually according to your requirements

Hey .. that works. But I have to append return textArea in if statemnet
And what about that Discord? Or is it pasé?

Yeah, I gorgot to  add return, my bad. 😀  I wrote it in github editor instead IDE.

And what about that Discord? Or is it pasé?
I answered your email, that would be nice 🎉

One more thing
I needed change this line
textArea.SetBinding(EditorField.TextProperty, new Binding(propertyName, source: source));

Change propertyName to propert.Name because the binding won't work well 💪

Final working code:
builder.Services.Configure<AutoFormViewOptions>(options =>
{
    options.EditorMapping[typeof(string)] = (property, propertyNameFactory, source) =>
    {
        var propertyName = propertyNameFactory(property);

        var dataTypeAttribute = property.GetCustomAttribute<DataTypeAttribute>();

        if (dataTypeAttribute != null && dataTypeAttribute.DataType == DataType.MultilineText)
        {
            var textArea = new EditorField();
            textArea.Title = propertyName;
            textArea.SetBinding(EditorField.TextProperty, new Binding(property.Name, source: source));
            return textArea;
        }

        var editor = new TextField();
        editor.Title = propertyName;
        editor.SetBinding(TextField.TextProperty, new Binding(property.Name, source: source));
        return editor;
    };
});

Thanks 🙏  I updated the first example again 👍


update Utils library

This is ok to merge

I think I should wait until enum -> string implementation, then I can test some extreme cases to make sure too


ENH: Create limitation on HDF5 queries such that users do not go over RAM

A small, complete example of the issue
Create a "max_size" parameter for HDFStore.select() which stops the user from executing queries over RAM limit, or any limit set by user. At the moment, if users try to create a pandas df from this query larger than RAM, the script simply freezes.
This issue was discussed on StackOverflow today:
http://stackoverflow.com/questions/39986786/how-to-limit-the-size-of-pandas-queries-on-hdf5-so-it-doesnt-go-over-ram-limit
To quote from the OP comments:
""
Let's say I try df = store.select('df',columns=['column1', 'column2'], where=['column1==5']) and it's larger than some limit in terms of RAM---if the limit is the limit set by the computer's hardward, the program will just freeze. Let's say I wanted to set an arbitrary limit, e.g. 4 GB. The HDF5 might be +TB or PB, so df could easily exceed RAM if a user were to query this object. What limitations could I put in place to stop "bad things" from happening? ""
# Your code here

Expected Output
Perhaps a warning could be thrown? A parameter should be set in HDFStore.select() which is a byte-size limit---over this limit, an error is thrown.
Output of pd.show_versions()
True for all versions.

# Paste the output here

and how exactly would you determine this a priori?

@jreback The use case I have in mind is either (1) distributing third-party software or (2) setting a "check" to stop myself from making queries that are too large.
In the first case, I make want to set the max_size parameter in the source code, at least say 2 GB. If that's too difficult to measure (and I think it might be), let's try by rows. max_size could be set to 10**9 rows default, larger or smaller by user-set parameter.
In case (2), it's the same logic. I may not know a priori how large my query will be on a 200 TB HDF5 file, but I don't want it to basically cause my python script to freeze. So, I set max_size equal to 10**6 rows.

I don't see much value in trying to a prior limit the query size - this would be up to the user. you can simply catch MemoryError.
otoh if you want to know how much you are going to select you can: http://pandas.pydata.org/pandas-docs/stable/io.html#advanced-queries - select_as_coordinates which gives you an indexer
though it would involve making multiple queries so generally no need to do this
finally you can do a selection and simply chunk the results - which can be sized to fit into memory
so this is a bit out of scope -   though if someone wanted to push a reasonable solution would prob take it


[vim] fix autoindent of S command

now it indents the line after the cursor

@mightyguava @heppe Anybody who actually knows vim want to review this?

This makes the vim bindings behave as if autoindent were set, which for editing code, is probably what most users will want.  It is also more consistent with what you get with other commands, such as 'o' (to start editing on the next line).  In the long run, I think we want to make this configurable with a :set command, but this is a step forward.
This looks good to merge.

Thanks for the review! And for the patch! Merged as ab78fe0


[Relax][Op] More new relax operators!

This PR adds:

relax.where (transform)
relax.less (tensor, binary)
relax.sigmoid (tensor, unary)
relax.nn.cross_entropy (nn)
relax.nn.softmax_cross_entropy (nn)

Tests about their creation and legalization are all passed.
PS: relax.where is a ternary broadcast op. Given that currently there is no good solution to do runtime shape inference, I leave this case and return RuntimeDepShape for now. Further discussions and solutions to this issue is needed.

Thanks for your careful reviewing!


Update theme and add new script to force bit-docs

Based on https://github.com/donejs/donejs/pull/825
Once the base PR is merged, I'll rebase this one to get a clean diff
cc: @chasenlehara

Coverage remained the same at 96.396% when pulling db1ed2a8754e6389c26e94c6d6b62c5bb2b3517b on m-mujica:update-theme into bc6abdc1e05ea4b15be562ab534d57b31c43bbfa on donejs:major.


Use CMD on Windows

On Windows there is no SHELL environment variable. Instead run the commands with CMD.

I was unaware of this issue, so I really appreciate your PR!


Instead of information about Union and Region it says Unknown

I did everything according to the instructions, as you indicated. After starting the game and loading it into my world, “Unknown” appears on my account in the “Union” and “Region” fields... I will attach the log file. How can I solve this problem? I did as stated in message #1 (“RPC - Everything show as “unknown”), but it didn’t help me. The error in the log itself is not the same.
log.txt
P.S. I completely deleted the "LocalStorage" folder, but it didn't help me: the next time I started the game it created a new folder and 2 new files, but the result in the "log" file was still the same

Sorry for the very late reply. I will have a look at this today.

I cannot seem to reproduce. I reinstalled WuWa and the RPC too and it seems to work. Are you sure you set the correct kuro games uid during setup?

Of course, I wrote it manually, and pasted it, copied it in the game, but the problem was not solved. I also tried installing the installer several times, and also cloned the repository, tried it many times - it didn’t help...

I would need to know what your LocalStorage files look like. Would you mind going through these steps?:

Install Sqlite
Go into the folder {Your Game Directory}/Wuthering Waves Game/Client/Saved/LocalStorage via the command line
For every file there run sqlite3 {The File Name}
Once in the sqlite command line run SELECT * FROM LocalStorage WHERE key = 'SdkLevelData'
Check if the result follows a format like this;

{
    "___MetaType___":"___Map___",
    "Content": [
        ["535414272", [
           {
                "Region": "Europe",
                "Level": 4
            }
        ]],
        ["536678859", [
            {
                "Region": "Europe",
                "Level": 3
            }
        ]],
        ["536789175", [
            {
                "Region": "Europe",
                "Level": 22
            }]
        ]
    ]
}

While you are at it, make sure the kuro games uid you pass during setup is somewhere in those results.


Fix: timing error that resulted in missing remoteId on peer when peer is added.

For some reason the remote-add event was submitted before the handshake. This is problematic as the remoteId doesn't exist at that point. This PR adds a test to check for the remoteId and fixes the test by adding the peer after the handshake.
I am not sure this is the best approach to this, but all the tests pass.

I just added commit 41ffa91 that comes with a sturdier solution:
Handshake may come often or never, depending in which state the stream is passed in. This means that .ready() should be triggered if a remoteId is available and only the first time that a handshake is submitted.
Multiple handshakes can technically update the remoteId. If the remoteId changes on update it is a good idea sending out a remote-update to identify the change in remote identification.
Not sure how to best explicitly test for those cases.


Instant crouch to Stand

I don't know if anyone has noticed but changing only controller height for crouching isn't a viable option.
The center of the controller should be changed for a smoothened crouch.
I searched on youtube and came along with this, you can watch that video at this link:
https://www.youtube.com/watch?v=Ksy42wRaaA4

Pull request was beyond scope of this request, rewriting all code in repo. Please feel free to use your own controller implementation in your own repo. A simple improved crouch integrated into existing code would have been preferred. I may revisit crouch when I have time and implement it in a way sympathetic to the existing code and ethos of this repo, based in single file implementation with a focus on simplicity, hackability, and as a learning resource for others struggling with input system controllers. For now I'll close this.

If that's the point, this line should work for a smooth crouch:
controller.center = new Vector3(0, controller.height/2, 0)
I haven't tested it but it should work just fine.
Goodbye.


add FAQ redirect rule

Description
This pr fix #18547, rewrite /versions/master/faq/ to /api/faq/
Changes

[x] Add temporary rewrite rule for FAQ

Comments

Preview: http://ec2-34-219-134-42.us-west-2.compute.amazonaws.com/

For testing:

http://ec2-34-219-134-42.us-west-2.compute.amazonaws.com/versions/master/faq/model_parallel_lstm.html
http://ec2-34-219-134-42.us-west-2.compute.amazonaws.com/versions/master/faq/multi_devices.html

@mxnet-bot run ci [unix-cpu]


Fix gh pages job

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1722

Relevant Lines:
1817

💛  - Coveralls


Add no_std support with optional alloc

When the alloc feature is disabled, very large words will cause a panic instead of an allocation on the heap, and the syllables::join method is disabled. Everything else works exactly the same.
The doc-tests can't use syllables::join anymore, so they are a bit noisier. itertools::assert_equal would help with this, if you are comfortable with adding that as a dev-dependency.
Future possibilities:

A function that returns an error instead of panicking
A way to configure the maximum word size with const generics

Thanks for taking a stab at this! If you don't mind me asking, do you actually have a use case for hyphenating on embedded or is this just general no-std-i-fication?

I don't personally have any no_std projects that need hyphenation (not yet anyway), I just thought it was interesting.

Thanks again!


dear Sir, I tried all the mentioned in issues, and the old, bug fix and mater, all the val_acc is not more than 0.2?

Hello Sir,
I have tried all the versions in your codes... and all the results are not more than 0.2.
Could you give some help...

@bdsaglam  deer sir, could you tell me which version is working?


fix(tests): Fix GKE version compatibility tests

Description
3.74 test removed (not supported on GKE)
https://issues.redhat.com/browse/ROX-18223
CORE_BPF collection used, to avoid eBPF download flakes on older versions
User-facing documentation
(must be 2 items and both must be checked)

[x] CHANGELOG update is not needed
[x] Documentation is not needed

Testing

[x] inspected CI results

Automated testing
(must be at least 1 item and all items must be checked)

[x] modified existing tests

How I validated my change
Based on failures: https://prow.ci.openshift.org/view/gs/test-platform-results/logs/branch-ci-stackrox-stackrox-release-4.5-merge-gke-version-compatibility-tests/1811048972521836544
And ticket posted above (3.74 only supported on OCP 3.11)

/test gke-version-compatibility-tests

/retest

/test gke-version-compatibility-tests

/retest
/test gke-version-compatibility-tests

/test gke-version-compatibility-tests

/retest
/test gke-version-compatibility-tests

/test gke-version-compatibility-tests

After much wrangling of tests, the gke-version-compatibility tests are now passing with NO_COLLECTION on 3.74. There are some caveats:

ProcessBaselineTests and RuntimeViolationLifecycleTests are skipped (any time the collection method is NO_COLLECTION), because they rely on Collectors for their testing.
Collector metrics are not collected for the 3.74 test since the collectors don't exist (even if the pods do)
part of the stackrox installation for testing has been modified so that it does not attempt to confirm the collectors are up and communicating with sensor

@Stringy thanks for nicely summarizing the changes.
My present question would be this. Let's say we have the support exception approved with conditions that we offer the customer use 3.74 with KERNEL_MODULE collection initially. It will be desirable to make ProcessBaselineTests and RuntimeViolationLifecycleTests work again so we make sure the runtime parts do not regress. Who would own and follow-up on this?

Who would own and follow-up on this?

@stackrox/collector-team I think. For this to work we'd have to implement your suggested alternatives, by either enabling kernel module collection in these tests, but with a pinned GKE version, or set up an OCP cluster and replicate these compatibility tests (ideally, a 3.11 secured cluster, and a newer/modern version for central, to replicate the customer's environment, but I'm not sure how possible this is)

/test gke-version-compatibility-tests

/test gke-version-compatibility-tests

Merging now based on successful gke-version-compatibilty-test


AXI_LITE BFM configuration record changed

With 2020.10.06 the AXILITE BFM configuration has changed. The protection_setting (now t_axprot) fields have changed.
The axilite_bfm_Quickref has not been updated to reflect this.
BTW changes like this should be considered carefully. I just went through my entire development system updating and checking the last set of changes to this. Now it has to be done again.

Hi,
I had to check with the developer what these changes were and I was told they were done because of naming typos and to correct values that were not according to the standard.
Unfortunately these changes was not mentioned in the CHANGES.TXT or updated in the quick reference, nor catched in release process. I have made a ticket to ensure that the quick reference is updated with the next release.
We always try to make the changes backwards compatible, but unfortunately this one slipped through.
Best regards,
Marius

Hi,
Thanks for the response and for all of the hard work that everybody has been doing on UVVM.
Steve

On Oct 23, 2020, at 3:58 AM, mariuselv<EMAIL_ADDRESS>wrote:
Hi,
I had to check with the developer what these changes were and I was told they were done because of naming typos and to correct values that were not according to the standard.
Unfortunately these changes was not mentioned in the CHANGES.TXT or updated in the quick reference, nor catched in release process. I have made a ticket to ensure that the quick reference is updated with the next release.
We always try to make the changes backwards compatible, but unfortunately this one slipped through.
Best regards,
Marius
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/UVVM/UVVM/issues/117#issuecomment-715118312, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHSD5TM43G6LDLEYIK254ULSMEZSVANCNFSM4S3ASPBQ.


[Bug] Mysterious Dimension Swapping in BEVFusion's TransfusionHead

Prerequisite

[X] I have searched Issues and Discussions but cannot get the expected help.
[X] I have read the FAQ documentation but cannot get the expected help.
[X] The bug has not been fixed in the latest version (dev-1.x) or latest version (dev-1.0).

Task
I have modified the scripts/configs, or I'm working on my own tasks/models/datasets.
Branch
main branch https://github.com/open-mmlab/mmdetection3d
Environment
sys.platform: linux
Python: 3.8.10 (default, Nov 22 2023, 10:22:35) [GCC 9.4.0]
CUDA available: True
MUSA available: False
numpy_random_seed:<PHONE_NUMBER>
GPU 0: NVIDIA GeForce RTX 3090
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 11.4, V11.4.152
GCC: x86_64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
PyTorch: 1.10.1+cu113
PyTorch compiling details: PyTorch built with:

GCC 7.3
C++ Version: 201402
Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
Intel(R) MKL-DNN v2.2.3 (Git Hash 7336ca9f055cf1bfa13efb658fe15dc9b41f0740)
OpenMP 201511 (a.k.a. OpenMP 4.5)
LAPACK is enabled (usually provided by MKL)
NNPACK is enabled
CPU capability usage: AVX2
CUDA Runtime 11.3
NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86
CuDNN 8.2
Magma 2.5.2
Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.2.0, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.10.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,

TorchVision: 0.11.2+cu113
OpenCV: 4.10.0
MMEngine: 0.10.4
MMDetection: 3.2.0+d509b75
Reproduces the problem - code sample
bash tools/dist_train.sh [configs] 1
Reproduces the problem - command or script
bash tools/dist_train.sh [configs] 1
Reproduces the problem - error message
File "/usr/local/lib/python3.8/dist-packages/mmdet3d/models/detectors/base.py", line 75, in forward
return self.loss(inputs, data_samples, **kwargs)
File "/workspace/bevfusion/bevfusion.py", line 301, in loss
bbox_loss = self.bbox_head.loss(feats, batch_data_samples)
File "/workspace/bevfusion/transfusion_head.py", line 761, in loss
loss = self.loss_by_feat(preds_dicts, batch_gt_instances_3d)
File "/workspace/bevfusion/transfusion_head.py", line 786, in loss_by_feat
loss_heatmap = self.loss_heatmap(
File "/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/mmdet/models/losses/gaussian_focal_loss.py", line 176, in forward
loss_reg = self.loss_weight * gaussian_focal_loss(
File "/usr/local/lib/python3.8/dist-packages/mmdet/models/losses/utils.py", line 121, in wrapper
loss = loss_func(pred, target, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/mmdet/models/losses/gaussian_focal_loss.py", line 35, in gaussian_focal_loss
pos_loss = -(pred + eps).log() * (1 - pred).pow(alpha) * pos_weights
RuntimeError: The size of tensor a (136) must match the size of tensor b (120) at non-singleton dimension 3
Additional information
Here I use a custom dataset with non-square bev feature (i.e., the sparse shape is [960, 1088, z], making the bev feature map of spatial shape [120, 136]). When passing the sparse shape as "grid_size", which is used in:https://github.com/open-mmlab/mmdetection3d/blob/fe25f7a51d36e3702f961e198894580d83c4387b/projects/BEVFusion/bevfusion/transfusion_head.py#L701-L702
and the feature_map_size is then used to create the heatmap. Here the X and Y dimensions are swapped, making it of spatial shape [136, 120] following the code below:
https://github.com/open-mmlab/mmdetection3d/blob/fe25f7a51d36e3702f961e198894580d83c4387b/projects/BEVFusion/bevfusion/transfusion_head.py#L703-L704
The problem is finally triggered at https://github.com/open-mmlab/mmdetection3d/blob/fe25f7a51d36e3702f961e198894580d83c4387b/projects/BEVFusion/bevfusion/transfusion_head.py#L785-L790 (specifically in https://github.com/open-mmlab/mmdetection/blob/cfd5d3a985b0249de009b67d04f37263e11cdf3d/mmdet/models/losses/gaussian_focal_loss.py#L35) where the heatmap and the dense heatmap (with same spatial shape as the bev feature map) should have the same spatial shape.
This problem won't happen with nuscenes since it has square bev feature and the swap means nothing. Conclusively, such swap when intializing the heatmap is ambiguous and makes it impossible to have the same shape as the bev feature.

In addition, reverting this swapping, in other words, init the heatmap as shape feature_map_size[0], feature_map_size[1]  can accomplish to train a model.

Are you training a camera-only model?

Are you training a camera-only model?

No, I’m dealing with Lidar-only and LC-fusion models. But this bug will remain there with cam-only BEVFusion, as the vtransform outputs a Bev feature map with the same spatial shape as the SCN.

In fact, this operation is present in the original code of transfusion head in BEVFusion. However, the mit-bevfusion and the BEVFusion from NeurIPS 2022 differ in the final step of vtransform. The outputs X and Y from their vtransform are reversed

In fact, this operation is present in the original code of transfusion head in BEVFusion. However, the mit-bevfusion and the BEVFusion from NeurIPS 2022 differ in the final step of vtransform. The outputs X and Y from their vtransform are reversed

Thanks for pointing out. Yet what do you mean by "reversed"? Do you mean that the vtransform output is in a spatial shape of [y,x] rather than the [x, y] as the lidar feature from the SCN? I'm a little bit confused since if that's the case, the two feature maps won't be able to be stacked and processed by the 2D pts_backbone.

I'm confused about this too, but in the vtransform of the NeurIPS 2022 bevfusion, the output is [y,x], and in its (and BevDet's) transfusion head the position you mention is also [y,x].

Have you tried a non-square bev LCFusion? Does the 2d backbone of the bev model accept input properly?

Have you tried a non-square bev LCFusion? Does the 2d backbone of the bev model accept input properly?

Yes, that's exactly the case I'm encountering. I have sparse_shape=[960, 1088, 41], which correspondings to x, y, z in lidar coord. The x, y, z bound of LSS is adjusted accordingly. In this case 2d backbone (pts_backbone) does accept the feature maps in a proper mannner.

@cxnaive Actually there is another confusing snippet, which however might be a hint to understand these ambiguous spatial shapes:
https://github.com/open-mmlab/mmdetection3d/blob/fe25f7a51d36e3702f961e198894580d83c4387b/projects/BEVFusion/bevfusion/transfusion_head.py#L727-L731
Say sparse_shape (xyz) is [960, 1088 41]. The predicted center (which should be [x, y] as it is used to form a LidarInstance3DBbox) is reversed when used to index the hotspot in the heatmap. That means the heatmap should also be reversed (as it is now) , shaped as [1088/8, 960/8]. But the SCN outputs a feature map of  [960/8, 1088/8] when using xyz voxelization, manifested in:
https://github.com/open-mmlab/mmdetection3d/blob/fe25f7a51d36e3702f961e198894580d83c4387b/projects/BEVFusion/bevfusion/sparse_encoder.py#L144-L146
This is a conflict, but the operations in TransfusionHead are confusingly correct (except the heatmap coord swapping); using 'center' instead of 'center[[1,0]]' to index an heatmap of shape [960/8, 1088/8] ruins the training and the model never converges.

The change in the order of spatial_features might have been made to align the shape with mit-bevfusion's vtransform, but this modification was forgotten in the head

draw_heatmap_gaussian(heatmap[gt_labels_3d[idx]], center_int, radius) is the original version of transfusion head. The original version should correspond to BEV features in the format [Y, X], while center_int[[1,0]] corresponds to [X, Y]

So, the grid_size should also be reversed in the same way, but this was forgotten in the transfusion head of this version. Alternatively, consider using the original transfusion head but reversing the BEV features.

https://github.com/open-mmlab/mmdetection3d/blob/fe25f7a51d36e3702f961e198894580d83c4387b/mmdet3d/models/utils/gaussian.py#L46C5-L53C69
From this, it can be seen that the default heatmap shape in mmdet3d is [Y, X]

https://github.com/open-mmlab/mmdetection3d/blob/fe25f7a51d36e3702f961e198894580d83c4387b/mmdet3d/models/utils/gaussian.py#L46C5-L53C69 From this, it can be seen that the default heatmap shape in mmdet3d is [Y, X]

This solves most of the confusion. That's why initializing the heatmap as shape feature_map_size[0], feature_map_size[1] (i.e.. the same as the bev feature) conforms to everything else, right?

Yes, you can check the implementation of CenterHead in CenterPoint within mmdet3D, which also uses [Y, X] for BEV features. However, the BEV features obtained from the sparse encoder in BEVFusion are [X, Y]

Yes, you can check the implementation of CenterHead in CenterPoint within mmdet3D, which also uses [Y, X] for BEV features. However, the BEV features obtained from the sparse encoder in BEVFusion are [X, Y]

hello, i train a lidar model(centerpoint)，the bev shape is 256*512 。it was error in caulate heatmap loss . so how can i deal with,when the shape (H!=W)

Yes, you can check the implementation of CenterHead in CenterPoint within mmdet3D, which also uses [Y, X] for BEV features. However, the BEV features obtained from the sparse encoder in BEVFusion are [X, Y]

bev特征图不是正方形在算heatmaploss的时候就会报错，pred和target的shape对不上，请问下这个知道怎么处理吗


Are docs for the two-sample Kolmogorov-Smirnov test not correct?

In the last section it says:
"For an identical distribution, we cannot reject the null hypothesis since the p-value is high, 41%:"
rvs4 = stats.norm.rvs(size=n2, loc=0.0, scale=1.0, random_state=rng)
stats.ks_2samp(rvs1, rvs4)
KstestResult(statistic=0.12166666666666667, pvalue=0.05401863039081145)

but the pvalue is 0.054? Or am I simply not understanding something? The part before that also seems to be wrong.
Link to the page : https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ks_2samp.html
Screenshot of what im referring to:

I am looking forward to your input!

They were not. This was reportedin gh-15644 and fixed in PRs linked from there. Please find the main branch version of the docs [here] (http://scipy.github.io/devdocs/reference/stats.html#module-scipy.stats). Do those resolve the issue?


Bump kafka chart to 26.11.2 that uses kafka 3.6.1

Most of the changes address the major change to the Kafka chart in 24.0.0. See below for reference.
https://github.com/bitnami/charts/tree/main/bitnami/kafka#to-2400

The chart now has two statefulsets and their settings fall under the controller and broker section respectively.
The default replicaCount for controller is 1 and for broker is 0. So we need to override them
The default protocol for client and inter broker listeners are both SASL_PLAINTEXT. So we need to override them to PLAINTEXT to be backward compatible
Many of the server properties are no longer exposed as chart parameters and need to be passed in via the extraConfig parameter.

Tested with a brand new install of prerequisites and datahub chart in a GKE cluster. All components started successfully and execution of an ingestion also succeeded.

@david-leifker @pedro93 could one of you please take a look?
Please let me know if there is any additional tests that you would like to do.

Thanks!


Time and date selection

What?
Selecting a date has no effect. Likewise selecting a time is impossible.
Why?
Broken functionality

Fixed with commit 0d2f49839c3272b5609c598c5cd3fce4af08386f


Add an abstraction to get the length of a stream

PARQUET-400 introduces SeekableInputStream to wrap Hadoop v1 and v2 streams and provide ByteBuffer access transparently. This can also be used as an abstraction to allow Parquet to work without the Hadoop API. The missing component is an abstraction that knows how long the file stream is for reading the footer. This could be done by adding a getLength method to the new stream interface, but I think there is value in adding a higher-level abstraction that carries information about the file and can open streams for it. This abstraction could be passed to a PageReadStore, which could have more complicated logic including parallel streams to read column chunks.
Reporter: Ryan Blue / @rdblue
Assignee: Ryan Blue / @rdblue
PRs and other links:

PR #368

Note: This issue was originally created as PARQUET-674. Please see the migration documentation for further details.

Ryan Blue / @rdblue:
Merged #368. Thanks for reviewing, @julienledem!


Application of 'remove_types' can change runtime behavior where a function call has a type assertion

Adding a type assertion to a function call has the (runtime) effect of truncating any returned values to a maximum of one value:
local function multipleReturns()
    return 1, 2
end
print(multipleReturns() :: any)

This will output "1".
Currently, the 'remove_types' rule translates line 4 as:
print(multipleReturns())

This will output both "1" and "2", incorrectly.
The 'remove_types' rule should wrap these type-asserted calls in parentheses:
print((multipleReturns()))

This will output "1", correctly.

Good catch! This should be a simple fix, I already have this kind of verification in other parts of darklua


Add ability to edit discussion, proposal, and comment text. Note that its edited with a star or some icon

This maybe isn't something we should implement but i thought it made sense. If you make a silly typo its annoying not being able to edit it.


Create CPM/FPKM fold change calculation output for files

Request:
Solution:
I've instructed Yuanyuan that negative controls should not be used as the 'background' of MANORM and that it is not possible to perform MANORM without normalization. She has requested then that code be added to perform CPM/FPKM fold change calculations between her negative controls and positive controls.
To do this we'll need to add a third option to differential analysis (IE "CPM"):

Add comment notes to config/config.yaml under the "DEmethod"
Create new manifest under manifest/contrasts_example_cpm.tsv. Column headers should be identified (IE "Sample,NegControl")
Create script to perform the calculations
Create elif statement to expand beyond MANORM/DIFFBIND to handle new rules

Do we still need to handle this @wilfriedguiblet ?


All pg queries with no results

Queries like creating a table, dropping a table, unloading data, etc all return an error message: "Error running query: 'NoneType' object is not iterable". I think this would be clearer as: "Error running query: Query completed but it returned no data."

Thanks, @johnkearney!
And thanks for cleaning up the env files.


Picture placement top poi panel

Hey,
really cool that you integrated pictures of POIs in your sidebar. Would it be possible to place the images on top like Google Maps?

Style in Qwant:

Thanks for this nice product.
Best regards
Jonas

Some OSM POIs have image key


[RFC]: Provide a clearer CHANGELOG

What problem does this feature solve?
The current CHANGELOG mixes the English messages and the Chinese messages, which is unfriendly to both Chinese developers and English developers.
I think we should separate the English messages and the Chinese messages, so that it will look clearer.
Current CHANGELOG:
Features:

#3513
feat(doc-core): support addPages
feat(doc-core): 支持 addPages 插件钩子

#3511
feat(transformImport): support disable default transform import, add more test of transformImport
feat(transformImport): 支持关闭默认的 transform import，增加更多 transformImport 测试

#3510
chore(runtime): remove unused @testing-library/react-hooks
chore(runtime): 移除多余的 @testing-library/react-hooks

Expected CHANGELOG:
English
Features

feat(doc-core): support addPages #3513
feat(transformImport): support disable default transform import, add more test of transformImport #3511
chore(runtime): remove unused @testing-library/react-hooks #3510

中文
Features

feat(doc-core): 支持 addPages 插件钩子 #3513
feat(transformImport): 支持关闭默认的 transform import，增加更多 transformImport 测试 #3511
chore(runtime): r移除多余的 @testing-library/react-hooks #3510

Maybe we should provide a clear changelog for each solution, ref: https://github.com/web-infra-dev/modern.js/discussions/3580

https://github.com/web-infra-dev/modern.js/pull/3779


How to address @Foo(bar = XYZ) @ImpliesFoo

We've discussed some similar but not identical cases:

In #216, we established that @Foo @SomethingThatImpliesNotFoo is Bad and that the result is that both @Foo and the implicit @NotFoo are unrecognized.
And while I don't have a specific issue to cite for this offhand, I'm confident that @Foo @ImpliesFoo is Fine, just redundant. (slightly related: #233 might help tools decide whether to suggest replacing it with @Foo or with @ImpliesFoo.)

So now, what about the following...?
@interface Foo {
  boolean bar() default false;
}

@Implies(Foo.class)
@interface SomethingThatImpliesFooWithBarEqualsFalse {}

@Foo(bar = true)
@SomethingThatImpliesFooWithBarEqualsFalse
class User {}

User doesn't imply two identical @Foo annotations, but neither does it imply a clear conflict of @Foo @NotFoo. Arguably, the right answer to this question would depend on the semantics of bar. For example:
@interface Nullable {
  boolean polyNull() default false;
}

If some type is annotated with both some annotation that implies @Nullable and some annotation that implies @Nullable(polyNull = true), that probably just means that the first annotation was written before polyNull became available.
But in another example:
@interface Tainted {
  boolean tainted() default true;
}

Then a type that is annotated to imply both @Tainted and @Tainted(false) is an outright contradiction. (Of course, part of the story here is that @Tainted(false) is probably a worse API than @Untainted :))
I could imagine yet another possibility, which is that an annotation might declare an array element with a default value (similar to https://github.com/jspecify/jspecify/issues/215#issuecomment-1208525109 except for the default value). Then a type could be annotated with both that annotation (with an explicit array of values) and an annotation that implies it (with its default array of values). Would we then merge the two arrays, presumably removing duplicates... and somehow choosing which annotation's values come first in order?
Despite the possibility that different annotations would want different things, it seems likely that we should specify a single answer so that tools don't have to program in different handling for each annotation—and we don't need to define a meta-annotation to configure it.
The easy way out is always "If an annotation is implied more than once with any difference in any of its values among them, then all annotations are unrecognized." (I think the only question that would leave is whether a change in array order is a "difference." I'd say probably?) But that's kind of sad in the @Nullable @Nullable(polyNull = true) case, since a clearly nullable type could become non-null. I'm not sure if we can get away with avoiding defining @PolyNull that particular way or with telling people not to imply @Nullable more than once if one of them might someday be @PolyNull... but hopefully?
(This would all become more likely to be a practical problem if we provided a way for one annotation to imply an annotation that has required elements (or even to imply an annotation and provide any non-default set of values): #240 #241.)

The goal of supporting @Implies(One.class) @interface Two {} is that eventually, most code of all kinds that wants to query for the presence of @One would use APIs that follow the links automatically; i.e., would just query for "is @One present" and get the answer true for cases like @One m() and @Two m().
Such an API would have to be able to actually provide the instance of One that was found, so it must have a deterministic way of handling attribute conflicts.
What's a good description of the simplest thing we can possibly do?

My proposal for that was:

The easy way out is always "If an annotation is implied more than once with any difference in any of its values among them, then all annotations are unrecognized."

I guess we could alternatively say that any conflicting values are resolved to whatever the default is? (I assume that information is available to all tools that would need it, but I haven't checked.) That's not necessarily ideal, either: If someone implies both @Nullable and @Nullable(polyNull = true), presumably we'd prefer the non-default value. But for any type more complex than a boolean, there could be multiple possible non-default values, so we wouldn't have a way to pick among those.... Anyway, having some rule may at least be better than ignoring @Nullable entirely?
(Oh, and in everything we've been saying here, if @Foo is @Repeated, then we just behave as if both @Foo(bar = true) and @Foo(bar = false) are present.)

This gets back to the age-old ambiguity with default values: sometimes accepting the default means "I really don't care what this is", and sometimes it means "I care what it is and I happen to want the same value as the default value", and you can never tell which it is. If people only coded under the assumption that default values might change then their code would be more clear about its cares.
As it is, yeah, I think we just declare all to be unrecognized...

It occurs to me that even if the explicit value happens to match the default value, it just means that explicit value is unnecessary and is waiting to break if the default is ever changed. Changing an annotation attribute default thus becomes a nullness-incompatible change. So it might be worth handling the same way.

So to handle @Foo(bar = XYZ) @ImpliesFoo whether or not XYZ is bar's default:
For now I think we should treat it the way we do other contradictory pairs of annotations. Part of this is that I would really like @ImpliesFoo to mean what it means, not sometimes mean what it means but sometimes mean only part of that. I'm not certain that's a realistic outcome, but....
As a longer-term question before 1.0: when analyzing dependent code only (not the code itself), something gives me pause. It feels hard to blame a library for seeing the @Foo and returning the Foo instance for it without recursively checking all the @Implies. But, that implies a "direct annotation wins" world in practice, that'd make people question why we even complain about it at all.

I can't find a reason to care about whether we treat @Foo(bar = XYZ) @ImpliesFoo as a conflict or not, so treating it as a conflict SGTM.
As for the model of throwing out everything else that @ImpliesFoo implies, too: I think that model would block @Implies on further work. I'll explain....
The model as I'm understanding it would be this:
There is a set of annotation usages that are present in the code (either source code or bytecode; the difference doesn't matter here). So you might have @Foo @Bar(true) @Baz(1).
From that, we can compute another set of annotation usages that are in the reflexive, transitive closure of the "code annotations'" @Implies graph. Maybe that's @Foo @Bar(true) @Baz(1) @Baz @X @NotX @Y.
For every pair of annotation usages in the computed set, we look for conflicts. Conflicts would include @Baz(1) @Baz (whether 1 is the default or not) and (presumably) @X @NotX.
Now we retrieve every "code annotation" that implied any of those 4 annotation usages. And we update the computed set by removing everything that is part of those "code annotations'" reflexive, transitive closure.
Does that sound right?
The tricky thing about that is that a tool needs to know that @X and @NotX are conflicting. In other words, I don't think we can implement this scheme unless we do https://github.com/jspecify/jspecify/issues/101 first.
In contrast, the nice thing about the ugly "sometimes mean only part of that" model I'd been floating recently is that it doesn't need that: For any given tool, either:

The tool understands @X and @NotX. In that case, it knows they're conflicting, so it can remove them, or...
The tool doesn't understand them. In that case, it doesn't know to remove them, but that's fine because:

The tool doesn't care about them, and...
We don't ask the tool to know to remove any of the other annotations that were implied by the same "code annotations." (That's the part that's different from the model you're proposing.)

Okaaay, this makes the point extremely well that I was indulging in wishful thinking far removed from reality. I shall never speak of this "mean what it means" business again.

I coughed up wiki/incorrect-annotations but it still needs a lot of editing.
I think there is a proper way to address this:

There is no good reason to write @Foo(bar = XYZ) @ImpliesFoo and (to start off imprecisely) we can agree that it is definitively "wrong" (even when the default is XYZ).
JSpecify's primary interest is in defining "what annotation usages mean". In this usage, we define that it means nothing. (That's not the same as "it's undefined what it means".)
An analyzer finding either has the goal of validating @Foo annotations themselves, or the goal of using the information to uncover real problems (discussed in wiki).

If the first, it should report a problem here (even if it's just that ImpliesFoo.class isn't present for validation (#294)).
If the second, it is entitled to trust the direct @Foo without looking more deeply into it. For that matter, if for some strange reason it checks into ImpliesFoo first and it finds @Foo(bar = ABC) through that route, it's entitled to trust that too! It's entitled to assume that the annotations have been used correctly. If it happens to discover the conflict, there is little point in our dictating how to resolve the conflict; we may as well just say tool behavior is undefined.

Allowing tools to trust the direct @Foo sounds like it will lead to @MyFavoriteDefaults @ButNotThisOne, since that will likely "work" for clients. The hope would be that the library itself would be run through a checker that flags these problems. But if we trust the checker to implement the right logic for analyzing the library, then can we also trust it to implement the right logic for analyzing the clients?
On the conceptual level, I'm surprised that you would say that annotations "mean nothing" but that tools are entitled to assume that they mean something. It seems equivalent to saying that it is "undefined what it means."

For example, that sounds to me like saying:
"The annotation in class Foo<@Nullable T> means nothing, but tools are entitled to assume that nullness annotations are used correctly, so we're fine if they want to interpret it like <T extends @Nullable Object>."
As always, we're not in the business of forcing any tool authors to do anything. But I'd expect us to hold the line on discouraging them from interpreting our annotations as meaning something that they don't.

Allowing tools to trust the direct @Foo sounds like it will lead to @MyFavoriteDefaults @ButNotThisOne, since that will likely "work" for clients. The hope would be that the library itself would be run through a checker that flags these problems.

Scenario:

Library has @Foo(bar = XYZ) @ImpliesFoo some_api_element or @Nullable @ImpliesNonNull some_api_type
Library owner isn't running analysis, or the analyzer doesn't catch the problem, or they ignore the report
A client's analyzer doesn't catch the problem either, so behaves as if @Foo(bar = XYZ) has effectively overridden the value intended by @ImpliesFoo (which can only be the default value), or that @Nullable has effectively overridden the @NonNull from @ImpliesNonNull
That might well be the behavior the library owner wants, so ... why should they fix the problem?

Possible remedies I can think of:

Just don't worry about it. We aren't saying client analyzers can't discover the problem and make a stink, so maybe eventually some client will complain that theirs did, and the JSpecify specs may be consulted to figure out what to do. By having an unambiguous answer for them there, we've basically done our job.
Define instead that the more local annotation does have precedence.
Attempt to hold client-side analyzers responsible for always uncovering problems like this.

But if we trust the checker to implement the right logic for analyzing the library, then can we also trust it to implement the right logic for analyzing the clients?

I don't know what this means; those are in all likelihood different checkers. Even if the same product, they may be different code paths pursuing different goals. Did the EqualsTester analogy land at all?

On the conceptual level, I'm surprised that you would say that annotations "mean nothing" but that tools are entitled to assume that they mean something. It seems equivalent to saying that it is "undefined what it means."

 I can only tell you how this is structured for me. If you don't like this framing, I would like to think we can just work it out and adopt a common framing, but I'm way past hoping for that anymore.
Here is my perspective:
One conversation we can have is about "what is the meaning expressed by these annotations", in the deepest, truest sense. And I think it's our job to be unambiguous about this. And whenever we can assign true valid meaning to them, then tools should not treat them as meaning anything different. And whenever we can't, we would rather tools did not ascribe meaning to them anyway as suits their whims.
This conversation is at a different level from that one. This asks, "if a tool seeks to know Fact X, and it has gathered enough information to know 'either Fact X is true or the annotations would have to be invalid in some way I have yet to recognize', is it responsible for digging further to find invalidities, or is it fair to proceed as though Fact X is true?"
An answer that "it's fair to do that" doesn't change what anything means or doesn't mean. It is just a concession to reality and pragmatism.
Another analogy:
Suppose you ask a person, "Is Bar a subclass of Foo?" and they ask to see Bar.java, and it says class Bar extends Foo. They would answer yes.
Suppose you ask them the same question, and they ask to see Foo.java, and it says final class Foo. They would answer no.
Neither one realizes that those two files are actually uncompilable together. But each is justified in their answer. I think it is unreasonable to hold either one accountable to answering any differently, when the real issue is obviously to fix the actual problem with the files.

For example, that sounds to me like saying:
"The annotation in class Foo<@Nullable T> means nothing, but tools are entitled to assume that nullness annotations are used correctly, so we're fine if they want to interpret it like <T extends @Nullable Object>."

You do see how different that case is, right?

To me, there are two remedies: Either we define that the local annotation wins, or we hold clients responsible for uncovering the problem. If we do something other than that, I don't see us as providing "an unambiguous answer." (I prefer the second option, but I think you're right that the difference is deeper than that.)
It's always true that tools can do whatever they want, so what I'm trying to understand is why this situation is different from any various situations. We don't typically couch our rules in "@NonNull on a type-parameter bound means that the parameter forbids nullable types, but if a checker sees a @Nullable type argument, it's entitled to conclude that the parameter actually allows nullable types." Could a checker do that? Sure. Could it even have a good reason for that? Sure.
I can get behind the idea of warning users that, if they do things that JSpecify considers to be "wrong," then they're likely to end up in uncharted territory, under which different tools will do different things. That, too, feels like a general point, but I wouldn't mind making it specifically here. But I would still see those tools as buggy, not as exercising their choice for a question we left as implementation-defined behavior. I don't think you see it as implementation-defined, either, and maybe your concept of "entitlement" is getting at something similar to my concept of "warning users?"

Loose ends:
We can probably drop the "separate tools" discussion. I was trying to emphasize the point that conflicts will arise in practice, which I was taking to already be a point of agreement.
As for EqualsTester, the difference I see here is that it's possible for a tool to exhaustively check for conflicting annotations (and in a way that doesn't make the worst-case performance any slower). That's not possible for users of equals.
I do see this case as similar to class Foo<@Nullable T>: In both cases, we're asking authors of "Primary analysis" tools to write additional code that exists only to handle cases that would have failed "Annotation validation." The two cases are separate cases in the sense that each requires its own additional code. But similar to above, I'm not sure why we would address the two differently.

The main topic of your comment is now being discussed in #307 (thanks for filing that). It's tagged to a later milestone than this one, so this one is still relevant.
A second topic in your comment is:

An additional alternative for consideration: Annotation A cannot imply annotation B if annotation B has parameters

So I've filed that as #308.
Let's let this issue (259) return to being about this issue (259).
It presumes that the implication link between the two annotations is valid, so a "yes" on any part of #308 would seem to render this one obsolete.


Add github action to rebuild help

Whenever we make a release have a github action remake the help files.

#210