Implement multiverse transfer proof distribution via RPC courier

A tapd instance should be able to serve as a multiverse transfer proof distribution service. A receiver during the asset send procedure should be able to query the service for the transfer proof associated with the send event.
This work depends on issue https://github.com/lightninglabs/taproot-assets/issues/434

Need:
Draft PR to add RPC endpoints to see if that would satisfy OKR

@Roasbeef For the time being, should we ignore authentication constraints for the new proof courier RPC endpoints?

@ffranr why would there be any authentication constraints? Why do new proof courier RPC endpoints even need to exist?

why would there be any authentication constraints?

Because a third party service serving as a courier (proof temporary store/retrieve) for free can be abused.

Why do new proof courier RPC endpoints even need to exist?

To replace our use of hashmail with RPC endpoints that can tie in multiverse construction/verification.

Because a third party service serving as a courier (proof temporary store/retrieve) for free can be abused.

What's the difference between a proof courier as you envision it compared to the universe RPCs after https://github.com/lightninglabs/taproot-assets/pull/416? A universe server allows insertion of a valid state transition proof (rn just issuance, but that just needs a conditional removed), does that differ from what a courier needs to do? Does the Universe interface have any built in DoS protection or cost to submit a valid proof instance?

To replace our use of hashmail with RPC endpoints that can tie in multiverse construction/verification.

Does the daemon actually implement end hashmail RPC endpoints itself? How does this relate to #432? In that PR, what should be the default behavior if there's no Universe server specified as a TLV field?

Here are some ideas/perspectives I discussed with Oli today:

What's the difference between a proof courier as you envision it compared to the universe RPCs after https://github.com/lightninglabs/taproot-assets/pull/416? A universe server allows insertion of a valid state transition proof (rn just issuance, but that just needs a conditional removed), does that differ from what a courier needs to do?

A node might want to keep its courier service and multiverse/universe trees separate. For example, the node might only want to track issuance proofs over the long term. If a courier service updates a universe tree with each transfer proof then sync partners would be prompted to sync. The universe root would be modified and the sync node would need to sync even if they were only interested in new issuances.
Perhaps the courier service should delay adding a transfer proof to its universe encase of a re-org. Or just delay outbound syncing of the new universe. I'm not sure.
The current aperture proof courier can forget proofs. A universe RPC proof courier would have a different memory profile.

Does the Universe interface have any built in DoS protection or cost to submit a valid proof instance?

I think the proof verification serves as DoS protection.

Does the daemon actually implement end hashmail RPC endpoints itself?

Yes, I think it should. And then we can have an implementation of Courier which can make use of those RPC endpoints.

How does this relate to https://github.com/lightninglabs/taproot-assets/pull/432?

The proof courier address field added in that PR should be used by the sender communicate with a preferred courier service. The proof courier address needs to include the courier protocol, something like:
universerpc://the.host.name:port
hashmail://mailbox.server:port

I don't think https://github.com/lightninglabs/taproot-assets/pull/432 is directly related to universes. I could make a start on it and just support hashmail.

In that PR, what should be the default behaviour if there's no Universe server specified as a TLV field?

I think the new TLV field should be mandatory. But if it's populated with null then we could fallback to the default hashmail service that we're currently using (we will need to add a mainnet equivalent).

A node might want to keep its courier service and multiverse/universe trees separate.

I think that depends on the landscape, still to be explored. In the short term, I'd imagine people just use existing Universe explorers to obtain proof information. As that doesn't require them to actually run their own instance, let alone a publicly reachable one. Consider a mobile user, they'd likely just use w/e popular explorer pops up to receive transfer proofs, as from the explorers PoV, it's just serving a proof like any other relevant event.
I think the idea of having your own "private" proof submission be distinct from your own tracked universe tree is interesting, but I think that's more of a power user thing, as you'd need to be running a persistent server reachable over a public interface.

The universe root would be modified and the sync node would need to sync even if they were only interested in new issuances.

IMO that would depend on the configured sync time. For simplicity imagine mempool.space launches a public Universe server. You wouldn't necessarily try to do a full sync, instead you'd poll the relevant endpoint (/assetID/scriptKey), etc until the information you needed showed up. I don't think we'd modify the sync flow, instead it would be a new courier instance that basically does the same thing, but today it tries to read something from the hashmail server.

The current aperture proof courier can forget proofs. A universe RPC proof courier would have a different memory profile.
Yes, I think it should. And then we can have an implementation of Courier which can make use of those RPC endpoints.

So in my mind, there's literally no difference between a proof courier and a Universe server. One can make a proof courier implementation using a Universe server. The RPCs were even set up to support such a concrete implementation, in addition to the actual commitment structure. If I know that I have an incoming transfer of asset A, via outpoint O, and my script key is S (bound in the addr), then I know to look up /v1/taproot-assets/universe/proofs/asset-id/A/O/S. I may not even need to go to the same server each time, if one assumes the sync protocol eventually syncs all new state on a ~10 minute interval.

The proof courier address field added in that PR should be used by the sender communicate with a preferred courier service. The proof courier address needs to include the courier protocol, something like

See above comment.

I don't think https://github.com/lightninglabs/taproot-assets/pull/432 is directly related to universes. I could make a start on it and just support hashmail.

I think it is, see above comment.
Zooming out I think our divergence in mental models is viewing a courier as a concrete system, when it's just an abstraction over obtaining proofs. We used hashmasil at first since we hadn't finished the Universe server DB or RPC stuff. Now that that's in place, any public Universe server can serve the exact same role. In the future people can also use nostr or w/e other distribution mechanism. A difference between Universe servers and nostr is that they actually sync information between each other, which makes it easier to obtain information.

I think the new TLV field should be mandatory. But if it's populated with null then we could fallback to the default hashmail service that we're currently using (we will need to add a mainnet equivalent).

Allowing something to be null, while also saying it's mandatory is at odds with each other. Perhaps you mean optional, falling back to some other default if not populated?

Addressed here: https://github.com/lightninglabs/taproot-assets/pull/473


timeout: fix bug in --preserve-status mode

This pull request fixes a bug where timeout --preserve-status was not correctly preserving the status code of the child process if it timed out. When that happens, the status code of the child process is considered to be the signal number (in this case, SIGTERM). The exit status of timeout is then 128 plus the numeric code associated with SIGTERM.
Before this pull request:
$ ./target/release/timeout --preserve-status .1 sleep 10; echo $?
124

After this pull request
$ ./target/release/timeout --preserve-status .1 sleep 10; echo $?
143

This now matches the behavior of GNU timeout.
This pull request also includes a commit that adds the ExitStatus enumeration in a new module status.rs to
contain all the magic numbers in the timeout utility.

This fixes GNU test tests/misc/timeout.sh:
Warning: Congrats! The gnu test tests/misc/timeout is now passing!

sweet, thanks


python312Packages.textdistance: 4.6.2 -> 4.6.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.textdistance is: Python library for comparing distance between two or more sequences
meta.homepage for python312Packages.textdistance is: https://github.com/life4/textdistance
meta.changelog for python312Packages.textdistance is: https://github.com/life4/textdistance/releases/tag/4.6.3
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 4.6.3 with grep in /nix/store/34nwi5qik18sffb31mabnhf93prgc04a-python3.12-textdistance-4.6.3
found 4.6.3 in filename of file in /nix/store/34nwi5qik18sffb31mabnhf93prgc04a-python3.12-textdistance-4.6.3

Rebuild report (if merged into master) (click to expand)

6 total rebuild path(s)

6 package rebuild(s)

First fifty rebuilds by attrpath

python311Packages.spyder
python311Packages.textdistance
python312Packages.spyder
python312Packages.textdistance
spyder

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/34nwi5qik18sffb31mabnhf93prgc04a-python3.12-textdistance-4.6.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.textdistance https://github.com/r-ryantm/nixpkgs/archive/ec649827e1126143834a866ffe9e5ab67b72d0e7.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/ec649827e1126143834a866ffe9e5ab67b72d0e7#python312Packages.textdistance

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/34nwi5qik18sffb31mabnhf93prgc04a-python3.12-textdistance-4.6.3
ls -la /nix/store/34nwi5qik18sffb31mabnhf93prgc04a-python3.12-textdistance-4.6.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages failed to build:

spyder (python312Packages.spyder)
spyder.dist (python312Packages.spyder.dist)

6 packages built:

python311Packages.spyder
python311Packages.spyder.dist
python311Packages.textdistance
python311Packages.textdistance.dist
python312Packages.textdistance
python312Packages.textdistance.dist

Maintainer pings

spyder is broken on hydra https://hydra.nixos.org/build/266529105


[Build] moves prettier check to separate script

CATEGORY
Choose one

[ ] Bug Fix
[ ] Enhancement (new features, refinement)
[ ] Refactor
[ ] Add tests
[x] Build / Development Environment
[ ] Documentation

SUMMARY

I added the prettier check script a while back to check formatting in css files. It doesn't need to be part of the regular lint check as it delays running eslint and makes passing flags more complicated. However it does need to run on CI to ensure no unformatted css files slip through (eslint isn't checking style files).
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TEST PLAN

CI passes and checks js/ts and style files.

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

REVIEWERS

@etr2460 we have a pre-commit hook?

the only thing I found is https://github.com/apache/incubator-superset/blob/master/.pre-commit-config.yaml and that looks like it only includes python checks. Is there another one concerned with npm checks? Or should we consider adding npm checks here?

I think you could use https://github.com/pre-commit/mirrors-eslint?

But to be clear, my comment isn't blocking this PR

Can we not have pre-commit hooks? It slows things down and not really pleasant to use. Most IDEs, if properly configured, would already warn these errors.
Redash guys actually removed it from their repo: https://github.com/getredash/redash/pull/4435


Async Suffix for method names

Hi, this article date from Feb 2019. I'm wondering if, two years later in 2021, using the Suffix Async for the methods returning a Task still makes sense.
I mean, I think that in a Service or Repository class, for example, having all the methods returning Task<> is a little bit redundant using the suffix Async.
What is your opinion about it today?

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

ID: e40c0699-0e7c-e20d-98c1-76f0520ab9c2
Version Independent ID: 0fc31902-0055-f9e8-a228-e7a0ce384e35
Content: Task-based Asynchronous Pattern (TAP)
Content Source: docs/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap.md
Product: dotnet-fundamentals
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

@IEvangelist Do you want to weigh in on this?

Thank you @gewarren, yes—I'd live to weigh in on this.
I believe that it is still relevant and will remain relevant for the foreseeable future. Part of establishing a convention is building a consistent experience. In .NET, most (if not all) of the runtime code that exposes async APIs (returning task-like types) uses the Async suffix. Despite being that this article hasn't updated in a bit, these naming conventions are still valid.
But here's the thing, you're not required to follow them. These are suggestions, guidelines, and patterns that have been established with good reason. If you choose to follow these conventions, your code will be more consistent with other .NET code.

Thanks @IEvangelist. I'll close this issue now.


code refresh

onPause instead for persistent data

add/override onPause to save persistent data more frequently

update save boxes (color palette in a separate method)

short methods: https://github.com/pffy/android#methods

remove editHandler to improve usability


zsteg: 0.2.2 -> 0.2.13, fixing missing runtime dependency, update meta

Description of changes

The current zsteg package is broken due to missing its prime dependency. This seems to have been resolved in later versions, so I've just updated the package.
Set mainProgram, and added myself as maintainer
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 268784 run on x86_64-linux 1

1 package built:

zsteg


fix: redefine new line delimiter

fixes #721
Fixes problem with pasting multiline text.
Based on the https://github.com/react-tags/react-tags/blob/master/src/components/constants.js#L2 , enter delimiter is marked as unicode 13 (Carriage return), which is partially true. Enter should be also marked with unicode 10 (Line feed). Please see https://stackoverflow.com/a/1761064
That means on windows/edge it works in partial - it splits a text by \r:  word1\r\nword2 -> ['word1', '\nword2'] but in other systems it does not split text at all.
Tested on Chrome, Safari, Edge, Firefox

:tada: This PR is included in version 6.7.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Test docker image in test

Closes/fixes/resolves issue(s)?

closes #75

What was added/changed/fixed?
Related issue(s)? [Optional]
Others [Optional]
Checklist (after created PR)

[ ] Added reviewers
[x] Added assignee(s)
[x] Added label(s)
[ ] Added to project
[x] Added to milestone

Closing. See reasons in issue #75


Entity Serialization using Jackson annotations are ignored.

Entity serialization using @JasonFormat annotation for a field does not work. It appears to be ignored. My assumption is that the issue is the fact that the annotation is on an interface and not a standard class. Using just @JasonFormat gave me a "no backing field error". Using @get:JasonFormat eliminated the backing field error but as i described seemed to be ignored and the field serialized ignoring the annotation.
My questions are:

Do Jackson Serialization Annotations work on an entity?
If they do work do u have an example of usage/how to set it up?
If they don't work do u have a solution other than using data classes as described in ur docs.

thx ~Marvin Foster
email<EMAIL_ADDRESS>

In general, Jackson annotations don't work on a Ktorm entity, because entity is an interface and not standard class just as you said.
But there are some exceptions, some limited annotations can be recognized by Ktorm's Jackson module, they are @get:JsonIgnore, @get:JsonAlias and @get:JsonProperty. Ktorm's Jackson module can read those annotations and try to perform like Jackson's default behaviour. However, @JsonFormat is not included in those annotations.
So, as a suggestion, it's better to convert your data from Ktorm entity to a normal class, then serialize the normal class instead.

thx for the reply...
I basically created a data class that contains just the fields i want and serialize from there. Actually works to better de-couple query responses from db.
thx again...


Add perf test on Series.str.len

Added 1 performance test case on Series.str.len.
Implemented generator of string series.
Fixed numba build for Windows in ASV config.

The random functionality is used in the data generation but I can't find where seed for the RNG is determined. Please determine the seed and ensure that results of work are reproducible.


Labels on climate maps

Climate Maps section: can we see place labels on top of the rasters? Currently they are in the basemap under the data, so the raster loads and obscures all labels except those in Canada.

XREF #369
Closing as a duplicate issue.


KMS key Ring key rotation

I don't see the KMS keys are going through rotation or a value is set to enable that. Will ApigeeX support the KMS key rotation if we chance the module from apigee-x-core ?

Thanks for the comment. KMS rotation is definitely possible. I just created a PR to include a default rotation of 30 days in the core module. This is backwards compatible meaning if you upgrade to the latest module version it will update the rotation period of your keys (set module variable to null if you wish to keep the current behavior for what ever reason.)


ld: library not found for -lappcenter

What App Center service does this affect?
Name of service or sdk with the issue.
Describe the bug
I successfully integrated in Android but in iOS, I encountered:
Apple Mach-O Linker Error
Linker command failed with exit code 1 (use -v to see invocation)
ld: library not found for -lappcenter
clang: error: linker command failed with exit code 1 (use -v to see invocation)
To Reproduce
Steps to reproduce the behavior:

yarn add appcenter appcenter-analytics appcenter-crashes --exact
react-native link appcenter
react-native link appcenter-analytics
react-native link appcenter-crashes
Added # Pods for  in Podfile
Ran pod repo update
Clean Xcode
Deleted Xcode DeriveData

Expected behavior
Build successfully in iOS
Screenshots

Desktop (please complete the following information):

OS: MacOS Mojave 10.14.6

Additional context
From the setup guide, I added:
react-native link appcenter
react-native link appcenter-analytics
react-native link appcenter-crashes
but when I ran react-native link, it auto-added:
pod 'AppCenter/Crashes', '~> 2.2.0'
pod 'AppCenter/Analytics', '~> 2.2.0'
pod 'AppCenterReactNativeShared', '~> 2.2.0'

Hey, @hpelitebook745G2, thanks for getting in touch.
Can you please tell me, which file are you opening in XCode? It looks like you are opening xcodeproj file, is that correct?

@hpelitebook745G2 we have been looking into this.

Hi, @hpelitebook745G2, we haven't heard from you for a while, so Im closing the thread. Feel free to reopen if you need our assistance

If I choosed the *.xcodeproj - file to open the project in XCode same error occured. Open the project with *.xcworkspace - file work for me! Thanks @Jamminroot !

but @Jamminroot  , how do i tell appcenter to use the xcworkspace , instead of the xcodeproj ?

+1 at @genesisemmloh.  I have the same problem.

@genesisemmloh, if you check the build log you'll see (at least in my case, app center already uses the .xcworkspace file for a build.


Fix spsdk

Description of changes

remove unused binding
fix dependency toward importlib-metadata

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 254601 run on x86_64-linux 1

6 packages built:

pynitrokey
pynitrokey.dist
python310Packages.spsdk
python310Packages.spsdk.dist
python311Packages.spsdk
python311Packages.spsdk.dist

Result of nixpkgs-review pr 254601 run on x86_64-linux 1

6 packages built:

pynitrokey
pynitrokey.dist
python310Packages.spsdk
python310Packages.spsdk.dist
python311Packages.spsdk
python311Packages.spsdk.dist

Result of nixpkgs-review pr 254601 run on x86_64-linux 1

6 packages built:

pynitrokey
pynitrokey.dist
python310Packages.spsdk
python310Packages.spsdk.dist
python311Packages.spsdk
python311Packages.spsdk.dist


fix: ci Illegal Instruction

This solves #11
Configuring meson to build DPDK without AVX2 solves the described issue.
The option "default" is described as the "common minimal baseline needed for DPDK".

Before building DPDK I configure meson to use the "minimal baseline needed" for building.
This is described here: https://github.com/DPDK/dpdk/blob/441e777b85f1ea1eb6a2a970ff5d5c8e027f520c/config/meson.build#L131C1-L137C26
I assume that if you can build it with AVX2 disabled then this does it.

Hey Aaron,
If the fix works, please update the PR comment, which will be used as the commit message when merging this PR.
If it does not work, please change this PR to a draft.

Done


doc: fix english doc broken link

/kind cleanup
What this PR does / why we need it:
Fixes  broken links in readme

/lgtm


Fix Remote Cache

Maintain branch refs for each build to find the nearest cache in the
events of history rewrite. It tracks at most 25 such refs, and these are
the HEAD refs on the branch excluding the pull requests merge refs,
i.e., refs/pull/<number>/merge. We must set the GIT_BRANCH
environment variable to the git branch name to utilize the caching
feature.
Breaking Changes
Since the rake tasks to download and upload the cache files to S3 need
to know the correct configured directories, the config options
cache_dir, coverage_dir, and report_dir are now available as
environment variables only.

@CodiumAI-Agent /review

PR Analysis

🎯 Main theme: Remote Cache Improvement
📝 PR summary: This PR aims to improve the remote cache handling in the RSpecTracer library. It introduces a new mechanism to maintain branch references for each build to find the nearest cache in the events of history rewrites. It also changes the configuration options to be available as environment variables only.
📌 Type of PR: Enhancement
🧪 Relevant tests added: No
⏱ Estimated effort to review [1-5]: 4, because the PR involves significant changes to the caching mechanism and introduces new classes. It requires a good understanding of the existing caching mechanism and the proposed changes.
🔒 Security concerns: No security concerns found

PR Feedback
💡 General suggestions: The PR introduces significant changes to the caching mechanism, which could potentially impact the performance and reliability of the RSpecTracer library. It would be beneficial to include performance metrics or benchmarks to demonstrate the impact of these changes. Additionally, it would be helpful to include tests for the new classes and methods introduced in this PR to ensure their correctness.
 🤖 Code feedback:relevant filelib/rspec_tracer/remote_cache/cache.rbsuggestion
Consider handling exceptions at a higher level instead of within each method. This would make the code cleaner and easier to read. Also, it would be beneficial to log the full error stack trace, not just the first 5 lines, for better debugging. [important]
relevant line"+        puts e.backtrace.first(5).join("\n")"relevant filelib/rspec_tracer/remote_cache/aws.rbsuggestion
It would be beneficial to extract the repeated code for AWS operations into separate methods to reduce code duplication and improve readability. [medium]
relevant line"+        system("relevant filelib/rspec_tracer/remote_cache/repo.rbsuggestion
The initialize method is doing a lot of work. Consider breaking it down into smaller methods to improve readability and maintainability. [medium]
relevant line"+      def initialize(aws)"relevant filelib/rspec_tracer/configuration.rbsuggestion
It would be beneficial to validate the environment variables and provide meaningful error messages if they are not set or have invalid values. [medium]
relevant line"+      @coverage_dir ||= (ENV['RSPEC_TRACER_COVERAGE_DIR'] || DEFAULT_COVERAGE_DIR)"

 ✨ Usage guide:
Overview:
The review tool scans the PR code changes, and generates a PR review. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
/review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...

With a configuration file, use the following template:
[pr_reviewer]
some_config1=...
some_config2=...

  Utilizing extra instructions
The review tool can be configured with extra instructions, which can be used to guide the model to a feedback tailored to the needs of your project.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify the relevant sub-tool, and the relevant aspects of the PR that you want to emphasize.
Examples for extra instructions:
[pr_reviewer] # /review #
extra_instructions="""
In the code feedback section, emphasize the following:
- Does the code logic cover relevant edge cases?
- Is the code logic clear and easy to understand?
- Is the code logic efficient?
...
"""

Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

  How to enable\disable automation

When you first install PR-Agent app, the default mode for the review tool is:

pr_commands = ["/review", ...]

meaning the review tool will run automatically on every PR, with the default configuration.
Edit this field to enable/disable the tool, or to change the used configurations

  About the 'Code feedback' section
The review tool provides several type of feedbacks, one of them is code suggestions.
If you are interested only in the code suggestions, it is recommended to use the improve feature instead, since it dedicated only to code suggestions, and usually gives better results.
Use the review tool if you want to get a more comprehensive feedback, which includes code suggestions as well.

  Auto-labels
The review tool can auto-generate two specific types of labels for a PR:

a possible security issue label, that detects possible security issues (enable_review_labels_security flag)
a Review effort [1-5]: x label, where x is the estimated effort to review the PR (enable_review_labels_effort flag)

  Extra sub-tools
The review tool provides a collection of possible feedbacks about a PR.
It is recommended to review the possible options, and choose the ones relevant for your use case.
Some of the feature that are disabled by default are quite useful, and should be considered for enabling. For example:
require_score_review, require_soc2_review, enable_review_labels_effort, and more.

  More PR-Agent commands

To invoke the PR-Agent, add a comment using one of the following commands:

/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs 💎: Generate docstring for new components introduced in the PR.
/generate_labels 💎: Generate labels for the PR based on the PR's contents.
/analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

See the tools guide for more details.
To list the possible configuration parameters, add a /config comment.

See the review usage page for a comprehensive guide on using this tool.

@CodiumAI-Agent /improve

PR Review

 ⏱ Estimated effort to review [1-5]
4, due to the significant changes in caching mechanism, introduction of new classes, and removal of old ones. Understanding the new caching strategy, especially how it interacts with AWS and Git, requires a deep dive into the code.

 🧪 Relevant tests
No

 🔍 Possible issues

Possible Bug: The write_branch_refs method in cache.rb does not handle the case where git show command fails, which could lead to writing incorrect data to branch_refs.json.

Performance Concern: The cache_files_list method in aws.rb uses system calls to list files, which could be slow for large numbers of files. Consider using an AWS SDK for more efficient operations.

Error Handling: The download_dir and upload_dir methods in aws.rb do not handle AWS errors explicitly, relying on system call failures. This might not provide clear error messages for troubleshooting.
 🔒 Security concerns
No

 Code feedback:
relevant filelib/rspec_tracer/remote_cache/cache.rb
suggestion

Consider verifying the success of the git show command in the write_branch_refs method before proceeding with writing the branch refs. This ensures that the operation does not proceed with an empty or incorrect timestamp, potentially corrupting the cache reference data. [important]

relevant lineputs "Failed to find object<EMAIL_ADDRESS>commit timestamp" unless $CHILD_STATUS.success?
relevant filelib/rspec_tracer/remote_cache/aws.rb
suggestion

For operations like listing, downloading, and uploading files to S3, consider using the AWS SDK for Ruby instead of system calls to the AWS CLI. This can improve performance, error handling, and provide a more robust integration with AWS services. [important]

relevant line`#{@aws_cli} s3 ls #{prefix} --recursive`.chomp.split("\n")
relevant filelib/rspec_tracer/remote_cache/aws.rb
suggestion

Implement explicit error handling for AWS operations in methods like download_dir and upload_dir. Catching specific AWS SDK exceptions can provide clearer error messages and make troubleshooting easier. [important]

relevant lineraise AwsError, "Failed to download files from #{remote_dir}" unless system(
relevant filelib/rspec_tracer/remote_cache/validator.rb
suggestion

Validate the presence and correctness of TEST_SUITE_ID and TEST_SUITES environment variables at the start of the valid? method. This ensures that the method does not proceed with invalid or missing data, which could lead to incorrect validation results. [medium]

relevant line@test_suite_id = ENV['TEST_SUITE_ID']

 ✨ Review tool usage guide:
Overview:
The review tool scans the PR code changes, and generates a PR review. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
/review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...

With a configuration file, use the following template:
[pr_reviewer]
some_config1=...
some_config2=...

  Utilizing extra instructions
The review tool can be configured with extra instructions, which can be used to guide the model to a feedback tailored to the needs of your project.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify the relevant sub-tool, and the relevant aspects of the PR that you want to emphasize.
Examples for extra instructions:
[pr_reviewer] # /review #
extra_instructions="""
In the 'possible issues' section, emphasize the following:
- Does the code logic cover relevant edge cases?
- Is the code logic clear and easy to understand?
- Is the code logic efficient?
...
"""

Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

  How to enable\disable automation

When you first install PR-Agent app, the default mode for the review tool is:

pr_commands = ["/review", ...]

meaning the review tool will run automatically on every PR, with the default configuration.
Edit this field to enable/disable the tool, or to change the used configurations

  Auto-labels
The review tool can auto-generate two specific types of labels for a PR:

a possible security issue label, that detects possible security issues (enable_review_labels_security flag)
a Review effort [1-5]: x label, where x is the estimated effort to review the PR (enable_review_labels_effort flag)

  Extra sub-tools
The review tool provides a collection of possible feedbacks about a PR.
It is recommended to review the possible options, and choose the ones relevant for your use case.
Some of the feature that are disabled by default are quite useful, and should be considered for enabling. For example:
require_score_review, require_soc2_ticket, and more.

  Auto-approve PRs
By invoking:
/review auto_approve

The tool will automatically approve the PR, and add a comment with the approval.
To ensure safety, the auto-approval feature is disabled by default. To enable auto-approval, you need to actively set in a pre-defined configuration file the following:
[pr_reviewer]
enable_auto_approval = true

(this specific flag cannot be set with a command line argument, only in the configuration file, committed to the repository)
You can also enable auto-approval only if the PR meets certain requirements, such as that the estimated_review_effort is equal or below a certain threshold, by adjusting the flag:
[pr_reviewer]
maximal_review_effort = 5

  More PR-Agent commands

To invoke the PR-Agent, add a comment using one of the following commands:

/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs 💎: Generate docstring for new components introduced in the PR.
/generate_labels 💎: Generate labels for the PR based on the PR's contents.
/analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

See the tools guide for more details.
To list the possible configuration parameters, add a /config comment.

See the review usage page for a comprehensive guide on using this tool.

@CodiumAI-Agent /review

Persistent review updated to latest commit https://github.com/avmnu-sng/rspec-tracer/commit/30c9af079ba526e41e0f729e30ea92f1be9028ac

Persistent review updated to latest commit https://github.com/avmnu-sng/rspec-tracer/commit/30c9af079ba526e41e0f729e30ea92f1be9028ac

@coderabbitai review


Document the access control for pass-core services

Add to https://github.com/eclipse-pass/main/blob/main/docs/dev/authentication-authorization.md

Should document all the roles and what they are allowed to do.

PR up for review


Sprite Destroy in Group causes rerender

A bug in the API (v2.6.2)

I have a group containing sprites that move with a negative velocity.  The sprites have checkWorldBounds and is destroyed on onOutOfBounds.  However, when one sprite is destroyed, it causes a twitch in the rest of the sprites.
In the following example, you will see that when the first sprite is destroyed, theres a slight twitch in the second sprite.  I put a console.log on the sprites positions on update, and you will notice that when the first sprite is destroyed, the second sprites.x position is repeated.
phaser.io/sandbox/mjPHReAl

I think you may be seeing the renderOrderID repeated.
Try it with sprite.name instead: http://phaser.io/sandbox/cnGGmiby

there's still a twitch in the rendering, you'll see it if you change the velocity to -100, also after sprite 0 is destroyed, sprite 1 position x is repeated in the logs,

I think I see what you mean: http://codepen.io/samme/pen/MpqzPg
The problem is actually that the sprite following the destroyed one misses its preUpdate call, so for one frame it fails to advance.
In your case you can work around the problem by calling kill instead of destroy; then destroy dead sprites (if you need to) during update.

I decided to use kill instead of destroy.  However, it's still a bug that the following sprite misses a frame.

https://github.com/photonstorm/phaser-ce/issues/103

Fixed in Phaser CE, so closing it off here.


Handle underscore similarly to dash

Ensure that LatinSegmenter treats '_' and '-' similarly.
let text = "kebab-case snake_case";
let lemmas = LatinSegmenter.segment_str(text).collect::<Vec<_>>();

// // Before:
// assert_eq!(lemmas, vec!["kebab", "-", "case", " ", "snake_case"]);

// After:
assert_eq!(lemmas, vec!["kebab", "-", "case", " ", "snake", "_", "case"]);

Fixes meilisearch/meilisearch#3320
Performance impact

Performance has regressed
segment/132/Cj/Cmn      time:   [4.8455 µs 4.8529 µs 4.8603 µs]
                        change: [+0.2291% +0.4606% +0.6544%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) high mild
segment/132/Cj/Jpn      time:   [11.873 µs 11.938 µs 12.021 µs]
                        change: [+2.2313% +2.5565% +2.9079%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  2 (2.00%) high mild
  4 (4.00%) high severe
segment/132/Latin/Eng   time:   [4.5341 µs 4.5535 µs 4.5758 µs]
                        change: [+6.5566% +7.1359% +7.7580%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 8 outliers among 100 measurements (8.00%)
  8 (8.00%) high mild
segment/132/Latin/Fra   time:   [4.0289 µs 4.0612 µs 4.0918 µs]
                        change: [+6.6098% +7.1420% +7.7122%] (p = 0.00 < 0.05)
                        Performance has regressed.
segment/132/Hebrew/Heb  time:   [2.0973 µs 2.1029 µs 2.1092 µs]
                        change: [+0.8029% +1.1487% +1.4954%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
segment/132/Thai/Tha    time:   [2.9620 µs 2.9732 µs 2.9849 µs]
                        change: [-0.1291% +0.1980% +0.5083%] (p = 0.24 > 0.05)
                        No change in performance detected.
Found 9 outliers among 100 measurements (9.00%)
  9 (9.00%) high mild
segment/132/Hangul/Kor  time:   [28.454 µs 28.510 µs 28.569 µs]
                        change: [+0.5761% +0.8170% +1.0582%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe
segment/130/Greek/Ell   time:   [2.7629 µs 2.7671 µs 2.7720 µs]
                        change: [+3.5064% +3.8427% +4.1407%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  4 (4.00%) high mild
  2 (2.00%) high severe
segment/132/Arabic/Ara  time:   [2.0159 µs 2.0224 µs 2.0287 µs]
                        change: [+0.8583% +1.1485% +1.4483%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 29 outliers among 100 measurements (29.00%)
  11 (11.00%) low severe
  11 (11.00%) low mild
  3 (3.00%) high mild
  4 (4.00%) high severe
segment/363/Cj/Cmn      time:   [16.565 µs 16.587 µs 16.616 µs]
                        change: [+2.3711% +2.6112% +2.8248%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 8 outliers among 100 measurements (8.00%)
  6 (6.00%) high mild
  2 (2.00%) high severe
segment/364/Cj/Jpn      time:   [33.895 µs 33.926 µs 33.961 µs]
                        change: [+0.0372% +0.3133% +0.5825%] (p = 0.03 < 0.05)
                        Change within noise threshold.
Found 16 outliers among 100 measurements (16.00%)
  10 (10.00%) high mild
  6 (6.00%) high severe
segment/363/Latin/Eng   time:   [11.272 µs 11.293 µs 11.313 µs]
                        change: [+6.0697% +6.4038% +6.7377%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 21 outliers among 100 measurements (21.00%)
  5 (5.00%) low severe
  1 (1.00%) low mild
  3 (3.00%) high mild
  12 (12.00%) high severe
segment/363/Latin/Fra   time:   [11.386 µs 11.409 µs 11.433 µs]
                        change: [+7.3128% +7.6566% +8.0077%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 13 outliers among 100 measurements (13.00%)
  1 (1.00%) low severe
  3 (3.00%) low mild
  6 (6.00%) high mild
  3 (3.00%) high severe
segment/365/Hebrew/Heb  time:   [5.6753 µs 5.6928 µs 5.7102 µs]
                        change: [+2.1924% +2.5472% +2.8979%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 23 outliers among 100 measurements (23.00%)
  7 (7.00%) low severe
  7 (7.00%) high mild
  9 (9.00%) high severe
segment/366/Thai/Tha    time:   [6.8448 µs 6.8533 µs 6.8630 µs]
                        change: [-1.1688% -0.8596% -0.5327%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 16 outliers among 100 measurements (16.00%)
  7 (7.00%) high mild
  9 (9.00%) high severe
segment/364/Hangul/Kor  time:   [66.096 µs 66.168 µs 66.255 µs]
                        change: [-0.4412% -0.2486% -0.0464%] (p = 0.02 < 0.05)
                        Change within noise threshold.
Found 16 outliers among 100 measurements (16.00%)
  5 (5.00%) high mild
  11 (11.00%) high severe
segment/364/Greek/Ell   time:   [8.3153 µs 8.3370 µs 8.3639 µs]
                        change: [+5.2614% +5.7158% +6.1305%] (p = 0.00 < 0.05)
                        Performance has regressed.
segment/366/Arabic/Ara  time:   [6.2222 µs 6.2304 µs 6.2393 µs]
                        change: [+0.0931% +0.5747% +1.0276%] (p = 0.02 < 0.05)
                        Change within noise threshold.
Found 20 outliers among 100 measurements (20.00%)
  1 (1.00%) low severe
  1 (1.00%) low mild
  5 (5.00%) high mild
  13 (13.00%) high severe

tokenize/132/Cj/Cmn     time:   [9.6537 µs 9.6647 µs 9.6776 µs]
                        change: [+1.3939% +1.7514% +2.1068%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 10 outliers among 100 measurements (10.00%)
  6 (6.00%) high mild
  4 (4.00%) high severe
tokenize/132/Cj/Jpn     time:   [14.387 µs 14.399 µs 14.412 µs]
                        change: [-0.4105% -0.1183% +0.1653%] (p = 0.43 > 0.05)
                        No change in performance detected.
Found 11 outliers among 100 measurements (11.00%)
  5 (5.00%) high mild
  6 (6.00%) high severe
tokenize/132/Latin/Eng  time:   [7.7199 µs 7.7288 µs 7.7392 µs]
                        change: [+0.3354% +0.7214% +1.1148%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 17 outliers among 100 measurements (17.00%)
  1 (1.00%) low mild
  10 (10.00%) high mild
  6 (6.00%) high severe
tokenize/132/Latin/Fra  time:   [8.4963 µs 8.5065 µs 8.5174 µs]
                        change: [+0.7393% +1.0216% +1.3274%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 16 outliers among 100 measurements (16.00%)
  2 (2.00%) low mild
  2 (2.00%) high mild
  12 (12.00%) high severe
tokenize/132/Hebrew/Heb time:   [5.8861 µs 5.8925 µs 5.8998 µs]
                        change: [-0.6397% -0.3438% -0.0277%] (p = 0.03 < 0.05)
                        Change within noise threshold.
Found 12 outliers among 100 measurements (12.00%)
  1 (1.00%) low mild
  7 (7.00%) high mild
  4 (4.00%) high severe
tokenize/132/Thai/Tha   time:   [5.2707 µs 5.2784 µs 5.2866 µs]
                        change: [-0.7710% -0.3804% +0.0088%] (p = 0.06 > 0.05)
                        No change in performance detected.
Found 15 outliers among 100 measurements (15.00%)
  5 (5.00%) low severe
  4 (4.00%) low mild
  4 (4.00%) high mild
  2 (2.00%) high severe
tokenize/132/Hangul/Kor time:   [34.889 µs 34.915 µs 34.945 µs]
                        change: [-0.6621% -0.3845% -0.1076%] (p = 0.01 < 0.05)
                        Change within noise threshold.
Found 13 outliers among 100 measurements (13.00%)
  5 (5.00%) high mild
  8 (8.00%) high severe
tokenize/130/Greek/Ell  time:   [7.8502 µs 7.8573 µs 7.8656 µs]
                        change: [+0.7264% +1.0847% +1.4311%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 15 outliers among 100 measurements (15.00%)
  1 (1.00%) low mild
  10 (10.00%) high mild
  4 (4.00%) high severe
tokenize/132/Arabic/Ara time:   [5.6077 µs 5.6151 µs 5.6235 µs]
                        change: [-0.3392% -0.0693% +0.1950%] (p = 0.62 > 0.05)
                        No change in performance detected.
Found 8 outliers among 100 measurements (8.00%)
  2 (2.00%) high mild
  6 (6.00%) high severe
tokenize/363/Cj/Cmn     time:   [29.313 µs 29.341 µs 29.374 µs]
                        change: [+1.3307% +1.5489% +1.7554%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 8 outliers among 100 measurements (8.00%)
  4 (4.00%) high mild
  4 (4.00%) high severe
tokenize/364/Cj/Jpn     time:   [40.557 µs 40.599 µs 40.647 µs]
                        change: [-1.0438% -0.7569% -0.4808%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 12 outliers among 100 measurements (12.00%)
  7 (7.00%) high mild
  5 (5.00%) high severe
tokenize/363/Latin/Eng  time:   [19.285 µs 19.310 µs 19.339 µs]
                        change: [+0.8779% +1.2027% +1.5248%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 8 outliers among 100 measurements (8.00%)
  5 (5.00%) high mild
  3 (3.00%) high severe
tokenize/363/Latin/Fra  time:   [22.490 µs 22.511 µs 22.533 µs]
                        change: [+2.5026% +2.7096% +2.9121%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) high mild
  3 (3.00%) high severe
tokenize/365/Hebrew/Heb time:   [15.790 µs 15.810 µs 15.834 µs]
                        change: [-1.0931% -0.8949% -0.6881%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 13 outliers among 100 measurements (13.00%)
  8 (8.00%) high mild
  5 (5.00%) high severe
tokenize/366/Thai/Tha   time:   [13.566 µs 13.583 µs 13.602 µs]
                        change: [-0.9275% -0.6499% -0.3743%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 14 outliers among 100 measurements (14.00%)
  1 (1.00%) low severe
  6 (6.00%) high mild
  7 (7.00%) high severe
tokenize/364/Hangul/Kor time:   [84.607 µs 84.687 µs 84.783 µs]
                        change: [-1.2843% -0.9747% -0.6813%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 19 outliers among 100 measurements (19.00%)
  7 (7.00%) high mild
  12 (12.00%) high severe
tokenize/364/Greek/Ell  time:   [24.110 µs 24.140 µs 24.173 µs]
                        change: [-0.6253% -0.3232% -0.0097%] (p = 0.04 < 0.05)
                        Change within noise threshold.
Found 6 outliers among 100 measurements (6.00%)
  3 (3.00%) high mild
  3 (3.00%) high severe
tokenize/366/Arabic/Ara time:   [17.013 µs 17.040 µs 17.069 µs]
                        change: [+0.0311% +0.3013% +0.5689%] (p = 0.03 < 0.05)
                        Change within noise threshold.
Found 15 outliers among 100 measurements (15.00%)
  1 (1.00%) low mild
  9 (9.00%) high mild
  5 (5.00%) high severe

This is to be expected, given that we are iterating over each string slice several times.
fn segment_str<'o>(s: &'o str) -> Box<dyn Iterator<Item = &'o str> + 'o> {
    let lemmas = s
        .split_word_bounds()
        .flat_map(|lemma| lemma.split_inclusive(['\'', '’', '‘', '‛']))
        .flat_map(split_camel_case_bounds)
        .flat_map(split_snake_case_bounds);

    Box::new(lemmas)
}

I'll experiment with combining split_camel_case_bounds and split_snake_case_bounds into a single function...

@ManyTheFish Have you had a chance to look at this PR yet? 😇


Heavy performance regression for block-comments

Using the comment parser with block comments results in heavy performance regressions. E.g. when scrolling (<C-d> / <C-u>) the commented section.
I'm ignoring the comment parser in ts_config for the last 6 months or so to not experience this issue. But re-testing it, it's still present.
-- List of parsers to ignore installing
-- "comment" results in major performance issues when using block comments.
-- ignore_install = { "comment" },

It would be great to have it solved and to be able to use this parser unimpaired.
It's probably a global issue, but during a short re-test the regression is definitively present in rust, lua.

Hi, this is a neovim problem https://github.com/neovim/neovim/issues/22426, also make sure you are using the nightly version of neovim.

Thanks for the quick response and referencing the related issue, wasn't aware about this!
Yep, nightly all the way :shipit: :+1:

Closing this, since isn't related to the grammar itself, but neovim.


Build failure in internal/clip/clip_test.go

Describe the bug
Build failure in internal/clip/clip_test.go
To Reproduce
#!/bin/bash -ex

cd $(mktemp -d)
git clone https://github.com/tidwall/tile38.git
cd tile38
go test ./internal/clip

Expected behavior
Test pass.
Logs
++ mktemp -d
+ cd /tmp/tmp.AzpesgkwBc
+ git clone https://github.com/tidwall/tile38.git
Cloning into 'tile38'...
remote: Enumerating objects: 15996, done.
remote: Total 15996 (delta 0), reused 0 (delta 0), pack-reused 15996
Receiving objects: 100% (15996/15996), 41.47 MiB | 2.61 MiB/s, done.
Resolving deltas: 100% (6971/6971), done.
+ cd tile38
+ go test ./internal/clip
# github.com/tidwall/tile38/internal/clip [github.com/tidwall/tile38/internal/clip.test]
internal/clip/clip_test.go:91:17: not enough arguments in call to Clip
	have (*geojson.Polygon, *geojson.Rect)
	want (geojson.Object, geojson.Object, *geometry.IndexOptions)
FAIL	github.com/tidwall/tile38/internal/clip [build failed]
FAIL

Operating System (please complete the following information):
$ uname -a
Linux xps 5.0.0-1047-oem-osp1 #52-Ubuntu SMP Fri Mar 27 16:20:01 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Thanks for reporting this Michael. All fixed.


Rename packages, classes and json keys

To better suit NUSEatWhere's purpose as a food app, these remnants from AB3 should be renamed to something more 'food' related.

Fixed by #33 #35 #36 #37 #46


add clap like env variable hint

A suggestion to have clap like hint for the STARKNET_KEYSTORE env variable.
Related to #4.

Thanks for working on this. However, I'm not sure if this is the correct way to go. Normally this "env var hint" would automatically show the value if already set, but this one obviously doesn't.

Yes exactly, based on your comment inside the code I have tried this solution as we can't have the hint from clap.
From a user experience, it's useful to have the hint, this was the motivation of my commit.
But I totally understand your take on this, what do you suggest then? No hint for now or do we have to investigate how to handle this with clap for this particular case? (It would be the better if it's possible)

I don't think it's possible. Pretty sure clap excepts a static str here but I could be wrong obviously.
My concern is that this breaks user assumption. For anyone who's aware of the "value shown in hints when set" behavior, this creates an unwanted exception where users would be left asking themselves why the value is not detected.
I think a hint that says this can be set via the env var in plain English without attempting to mimic the clap format is better.

To avoid confusion, let me clarify a bit on what I meant.
So when the value exists clap is able to show something like (if using env derive):
[STARKNET_KEYSTORE=/path/to/key]

but with our fake hint it's always just:
[STARKNET_KEYSTORE=]

which breaks user assumption on how this feature works.

I think I'm still not clear. So the desirable behavior here is for the CLI to reject these:

--keystore xxx --private-key xxx
--keystore-password xxx --private-key xxx

and to be clear, this is not a precedence problem. I believe option conflicts (like the above) should be explicitly rejected instead of having precedence applied quietly (read: magically).
But this should be allowed:

STARKNET_KEYSTORE=xxx ... --private-key xxx

My rationale is that, with environment variables we're encouraging users to set global defaults with their shell profiles, which is nice since each invocation becomes much simpler, and you can indeed override the keystore with another keystore file using the flag version of --keystore. However, imagine say now you want to send a test transaction with a raw private key for development purpose - oops, a signer option conflict.
This means we need to distinguish between whether the keystore option itself comes from environment variable or command line. For env var input we interpret it as a global default that can be safely ignored, and for the latter we would interpret it as a user mistake.
I hope this is clear. With the latest diffs in this PR I think you're just reverting this whole "env var does not conflict but flag does" functionality, which means that users wouldn't be able to use --private-key when a global STARKNET_KEYSTORE is set - not ideal.

Thanks a lot for this explanation and your vision @xJonathanLEI.
I've then pushed a last attempt that may fit your vision.
The only point of this solution is that the following scenario will not clash:
export STARKNET_KEYSTORE=~/path1/key.json
starkli declare --keystore ~/path1/key.json --private-key 0x1234 contract.json

But otherwise, it will clash as expected.
As you mentioned, the way we use clap with the static strings is limiting us from using clap methods to know if the argument was provided or loaded from the env.

Actually, I think I'm wrong on the static str requirement. There is a string feature in clap that allows non-static strings to be used for version / help texts.

Also seen that after your comment, I'll take a look at it! Thanks for the update.

Superseded by https://github.com/xJonathanLEI/starkli/commit/ddfb5aaa3a0642cf7e2df783104fcf7e9cd2d9a2.


List doesn't show up

I opened it. Logged in (crosschecked), no SNAPS! This happens many times. Any help?

something I also had on my Lumia 950

You're not even supposed to be able to login after the recent api change. Hmmm... Weird.

I could login, but then there is nothing. Could take a snap but the frame of the camera is not as large as my screen.

I can login too, idk why, but my login its normal..

It's a pseudo-login. You're just past the screen, not actually logged in

On Jan 29, 2016, at 2:11 PM, trischmateus<EMAIL_ADDRESS>wrote:
I can login too, idk why, but my login its normal..
—
Reply to this email directly or view it on GitHub.


Adds few sbt-assembly improvements.

Avoid creating an assembly jar for the root and common projects
more extensive merge strategies

concating application.conf
for fall-through cases retain old merge strategy

adds extensive .gitignore

This addresses #1

Hi @saswata-dutta,
thanks a lot for your contribution. I already had this implemented but didn't pushed it to this repo until now, so this is no longer needed.
Cheers


Set JSON schema draft, add annotations

Towards https://github.com/giantswarm/roadmap/issues/1733
The goal is to make the schema valid with regard to our requirements for cluster-apps.
This PR does

Sets the draft to https://json-schema.org/draft/2019-09/schema, which is the one we require for cluster apps
add mandatory and a few optional annotation fields
Adds deprecated to the /machinePools property, together with an (internal) $comment

As I have no idea on how to test this end to end, I'd like to ask @giantswarm/team-clippy for help.


Significant library size

Description
See title - zustand-x is sitting at about 90kb minified (zustood was 30kb minified). There might be some low hanging fruit? For example, it looks like all of lodash is bundled in - not sure what else, I haven't had a lot of time to check.

We've replaced rollup with tsup. Lodash is indeed in fault, I'll update the imports.

Should be fixed in latest


await expression is only allowed within an async function

I tried to follow the TS example from the readme but I'm confused how TS is supposed to know that it is an async function.
I call require('jasmine-co').install(); but I still get error await expression is only allowed within an async function as the definition files still point to @types\jasmine\index.d.ts
Do I have to update the definition files from jasmine-co?

it is not an async function, but the second argument you pass to it should be.
it("is awesome", async function() {
    await something();
});

My apologies! I didn't see that part of the example, it works great now, thanks!


Add title in menu as an option  + Bug fix cursor not showing after using menu

Thank you for the contribution! :)
Can you give more details about the bug?
Maybe show some videos showing the before the fix and after the fix, and also showing the new title feature.

Thank you for the crate, is really good.
Title
The title method in Menu struct adds a title to the menu.
The title field in Menu struct is an Option is up to the user to use it or not.
Is implemented in the same way as hints are.
How to use title?
menu.title("Example Menu").show();

Title demo
https://user-images.githubusercontent.com/102485147/217042002-8a3d6f24-a8ca-40d9-a63e-f466896b42db.mp4
Cursor bug
The cursor is invisible after using the menu. I have this issue in Alacritty and Foot. Closing and reopening the terminal solves it.
https://user-images.githubusercontent.com/102485147/217042856-ffba363c-b279-46d3-96ea-94dd8e87a4a7.mp4
Cursor fix
To fix it, I add stdout.show_cursor() when Return or Esc are pressed.
https://user-images.githubusercontent.com/102485147/217045838-d6038184-2e2c-4f84-8d6f-49f42d1a6b70.mp4
As you can see at the end of the video the cursor is visible after using the menu.
Thank you again for your work,
Matías

Thanks for the detailed explanation! Seems good, I just styled the code a little bit.
Thanks for the contribution!!! 😄


Clean up MPC temp files

gsutil du -sh gs://regional_missense_constraint/
INFO 0609 12:59:40.675106 retry_util.py] Retrying request, attempt #1...
3.37 TiB     gs://regional_missense_constraint

Bucket is still large but was previously 7TiB https://atgu.slack.com/archives/CNL7NA6H2/p1654515009181269


There is no possibility to extract or run project/saved queries

Not a bug or issue, but it nice to have ability to extract SQL or run project query from python client

@ToGoBananas is this for BigQuery?

@daspecster yes

@ToGoBananas ok thanks!
I'm not sure that is available through the REST API. @tseaver might have some ideas though.

@ToGoBananas can you point out docs for the feature you are describing?

@tseaver https://cloud.google.com/bigquery/docs/saving-sharing-queries#sharing_queries_with_project_members
Seems like this feature are not available via REST api
More likely I need to create feature request here https://code.google.com/p/google-bigquery
Sorry for trouble, close issue?

@ToGoBananas I think you're right.  If it gets added to the REST/gRPC API's let us know!
Thanks for looking into this!


Build failed when adds libsodium-sys dependency in runtime

1, Pull the latest mater of substrate
2, Add libsodium-sys = "0.2.4" to the [dependencies] section in the Cargo.toml of runtime
3, cargo build --release
It shows error as follows.
error: failed to run custom build command for libsodium-sys v0.2.5
Caused by:
process didn't exit successfully: /Users/zhangtong/work/project/rust/substrate/target/release/wbuild/target/release/build/libsodium-sys-76f237e160de93a8/build-script-build (exit code: 101)
--- stdout
cargo:rerun-if-env-changed=SODIUM_LIB_DIR
cargo:rerun-if-env-changed=SODIUM_SHARED
cargo:rerun-if-env-changed=SODIUM_USE_PKG_CONFIG
cargo:rerun-if-env-changed=SODIUM_DISABLE_PIE
OPT_LEVEL = Some("3")
TARGET = Some("wasm32-unknown-unknown")
HOST = Some("x86_64-apple-darwin")
CC_wasm32-unknown-unknown = None
CC_wasm32_unknown_unknown = None
TARGET_CC = None
CC = None
CFLAGS_wasm32-unknown-unknown = None
CFLAGS_wasm32_unknown_unknown = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("false")
--- stderr
thread 'main' panicked at '
"/Users/zhangtong/work/project/rust/substrate/target/release/wbuild/target/wasm32-unknown-unknown/release/build/libsodium-sys-b7537dd6750cfc83/out/source/libsodium-1.0.18/configure" "--prefix=/Users/zhangtong/work/project/rust/substrate/target/release/wbuild/target/wasm32-unknown-unknown/release/build/libsodium-sys-b7537dd6750cfc83/out/installed" "--host=wasm32-unknown-unknown" "--enable-shared=no"
CFLAGS= -O2
CC=clang
checking build system type... x86_64-apple-darwin17.7.0
checking host system type...
Invalid configuration wasm32-unknown-unknown': system unknown' not recognized
configure: error: /bin/sh build-aux/config.sub wasm32-unknown-unknown failed

Possible missing dependencies.
See https://github.com/sodiumoxide/sodiumoxide#cross-compiling

', /Users/zhangtong/.cargo/registry/src/github.com-1ecc6299db9ec823/libsodium-sys-0.2.5/build.rs:270:9
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace.
warning: build failed, waiting for other jobs to finish...
error: build failed
warning: build failed, waiting for other jobs to finish...
error: build failed

Why do you need the library in the runtime?
Nevertheless, the library does not compiles for wasm: https://github.com/sodiumoxide/sodiumoxide/issues/347
(And this is not the issue tracker for other crates)

@bkchr  We implement a key pair algorithm and signature algorithm using libsodium-sys. And in our module, we want to verify the user's signature in our own way. So we use the library. Maybe there's something wrong with our implementation logic? Any suggestions?

No there is nothing wrong on your side, libsodium just do not compiles for wasm. Are you aware that every module needs to be compilable to wasm in Substrate?

@bkchr  I see. I will find another way to implement our functions. Thanks for your answer. You Guys Are Doing a Great Job!

You could look how we implement the hashing functions for wasm (they call into native) and use the same scheme. (This will currently require some internal changes to Substrate, but that will change in the future).
Nevertheless, if you want to develop a parachain for Polkadot, it will be required that your crypto works in wasm.

Got it.


Failed to load plugin '@stylistic' declared in '.eslintrc.yaml': Cannot find module '@stylistic/eslint-plugin'

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.

Describe the bug
Our applications is based on create-react-app 5.0.1. My configuration is specified in yaml format. I use unified stylistic plugin.
The error occurs during build.
Also different errors appears with rules, e.g. [eslint] Error while loading rule '@stylistic/comma-spacing': Cannot read properties of undefined (reading 'tokensAndComments') or Error while loading rule '@stylistic/func-call-spacing': Cannot read properties of undefined (reading 'getText') and etc.
What is the problem?
Reproduction
https://stackblitz.com/edit/stackblitz-starters-a3c2ra?file=.eslintrc.yaml
Contributes

[ ] I am willing to submit a PR to fix this issue
[ ] I am willing to submit a PR with failing tests

This is also valid in my case for multiple rules:

'@stylistic/comma-spacing'
'@stylistic/func-call-spacing'
'@stylistic/indent'*/
'@stylistic/no-multiple-empty-lines'
'@stylistic/eol-last'

For the time being I disabled  @stylistic/migrate/migrate-js and reverted to the previous eslint rules

@evgeniyworkbel Did you find a solution to this issue? I have encountered the same issue when migrating to the stylistic dependency. Using the original rules from eslint (removing the @stylistic prefix) has no problem.


Update scala3-library, ... to 3.2.1

Updates

org.scala-lang:scala3-library
org.scala-lang:scala3-library_sjs1

from 3.1.3 to 3.2.1.
GitHub Release Notes - Version Diff - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.scala-lang" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:n:2

I noticed that 0.14.x is on 3.1.3. Are we holding off on Scala 3.2.x for some reason?


Define thresholds and create a cloud watch alert

It's a nice tool! Congratulations!
But can be more intersting if is possible:

Integrate with Cloud Watch Metrics.
Define Thresholds Like Over-provisioned percent and you can receive a notification to take some action.
Thanks

Hi @brunopaixao
Thank you for the suggestions. We've added this to our backlog and will evaluate next time we plan an update to the solution.


fix(chart): use *SecretName in statefulset when defined

Hello,
It seems that when a user manages their own secrets through the values secrets.credentialsSecretName, secrets.certificateSecretName, or secrets.pgBackRestSecretName, the mounted volumes still uses the pattern ${ClusterName}-${secretType}.
In those cases, we would rather use the user-defined secrets.
Let me know what you think about it!

Fixed in #373


Update ztunnel stats port

This was changed, align with new selection.

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-test_istio_exp
de0da9e70c6db49e2263c62421d8df22ae7a66aa
link
true
/test release-test

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test release-test

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-test_istio_exp
de0da9e70c6db49e2263c62421d8df22ae7a66aa
link
true
/test release-test

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


[Bug]: Databases not running in UI

Description
On version 220 the newly created databases are not shown as running anymore. See video below.
Coolify reports the process as exited however the container is still running
8eaef0113691   postgres:16-alpine                          "docker-entrypoint.s…"   12 minutes ago      Up 12 minutes (healthy)      5432/tcp                                                                                s0g0k8s

Minimal Reproduction (if possible, example repository)

Create Postgres Database
Start it

Exception or Error
https://github.com/coollabsio/coolify/assets/40178814/d7984b8f-5d25-483a-8b95-cba4c09f3006
  2024-02-19 11:10:38 App\Jobs\CleanupHelperContainersJob ............ RUNNING
  2024-02-19 11:10:38 App\Jobs\CleanupHelperContainersJob ....... 79.92ms DONE
  2024-02-19 11:11:00 Running [App\Jobs\ContainerStatusJob] ......... 5ms DONE
  2024-02-19 11:11:00 Running [App\Jobs\ServerStatusJob] ............ 0ms DONE

  2024-02-19 11:11:00 App\Jobs\ContainerStatusJob .................... RUNNING
  2024-02-19 11:11:00 App\Jobs\ContainerStatusJob .............. 197.89ms DONE
  2024-02-19 11:11:00 App\Jobs\ServerStatusJob ....................... RUNNING
  2024-02-19 11:11:01 App\Jobs\ServerStatusJob ................. 336.19ms DONE
  2024-02-19 11:11:08 App\Jobs\CoolifyTask ........................... RUNNING
  2024-02-19 11:11:09 App\Jobs\CoolifyTask ........................... 1s DONE
  2024-02-19 11:11:09 App\Events\DatabaseStatusChanged ............... RUNNING
  2024-02-19 11:11:09 App\Events\DatabaseStatusChanged ........... 7.17ms DONE
  2024-02-19 11:12:00 Running [App\Jobs\CleanupInstanceStuffsJob] ... 4ms DONE
  2024-02-19 11:12:00 Running [App\Jobs\ContainerStatusJob] ......... 0ms DONE
  2024-02-19 11:12:00 Running [App\Jobs\ServerStatusJob] ............ 0ms DONE

  2024-02-19 11:12:00 App\Jobs\CleanupInstanceStuffsJob .............. RUNNING
  2024-02-19 11:12:00 App\Jobs\CleanupInstanceStuffsJob ......... 20.17ms DONE
  2024-02-19 11:12:00 App\Jobs\ContainerStatusJob .................... RUNNING
  2024-02-19 11:12:00 App\Jobs\ContainerStatusJob .............. 141.02ms DONE
  2024-02-19 11:12:00 App\Jobs\ServerStatusJob ....................... RUNNING
  2024-02-19 11:12:01 App\Jobs\ServerStatusJob ................. 322.83ms DONE
  2024-02-19 11:13:00 Running [App\Jobs\ContainerStatusJob] ......... 4ms DONE
  2024-02-19 11:13:00 Running [App\Jobs\ServerStatusJob] ............ 0ms DONE

  2024-02-19 11:13:00 App\Jobs\ContainerStatusJob .................... RUNNING
  2024-02-19 11:13:01 App\Jobs\ContainerStatusJob .............. 342.76ms DONE
  2024-02-19 11:13:01 App\Jobs\ServerStatusJob ....................... RUNNING
  2024-02-19 11:13:01 App\Jobs\ServerStatusJob ................. 346.97ms DONE

PostgreSQL init process complete; ready for start up.

2024-02-19 11:04:18.688 UTC [1] LOG:  starting PostgreSQL 16.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014, 64-bit
2024-02-19 11:04:18.688 UTC [1] LOG:  listening on IPv4 address "<IP_ADDRESS>", port 5432
2024-02-19 11:04:18.688 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2024-02-19 11:04:18.697 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-02-19 11:04:18.705 UTC [50] LOG:  database system was shut down at 2024-02-19 11:04:18 UTC
2024-02-19 11:04:18.711 UTC [1] LOG:  database system is ready to accept connections
2024-02-19 11:09:18.800 UTC [48] LOG:  checkpoint starting: time
2024-02-19 11:09:22.966 UTC [48] LOG:  checkpoint complete: wrote 44 buffers (0.3%); 0 WAL file(s) added, 0 removed, 0 recycled; write=4.130 s, sync=0.009 s, total=4.167 s; sync files=11, longest=0.004 s, average=0.001 s; distance=261 kB, estimate=261 kB; lsn=0/1531A10, redo lsn=0/15319D8
root@internal-coolify:~#

Version
220

Fixing in the next version (releasing soon). Thanks for the report!


fix the zoom reset issue

This PR fixes #20176
I was able to identify that the dead link as the root cause, but still not sure why electron decides to reset the zoom level.
before:

after:

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 2 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 42.104%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/base/browser/ui/table/formatters.ts
0
2
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
28171

Relevant Lines:
62533

💛  - Coveralls


feat(setup): re-design for directory structure

Description
The current folder structure could be modified to be on-par with industry standards

[ ] Bug Report
[x] Feature Request

Details

Feature Description:  Re-Design the folder structure to be on-par with industry standards

Move all .py extension/poetry files into app.
Ensure repository level configuration files are present inside a particular folder.
The existing application must be tested in all levels - local, CI based tests and must pass.

I believe the current folder structure is valid and perfect, and moreover moving the files according to the issue description would create further problems in testing.
But kudos for thinking to keep the directory structure clean @niyasrad! :clinking_glasses:


Check Unusual logins & Use correct time window in RunCommandUEBABreach.yaml

UEBAWindowStart has to be lower than UEBAWindowEnd, or there will be nothing in between.
I think the author wanted to write "UEBAWindowEnd = UEBAEventTime + 6h" instead of "UEBAEventTime - 6h"
Also, it does not check unusual activity in Behaviour Analytics table.
Proposed Changes

Use "ActivityInsights.ActionUncommonlyPerformedByUser == "True"" as condition
Extend window of  UEBAevent
Reduce Query Period from 7 days to 2 days, could be further reduced.

I think a thorough review of Sentinel Detections would be worth it.

Changes look good, but I wouldn't make the Window lookback so large.
Seeing a Run Command action 6 hours prior to a UEBA event is more likely to be an FP, for this to work the login should be tagged as suspicious before they invoke Run Command. I think the window could start on the UEBA event time, however 1h lookback is a generous buffer.
I'd suggest using:
| extend UEBAWindowStart = UEBAEventTime - 1h, UEBAWindowEnd = UEBAEventTime + 6h

@thmcelro Done.
With a query period of 2 days, the same event can trigger 2 alerts (2 days in a row).
Maybe specifying:
queryPeriod: 25h
...
let lookback = 1d;
AzureActivity
| TimeGenerated > ago(lookback)

could save computational resources.
In case you wanted to further change.


AI toolkit MVP

@zoeyfan @csells Can we close this MVP issue as complete with the:

docs.flutter.dev docs launched
Package published
Blog posted
Entry added to flutter.dev/ai

Thanks everyone for all the hard work here!

yep. this has been fixed.


Explain how to connect without a password through Unix socket

I expanded the section 'Running the Server' in the documentation.
Based on this comment:
https://github.com/begriffs/postgrest/issues/169#issuecomment-177031035
Related issue: #169

Nice and thorough, thank you!


Modification for virtualenv

Could you please also include a modification for virtuaenv?

Hey. Sorry for the late reply. I'm not familiar with the installation method for virtualenv. If you could fork the repo, and create a pull request, it'll be a great feature to add! :smile:


failed to execute 'add' on 'DOMTokenList': The token provided must not be empty.

Recently updated the bubble card and now I have the issue: failed to execute 'add' on 'DOMTokenList': The token provided must not be empty.
The bubbles will not show on my main screen anymore, just this error.  See images below. Any suggestions?

Hi, do you still have this issue in the latest release?


(BREAKING CHANGES) Refactoring MobileAds API to v2.0.0

Is your feature request related to a problem? If so, please describe.
This change intends to change many of the plugins in all aspects, in order to make the plugin more dynamic and easy to use, it is necessary almost completely to redo the plugin to meet the use of mediation.
⚠WARNING⚠:

No long support for Godot 3 due to the high complexity of refactoring (but there's the godot3 branch such as the supported versions in the release tab)
Next tag release will be v2.0.0, when Godot 5 arrives probably will be v3.0.0, and create a branch to store the old version.
When released, it will only support Android for now, but in the future will create a solution for iOS.

What feature or improvement would you like to see?
✅GOALS✅

[x] Create an Interface of MobileAds class with GDScript with the most important methods used on AdMob.

Example:
extends Control

func _ready() -> void:
	MobileAds.initialize(OnInitializationCompleteListener.new(_on_initialization_complete))

func _on_initialization_complete(initialization_status : InitializationStatus) -> void:
	for key in initialization_status.adapter_status_map:
		var adapterStatus : AdapterStatus = initialization_status.adapter_status_map[key]
		prints(key, adapterStatus.latency, adapterStatus.initialization_status, adapterStatus.description)

Android documentation: https://developers.google.com/admob/android/mediate#java
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.AdapterStatus;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
                Map<String, AdapterStatus> statusMap = initializationStatus.getAdapterStatusMap();
                for (String adapterClass : statusMap.keySet()) {
                    AdapterStatus status = statusMap.get(adapterClass);
                    Log.d("MyApp", String.format(
                            "Adapter name: %s, Description: %s, Latency: %d",
                            adapterClass, status.getDescription(), status.getLatency()));
                }

                // Start loading ads here...
            }
        });
    }
}

[x] https://github.com/Poing-Studios/godot-admob-editor/issues/23
[x] Add the possibility of having as many mediations as possible, but their total development may take longer, in the beginning only one or two mediations will be developed
[x] Dynamic creation of advertisements, you can load several advertisements at once (should attend https://github.com/Poing-Studios/godot-admob-android/issues/133)
[x] Change the name of the repository from godot-admob-editor to godot-admob-plugin

Other goals could be increased during the development
Additional context
Should be in the next minor release (e.g.: v2.1.0):

Creational of Unit Tests to have a little more assurance the plugin will work well (probably use gdUnit4)

Is mediation finally supported?
If yes, can I use the plugin with Godot version 3.5.+?
Thank you for your work.

Hi @Momo90k , it will be supported when this issue is closed and merged on master branch
This refactoring aims to Godot v4.1.
This should work on 3.5+, but you will need to write usage of this plugin in Godot in your way, when this issue closes, it will be all ready for 4.1.

Ok. Thank you.