Godots script editor overwrites code from external editor when saving (VS Code)

Tested versions

Reproducible in: 4.2.1.stable

System information
Godot v4.2.1.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1070 Ti (NVIDIA; <IP_ADDRESS>23) - AMD Ryzen 7 3700X 8-Core Processor (16 Threads)
Issue description
When a script is open in the Godot editor and I make changes in my external editor, the next time I save in Godot it'll save the old code from Godot's script editor. Sometimes it overwrites the code in the external editor too making me lose progress unless I had the script open in VS Code to undo the changes.
https://github.com/godotengine/godot/assets/61661787/f47a9bd4-c2ab-468b-bbc0-61a6c1c97533
Steps to reproduce
I'm not 100% sure how to consistently reproduce this but I noticed that when I get an error it opens the script in the Godot editor.

make an error in a script and run the game, which should open the script in Godots script editor
make changes to the script in VS Code (add an export variable so you can see if the code reverts back or not in the inspector)
save in VS Code
go back to Godot
save the scene
the code should now revert back to how it was before making the changes, which can be seen by the exported variables disappearing in the inspector

Minimal reproduction project (MRP)
N/A

This nasty bug has been fixed on the master branch: https://github.com/godotengine/godot/pull/82113.

Is there a great way to avoid running into this bug aside from building from master or waiting until the next release is cut? Is it just a matter of not making changes in an external editor while the build is in a failed state with a script focused in the Godot editor?
This bug has bit me several times; it's extremely painful to lose significant amounts of work to, and my paranoia is now slowing me down 😅

I was able to reproduce this - unintentionally - by connecting signals.
As my file is small - less than 50 lines - I thought I was going mad or exhausted, so I am glad that this Issue exists.

Can anyone still reproduce this issue in Godot 4.3 dev 6 or greater?

I was able to reproduce this - unintentionally - by connecting signals.
As my file is small - less than 50 lines - I thought I was going mad or exhausted, so I am glad that this Issue exists.
Edit: Seems like #91314, but in my case is with Button, and basically any signal.

This just happened to me with a 400 ln file.

Can anyone still reproduce this issue in Godot 4.3 dev 6 or greater?

I can confirm the issue still occurs when using Visual Studio Code as an external editor with the godot-tools extension.
 Not a solution, but it might save you if you lose a some work.

I've also ran into the same issue multiple times now. I'm gonna try & take a closer look at this.

I've been running into this issue on and off for at least a couple of years now. I think it started sometime around when Godot 4 was in alpha.

I think it was introduced by 4.2.beta6, which I guess is caused by this pr #82956 , the built-in text editor does not update the script content when using the external editor.
https://github.com/godotengine/godot/pull/82956/files#diff-611b108c1fab72a983d86a27c5241ed994b00c7e2f9f6a2d43eed8986608b823L2598-R2601

cc @Chtau

I think this problem here is related to what if mentioned in https://github.com/godotengine/godot/pull/82956#issue-1931311539.

The script tabs on the internal Editor should probably be closed in the check but this is not relevant for this problem (engine crash) and more changes are required for it because the trigger is not on the main thread.

As long as there are files loaded in the internal code editor there are event which use them and not the files from the external editor if I remember correct.

I have the external editor configured as well. Honestly I'm surprised the internal editor is still available. I'd welcome a setting that completely removes it (I find it fairly unintuitive that it's a Script setting at the top but the tabs are still the scenes). I keep running into scenarios where a script will get opened in the internal editor (in the background to me) and start to cause problems until I switch over to the Script mode and choose Close All. If I have an external editor configured I'd never expect to see any scripts open in there, yet I do.

why is it not an editor setting? why isn't it the default if an external editor is configured?)

The reason it isn't the default is likely that some external editors don't have debugging support in the first place, or their extension doesn't support debugging.

That makes sense. I'd love to see it right in the external editor config settings where you set the editor command line up in the first. It'd be so much more discoverable there! Perhaps it could be a dropdown "Debug with External Editor", "Debug with Internal Editor", or "Open with External Editor" with the last one maybe being the safe default.
Before I found this setting I most often observed it opening files automatically when a script would throw an error. I have GodotTools installed but I haven't been able to get it to use the VSCode debugger. That said, I'd still prefer it never open in the internal editor, just being able to see the file and line is often enough, especially if the internal debug panel (which is visible without being in scripts mode) still works.
From a UX perspective, I think I speak for most external editor users that I'd rather have all my files open in a consistent place. I don't ever use the internal editor so I am not familiar with its quirks (the reloading/overwriting of files being the chief annoyance). Having the engine automatically open a script that then lingers in the background there is an unfortunate a experience.

Reproducible in 4.3Beta2 still. This ones a stinker.
Godot v4.3.beta2 - Linux Mint 21.3 (Virginia) - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 Laptop GPU - Intel(R) Core(TM) i5-10500H CPU @ 2.50GHz (12 Threads)

I have the external editor configured as well. Honestly I'm surprised the internal editor is still available when an external one is configured. I'd welcome a setting that completely removes it (I find it fairly unintuitive that it's a Script setting at the top but the tabs are still the scenes). I keep running into scenarios where a script will get opened in the internal editor (in the background to me) and start to cause problems until I switch over to the Script mode and choose Close All. If I have an external editor configured I'd never expect to see any scripts open in there, yet I do.
Edit: I just found out about this Debug With External Editor setting from this comment. I guess that's a good workaround, but it's fairly maddening how buried this is (why is it not an editor setting? why isn't it the default if an external editor is configured?)

this bug has been driving me insane and the workaround mentioned on the comment above (the "Debug With External Editor"  setting) seems to no longer exist in 4.3-beta2. Am I missing something? I'd love to at least have a temporary workaround to deal with this

It doesn't happen only when Godot's script editor is open. It also often happens when or after you click the stop button (or close the game window?) while the game is running. This makes debugging very difficult, because stopping the game also makes all the error messages disappear, so you kind of have to leave it until after you've fixed the code. Then Godot reverts all the bugs you've just fixed! It doesn't happen every time, but often enough to be a major nuisance.

Please be aware, guys, that I have debugged this issue before, and it turns out that this piece of code is overriding your work with cached data.
https://github.com/godotengine/godot/blob/ec02d406ca0b9c822addff49cf58e9a72cf74eb0/editor/editor_node.cpp#L1772-L1783
In the past, I have allowed the editor to load external changes to scripts (https://github.com/godotengine/godot/pull/82113), but it seems like there are still some instances where the code does not get the newest changes to your scripts. Remember, the fix (#82113) will check if it is a valid script and is not opened by the internal editor. If so, it will update the cached object with the newest changes. I'm not sure what conditions are met on your side  :satisfied:

It looks like "the fix" was merged into the master branch in September 2023, yet multiple people (including myself) have experienced the problem persisting to this day – in which case I would argue that it is not a fix 😅.
I'm still not even sure how to reliably replicate the behavior, but I suppose if I'm able to figure out a way, I suppose we can start looking at the conditions while doing the replication to see what's causing the fix to not work.

No worries – the point of my comment was just that the issue is still definitely occurring, so we shouldn't consider it fixed.
Having the location of the bad behavior pinned down to a specific block of code is definitely great, so we can continue debugging it and determine why the current fix isn't working in all cases. I'll see what I can do in the coming days to reproduce the issue and from there, determine what might be causing it to persist.

It looks like "the fix" was merged into the master branch in September 2023, yet multiple people (including myself) have experienced the problem persisting to this day – in which case I would argue that it is not a fix 😅.
I'm still not even sure how to reliably replicate the behavior, but I suppose if I'm able to figure out a way, I suppose we can start looking at the conditions while doing the replication to see what's causing the fix to not work.

I've been able to replicate that with 100% success (4.3-beta2) by:

configure godot to use an external editor, in particular an editor that doesn't play well with the debugging protocol
introduce some error on my script that would cause godot to stop automatically as a breakpoint. this causes the script to be opened in the internal script editor
hit the stop button (do not close the script in the internal editor)
switch back to 2d/3d view on godot
on your external editor, make changes to the script that is already opened in the internal editor
go to godot and run the project again

at that point, the code will run with the old version of the script (that is open on the internal editor), and switching back to the external editor will show that it has been written over in disk with the version from the internal editor.

Strangely, I tried following the steps you laid out and couldn't reproduce (4.3-beta2, macOS, non-C#). VS Code is set as my external editor.
https://github.com/godotengine/godot/assets/9957987/bd3e875b-bcc0-4464-89fe-a6dacbf2e46d
The one big difference I noticed between the steps you described and what I did is that the editor's internal script editor doesn't open for me when it hits the assert statement.
If I disable the godot-tools extension in VS Code, then when I modify the script in VS Code, I get a popup about files being newer on disk:

This popup is nice, definitely better than it just undoing my changes, but I'm pretty sure this is not the same thing as the bug being discussed here 😅. I could've sworn the issue was occurring for me (with no popup) when godot-tools was active and connected to the language server.

Strangely, I tried following the steps you laid out and couldn't reproduce (4.3-beta2, macOS, non-C#). VS Code is set as my external editor.
Godot.4.3-beta2.Not.Replicating.External.Editor.Overwrite.Bug.mp4
The one big difference I noticed between the steps you described and what I did is that the editor's internal script editor doesn't open for me when it hits the assert statement.
If I disable the godot-tools extension in VS Code, then when I modify the script in VS Code, I get a popup about files being newer on disk:

This popup is nice, definitely better than it just undoing my changes, but I'm pretty sure this is not the same thing as the bug being discussed here 😅. I could've sworn the issue was occurring for me (with no popup) when godot-tools was active and connected to the language server.

actually what you are observing is the same as what I tried to communicate.
the problem happens once godot tries to debug something with an external editor and for some reason (either the editor doesn't support it, or connection is lost) it cannot debug using the external editor and instead uses the internal one... from that point onward the problem is persistent until you manually close the script open in the internal editor

The popup is from Godot, so I suppose it is a different thing then. Whenever I've had the issue with VS Code, the godot-tools extension has been running and there is no indication (such as a popup window) that the contents were reverted, except that I go back to the VS Code window and the file is what it had been before I made changes. In the past I hadn't paid close attention to whether or not VS Code was connected to the Godot language server, but will try to keep an eye out for it in the future.

Cannot reproduce the bug v4.3.beta.custom_build [ec02d406c]

It looks like "the fix" was merged into the master branch in September 2023, yet multiple people (including myself) have experienced the problem persisting to this day – in which case I would argue that it is not a fix 😅.
I'm still not even sure how to reliably replicate the behavior, but I suppose if I'm able to figure out a way, I suppose we can start looking at the conditions while doing the replication to see what's causing the fix to not work.

I've been able to replicate that with 100% success (4.3-beta2 - windows, non-c# version of godot) by:
1. configure godot to use an external editor, in particular an editor that doesn't play well with the debugging protocol (i've had it happen with both neovim and vscode)

2. introduce some error on my script that would cause godot to stop automatically as a breakpoint.

3. run the project, this causes the script to be opened in the internal script editor (because of the error acting as a breakpoint - and either the external editor doesn't support the debug protocol or the connection has been lost)

4. hit the stop button (do not close the script in the internal editor)

5. switch back to 2d/3d view on godot

6. on your _external_ editor, make changes to the script that is already opened in the internal editor

7. go to godot and run the project again

Expected: the changes from the external editor are more recent, when running the project it notices that and updates the buffer for the script that is open in the internal editor. The new version of the code runs (from the external editor)
Observed: the old version in the internal editor is saved to disk, overriding the newer changes made in the external editor. The old version of the code runs (from the internal editor). Going back to the external editor shows that the file has been updated in the filesystem (with the old version).
My preferred solution would be: if an external editor is configured, under no circumstances the internal editor should open for scripts (or at least make it a setting hidden behind the "advanced settings" toggle). This would eliminate any and all scenarios where this problem could happen, instead of chasing after fixing case by case.

well this is awkward...

Is there a way to completely disable the Godot code editor? This issue consistently is blocker, causes me to not trust myself or my editors for short periods of time -- gonna be death by a thousand cuts.

Is there a way to completely disable the Godot code editor? This issue consistently is blocker, causes me to not trust myself or my editors for short periods of time, often -- gonna be death by a thousand cuts.

Yeah, take a look at This Comment. It worked for me in fixing this issue, as well as the issue that it links to in regards to not opening the external editor from errors (which I think is what was causing the issue of my code being overwritten too).

Is there a way to completely disable the Godot code editor? This issue consistently is blocker, causes me to not trust myself or my editors for short periods of time, often -- gonna be death by a thousand cuts.

Yeah, take a look at This Comment. It worked for me in fixing this issue, as well as the issue that it links to in regards to not opening the external editor from errors (which I think is what was causing the issue of my code being overwritten too).

Even just based on how that setting is named, I wouldn't have guessed it would fix this issue. It's definitely not clear at all.

Is there a way to completely disable the Godot code editor? This issue consistently is blocker, causes me to not trust myself or my editors for short periods of time, often -- gonna be death by a thousand cuts.

Yeah, take a look at This Comment. It worked for me in fixing this issue, as well as the issue that it links to in regards to not opening the external editor from errors (which I think is what was causing the issue of my code being overwritten too).

Thank you RobTheFiveNine. For me this is a serviceable workaround for the time being.
It is not, however, a precise solution to the workflow a for which lot of us are using.
That workflow would be to compose in vscode(ium) and debug in Godot. The debugger in Godot has features not available in vscode,  for instance the abiltiy to drill down into objects and see their properties as they appear in the inspector.
So there are two requirements for this issue to be resolved.
PROBLEM: Godot opens files AND Godot changes files in userland without consent of user.

  1. The internal editor must not open scripts when using an external editor under any circumstance. (It most certainly should not be making changes to files in userland without user consent.)

PROBLEM: User cannot access features of Godot debug interface while using an external editor

  2. The User should be able to have access to in-editor debug features when debugging with external editor;

  2a. User should be able to debug in Godot without Godot opening or changing files.

What the comment suggests is turning of editor debugging (shown in the attached image.)
Assuming that means it will stop the internal editor from opening the file and overwriting it solves issue one but leaves issue two unresolved.)

Connecting any signals to a script that is opened in the internal editor will also revert scripts opened in external to the internal version.


Cannot add or play Spotify playlist URL

I have updated to latest Mupibox version 4.2.1 today (from version 4.1.4).
After the update I cannot play or add Spotify playlist URLs anymore.
Spotify playlist URLs had worked with version 4.1.4.
Spotify album URLs are still playing, so the box is connected to Spotify.

The problem is not the version, but a change in the WebApi of Spotify yesterday: https://developer.spotify.com/blog/2024-11-27-changes-to-the-web-api
Point 8: Algorithmic and Spotify-owned editorial playlists
They are no longer allowed to be accessed by the WebApi.


Tracking integration for Image to Text (Image Captioning, etc)

Tracking integration of task - Image to Text
Note that you're not expected to do all of the following steps. This issue helps track all the steps required to get a new task fully supported in the Hub 🔥

[x] Integration with Inference API. Select at least one of the following:

[ ] Added a transformers pipeline
[x] Added to Community Inference API for 3rd party library
[ ] Added to Community Inference API for generic

[x] Added basic UI elements (icon, order specification, etc)
[x] Added a widget huggingface/hub-docs#15

Integration guide: https://hf.co/docs/hub/adding-a-task

This already exists with models such as BLIP - see https://huggingface.co/models?pipeline_tag=image-to-text&sort=trending


Error retrieving device properties for ro.product.cpu.abi: error: device still connecting??

Launching lib\main.dart on 6AGDU17522002686 in debug mode...
Initializing gradle...
Resolving dependencies...

Error running Gradle:
Exit code 1 from: C:\Users\Any\AndroidStudioProjects\vme\android\gradlew.bat app:properties:
Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
Download https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.2.0/kotlin-reflect-1.2.0.jar

Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.
FAILURE: Build failed with an exception.

Where:
Build file 'C:\Users\Any\AndroidStudioProjects\vme\android\app\build.gradle' line: 25

What went wrong:
A problem occurred evaluating project ':app'.

Could not resolve all files for configuration 'classpath'.
Could not resolve com.android.tools.build:builder-test-api:3.1.2.
Required by:
unspecified:unspecified:unspecified > com.android.tools.build:gradle:3.1.2 > com.android.tools.build:gradle-core:3.1.2 > com.android.tools.build:builder:3.1.2
unspecified:unspecified:unspecified > com.android.tools.build:gradle:3.1.2 > com.android.tools.build:gradle-core:3.1.2 > com.android.tools.build:gradle-api:3.1.2
unspecified:unspecified:unspecified > com.android.tools.build:gradle:3.1.2 > com.android.tools.build:gradle-core:3.1.2 > com.android.tools.build:builder:3.1.2 > com.android.tools:sdk-common:26.1.2
Could not resolve com.android.tools.build:builder-test-api:3.1.2.
Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/builder-test-api/3.1.2/builder-test-api-3.1.2.jar'.
Could not HEAD 'https://jcenter.bintray.com/com/android/tools/build/builder-test-api/3.1.2/builder-test-api-3.1.2.jar'.
Read timed out

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 8m 47s
Finished with error: Please review your Gradle project setup in the android/ folder.

Thanks for reporting.
I have seen this error when the emulator was not ready starting.
Can you reproduce this on subsequent tries or was this a single issue?
Can you please also add the output of flutter doctor -v

Microsoft Windows [Version 10.0.16299.492]
(c) 2017 Microsoft Corporation. All rights reserved.
C:\Users\Any>flutter doctor -v
[√] Flutter (Channel master, v0.5.6-pre.113, on Microsoft Windows [Version 10.0.16299.492], locale en-US)
• Flutter version 0.5.6-pre.113 at C:\flutter
• Framework revision 7f7ea2d500 (7 days ago), 2018-06-29 14:42:36 -0700
• Engine revision 6fe748490d
• Dart version 2.0.0-dev.63.0.flutter-4c9689c1d2
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
• Android SDK at C:\Users\Any\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 27.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
• All Android licenses accepted.
[√] Android Studio (version 3.1)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 26.0.1
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
[√] IntelliJ IDEA Community Edition (version 2017.3)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.4
• Flutter plugin version 26.0.1
• Dart plugin version 173.4700
[!] Connected devices
! No devices available
! Doctor found issues in 1 category.


Update control-pdf-viewer.md to include shortcuts

Rotate pages with the shortcut R!

@tapanm-MSFT @mduelae Hey guys need anything from me to get this added?

@tapanm-MSFT @mduelae Hey guys need anything from me to get this added?

@MarcChasse thank you for your contribution. We'll triage this internally and review the changes before publishing.


Test websocket concurrent #64

Close #64

Hi @ElecTwix , thank you for your work on this PR. The changes look good! Could you please address the remaining lint issues? Once those are fixed, I'll be able to proceed with merging the PR.

Hi @timpratim when I run golangci-lint it seems fine and when I look into the error it gives error on testify that was almost added 4-5 months ago by @phughk
Could you rerun ci-linter for test thanks :)
My output:
❯ golangci-lint run -v
INFO [config_reader] Config search paths: [./ /home/electwix/dev/go/surrealdb.go /home/electwix/dev/go /home/electwix/dev /home/electwix /home /]
INFO [config_reader] Used config file .golangci.yml
INFO [lintersdb] Active 31 linters: [bodyclose depguard dogsled dupl errcheck exportloopref funlen gochecknoinits goconst gocritic gocyclo gofmt goimports gomnd goprintffuncname gosec gosimple govet ineffassign lll misspell nakedret noctx nolintlint staticcheck stylecheck typecheck unconvert unparam unused whitespace]
INFO [loader] Go packages loading at mode 575 (compiled_files|exports_file|name|types_sizes|deps|files|imports) took 72.816479ms
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 878.124µs
INFO [linters_context/goanalysis] analyzers took 0s with no stages
INFO [runner] Issues before processing: 25, after processing: 0
INFO [runner] Processors filtering stat (out/in): autogenerated_exclude: 25/25, nolint: 0/10, identifier_marker: 25/25, exclude-rules: 10/25, filename_unadjuster: 25/25, skip_files: 25/25, path_prettifier: 25/25, exclude: 25/25, cgo: 25/25, skip_dirs: 25/25
INFO [runner] processing took 1.734068ms with stages: nolint: 678.215µs, exclude-rules: 521.597µs, identifier_marker: 302.928µs, path_prettifier: 101.389µs, autogenerated_exclude: 75.959µs, skip_dirs: 47.27µs, cgo: 3µs, filename_unadjuster: 1.15µs, max_same_issues: 520ns, source_code: 290ns, fixer: 270ns, exclude: 230ns, skip_files: 200ns, severity-rules: 190ns, uniq_by_line: 180ns, max_from_linter: 160ns, diff: 110ns, path_shortener: 110ns, sort_results: 110ns, max_per_file_from_linter: 100ns, path_prefixer: 90ns
INFO [runner] linters took 186.443798ms with stages: goanalysis_metalinter: 184.65996ms
INFO File cache stats: 0 entries of total size 0B
INFO Memory: 4 samples, avg is 57.4MB, max is 82.9MB
INFO Execution took 262.828254ms  ```


Allow GO matches in OnToma

Currently, searching for hypersensitivity with OnToma fails because it maps to GO_0002524 - "hypersensitivity", and GO terms are not supported:
>>> t.find_term("hypersensitivity")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 470, in find_term
    found = self._find_term_from_string(query, suggest)
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 514, in _find_term_from_string
    efolup = self.efo_lookup(query)
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 365, in efo_lookup
    return make_uri(self.name_to_efo[name])
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 124, in make_uri
    "Short form: {} not recognized".format(ontology_code))
ValueError: Could not build an URI. Short form: GO_0002524 not recognized

This should be fixed if GO is added to the first 'elif` in make_uri like this:
lif (ontology_code.startswith('HP') or
          ontology_code.startswith('MP') or
          ontology_code.startswith('MONDO') or
          ontology_code.startswith('UBERON') or
          ontology_code.startswith('GO')):
        return 'http://purl.obolibrary.org/obo/' + ontology_code

Not sure it applies to this issue, but keep in mind there are other id prefixes in EFO: NCIT, Orphanet, etc.

Not sure it applies to this issue, but keep in mind there are other id prefixes in EFO: NCIT, Orphanet, etc.

Orphanet is covered by that method but NCIT is not, so we should check it. Do you have any examples that we could try? I haven't found any terms with that prefix in the Cancer Gene Census evidence file and searching for it in OLS or the OT platform returns EFO terms as the top hits.

Orphanet is covered by that method but NCIT is not, so we should check it. Do you have any examples that we could try? I haven't found any terms with that prefix in the Cancer Gene Census evidence file and searching for it in OLS or the OT platform returns EFO terms as the top hits.

You can look at the diseaseId example here: https://github.com/opentargets/platform/issues/1285

You can look at the diseaseId example here: https://github.com/opentargets/platform/issues/1285

Thanks. Based on that list we should also support DOID. I'll search for examples of the three cases.

Thanks. Based on that list we should also support DOID. I'll search for examples of the three cases.

I can confirm that the same problem applies to matches with NCIT and DOID ids:

NCIT example:

>>> t.get_efo_label('NCIT_C95746')
INFO     - ontoma.interface - EFO OBO parsed. Size: 26845 nodes
'sleepiness'
>>> t.efo_lookup('sleepiness')
INFO     - ontoma.interface - Parsed 126677 Name to EFO mapping
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 365, in efo_lookup
    return make_uri(self.name_to_efo[name])
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 124, in make_uri
    "Short form: {} not recognized".format(ontology_code))
ValueError: Could not build an URI. Short form: NCIT_C95746 not recognized

DOID example:

>>> t.get_efo_label('DOID_7551')
'gonorrhea'
>>> t.efo_lookup('gonorrhea')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 365, in efo_lookup
    return make_uri(self.name_to_efo[name])
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 124, in make_uri
    "Short form: {} not recognized".format(ontology_code))
ValueError: Could not build an URI. Short form: DOID_7551 not recognized

Their URLs also belongs to the OBO category so they just need to be added to the same elif as GO:
    elif (ontology_code.startswith('HP') or
          ontology_code.startswith('MP') or
          ontology_code.startswith('MONDO') or
          ontology_code.startswith('UBERON')  or
          ontology_code.startswith('GO') or
          ontology_code.startswith('DOID') or
          ontology_code.startswith('NCIT')):
        return 'http://purl.obolibrary.org/obo/' + ontology_code

I can confirm that the same problem applies to matches with NCIT and DOID ids:

NCIT example:

>>> t.get_efo_label('NCIT_C95746')
INFO     - ontoma.interface - EFO OBO parsed. Size: 26845 nodes
'sleepiness'
>>> t.efo_lookup('sleepiness')
INFO     - ontoma.interface - Parsed 126677 Name to EFO mapping
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 365, in efo_lookup
    return make_uri(self.name_to_efo[name])
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 124, in make_uri
    "Short form: {} not recognized".format(ontology_code))
ValueError: Could not build an URI. Short form: NCIT_C95746 not recognized

DOID example:

>>> t.get_efo_label('DOID_7551')
'gonorrhea'
>>> t.efo_lookup('gonorrhea')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 365, in efo_lookup
    return make_uri(self.name_to_efo[name])
  File "/Users/gonzaleza/opentargets/evidence_datasource_parsers/evidence_parsers_venv/lib/python3.7/site-packages/ontoma/interface.py", line 124, in make_uri
    "Short form: {} not recognized".format(ontology_code))
ValueError: Could not build an URI. Short form: DOID_7551 not recognized

Their URLs also belongs to the OBO category so they just need to be added to the same elif as GO:
    elif (ontology_code.startswith('HP') or
          ontology_code.startswith('MP') or
          ontology_code.startswith('MONDO') or
          ontology_code.startswith('UBERON')  or
          ontology_code.startswith('GO') or
          ontology_code.startswith('DOID') or
          ontology_code.startswith('NCIT')):
        return 'http://purl.obolibrary.org/obo/' + ontology_code

I did a systematic check on the available prefixes that we should(?) support. I got the list based on the most recent EFO release (not the OT specific slim version though, but I guess we try to make a rather generic tool)
wget -q https://github.com/EBISPOT/efo/releases/download/v3.30.0/efo.json

These are all possible sources:

source
count
example
label

0
EFO
11274
EFO_0006529
2TS22C

1
Orphanet
6213
Orphanet_199315
Familial clubfoot with or without associated lower limb anomalies

2
MONDO
3309
MONDO_0002974
cervical cancer

3
CHEBI
1533
CHEBI_26536
retinoic acid

4
NCBITaxon
1497
NCBITaxon_121558
Senecio vulgaris subsp. vulgaris

5
HP
1341
HP_0008115
Clinodactyly of the 3rd toe

6
UBERON
914
UBERON_0011579
venom gland

7
CL
699
CL_0001067
group 1 innate lymphoid cell

8
GO
450
GO_0002524
hypersensitivity

9
CLO
429
CLO_0032713
GM13649

10
PO
215
PO_0025615
rosette

11
FBbt
110
FBbt_00001069
embryonic stomatogastric nervous system

12
UO
98
UO_0000301
microgram per liter

13
OBI
75
OBI_0100026
organism

14
BTO
74
BTO_0001130
prostate gland cancer cell

15
RO
57
RO_0001025
located_in

16
EO
43
EO_0001001
plant treatment

17
uberon
38
uberon#branch_of
branch_of

18
HANCESTRO
36
HANCESTRO_0004
ancestry category

19
ZFA
34
ZFA_0001047
slow muscle cell somite 10

20
PATO
33
PATO_0001340
hermaphrodite

21
BSPO
25
BSPO_0001101
in_deep_part_of

22
BFO
18
BFO_0000050
part of

23
IAO
16
IAO_0100001
term replaced by

24
oboInOwl
15
oboInOwl#hasRelatedSynonym
has_related_synonym

25
UBPROP
11
UBPROP_0000101
preceding element is

26
FMA
11
FMA_3884
distal portion of anterior interventricular branch of left coronary artery

27
NCIT
9
NCIT_C87277
Hippuric Acid

28
DOID
6
DOID_7551
gonorrhea

29
chebi
6
chebi#BRAND_NAME
BRAND NAME

30
mondo
5
mondo#disease_causes_feature
disease causes feature

31
OMIT
5
OMIT_0001676
Adenosine Diphosphate

32
MP
3
MP_0003254
obsolete_bile duct inflammation

33
SIO
3
SIO_000658
immediate_transformation_of

34
SO
3
SO_0000704
gene

35
MPATH
3
MPATH_0
pathological entity

36
TO
2
TO_0000259
heat tolerance

37
UBREL
2
UBREL_0000002
composed_primarily_of

38
definition
2
definition
definition

39
United
2
United_Kingdom
United Kingdom

40
MA
2
MA_0002714
autopod

41
bto
2
bto#develops_from
derives from/develops from

42
PR
2
PR_000003918
serum albumin

43
core
2
core#prefLabel
preferred label

44
bao
2
bao#BAO_0000925
Glucose-6-phosphate

45
Republic
1
Republic_of_Ireland
Republic of Ireland

46
rdf-schema
1
rdf-schema#seeAlso
see also

47
efoIri
1
efoIri

48
WBls
1
WBls_0000003
embryo Ce

49
owl
1
owl#Thing

50
ZEA
1
ZEA_0015075
cob

51
frequency
1
frequency_of_association
frequency_of_association

52
Iran
1
Iran
Iran

53
South
1
South_Korea
South Korea

54
China
1
China
China

55
Philippines
1
Philippines
Philippines

56
obo
1
obo#has_role
has_role

57
has
1
has_flag
has_flag

58
Japan
1
Japan
Japan

59
is
1
is_executed_in
is_executed_in

60
India
1
India
India

61
OGMS
1
OGMS_0000063
disease course

62
IDO
1
IDO_0000450
pathogenicity

63
added
1
added_for_HCA
added_for_HCA

64
creator
1
creator
creator

65
FBdv
1
FBdv_00005331
dorsal closure stage

There are quite so many, we should came up with some robust method.

Transferring to @tskir to study the removal of the hard-coded prefixes.

I believe you might have resolved this, isn't it? @tskir

If we want to treat the ontology codes in a standardized and systematic way, the bioregistry package is relevant.

We haven't resolved systematically, instead decided to expand the supported list prefixes on demand, which seems to be a headache, but in reality it rarely happens.

I quite inclined to close this ticket.


🐛 [firebase_messaging] Unable to build or run tests after release

Bug report
Describe the bug
Im trying to run tests and build the application, but im getting the error:
firebase_messaging_platform_interface-3.2.0/lib/src/method_channel/utils/exception.dart:13:11:
Error: Member not found: 'Error.throwWithStackTrace'.
    Error.throwWithStackTrace(exception, stackTrace);

Steps to reproduce
Steps to reproduce the behavior:

execute flutter run or flutter test
See error or incorrect behavior

Additional context
I think this error started to popout after the firebase_messaging_platform_interface 3.2.0 release. After i did the flutter pub get, the dependency in my pubspeck.lock changed from 3.1.6 to 3.2.0, and after that im unable to build the project.
I'm using the flutter sdk 2.8.1, and i cant upgrade right now to 2.10 because i have a dependency that uses android embedding v1.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
[✓] Flutter (Channel stable, 2.8.1, on macOS 11.3.1 20E241 darwin-x64, locale pt-BR)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Android Studio (version 2021.1)
[✓] VS Code (version 1.64.2)

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
flutter pub deps -- --style=compact
Dart SDK 2.15.1
Flutter SDK 2.8.1
persono_flutter 3.3.0

dependencies:
- app_settings 4.1.1 [flutter]
- beamer 1.4.0 [flutter flutter_web_plugins]
- collection 1.15.0
- connectivity 3.0.6 [flutter meta connectivity_platform_interface connectivity_macos connectivity_for_web]
- crclib 2.0.0 [meta tuple]
- cupertino_icons 1.0.4
- dotted_border 2.0.0+2 [flutter path_drawing]
- firebase_analytics 8.3.4 [firebase_analytics_platform_interface firebase_analytics_web firebase_core flutter meta]
- firebase_core 1.12.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_messaging 10.0.9 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- firebase_remote_config 0.11.0+2 [firebase_core firebase_core_platform_interface firebase_remote_config_platform_interface flutter]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_ble_lib 2.4.0 [collection async flutter]
- flutter_holo_date_picker 1.0.1+2 [flutter auto_size_text]
- flutter_local_notifications 9.3.2 [clock flutter flutter_local_notifications_linux flutter_local_notifications_platform_interface timezone]
- flutter_localizations 0.0.0 [flutter intl characters clock collection meta path typed_data vector_math]
- flutter_mobx 2.0.4 [flutter mobx]
- flutter_styled_toast 2.0.0 [flutter flutter_localizations]
- get_it 7.2.0 [async collection]
- html 0.15.0 [csslib source_span]
- http 0.13.4 [async http_parser meta path]
- intl 0.17.0 [clock path]
- linked_scroll_controller 0.2.0 [flutter]
- location 4.3.0 [flutter location_platform_interface location_web]
- lottie 1.2.2 [archive flutter path vector_math]
- mobx 2.0.6+1 [meta]
- package_info_plus 1.4.0 [flutter package_info_plus_platform_interface package_info_plus_linux package_info_plus_macos package_info_plus_windows package_info_plus_web]
- path_provider 2.0.9 [flutter path_provider_android path_provider_ios path_provider_linux path_provider_macos path_provider_platform_interface path_provider_windows]
- percent_indicator 3.4.0 [flutter]
- permission_handler 8.3.0 [flutter meta permission_handler_platform_interface]
- sentry_flutter 6.3.0 [flutter flutter_web_plugins sentry package_info_plus]
- shared_preferences 2.0.13 [flutter shared_preferences_android shared_preferences_ios shared_preferences_linux shared_preferences_macos shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- sticky_headers 0.2.0 [flutter]
- url_launcher 6.0.12 [flutter meta url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- video_player 2.2.18 [flutter video_player_android video_player_avfoundation video_player_platform_interface video_player_web html]

dev dependencies:
- build_runner 2.1.7 [args async analyzer build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style frontend_server_client glob graphs http_multi_server io js logging meta mime package_config path pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- coverage 1.0.3 [args logging package_config path source_maps stack_trace vm_service]
- flutter_driver 0.0.0 [file flutter flutter_test fuchsia_remote_debug_protocol path meta vm_service webdriver archive async boolean_selector characters charcode clock collection crypto matcher platform process source_span stack_trace stream_channel string_scanner sync_http term_glyph test_api typed_data vector_math]
- flutter_launcher_icons 0.9.2 [args image path yaml]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]
- integration_test 0.0.0 [flutter flutter_driver flutter_test path vm_service archive async boolean_selector characters charcode clock collection crypto fake_async file matcher meta source_span stack_trace stream_channel string_scanner sync_http term_glyph test_api typed_data vector_math webdriver]
- mobx_codegen 2.0.4 [analyzer build build_resolvers meta mobx path source_gen]
- mocktail 0.2.0 [collection matcher test]
- remove_from_coverage 2.0.0 [args]
- test 1.17.12 [analyzer async boolean_selector collection coverage http_multi_server io js node_preamble package_config path pedantic pool shelf shelf_packages_handler shelf_static shelf_web_socket source_span stack_trace stream_channel typed_data web_socket_channel webkit_inspection_protocol yaml test_api test_core]

transitive dependencies:
- _fe_analyzer_shared 31.0.0 [meta]
- analyzer 2.8.0 [_fe_analyzer_shared cli_util collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- archive 3.1.6 [crypto path]
- args 2.3.0
- async 2.8.2 [collection meta]
- auto_size_text 3.0.0 [flutter]
- boolean_selector 2.1.0 [source_span string_scanner]
- build 2.2.1 [analyzer async convert crypto glob logging meta path]
- build_config 1.0.0 [checked_yaml json_annotation path pubspec_parse yaml]
- build_daemon 3.0.1 [built_collection built_value http_multi_server logging path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 2.0.6 [analyzer async build crypto graphs logging path package_config pool pub_semver stream_transform yaml]
- build_runner_core 7.2.3 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pool timing watcher yaml]
- built_collection 5.1.1
- built_value 8.1.4 [built_collection collection fixnum meta]
- characters 1.2.0
- charcode 1.3.1
- checked_yaml 2.0.1 [json_annotation source_span yaml]
- cli_util 0.3.5 [meta path]
- clock 1.1.0
- code_builder 4.1.0 [built_collection built_value collection matcher meta]
- connectivity_for_web 0.4.0+1 [connectivity_platform_interface flutter_web_plugins flutter]
- connectivity_macos 0.2.1+2 [flutter connectivity_platform_interface]
- connectivity_platform_interface 2.0.1 [flutter meta plugin_platform_interface]
- convert 3.0.1 [typed_data]
- crypto 3.0.1 [collection typed_data]
- csslib 0.17.1 [source_span]
- dart_style 2.2.1 [analyzer args path pub_semver source_span]
- dbus 0.7.1 [args ffi meta xml]
- fake_async 1.2.0 [clock collection]
- ffi 1.1.2
- file 6.1.2 [meta path]
- firebase 9.0.2 [http http_parser js]
- firebase_analytics_platform_interface 2.0.1 [flutter meta]
- firebase_analytics_web 0.3.0+1 [firebase firebase_analytics_platform_interface flutter flutter_web_plugins meta]
- firebase_core_platform_interface 4.2.4 [collection flutter meta plugin_platform_interface]
- firebase_core_web 1.6.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_messaging_platform_interface 3.2.0 [firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 2.2.8 [firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta]
- firebase_remote_config_platform_interface 0.3.0+7 [firebase_core flutter meta plugin_platform_interface]
- fixnum 1.0.0
- flutter_local_notifications_linux 0.4.2 [flutter flutter_local_notifications_platform_interface dbus path xdg_directories]
- flutter_local_notifications_platform_interface 5.0.0 [flutter plugin_platform_interface]
- flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
- frontend_server_client 2.1.2 [async path]
- fuchsia_remote_debug_protocol 0.0.0 [process vm_service file meta path platform]
- glob 2.0.2 [async collection file path string_scanner]
- graphs 2.1.0 [collection]
- http_multi_server 3.2.0 [async]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- image 3.1.3 [archive meta xml]
- io 1.0.3 [meta path string_scanner]
- js 0.6.3
- json_annotation 4.4.0 [meta]
- location_platform_interface 2.3.0 [flutter meta plugin_platform_interface]
- location_web 3.1.1 [flutter flutter_web_plugins http_parser js location_platform_interface meta]
- logging 1.0.2
- matcher 0.12.11 [stack_trace]
- meta 1.7.0
- mime 1.0.1
- node_preamble 2.0.1
- package_config 2.0.2 [path]
- package_info_plus_linux 1.0.3 [package_info_plus_platform_interface flutter path]
- package_info_plus_macos 1.3.0 [flutter]
- package_info_plus_platform_interface 1.0.2 [flutter meta plugin_platform_interface]
- package_info_plus_web 1.0.4 [flutter flutter_web_plugins http meta package_info_plus_platform_interface]
- package_info_plus_windows 1.0.4 [package_info_plus_platform_interface ffi flutter win32]
- path 1.8.0
- path_drawing 1.0.0 [vector_math meta path_parsing flutter]
- path_parsing 1.0.0 [vector_math meta]
- path_provider_android 2.0.11 [flutter path_provider_platform_interface]
- path_provider_ios 2.0.7 [flutter path_provider_platform_interface]
- path_provider_linux 2.1.5 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_macos 2.0.5 [flutter path_provider_platform_interface]
- path_provider_platform_interface 2.0.3 [flutter platform plugin_platform_interface]
- path_provider_windows 2.0.5 [ffi flutter path path_provider_platform_interface win32]
- pedantic 1.11.1
- permission_handler_platform_interface 3.7.0 [flutter meta plugin_platform_interface]
- petitparser 4.4.0 [meta]
- platform 3.0.2
- plugin_platform_interface 2.1.2 [meta]
- pool 1.5.0 [async stack_trace]
- process 4.2.4 [file path platform]
- pub_semver 2.1.0 [collection meta]
- pubspec_parse 1.2.0 [checked_yaml collection json_annotation pub_semver yaml]
- quiver 3.0.1+1 [matcher]
- sentry 6.3.0 [http meta stack_trace uuid]
- shared_preferences_android 2.0.11 [flutter shared_preferences_platform_interface]
- shared_preferences_ios 2.1.0 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.1.0 [file flutter path path_provider_linux path_provider_platform_interface shared_preferences_platform_interface]
- shared_preferences_macos 2.0.3 [flutter shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.3 [flutter flutter_web_plugins shared_preferences_platform_interface]
- shared_preferences_windows 2.1.0 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- shelf 1.2.0 [async collection http_parser path stack_trace stream_channel]
- shelf_packages_handler 3.0.0 [path shelf shelf_static]
- shelf_static 1.1.0 [convert http_parser mime path shelf]
- shelf_web_socket 1.0.1 [shelf stream_channel web_socket_channel]
- sky_engine 0.0.99
- source_gen 1.2.1 [analyzer async build dart_style glob meta path source_span yaml]
- source_map_stack_trace 2.1.0 [path stack_trace source_maps]
- source_maps 0.10.10 [source_span]
- source_span 1.8.1 [collection path term_glyph]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- stream_transform 2.0.0
- string_scanner 1.1.0 [charcode source_span]
- sync_http 0.3.0
- term_glyph 1.2.0
- test_api 0.4.3 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- test_core 0.4.2 [analyzer async args boolean_selector collection coverage frontend_server_client glob io meta package_config path pedantic pool source_map_stack_trace source_maps source_span stack_trace stream_channel vm_service yaml matcher test_api]
- timezone 0.8.0 [path]
- timing 1.0.0 [json_annotation]
- tuple 2.0.0 [quiver]
- typed_data 1.3.0 [collection]
- url_launcher_linux 2.0.3 [flutter]
- url_launcher_macos 2.0.3 [flutter]
- url_launcher_platform_interface 2.0.5 [flutter plugin_platform_interface]
- url_launcher_web 2.0.6 [flutter flutter_web_plugins url_launcher_platform_interface]
- url_launcher_windows 2.0.2 [flutter]
- uuid 3.0.6 [crypto]
- vector_math 2.1.1
- video_player_android 2.3.0 [flutter video_player_platform_interface]
- video_player_avfoundation 2.3.0 [flutter video_player_platform_interface]
- video_player_platform_interface 5.1.0 [flutter plugin_platform_interface]
- video_player_web 2.0.7 [flutter flutter_web_plugins video_player_platform_interface]
- vm_service 7.3.0
- watcher 1.0.1 [async path]
- web_socket_channel 2.1.0 [async crypto stream_channel]
- webdriver 3.0.0 [archive matcher path stack_trace sync_http]
- webkit_inspection_protocol 1.0.0 [logging]
- win32 2.4.1 [ffi]
- xdg_directories 0.2.0+1 [meta path process]
- xml 5.3.1 [collection meta petitparser]
- yaml 3.1.0 [collection source_span string_scanner]

Same issue here. Getting the error for: cloud_firestore_platform_interface, firebase_crashlytics_platform_interface, firebase_messaging_platform_interface, firebase_auth_platform_interface.

Ok, i found a workaround to this.
I added to my pubspeck.yaml:
dependency_override:
  firebase_messaging_platform_interface: 3.1.6

Same issue here.

I can confirm this workaround works, thanks! There is a typo in dependency_override, should be dependency_overrides.

I found a workaround for this.
I added to my pubspeck.yaml:
dependency_override:
  firebase_messaging_platform_interface: 3.1.6

Maybe adding an override to these packages with older version can solve the problem until we get a better solution.

Link https://github.com/FirebaseExtended/flutterfire/pull/8156

I can confirm this workaround works, thanks! There is a typo in dependency_override, should be dependency_overrides.
dependency_overrides:
  firebase_messaging_platform_interface: 3.1.6
  firebase_crashlytics_platform_interface: 3.1.13
  cloud_firestore_platform_interface: 5.4.13
  firebase_auth_platform_interface: 6.1.11
  firebase_storage_platform_interface: 4.0.14
  cloud_functions_platform_interface: 5.0.21

I found a workaround for this.
I added to my pubspeck.yaml:
dependency_override:
  firebase_messaging_platform_interface: 3.1.6

Maybe adding an override to these packages with older version can solve the problem until we get a better solution.

thanks @cantuccis and @gabrielguedest  !!!!!
I was having a problem in the build by codemagic, for me it solved with these overrides:
firebase_crashlytics_platform_interface: 3.1.13
firebase_analytics_platform_interface: 3.0.5
firebase_remote_config_platform_interface: 1.0.5
firebase_dynamic_links_platform_interface: 0.2.0+5

Thanks for the earlier comment. I needed the following additions too to get it to work.
dependency_overrides:
  firebase_messaging_platform_interface: 3.1.6
  firebase_crashlytics_platform_interface: 3.1.13
  cloud_firestore_platform_interface: 5.4.13
  firebase_auth_platform_interface: 6.1.11
  firebase_storage_platform_interface: 4.0.14
  cloud_functions_platform_interface: 5.0.21
  firebase_analytics_platform_interface: 3.0.5
  firebase_remote_config_platform_interface: 1.0.5
  firebase_dynamic_links_platform_interface: 0.2.0+5
  firebase_performance_platform_interface: 0.1.0+5
  firebase_app_installations_platform_interface: 0.1.0+6

I upgraded to Flutter version 2.10.2.
It works for me.

Upgrading to the latest stable is the expected solution.
I've made a PR to update the various SDK constraints because apparently pub isn't picking up that a transitive dependency requires Dart >= 2.16.
But in any case, you'll still need to use Dart 2.16

The problem is that whoever is using a version of flutter less than 2.10, even without updating any dependency, will have problems with build...

This issue is still occurring after updating to Flutter version 2.10.2 and Dart 2.16.1. The problem seems to be with firebase_storage. When I remove the firebase_storage dependency from my project it builds for web with no issues. Adding the dependency override firebase_storage_platform_interface: 4.0.14 does not solve the issue.

To work around this problem in the app_check package , Add this
dependency_overrides:
  firebase_app_check_platform_interface: 0.0.3+5

I have the same or similar issue with Cloud Firestore.
I have recently upgraded Flutter (Channel stable, 2.10.2) and Dart (SDK version: 2.16.1 (stable)). I also added a dependency override to my pubspec.yaml for "cloud_firestore_platform_interface: 5.4.13".  I am getting the following error:
"../../../.pub-cache/hosted/pub.dartlang.org/cloud_firestore_web-2.6.9/lib/src/internals.dart:11:20: Error: Method not found: 'guardWebExceptions'.
return internals.guardWebExceptions(
^^^^^^^^^^^^^^^^^^
Failed to compile application."

@rrousselGit not sure if this fixed the problem.

Upgraded to latest flutter version:
Flutter 2.10.2 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 097d3313d8 (11 days ago) • 2022-02-18 19:33:08 -0600
Engine • revision a83ed0e5e3
Tools • Dart 2.16.1 • DevTools 2.9.2
Updated in the app
environment:
sdk: ">=2.16.1 <3.0.0"
flutter: ">=2.10.2"

Is there something missing or the issue is still present?
Thanks

@skypopcorn1  try running pub upgrade
@og1-alarm what's your error exactly?

I'd suggest adding the following to your pubspec:
dependencies:
 firebase_core: ^1.13.1

this would force the versioning to work properly

@rrousselGit upgrade to latest firebase_core did the trick. Thanks


hw/bsp: Refactor BSP for RuuviTag rev B

Main purpose of this commit is to update BSP for RuuviTag to use
refactored nrf52xxx package. However, few extra modifications were
applied during clean up:

Name is changed to more generic ruuvitag_rev_b since it should work
with any rev B hardware. Previous name suggested it was for rev B2
and at the same time description suggested it was for rev B3 and B4
(latest rev is B6 at the time of writing).
Debug and flash scripts were renamed to follow BSP name
Added BSP_RUUVITAG_REV_B_NUM syscfg setting to specify revision of target
hardware. This makes possible to apply proper default configuration
since there were small differences between revisions (pin numbers and
available peripherals).

Note that for 1.5.0 we at least need to update this BSP to new MCU package - I can prepare appropriate PR if refactor is not accepted.


Allow more configuration re-use with TeamCity templates for iMOD Coupler

It is done with Ribasim, now let's do the same with iMOD Coupler
See also https://github.com/Deltares/Ribasim/issues/1313

After discussed with @rleander , he will first make same templates as the Ribasim ones for coupler, and we will see what happen later. Some vison on what we want in the templates is needed.


MH-13434, Opencast Common Clean-up

This patch removes some unused code from opencast-common.

Looks good to me except for the test failure:
[ERROR] Failures:
[ERROR]   EqualUtilTest.testHash:43 expected:<126145> but was:<236095>

Ups. Missed pushing that. Sorry.

The definitions (MILLISECONDS, SECONDS, MINUTES, HOURS) could go in favour of TimeUnit references.

@lkiesow Note that some capture agents do set values for some of the configuration keys you remove here. For example, Extorn SMPs set capture.schedule.remote.polling.interval and capture.agent.name.
Just mentioning...

And they can continue to do so if they like to. But Opencast does not use these Constants anywhere and hasn't before this patch.

Same issue described in https://opencast.jira.com/browse/MH-12654
It doesn't really matter if Opencast knows about a property or not; it can still be reported and retrieved. It would be helpful to have a controlled vocabulary in common across CAs (like reporting free disk space) but we don't at present.
Having these in the code promoted bad behaviour in CAs which set them regardless for some notion of compatibility with the original reference CA, e.g.
https://github.com/teltek/Galicaster/issues/572

Makes sense.


Enable overriding components via platformio.ini

Fixes #39
Wrap the defines that determine what components are supported by the firmware in #ifndef statements. This enables setting them via the platformio.ini file in the future to simplify creating firmware variants for a board at build time.

As an example this change will allow something like this to get added to the platformio.ini file:
[env:promicro_basic]
platform = atmelavr
board = sparkfun_promicro16
framework = arduino
build_flags =
	-I./_Boards/Atmel/Board_ProMicro
	-D MF_SEGMENT_SUPPORT=0
	-D MF_LCD_SUPPORT=0
src_filter =
	+<*>
	+<../_Boards/Atmel>
lib_deps =
	arduino-libraries/Servo @ ^1.1.7
	wayoda/LedControl @ ^1.0.6
	waspinator/AccelStepper @ ^1.61
	marcoschwartz/LiquidCrystal_I2C @ ^1.1.4
<EMAIL_ADDRESS>monitor_speed = 115200
extra_scripts =
	pre:get_version.py

Basically any additional variants of a given board's firmware can be created simply by adding new entries to platformio.ini.

@elral would you mind taking a peek at this to ensure it looks good then I'll merge? Thanks!


Bump Vitest version to ^1.4.0

See: https://github.com/vitest-dev/vscode/issues/257?notification_referrer_id=NT_kwDOAFdWIrI5NTc2NzQxMjY2OjU3MjM2ODI#issuecomment-2000161630
To resolve the issue on my machine (Windows) I need to use the pre-release version of the vitest.dev extension. Not sure if there's a way to recommend it in .vscode/extensions.json but regardless, the vitest version needs to be bumped to support using it.
Did confirm that this pretty much resolves the issues I was having running tests.

:x: There is undocummented changes. Run chronus add to add a changeset or click here.
The following packages have changes but are not documented.

:x:@typespec/bundler
:x:@typespec/compiler
:x:@typespec/eslint-plugin
:x:@typespec/html-program-viewer
:x:@typespec/http
:x:@typespec/internal-build-utils
:x:@typespec/json-schema
:x:@typespec/library-linter
:x:@typespec/openapi
:x:@typespec/openapi3
:x:@typespec/prettier-plugin-typespec
:x:@typespec/protobuf
:x:@typespec/rest
:x:typespec-vscode
:x:@typespec/versioning

@tjprescott  I am bumping all dependencies here already including vitest to 1.4.0 https://github.com/microsoft/typespec/pull/3027

You can try these changes at https://cadlplayground.z22.web.core.windows.net/prs/3028/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/prs/3028/

Closing in favor of https://github.com/microsoft/typespec/pull/3027


The diff coverage is 0.48%.

@@             Coverage Diff             @@
##             master     #28      +/-   ##
===========================================
- Coverage      2.38%   2.26%   -0.12%
- Complexity       82      83       +1
===========================================
  Files           370     401      +31
  Lines         13650   14462     +812
  Branches       1451    1498      +47
===========================================
+ Hits            325     327       +2
- Misses        13299   14109     +810
  Partials         26      26


Aliases are not listed in help menu

As noted by @cwhits in #416, aliases defined using map (e.g. map "edit" => :new) are not listed by tmuxinator help, which appears to be by (Thor's) design. Since it looks like there's no way to achieve this using Thor's aliases/map API, it might be worth creating explicit descriptions/methods for these commands.

Another, but perhaps relevant, facet of this is that I feel like the 'edit' command should be split off from the 'new' command. I feel that if you try to edit a non-existent project file, Tmuxinator shouldn't just generate a new project file for you. Chief reason: typos. Typing mux edit prjoect when trying to edit the 'project' file would create a new project with this hideous name, which then must be removed.
Should I split this off into another issue?

The only mapped commands are edit and open. If edit is broken off into a separate issue to prevent it from creating new projects because of a typo, open should be a mapped alias of edit instead of new for the same reasons.

I agree I don't really like the aliased commands.  Makes the code overly complicated as well.
IMO we should table this (#420) issue and create a new one that will streamline the set of commands, as @J3RN suggested.

Bumping this issue because it came up again in #498.


Non-zero lift at zero angle of attack causes discontinuous lift when shifting from positive to negative AOA

Wings don't actually ever use the negative side of the lift curve because angle of attack lookup is always done with a positive number. This is why when wings have a nonzero lift at angle 0, it creates discontinuities.
This can be worked around by making a wing that creates zero lift at 0 degrees, but is set on the plane at some positive angle.

I'm sure this is also related to me recent issue regarding modifying lift / drag for control surfaces.
Shouldn't the lift direction go negative rather than the lift force its self?

Another solution is to have a minAngleOfAttack. And if the angleOfAttack goes bellow it then set it to that number. That way the wing is always giving you lift at the minAngleOfAttack.
angleOfAttack = Vector3.Angle(Vector3.forward, localVelocity); 			if (angleOfAttack < minAngleOfAttack)             { 				angleOfAttack = minAngleOfAttack;             }


Monitor process by pidfile or exe name

Process plugin allows monitoring individual processes specified by pid file or exe name. It will report back memory, cpu, context switch and io stats. name is used to prefix measurements.
[process]
[[process.specifications]]
  exe = "influxd"
  name = "influxd"
[[process.specifications]]
  pid_file = "/var/run/lxc/dnsmasq.pid"
  name = "dnsmasq"

@sparrc this was my exact requirement for https://github.com/influxdb/telegraf/issues/215 . After going through the nagios and collectd plugins i have realized this is bit different than the overall processes plugin, where a different type of metrics. I am planning to add global process metrics by a separate PR (still need some more details, i'll continue the discussion on the ticket)

@ranjib looks like a godep dependency issue with the build, try this:
$ go get github.com/tools/godep
$ godep save ./...

@ranjib this looks good, thank you for the contribution! :+1:, two things:

The name of a the plugin might conflict with a more general "process" plugin for aggregating sleep/zombie/active processes, similar to the collectd processes plugin. Maybe we can name this one something else, like procstat?
I feel that the name field in the config is confusing, and could easily be confused for the name of the process. Let's rename that to something else, something along the lines of prefix or measurement_prefix

@sparrc im getting the following error with godep save
godep: cannot find package "github.com/prometheus/client_golang/extraction" in any of: 	/home/zenith/softwares/go1.4/src/github.com/prometheus/client_golang/extraction (from $GOROOT) 	/home/zenith/go/src/github.com/prometheus/client_golang/extraction (from $GOPATH) godep: cannot find package "github.com/prometheus/client_golang/model" in any of: 	/home/zenith/softwares/go1.4/src/github.com/prometheus/client_golang/model (from $GOROOT) 	/home/zenith/go/src/github.com/prometheus/client_golang/model (from $GOPATH) godep: error loading dependencies
i can run godep go build ./... and godep go test -short ./... without any issue :-/

@ranjib try this:
godep restore
godep save ./...

Could you also please write a README for this plugin? See #177

@sparrc

i'll add readme
i tried godep restore before, it was giving the same error. im still looking into,
i have granted your write access on my fork,
thanks for taking time , really appreciate this :0)

@ranjib fixed, but:
I'm sorry, but I made some force pushes, I was in the zone and using my regular workflow on personal branches!
Hope it doesn't mess you up too much, let me know if I can lend a hand

@sparrc done.

@ranjib can you please make the README more detailed? You can use the CPU plugin as an example:
https://github.com/influxdb/telegraf/blob/master/plugins/system/CPU_README.md
Primarily I'd like to see an example of the metrics that it will output.

@sparrc sure. i took the example from exec plugin.

@sparrc updated readme with measurement names.
also, i am not able to build telegraf due to this: https://github.com/shirou/gopsutil/commit/3303647209557312e5db51450ea8bbdef56d5176
can you update the shirou/gopsutil version.

thank you @ranjib for updating the README, is this ready to merge?

@sparrc  i think so, i am hoping i dont have to rebase for the gopsutil changes.
i really want to understand why godeps is not working on my end.. is influxdb mailing is the right place to ask?

No I don't think so, the influxdb repo doesn't use godep in fact. You may want to file an issue in the godep project: https://github.com/tools/godep


Grammar update

padding keyword in mls files (formerly mss files) grammar needs to be updated to match documentation.
add r,l,t,b character in front of each supplied number value and make the full set optional

Done.


Unable to start on php with shell_exec on Raspberry

Unable to start on php with shell_exec on Raspberry

There is no information at all in this ticket, please add information about the problem, steps to reproduce and versions of your software.

There is no information at all in this ticket, please add information about the problem, steps to reproduce and versions of your software.


[FEATURE] Add Radam optimizer

Description
RAdam is the large variance of the adaptive learning rates, and provide both theoretical and empirical support evidence. #899
Modified code from https://github.com/LiyuanLucasLiu/RAdam
Checklist
Essentials

[x] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage
[x] Code is well-documented

Changes

[ ] Feature1, tests, (and when applicable, API doc)
[ ] Feature2, tests, (and when applicable, API doc)

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

You need to provide clear evidence of why we should include this unpublished optimization method in gluon-nlp. For example, how does it perform in NLP tasks? What can we gain by replacing the existing optimizers with Radam in the gluon-nlp scripts? As this is an ongoing unpublished paper, you need to clearly mention the benefits in this PR.

Why adding this optimizer to GluonNLP instead of MXNet itself?

I will add RAdam to BiDAF implementation of my and let you know if it added any benefits for that particular NLP task

I checked the model performance in small CNN network using FashionMNIST. In this case, Radam showed a good performance. But I did not test the NLP Task. So. I will test using GluonNLP script.

The training has been completed, but unfortunately for me I don't see much of a performance improvement. The best was achieved on epoch 6 out of 12. It is still far from the paper numbers: EM = 67.7 F1 = 77.3.
EPOCH  6: train loss 1.9383 | batch   60 | lr 0.001 | throughtput 25.095 of samples/sec | Time per epoch 3490.67 seconds | Evaluation result  {'exact_match': 64.9763481551561, 'f1': 75.71186781682326}```

Yet, it is most probably not related to the RAdam itself.

@seujung would it make sense to create a PR with RAdam optimizer at https://github.com/apache/incubator-mxnet/ ? Then all MXNet based projects could profit.

@leezu OK. I think it's better to create a PR at mxnet. So, I'll change the RAdam to mxnet.

@seujung closing as the PR will be made to mxnet. Let me know if you need to reopen this for any reason.


A long winded battle between TravisCI and myself. Travis is winning.

Everything else won. Let's try this again.


WebApps not showing up in Windows XP (start menu, desktop etc)

On latest free supermium 32 bit on windows xp I go to 3 dots on top right and click more tools and make shortcut and it makes a window but I cannot make a desktop/start menu shortcut to it

When installing the app or opening via menu, check in Properties if you have any strings attached to it or error.
This website would be "C:\Program Files\Supermium\chrome_proxy.exe"  --profile-directory=Default --app-id=mjoklplbddabcmpepnokjaffbmgbkkgg

On Windows Vista SP2, Supermium 122 also does not create shortcuts for PWAs in Start Menu and Desktop. Tested on VMware Workstation v15.5.7 under Windows 10 LTSB 2016 host.

@win32ss, in Supermium 122.0.6261.152-R6 under Windows XP/2003/Vista, bug with shortcuts for PWAs on Desktop and Start Menu not being created is still not fixed.

There were no changes with the installation of PWAs in Supermium 124.0.6367.245 under Windows XP SP3. Shortcuts for PWAs are still not created on desktop, and the "Supermium Apps" program group in Start Menu is still empty.


Create test_unpack_3bit_int32.py in tests/

Dear @mobicham,
Since the digits of binary number in unpack_3bit_32() are long, I think this (from L12 to L28) is alternative...
But I cannot sure whether this implement is speed-preserve.
Would you mind if checking this PR, especially in the aspect of evaluation speed?
Thank you very much.

Thank you for your contribution @Liberatedwinner
Would you mind explaining why this alternative is better ? From what I see, it's doing the same thing, just using a loop instead. Unrolling the loop makes it easier for torch compile to do optimizations and also makes the unpacking logic more readable.
We anyway have to unroll the loop in CUDA as well, so I am curious to hear your feedback!

From my view, 0b000... is a little long expression to type in code file and I think the loop implement is reusable to the other functions.
But by virtue of your explanation, now I realized that my view was too narrow; I had not consider of compile optimizations.
So, it is no problem to remove what I PRed.
Thank you very much.

I am sorry for being late.
Then... I would like to close this PR for preventing from further confusions,
and would like to make another PR (if ok) which goes along with your idea.
Would you mind if closing this?

Sure! Make sure to add unit tests on multiple large tensor shapes to make sure it works fine with the hex format


added caching mechanism

For the larger designs like jpegencode, a lot of the runtime is spent initializing the list of possible matches for each primitive based on cell type and properties. This pr creates a caching mechanism which rebuilds the dict based on the instance names. For jpegencode, this brought the runtime down by 29 minutes.

Error injection has failed twice in a row. It's been failing every once in a while so it's odd that it happened twice in a row. If it happens a third time, it's maybe some from my pull request, but I'm not sure what would cause that.

I decided to do it as a flow arg, by default it's false but if you add --flow_arguments "{'debug': True}" to the end of your "python scripts/run.py ... " it will use the cache if there is one available, and use the RapidWright functionality as well. If debugging mode is False, and/or if there is no cache available, it will create a cache during that run.


Merging features with bltavares/terraform-provider-zerotier

Hello there folks,
I'm really happy to see updates on zerotier. I've been using and maintaining my own version of the terraform provider for about 2-3 years already and I would like to merge some features so I can deprecate my version.
Here are the list of missing features:

[ ] Resource importing
[ ] Avoid unnecessary diffs using on network members
[ ] Computed ipv4, 6plane and RFC4193 attributes on the network resource
[ ] Computed ipv4, 6plane and RFC4193 attributes on the member resource

Those were missing features required for me to migrate my current network definition to Terraform, and better integrate with other providers. Having separate computed properties on  network and member for  6plane and RFC4193 attributes allows easier integration with a DNS provider or with file outputs for scripting.
I won't have time the following weeks to make this change as PRs, but all suggested commits should be easily ported to new versions but I can take a look at it on the next month.

Hi Bruno!
Thanks for this.
I'll get these to you soon!
-s

Hi, I wrote most of the code here. I'm fine with these suggestions myself.
I'm a little hesitant on computed addresses as I was playing with some stuff around CIDR computation (if it's not still in tree, it's in the log) for these situations that I gutted because it wasn't going so hot. :) Mostly a lack of understanding on my part about the state lifecycles in terraform, would mostly just like to make sure a new implementation doesn't re-introduce that. The CIDR code was fine however and you may wish to use it, it's fairly efficient.
anyways I'll try to dip a toe in and help. I am working on a few other projects that require a lot of attention so I may not be very fast. Feel free to reach me @ my github profile's email if you'd prefer to coordinate off github.

Hey @erikh, I'm glad the suggestions are well received. No worries on taking a look at this, as neither do I have time to work on it also on the short term.
I mostly wanted to share it early so the differences are mapped and we can work together to unify the features.
Thanks for mentioning the issues you've found with computed properties. Would you be able to share more details of what happened? I've been using it for a while already, and as long as I used the schema.TypeSet I didn't have any issues with Terraform.

I'm trying to remember; it was almost certainly something I was doing wrong. I'll make a note to bisect it later; sean and I hit it during release prep and there was a version with it it in there.


Added maven.config

This allows you to only having to change the version at a single location

nice but this does not affect the Deploy plugin right?

i dont really like it
never seen a project which uses the pattern (PF or many Apache projects)

and you can change all versions via single command: mvn versions:set

Here is what I do for PrimeSelenium...
Update pom.xml to new version e.g 8.0.2
Run mvn -N versions:update-child-modules -DgenerateBackupPoms=false to update all child modules versions
Commit and push the changes to GitHub
In GitHub create a new Release titled 8.0.2 to tag this release
Run mvn clean deploy -Prelease to push to Maven Central

mvn versions:set -DnewVersion=10.0-SNAPSHOT
will update all submodules

Awesome let me go update my notes.  I have always done the update-child-modules but i like yours better.

and you can change all versions via single command: mvn versions:set

Ha, didn't know that. Cool!

I updated the Release instructions on the README.MD of this project.


Refresh a @section('content') page without refreshing master page in laravel

How to update content only, without reloading the entire page.
I'm starting in Laravel.

Hello. Can you tould more details about your task?

Hello. I am wanting that when you click on link in the menu load only @section ('content') (main content) and not load the master blade and page blade again. It's possible?
Can you understand?

It's a good question. In default, you can not use this. You have to change the menu blade template to trigger a ajax action, to change the content.

I'm new to Laravel and using AdminLTE, can you give an example as it would be in my case?

Sorry, I don't have a example for this. I think, you have to search for it... ;)


remove unused depdendencies

(fastapi, pytorch, mysql connector, pytesseract, requests, uvicorn, torchvision, matplotlib)

completed
idk when


doc: align pseudo-Makefile with latest CMake changes

The SPHINXOPTS option was not aligned with latest changes in CMake, and SPHINXOPTS_EXTRA was not present.

Was it intentional to have commit d3d6347 as part of this PR?

yes, CI was failing


UDP networking unstable on macos and linux environments

Description
Repo: https://github.com/cesanta/mongoose
GA actions runs unit test which makes a request to the time.google.com SNTP server, via UDP to synchronise time.
On macos environment, that request fails the majority of time - even if the unit test is patched to repeat the request, all subsequent UDP requests seem to be dropped. Only a restart may fix that, and sometimes does it after several attempts.
The most flaky environment is macos, and recently linux started to show that behavior.
Note: TCP requests to the external hosts seem to be fine. Only UDP has problems.
Example of failed test (this case, macos environment failed): https://github.com/cesanta/mongoose/actions/runs/2388366976
Virtual environments affected

[ ] Ubuntu 18.04
[X] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 10.15
[X] macOS 11
[ ] macOS 12
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
https://github.com/cesanta/mongoose/actions/runs/2388366976
Macos:
Current runner version: '2.291.1'
Operating System
Virtual Environment
  Environment: macos-11
  Version: [2](https://github.com/cesanta/mongoose/runs/6603556798?check_suite_focus=true#step:1:2)022051[7](https://github.com/cesanta/mongoose/runs/6603556798?check_suite_focus=true#step:1:8).4
  Included Software: https://github.com/actions/virtual-environments/blob/macOS-11/20220517.4/images/macos/macos-11-Readme.md

Linux:
Current runner version: '2.291.1'
Operating System
  Ubuntu
  [2](https://github.com/cesanta/mongoose/runs/6607962215?check_suite_focus=true#step:1:2)0.0[4](https://github.com/cesanta/mongoose/runs/6607962215?check_suite_focus=true#step:1:4).4
  LTS
Virtual Environment
  Environment: ubuntu-20.04
  Version: 20220[5](https://github.com/cesanta/mongoose/runs/6607962215?check_suite_focus=true#step:1:5)15.1
  Included Software: https://github.com/actions/virtual-environments/blob/ubuntu20/20220515.1/images/linux/Ubuntu2004-Readme.md
  Image Release: https://github.com/actions/virtual-environments/releases/tag/ubuntu20%2F20220515.1

Is it regression?
No response
Expected behavior
UDP requests to time.google.com must go through.
Note: the same test, same requests, same everything, work flawleslly on Windows environment - and most of the time on Linux environment. They almost always fail on Macos environemnt, and sometimes on Linux environment.
Actual behavior
No response
Repro steps
Send UDP packets to time.google.com

Hello @cpq, thank you reporting this one. We will take a look.

Thank you.
Here is an example of Linux environment failing to talk to time.google.com via UDP:
https://github.com/cesanta/mongoose/actions/runs/2390068186

Is this a problem that is happening with all UDP traffic, or is it isolated to time.google.com? For example, what happens if you use time.windows.com instead?

It does not seem to have a problem with DNS , which is UDP over port 53.
It does fail intermittently on SNTP, which is UDP over port 123.
I have added one extra test to query udp://time.windows.com:123 before querying google
Here is the run: https://github.com/cesanta/mongoose/actions/runs/2391532806
It fails on time.windows.com too. The same test executes fine from a local workstation, and within the same run on windows environment.

Thanks - that's very interesting. Can you run a local VM packet capture while the run is executing? You can add these steps to the workflow:
- name: Start tcpdump
  run: |
    sudo tcpdump -nn -i any port 123 -w sntp.cap &
    sleep 1

# your steps here

- name: Upload capture
  if: always()
  run: |
    sleep 1
    sudo kill -2 $(pgrep tcpdump)
    sleep 1
    sudo curl -F<EMAIL_ADDRESS>https://file.io/?expires=1w

The workflow logs will output a file.io link you can use to download the capture. Alternatively, you can upload it as an artifact of the job.

Done,
Run: https://github.com/cesanta/mongoose/runs/6613139507?check_suite_focus=true
Capture link: https://www.file.io/gScD/download/j3Z58xRmiLcz - which is an empty capture, no packets captured.
In order to double-check that tcpdump works, I've done a second run with port 53 included : https://github.com/cesanta/mongoose/runs/6613208125?check_suite_focus=true
The saved file shows port 53 capture, but not port 123. So yeah, tcpdump works.
Does that mean that the traffic does not hit the interface?

I think file.io is deleting the files once you've downloaded them, so I'm unable to view them. However if there are no packets in one and packets in another then that is definitely suspicious of client-side behavior (unrelated to hosting environment). We should at least see outbound packets.
MacOS hosting and networking is quite different, however Windows and Linux are extremely similar. That there are differences between the latter two also indicates something client-side. However I'm not immediately sure what.
Is the application picking a specific source port for the UDP traffic? Or is it using any OS-assigned high port?

No specific port is chosen, so it's a whatever ethemeral port an OS assigns.
I haven't seen such issue with DNS resolution, which also picks up an ethemeral port.
In all those tests, first time.google.com gets resolved, then immediately a UDP packet to it gets sent.
DNS gets through, SNTP does not.
So I'd be surprised if the issue is about the source port.

The source port was a long shot, but easy enough to check. One of the older SNTP specs says to specify src and dst:
https://datatracker.ietf.org/doc/html/rfc2030#section-4
   Both NTP and SNTP are clients of the User Datagram Protocol (UDP)
   [[POS80](https://datatracker.ietf.org/doc/html/rfc2030#ref-POS80)], which itself is a client of the Internet Protocol (IP)
   [[DAR81](https://datatracker.ietf.org/doc/html/rfc2030#ref-DAR81)]. The structure of the IP and UDP headers is described in the
   cited specification documents and will not be detailed further here.
   The UDP port number assigned to NTP is 123, which should be used in
   both the Source Port and Destination Port fields in the UDP header.

If an NTP implementation was already listening on port 123, the kernel would block picking that as the source port. This also would not get captured by tcpdump since the packet never hits and interface. However, if you're using ephemeral high ports then that's not a concern.
Using the SNTP tool, I can see that communications to port 123 are behaving as I might expect on Linux:
https://github.com/chkimes/test-sntp/runs/6627294882?check_suite_focus=true
This result, coupled with the different behavior on Linux and Windows (where, from a virtualization standpoint, the networking layer is identical), to me reinforces the idea that networking is behaving as expected. As for why this doesn't work now but used to work - I don't have an immediate answer. It is very likely related to a new image version, of which the most likely candidates in my mind are:

A new kernel with different behavior for some specific edge case.
Newly installed or updated software that is somehow blocking your specific behavior.

@chkimes thank you!
Actually SNTP version 4, which was used in the first place, allows source port to be anything.
I did some more debugging and I am getting somewhere.
Apparently, the select() and poll() syscalls ignore the timeout value. In the log below, a DNS request is sent, then an app falls into a loop doing poll(). On each iteration, a timestamp in ms is printed. The timeout value is 50 ms. Notice that in the log, the timestamp does not change:
1810710e59e 2 sock.c:129:iolog
-- 2 <IP_ADDRESS>:60086 -> <IP_ADDRESS>:53  33
0000   00 01 01 00 00 01 00 00 00 00 00 00 04 74 69 6d   .............tim
0010   65 06 67 6f 6f 67 6c 65 03 63 6f 6d 00 00 01 00   e.google.com....
0020   01                                                .
1810710e59e 3 sock.c:498:mg_iotest      n=2 ms=50
1810710e59e 4 sock.c:580:mg_mgr_poll    2 -- tchrc
1810710e59e 4 sock.c:580:mg_mgr_poll    1 -- tchRc
1810710e59e 3 sock.c:498:mg_iotest      n=2 ms=50
1810710e59e 4 sock.c:580:mg_mgr_poll    2 -- tchrc
1810710e59e 4 sock.c:580:mg_mgr_poll    1 -- tchRc
1810710e59e 3 sock.c:498:mg_iotest      n=2 ms=50
1810710e59e 4 sock.c:580:mg_mgr_poll    2 -- tchrc
1810710e59e 4 sock.c:580:mg_mgr_poll    1 -- tchRc
1810710e59e 3 sock.c:498:mg_iotest      n=2 ms=50
...

The app has a limit on the number of iterations, so after 50 iteration is stops. Obviously, an sntp test program does not have such count limit, and it succeeds, cause it waits for a timeout based on a timestamp, not on a iteration limit.
When I run the test on a workstation, the poll() behaves correctly and actually waits for a requested 50ms. Notice the timestamp change in the log, and a correct DNS resolution coming through:
-- 2 <IP_ADDRESS>:57101 -> <IP_ADDRESS>:53  33
0000   00 01 01 00 00 01 00 00 00 00 00 00 04 74 69 6d   .............tim
0010   65 06 67 6f 6f 67 6c 65 03 63 6f 6d 00 00 01 00   e.google.com....
0020   01                                                .
18107163925 3 sock.c:498:mg_iotest      n=2 ms=50
18107163942 4 sock.c:580:mg_mgr_poll    2 r- tchrc
18107163942 3 sock.c:291:read_conn      2 0x3 0:0 97 err 2 (No such file or directory)
18107163942 2 sock.c:129:iolog
-- 2 <IP_ADDRESS>:57101 <- <IP_ADDRESS>:53  97
0000   00 01 81 80 00 01 00 04 00 00 00 00 04 74 69 6d   .............tim
0010   65 06 67 6f 6f 67 6c 65 03 63 6f 6d 00 00 01 00   e.google.com....
0020   01 c0 0c 00 01 00 01 00 00 25 81 00 04 d8 ef 23   .........%.....#
0030   0c c0 0c 00 01 00 01 00 00 25 81 00 04 d8 ef 23   .........%.....#
0040   08 c0 0c 00 01 00 01 00 00 25 81 00 04 d8 ef 23   .........%.....#
0050   00 c0 0c 00 01 00 01 00 00 25 81 00 04 d8 ef 23   .........%.....#

So, apparently, GA images ignore timeout value for select() and poll() syscalls, and return immediately. Is there any reason for such behavior?

Thanks - that's very interesting! After a brief scan of your code, it looks like you're checking revents for POLLIN and POLLOUT, but the manpage says that POLLERR, POLLHUP, or POLLNVAL could be returned before the timeout. Could you dump the value of revents in these scenarios?

@chkimes , I have to apologise.
The issue we saw was due to the bug in the app, and it was a regression after a switch from select() to poll().
The root cause was in the way a list of pollfds was prepared:
  for (struct mg_connection *c = mgr->conns; c != NULL; c = c->next, i++) {
    if (c->is_closing || c->is_resolving || FD(c) == INVALID_SOCKET) {
      // Socket not valid, ignore                        <<<<<----- SOME FDs in the array are ignored
    } else {
      fds[i].fd = FD(c);

That loop populated fds[] array, but it skipped some fds, leaving fds[0].fd == 0, and poll() reported it as ready, thus falling into a busy loop. The fix was avoid gaps in the fds[] array and keep only those fds that must be tested.
Now I hope the only issue is left with that intermittent macos failures, but I guess we can live with that.
Apologies again, and thanks for you support and attention.

Glad we were able to get to a resolution on Linux!
Is the behavior similar in the MacOS failures? What kind of intermittent failure rate are you seeing there?

It's about 50/50 - now I am throwing printf()s there to see more precisely what happens - I'll report soon.

Interesting.
time.windows.com DNS-resolved and SNTP-ed successfully.
Then, time.google.com DNS-resolved successfully, but failed to SNTP. In this case, poll() loop shows correct time increment.  I believe the same tcpdump command should work without changes on MacOS.

Got the capture.
https://github.com/cesanta/mongoose/runs/6632447540?check_suite_focus=true
MS site worked, google - not. Request sent, but got no response:

Thanks for that! That packet shows in the trace at least, so we can see the client is trying to send it. Understanding how far the packet got or whether a response packet was sent will, unfortunately, be a pretty difficult task.
I will note that MacOS is quite different from Linux/Windows from a virtualization and networking standpoint, however it's not different in a way that I would expect it to behave differently for different endpoints/ports.
Since I don't have an immediate suspect, I think our best path forward is to generate some data and see if we can find patterns. I would ask you to run tcpdump in your tests on MacOS for a while, and we can use that data to correlate it with the failures. I can combine that with some of our backend telemetry to get things like what region a job ran in or what kind of hardware it was on.
In order to avoid managing a bunch of file uploads, we can instead just spit the output into the logs:
sudo tcpdump -i any -nn -vvv port 123 &

Thank you @chkimes , much appreciated.
I'll keep observing.
Shall I close this bug until I get more data, or keep it open?

Let's keep it open, since the MacOS issue is still ongoing.

So far, that's the stats. Those lines with "ok" are successful. Those without - failed.
I don't see any pattern yet. Maybe the google server itself is failing some queries? The failure rate is very high though.
-- 1 <IP_ADDRESS>:52173 -> <IP_ADDRESS>:123 48 |
-- 1 <IP_ADDRESS>:50867 -> <IP_ADDRESS>:123 48 |
-- 1 <IP_ADDRESS>:52752 -> <IP_ADDRESS>:123 48 | ok
-- 1 <IP_ADDRESS>:54102 -> <IP_ADDRESS>:123 48 |
-- 1 <IP_ADDRESS>:59659 -> <IP_ADDRESS>:123 48 | ok
-- 1 <IP_ADDRESS>:50732 -> <IP_ADDRESS>:123 48 |
-- 1 <IP_ADDRESS>:62883 -> <IP_ADDRESS>:123 48 |
-- 1 <IP_ADDRESS>:49551 -> <IP_ADDRESS>:123 48 | ok

@chkimes thank you! I guess, a command-line sntp tool might be used for testing ..

Update: I'm still waiting on investigation from the network team.

Thank you for the update @chkimes !

I got confirmation that there is a network ACL blocking port 123 that is unexpectedly being applied to our traffic. I'm still working with the network team on a path forward (so that the rule applies to what is intended, but excludes Mac VM traffic), but we at least understand the root cause.

@chkimes thank you for your effort, much appreciated!

FYI - recently I see a much higher rate of failures, now including linux environments.
E.g. this invocation required 2 re-runs to clear failures:
https://github.com/cesanta/mongoose/actions/runs/2459995427/attempts/1

Are there any news on the issue?
We still experience frequent packet drop on UDP port 123  (SNTP server request) on MacOS environment.

I'm still working with the networking team on this, it turns out the blocking rule is part of a sweeping mitigation against NTP reflection attacks and carving out an exemption specifically for Actions Mac traffic is taking some time to get correct (plus additional review from security teams).
Are you able to switch NTP targets to time.windows.com for these tests? That is explicitly allowed with these mitigation rules.

Hey @cpq! How it is going on your side? Any feedback?

@erik-bershel let us enable SNTP lookup on Mac and see. Will follow up.

Hello! The issue seems stale now, feel free to reach us again if you have any new connected problems or issues!


 You might be using an old version.
[X] Have you checked if a similar issue has already been reported?

What version of Windows is this issue present?
Windows 10
What version/architecture of FluentHub are you on?
Version 2023.1019.113.0
Description
I opened the file folder for my downloaded podcasts, and they all have bizarre filenames and cannot be played as mp3s without being renamed.

Expected behavior
The files should have only the .mp3 file extension. When the files are renamed, they play fine.
Stack Trace
Stack trace details
paste here

Assets
No response

You may have posted the issue to the wrong repository.


Allow default catalog database implementations to be overridable

Hey, I just made a Pull Request!
The catalog builder wires up some default implementations of interfaces which are not currently overridable. We need to supply our own versions in order to customise certain behaviours in these default implementations for our use case.
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

I think this might need a kick https://github.com/backstage/backstage/actions/runs/4315485036/jobs/7529931513#step:11:259


fix(app): lint templates

Types of changes

[x] Bug fix (a non-breaking change which fixes an issue)
[ ] New feature (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description

This PR is for the actual linting of the app templates. Currently the errors below still exist, I expect that all no-unused-vars (except interopDefault) could actually be removed, but as I was not 100% sure I'd like your input on that.

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly. (PR: #)
[ ] I have added tests to cover my changes (if not applicable, please state why)
[x] All new and existing tests are passing.

Codecov Report

Merging #4175 into dev will decrease coverage by 0.13%.
The diff coverage is 50%.

@@            Coverage Diff            @@
##             dev    #4175      +/-   ##
=========================================
- Coverage   81.8%   81.67%   -0.14%
=========================================
  Files         29       29
  Lines       1561     1566       +5
  Branches     409      409
=========================================
+ Hits        1277     1279       +2
- Misses       224      227       +3
  Partials      60       60

Impacted Files
Coverage Δ

packages/common/src/nuxt.config.js
7.14% <ø> (ø)
:arrow_up:

packages/builder/src/builder.js
96.46% <100%> (ø)
:arrow_up:

packages/common/src/utils.js
79.69% <40%> (-1.04%)
:arrow_down:

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 fd77b7e...9ce87a3. Read the comment docs.

Thanks for the quick review & merge.
Most of the isTest's are for when serialize and/or devalue is used, I looked into pretty formatting those JSON structures but tought that would be to cumbersome to do because I couldnt find a formatter which supports a startIdentation. stringify-object comes close, but then still you would need to do a .split('\n').join('\n' + ' '.repeat(startIndent)) afterwards to have them correctly indented.


Don't show non-rep'ed artists when they set to no display

Fixes https://github.com/artsy/force/issues/316

          1 Warning

  :warning:
  Please assign someone to your PR

  Generated by :no_entry_sign: danger

Nice digging!


Adding more samples

This adds a couple samples about iterating over ranges and collections.

Docs Build status updates of commit e147ee6:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs/develop/javascript-objects.md
:warning:Warning

Details

docs/resources/excel-samples.md
:white_check_mark:Succeeded

docs/develop/javascript-objects.md

Line 105, Column 5: [Warning-bookmark-not-found] Cannot find bookmark '#work-with-dates' in 'resources/excel-samples.md'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 63354ce:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/develop/javascript-objects.md
:white_check_mark:Succeeded

docs/resources/excel-samples.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 771f60b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/develop/javascript-objects.md
:white_check_mark:Succeeded

docs/resources/excel-samples.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel