Support for workspace inheritance

Hi,
the latest Rust release (1.64) includes support for sharing workspace package and dependencies information across workspace members (see the announcement). Using this feature causes cargo deb to fail with the error
cargo-deb: Unable to parse Cargo.toml
  because: invalid type: map, expected a string for key `package.version` at line 5 column 24
  because: invalid type: map, expected a string for key `package.version` at line 5 column 24

(using [workspace.package] version = "<VERSION>").
Looking at your Cargo.toml, I assume this is using cargo_toml to parse the manifest? If that is the case, this might be related to https://gitlab.com/crates.rs/cargo_toml/-/issues/19.

Pretty sure this is in progress. I think @kornelski made the changes required in cargo_toml 0.12.x

I've added only for dependencies. For other field it's going to be rough, because it makes struct access pretty ugly. I'm not sure how to implement it.

@kornelski do you mean here or in cargo_toml? I haven't looked into it too much, but I expected cargo_toml to mostly implement the Cargo.toml data model.
For other tooling, a lot of which currently faces similar issues, an alternative solution that was suggested is building on cargo metadata instead. I've mostly heard about that in the context of things like cargo outdated or cargo udeps, which currently use cargo as a library (and have not integrated a new version which supports workspace inheritance yet), but maybe it applies here as well. Potential benefits could be

the result of running cargo metadata is more synced up with the locally installed toolchain. In particular, updating cargo through the toolchain makes new features available independently of the currently installed version of third-party tools and the library versions they are currently using in their dependencies (the local version may also lag behind, in which case the user is unable to use new features regardless).
the data returned by cargo metadata is already somewhat aggregated, e.g. inherited data is inlined into the respective packages. The metadata format is therefore more stable than individual file formats.

cargo metadata ironically, doesn't include package's metadata field required for cargo-deb.

Done

Published


Fix/populate initial prices

This pull request addresses two  issues:
Amazon pricing
When dealing with Amazon pricing, 'localizedPrice' consistently defaults to 0.0. To rectify this, we've leveraged the 'original price' as the source value for 'localizedPrice.' The primary objective of this patch is to seamlessly populate both 'localizedPrice' and 'price' with values derived from 'originalPrice.'
purchaseUpdatedListener notifications
During our investigation, we encountered a similar issue where notifications weren't being received within the purchaseUpdatedListener. Our solution involved the reintroduction of the startListening method."

Hi @hyochan if you have some time, mind taking a look? The purchaseUpdatedListener fix resolves an issue for our customers. Thank you!

Hi @andresesfm, any chance you are still maintaining this package? Would appreciate your help here, thanks!

Hey @zachariast, any idea on how we can get this reviewed/merged. I'm facing the same issues you reported earlier when android purchases made outside of the app are not being pulled through after I try to go back into the app

thank you @hyochan !


Added contract-wizard documentation

I created this PR because I believe Contract Wizard is a tool that is worth being added to the ink documentation.

How nice! I was not aware of this project.
Do you have an idea about the state of OpenBrush and if the team plans to port it to ink! 5.0?

Thanks for approving this PR. Although I don't have a direct relationship with the OpenBrush team, I concur that updating the contracts to the latest version would be beneficial. We are keen on supporting this if it's done. ;)


Fix bug with empty placeholders.

Fix #25.
Input get stuck when used empty placeholder.
The bug when you type the same key as on placeholder remains.

Sorry if I come back to this issue but after these changes, is there any way to have an empty placeholder and show it empty until the user interacts with the field?


delele invalid format

Cause format property only allow d, dd, D, DD, m, mm, M, MM, yy, yyyy and seperator /
and charactars else are invalid.
#2015

I'm closing this PR since it is not a solution to the related issue.

why not?


New Contributors Template

Investigate the possibility to offer a NEW CONTRIBUTORS template variable, which can be used as part of changelogs.
This depends on the availability of a respective endpoint retrieving contribution information.

I was actually going to open a feature request for this exact thing!


HOSTEDCP-969: Move metrics

What this PR does / why we need it:
Cherry-picks
https://github.com/openshift/hypershift/pull/2347
https://github.com/openshift/hypershift/pull/2348
https://github.com/openshift/hypershift/pull/2440
https://github.com/openshift/hypershift/pull/2459
https://github.com/openshift/hypershift/pull/2463
https://github.com/openshift/hypershift/pull/2477
https://github.com/openshift/hypershift/pull/2479
https://github.com/openshift/hypershift/pull/2483
https://github.com/openshift/hypershift/pull/2489
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/lgtm


MSID: 87958 Version: 2 DOI: 2<IP_ADDRESS>4689

[PLACE MANUSCRIPT AND EDITOR DETAILS HERE WHEN AVAILABLE] See step 3
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[x] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v1/by-publisher/elife/get-by-manuscript-id?manuscript_id=87958)

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/preview/87958/v2)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[x] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>4689)
[ ] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[ ] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/87958/v2/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/87958)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/87958

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/87958

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/87958/v2/87958-v2.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/87958)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

@fred-atherden reviews have been posted

Sorry @fred-atherden my mistake again it was meant to go to modify manuscripts.json

No worries (just checking) - thanks!


Ticket example

Describe the problem
Provide app.log file from %userprofile%/appdata/local/MercuryTrade folder.

Problem concerns the new Overseer functionality.
Upon making 2 icons for flasks I found the following problem:
When you press a button down (1) then press another button down (2) then release the first button (1) and then the second button (2) - the second icon timer starts, as it should, but the first one doesn't.
As I understand it the trigger for the icon timer starts upon a release of a button. Apparently pressing another one before releasing the first deletes it.


Unable to detect package update

Hey,
looks like the library is not able to detect bower updates when using jspm update command.
Am I missing something?

It is working for me,
could you give me more detail?

Sure!

If I try to update:

While if I uninstall and reinstall:

Does this clarify the issue?


Pod templates as their own type

This pull request adds pod templates as their own type (first step towards #170). Having
a distinct type allows their use to be clearly delineated for end users, to have their
own independent validation rules, and to simplify interactions from the client. This does
not prevent pods from having "inert" behavior in the future that can also be used for
templates.  Replication controllers should work against inert pods or pod templates equally.
Only the last commit is new - the others are issues found while trying to support a
type that only exists in v1beta3.

@liggitt since we were just talking about this
On Tue, Mar 3, 2015 at 11:05 PM Clayton Coleman<EMAIL_ADDRESS>wrote:

This pull request adds pod templates as their own type (first step towards
#170 https://github.com/GoogleCloudPlatform/kubernetes/issues/170).
Having
a distinct type allows their use to be clearly delineated for end users,
to have their
own independent validation rules, and to simplify interactions from the
client. This does
not prevent pods from having "inert" behavior in the future that can also
be used for
templates. Replication controllers should work against inert pods or pod
templates equally.
Only the last commit is new - the others are issues found while trying to
support a
type that only exists in v1beta3.
You can view, comment on, or merge this pull request online at:
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012
Commit Summary

genericetcd.Etcd should test resourceVersion
Stop round trip testing in latest
Skip types that are not registered on an API version
Stop logging stack traces for 4xx requests
Switch List/Watch to ListPredicate/WatchPredicate
Enumerate all versions when looking for an output conversion
Use IsListType instead of checking ItemPtr in resourcebuilder
Pod Templates
Only insert outputversion as a preferred mapping type if no error
occurs

File Changes

A api/examples/podtemplate.json
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-0
(22)
M examples/examples_test.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-1
(9)
M hack/test-cmd.sh
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-2
(28)
M pkg/api/latest/latest_test.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-3
(48)
M pkg/api/register.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-4
(4)
M pkg/api/rest/resttest/resttest.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-5
(27)
M pkg/api/serialization_test.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-6
(23)
M pkg/api/validation/validation.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-7
(18)
M pkg/apiserver/api_installer.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-8
(4)
M pkg/httplog/log.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-9
(2)
M pkg/kubectl/cmd/get.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-10
(25)
M pkg/kubectl/kubectl.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-11
(15)
M pkg/kubectl/resource/result.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-12
(2)
M pkg/kubectl/resource_printer.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-13
(68)
M pkg/master/master.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-14
(16)
M pkg/registry/event/rest.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-15
(4)
M pkg/registry/generic/etcd/etcd.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-16
(53)
M pkg/registry/generic/etcd/etcd_test.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-17
(263)
M pkg/registry/generic/registry.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-18
(4)
M pkg/registry/limitrange/rest.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-19
(4)
M pkg/registry/namespace/rest.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-20
(4)
M pkg/registry/pod/etcd/etcd.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-21
(8)
M pkg/registry/pod/etcd/etcd_test.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-22
(26)
M pkg/registry/pod/rest.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-23
(1)
A pkg/registry/podtemplate/doc.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-24
(18)
A pkg/registry/podtemplate/etcd/etcd.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-25
(62)
A pkg/registry/podtemplate/etcd/etcd_test.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-26
(100)
A pkg/registry/podtemplate/rest.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-27
(75)
M pkg/registry/resourcequota/rest.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-28
(4)
M pkg/registry/secret/rest.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-29
(4)
M pkg/tools/etcd_tools.go
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012/files#diff-30
(3)

Patch Links:

https://github.com/GoogleCloudPlatform/kubernetes/pull/5012.patch
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012.diff

—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012.

Thanks!!
The main change is now the next-to-last commit. :-)
I'm fine with the API. I can see the benefit of an explicit template.
One thing to consider for separate templates: We may want to allow users to specify the resourceVersion of the template in the ObjectReference (the necessary field already exists) and force the replication controller to observe the specified version before it creates any new pods, for WAW consistency, if the user cares.
When this is ready for full review, let me know, though I may need to punt it to someone else.

I'm fine with this being v1beta3 only. I want to finalize v1beta3 and flip to it as the default asap.
Looking at the json, I see why you changed "spec" to "template". My main concern is whether we might add status in the future, such as to publish the last time the template was used to create a pod.

I could certainly imagine a status in the future.  Is an object that behaves like a template having a root "template" field better  (obviousness) vs encouraging others to invent things besides spec. My thought was that spec is a real object which is converged, while a template isn't.  Might be good to get a few other opinions.

On Mar 14, 2015, at 7:52 PM, Brian Grant<EMAIL_ADDRESS>wrote:
I'm fine with this being v1beta3 only. I want to finalize v1beta3 and flip to it as the default asap.
Looking at the json, I see why you changed "spec" to "template". My main concern is whether we might add status in the future, such as to publish the last time the template was used to create a pod.
—
Reply to this email directly or view it on GitHub.

@smarterclayton You're logic is reasonable. I don't really want to bikeshed on this particular topic. Let's go with template.

Is this PR active? If not please close it according to https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/devel/pull-requests.md

Yes

On Apr 8, 2015, at 12:54 PM, Piotr Szczesniak<EMAIL_ADDRESS>wrote:
Is this PR active? If not please close it according to https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/devel/pull-requests.md
—
Reply to this email directly or view it on GitHub.

Rebased and ready to use.

Ready for review

Cool, thanks. Will take a look.
You're getting a gendocs failure due to the addition of a new noun.

/subscribe

Looks pretty good. Found only one minor problem.
The next steps are to expose a subresource for creating pods from the template, and then to use that in the replication controller?

Yes
----- Original Message -----

Looks pretty good. Found only one minor problem.
The next steps are to expose a subresource for creating pods from the
template, and then to use that in the replication controller?

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012#issuecomment-94946502

Comments addressed.

Please regenerate the kubectl docs.

LGTM. Waiting for Travis.

# github.com/GoogleCloudPlatform/kubernetes/pkg/registry/controller/etcd
_output/local/go/src/github.com/GoogleCloudPlatform/kubernetes/pkg/registry/controller/etcd/etcd_test.go:78: unknown api.PodTemplate field 'Spec' in struct literal
FAIL	github.com/GoogleCloudPlatform/kubernetes/pkg/registry/controller/etcd [build failed]

Weird.

Rerunning Travis. I have no idea what happened. Looks like Template to me.

Hmm. Still fails.

https://github.com/GoogleCloudPlatform/kubernetes/blob/1a2e4f8e1d35b38fde55414a3c61347f5894a24f/pkg/registry/controller/etcd/etcd_test.go#L63

Fixed, merge changes coming in.
----- Original Message -----

https://github.com/GoogleCloudPlatform/kubernetes/blob/1a2e4f8e1d35b38fde55414a3c61347f5894a24f/pkg/registry/controller/etcd/etcd_test.go#L63

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/pull/5012#issuecomment-95214735

Thanks. Tests passed, but needs to be rebased, apparently.

Rebased and travis is green


FR: Config File

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
Other
🔖 Feature description
I work a lot with configuration as code and was surprised to see that this (amazing) tool was missing it.
I'd like to see a yaml file that users can either mount to the container on run time, or users can upload in the UI to configure stuff like authentication, reverse proxies etc etc
✔ Solution
Below is a rough draft of what a monitor and group could look like
group:
  - name: "External Services"
    heartBeatInterval: 60
    retries: 1
    advanced:
      upsideDown: true
    tags:
      - test
      - test1
monitor:
  - name: "breadNET"
    group: "External Services"
    description: -|
      breadNEt External site
    type: http
    url: "https://breadnet.co.uk"
    heartBeatInternal: 20
    advanced:
      certExpiryNotification: true
      upsideDown: true

❓ Alternatives
Nothing, I am happy to use this as is, but would be nice to configure this through helm charts, or as code
📝 Additional Context
Keep doing what you're doing, this is awesome!

Hi, I'm a bot. I'm here to help you to find similar issues: #3455 #1354

I think this is a duplicate of https://github.com/louislam/uptime-kuma/issues/1354
If you agree, could you please close this Issue, as duplicates only create immortal zombies and are really hard to issue-manage?
If not, what makes this issue unique enough to require an additional issue? (Could this be integrated into the issue linked above?) ^^

I would also like to have this feature. So to completly configure UK via Code (IaC).
If there's interest, I can fill a PR

Also duplicate of #270
@hypery2k Thanks, but it is really too hard to be implemented already in the current design. It is not not worth to spend time on it, so please don't make this pr.
Please wait for an API or you can directly utilize the SQLite database instead.
I would also suggest gatus which is a great monitoring tools that you can define everything in yaml.


Body not waking up with applyForce

Working with a generic test world (made by following the Basic Usage guide on the home page).
I create a circle body and spawn it near the ground with no initial velocity, and I change the ground to have zero restitution.
I then use applyForce on the body after it has come to a rest and it refuses to move, I also use body.sleep() to check its sleep state and it is returning true (asleep).
	$(document).on('movement.x', function(e, speed) {
		console.log('applying force')
		circle.applyForce({x:speed,y:0}) //the force in this example is 0.02
		console.log(circle.sleep()) //returns true
	})

So it seems like applyForce() doesn't wake up bodies.

:+1: for what moomhanor said, especially on the documentation side.

I've just added it to the wiki:
https://github.com/wellcaffeinated/PhysicsJS/wiki/Bodies#properties

Oh, nice, we can also just disable sleep on the world, via sleepDisabled: false on the world initialization object:
http://wellcaffeinated.net/PhysicsJS/docs/#Physics-world-new

Actually you'd need true to disable sleep, but yes :)
On Sat Jan 31 2015 at 10:04:24 PM Alex Notov<EMAIL_ADDRESS>wrote:

Oh, nice, we can also just disable sleep on the world, via sleepDisabled:
false on the world initialization object:
http://wellcaffeinated.net/PhysicsJS/docs/#Physics-world-new
—
Reply to this email directly or view it on GitHub
https://github.com/wellcaffeinated/PhysicsJS/issues/137#issuecomment-72348967
.

 D'oh.


Update the spaces for complete type hinting

A lot of the spaces in Gymnasium have partial type hints, are missing type hints or have incorrect type hints
This PR fixes and adds a number of type hints in Spaces using the np.NDArray type hints that allows the dtype of a numpy array to be specified.
The aim of this PR is to enable the GeneralTypeHint in pyright for future PRs

This waiting for the python 3.6 PR to be merged


Http3 redirects

Initial use case --> likely will be easier + quicker than fixing a link on the Cloudflare quic homepage
Additional use case --> Will be helpful if we do any content re-orgs in the future

Hf


Added support for background-origin: content-box, fixed background-origin related background sizes

Summary
This PR fixes/implements the following bugs/features

[ ] Bug: When using background-origin and background-size: cover/contain, the background size was not calculated correctly.
[ ] Feature: Added support for background-origin: content-box

Explain the motivation for making this change. What existing problem does the pull request solve?
Add support for background-origin: content-box and fix for problem related to background image size with background-origin set to padding-box or content-box and background-size set to cover/contain.
Test plan (required)
Added tests/reftests/background/origin.html.
Code formatting
Please make sure that code adheres to the project code formatting. Running npm run format will automatically format your code correctly.

Thanks for the PR! I fixed the test and refactored the code a bit.

Thanks for the great project and for merging the PR so quickly :)


Compilation issues with gnu compiler version 11.1

First: Thanks for Beast!
So we just move to the gnu compiler 11.1. And beast does not compile. (everything is fine up to 10.3)
The errors i get are:
/usr/include/boost/beast/websocket/impl/stream_impl.hpp: In instantiation of ‘boost::beast::websocket::stream< ,  >::impl_type::impl_type(Args&& ...) [with Args = {boost::asio::io_context&, boost::asio::ssl::context&}; NextLayer = boost::asio::ssl::stream<boost::asio::basic_stream_socketboost::asio::ip::tcp >; bool deflateSupported = true]’:
/usr/include/boost/smart_ptr/make_shared_object.hpp:256:5:   required from ‘typename boost::detail::sp_if_not_array::type boost::make_shared(Args&& ...) [with T = boost::beast::websocket::stream<boost::asio::ssl::stream<boost::asio::basic_stream_socketboost::asio::ip::tcp > >::impl_type; Args = {boost::asio::io_context&, boost::asio::ssl::context&}; typename boost::detail::sp_if_not_array::type = boost::shared_ptr<boost::beast::websocket::stream<boost::asio::ssl::stream<boost::asio::basic_stream_socketboost::asio::ip::tcp > >::impl_type>]’
/usr/include/boost/beast/websocket/impl/stream.hpp:54:42:   required from ‘boost::beast::websocket::stream< ,  >::stream(Args&& ...) [with Args = {boost::asio::io_context&, boost::asio::ssl::context&}; NextLayer = boost::asio::ssl::stream<boost::asio::basic_stream_socketboost::asio::ip::tcp >; bool deflateSupported = true]’
/home/daverio/Documents/silverboy/code/src/forwardsdata/book_keeper.cpp:40:81:   required from here
/usr/include/boost/beast/websocket/impl/stream_impl.hpp:135:45: error: ‘static boost::beast::websocket::stream_base::duration boost::beast::websocket::stream_base::none()’ is inaccessible within this context
135 |         timeout_opt.handshake_timeout = none();
|                                         ~~~~^~
In file included from /usr/include/boost/beast/websocket/stream.hpp:17,
from /usr/include/boost/beast/websocket.hpp:18,
from /home/daverio/Documents/silverboy/code/src/forwardsdata/book_keeper.hpp:9,
from /home/daverio/Documents/silverboy/code/src/forwardsdata/book_keeper.cpp:1:
/usr/include/boost/beast/websocket/stream_base.hpp:46:5: note: declared here
46 |     none() noexcept
Basically I got similar error (inaccessibility of none() define in /usr/include/boost/beast/websocket/stream_base.hpp:46)  everywhere its used.
Then also:
/usr/include/boost/beast/core/impl/basic_stream.hpp:138:9: error: ‘static boost::beast::detail::stream_base::time_point boost::beast::detail::stream_base::never()’ is inaccessible within this context
If someone have a clue how to solve it.. would be great!

Please kindly share the entire command line that is being used to compile this code.
Is there any way you can provide me with a minimal example on godbolt.org to demonstrate the issue?

For example:
https://godbolt.org/z/z8jT5zPdj

@daverio feel free to reopen with the compiler invocation.


Two new C-Codes

#Added Code of a queue using Dynamic memory allocation and Queue using two stacks.
I have added two New C-code to this repo and linking those in the Readme file in C folder.
Fixes # (issue)
Type of change

[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generates no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Thanks for the message on my last PR.
Please comment if anything needs to change, I will do it as soon as possible.


zeroad: fix build

Fails to build with GCC10, hence the downgrade.
Linking Collada
/nix/store/c1gipyfc161lm0fqfg65k4ak7yl2i17i-binutils-2.34/bin/ld: ../../../libraries/source/fcollada/lib/libFColladaSR.a(FAXInstanceExport.o): in function `FArchiveXML::WritePhysicsRigidBodyInstance(FCDObject*, _xmlNode*)':
FAXInstanceExport.cpp:(.text+0xc69): undefined reference to `_xmlNode* FArchiveXML::AddPhysicsParameter<FMVector3, 0>(_xmlNode*, char const*, FCDParameterAnimatableT<FMVector3, 0>&)'
/nix/store/c1gipyfc161lm0fqfg65k4ak7yl2i17i-binutils-2.34/bin/ld: FAXInstanceExport.cpp:(.text+0xc7f): undefined reference to `_xmlNode* FArchiveXML::AddPhysicsParameter<FMVector3, 0>(_xmlNode*, char const*, FCDParameterAnimatableT<FMVector3, 0>&)'
collect2: error: ld returned 1 exit status
make[1]: *** [Collada.make:98: ../../../binaries/system/libCollada.so] Error 1
make: *** [Makefile:173: Collada] Error 2
builder for '/nix/store/dj7i8mm4kjnbizni4hlgh3394979gc6s-0ad-0.0.23b.drv' failed with exit code 2

Also applies the patch from @zeri42 in https://github.com/NixOS/nixpkgs/issues/100256#issuecomment-707334267
Motivation for this change
Closes: #100256
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

See also  #108761, although this looks more concise.

See also  #108761, although this looks more concise.

I'm also still looking into an issue on Ryzen platforms, that upstreamed fixed just yesterday.
https://code.wildfiregames.com/D3165

I'm also still looking into an issue on Ryzen platforms, that upstreamed fixed just yesterday.
https://code.wildfiregames.com/D3165

Is this expected?
Known issues:
 - SpiderMonkey 38 is outdated and contains known security vulnerabilities.

Is this expected?
Known issues:
 - SpiderMonkey 38 is outdated and contains known security vulnerabilities.

Yep, kinda. I didn't test upgrading this.

Yep, kinda. I didn't test upgrading this.


rfbrowserinit fails in 18.8.1

Describe the bug
In version 18.8.1 rfbrowserinit fails with the following error:
Failed to download Chromium 129.0.6668.29 (playwright build v1134) caused by Download failure, code=1
at ChildProcess. (c:\Python312\Lib\site-packages\Browser\wrapper\node_modules\playwright-core\lib\server\registry\browserFetcher.js:91:16)
There is also a warning:
c:\Python312\Lib\site-packages\google\protobuf\runtime_version.py:122: UserWarning: Protobuf gencode version 5.27.2 is older then the runtime version 5.28.1 at playwright.proto. Please avoid checked-in Protobuf gencode that can be obsolete.
To Reproduce
Install version 18.8.1
run rfbrowserinit
Desktop:

OS: Windows 10 22h2

Additional context
Downgrading to 18.8.0 solves the issue.

The download is controlled by Playwright and we can’t fix it. Because we run Windows also in our CI, the binary should be there, have you retried the installation and see what it says?
The protobuf warning is Browser library problem and I did notice it too after the release. Need to see how it can be fixed.

@allcontributors please add @Houbein for bugs

I think this is caused by https://github.com/protocolbuffers/protobuf/issues/18096 and we need to wait for new release from protobuf.

We fixed it so, that we have now downgraded the protobuf version.


Fix installation in Windows

In the CMakeLists.txt I added an if statement to check if the operating system that is installing the project is Windows and if it is the flag BUILD_SHARED_LIBS is set to OFF.
CC @dariosortino

It would be great if in the long term we fixed BUILD_SHARED_LIBS=ON on Windows. In theory it should be sufficient to have https://github.com/ami-iit/biomechanical-analysis-framework/blob/7c4a70845d2ccad68de673d60a485f42352e4f8b/CMakeLists.txt#L49-L52, but probably something is not working as expected. Can we at least open an issue in which you copy&paste the problem with BUILD_SHARED_LIBS=ON?

Can we at least open an issue in which you copy&paste the problem with BUILD_SHARED_LIBS=ON?

Yes, we opened #37.

I rebased the branch and now the Windows CI is failing due to the ResolveRoboticsURICpp library.

I would close this PR and not merge it since we found a solution to install the examples on Windows (see https://github.com/ami-iit/biomechanical-analysis-framework/issues/37#issuecomment-2188190300).


Create an 'Ideal' market maker agent who can construct an entire order book

Currently we have two forms of market maker agent for order book creation, a 'Background' agent who blindly creates an entire exponential curve or an 'Ideal' agent who posts only a single limit order on either side of the market.
It would be useful to create an agent who combines the two, so is capable of maintaining an entire market themselves whilst still retaining some position sensitivity.
Exactly how to do this is TBC. Likely we want to do something whereby the depth specified by the 'Ideal' agent is taken to be the best bid/ask then the agent builds some exponential curve behind that.
This will be useful in conjunction with #118 for a new scenario.

Parametrised function which returns distance from mid based on position
Parametrised function which returns shape behind best bid/ask based on distance (and maybe position again)


Module 5 - Code Review

Module 5: Capturing User Behaviour
Code: https://github.com/DavidChristiansen/aws-modern-application-workshop/tree/feature/cdk-python/module-5

All of the same comments as in module 1 here are true in this module - 2 vs. 4 spaces, class names, lowercase properties and locals, readonly properties, Stack props, weird formatting multiple App files, etc.
Other than that, looks good.

Done, please re-open if you need more info from me.


Accept multiple types at one endpoint?

Is it possible to accept multiple types at the same endpoint and use the corresponding Resource? i.e. multiple STI variants all using the same controller rather than making a controller for each?

I've tried to do the same and indeed, this is not accepted.
Here's the returned error:
{
  "code" : "101",
  "detail" : "my-sti-resource is not a valid resource.",
  "status" : "400",
  "title" : "Invalid resource"
}

Since a GET on /my-endpoint returns different kind of resources based on their type attribute, I expected a POST to work as well.
@adambedford Have you found a workaround this ?
This might be a jsonapi spec limitation, but I could not find any ref to this.

@lgebhardt can you take a look at this? I can help on this but I need to know your decision about it.


Scan order on custom keys differs between String and chrono::DateTime ?

First of all: A huge thank you for providing native_db and native_model! So far it has been a fantastic embedded database for my personal project! :heart:
It seems to me that the sort order for scan().secondary().all() is different between String and chrono::DateTime? Initially I was under the impression that both primary and secondary index scans should yield keys in ascending order. However, this minimal example doesn't work the way I expected it. (Note that the entries are inserted with decreasing primary index u64 values.)
Cargo.toml
[package]
name = "native_db_chrono_test"
version = "0.1.0"
edition = "2021"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
#serde_json = "1.0.68"

native_db = { version = "0.7.1", features = ["chrono"] }
native_db_macro = "0.7.1"
native_model = "0.4.19"

chrono = { version = "0.4.38" , features = ["serde"] }

main.rs
use native_db::*;
use native_model::{native_model, Model};
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
#[native_db]
#[native_model(id = 1, version = 1)]
struct DataChrono {
    #[primary_key]
    id: u64,
    #[secondary_key]
    timestamp: chrono::DateTime<chrono::Local>,
}

impl DataChrono {
    fn new(id: u64) -> Self {
        Self { id, timestamp: chrono::Local::now() }
    }
}

#[derive(Debug, Serialize, Deserialize)]
#[native_db]
#[native_model(id = 2, version = 1)]
struct DataString {
    #[primary_key]
    id: u64,
    #[secondary_key]
    timestamp: String,
}

impl DataString {
    fn new(id: u64) -> Self {
        Self { id, timestamp: chrono::Local::now().to_rfc3339() }
    }
}

fn main() {
    let mut models = Models::new();
    models.define::<DataChrono>().unwrap();
    models.define::<DataString>().unwrap();

    let db = Builder::new().create_in_memory(&models).unwrap();

    let tx = db.rw_transaction().unwrap();
    for i in (0..10).rev() {
        tx.insert(DataChrono::new(i)).unwrap();
        tx.insert(DataString::new(i)).unwrap();
    }
    tx.commit().unwrap();

    let tx = db.r_transaction().unwrap();
    println!("DateTime as secondary key:\n==========================");
    for entry in tx.scan().secondary::<DataChrono>(DataChronoKey::timestamp).unwrap().all() {
        println!("{entry:?}");
    }
    println!("\nString as secondary key:\n========================");
    for entry in tx.scan().secondary::<DataString>(DataStringKey::timestamp).unwrap().all() {
        println!("{entry:?}");
    }
}

Output:
$ cargo run
   Compiling native_db_chrono_test v0.1.0 (/home/wsluser/workspaces/local/native_db_chrono_test)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.28s
     Running `target/debug/native_db_chrono_test`
DateTime as secondary key:
==========================
Ok(DataChrono { id: 0, timestamp: 2024-08-02T21:54:38.026388021+02:00 })
Ok(DataChrono { id: 1, timestamp: 2024-08-02T21:54:38.026338285+02:00 })
Ok(DataChrono { id: 2, timestamp: 2024-08-02T21:54:38.026290339+02:00 })
Ok(DataChrono { id: 3, timestamp: 2024-08-02T21:54:38.026242928+02:00 })
Ok(DataChrono { id: 4, timestamp: 2024-08-02T21:54:38.026196318+02:00 })
Ok(DataChrono { id: 5, timestamp: 2024-08-02T21:54:38.026149291+02:00 })
Ok(DataChrono { id: 6, timestamp: 2024-08-02T21:54:38.026104080+02:00 })
Ok(DataChrono { id: 7, timestamp: 2024-08-02T21:54:38.026058670+02:00 })
Ok(DataChrono { id: 8, timestamp: 2024-08-02T21:54:38.026005737+02:00 })
Ok(DataChrono { id: 9, timestamp: 2024-08-02T21:54:38.025755997+02:00 })

String as secondary key:
========================
Ok(DataString { id: 9, timestamp: "2024-08-02T21:54:38.025931735+02:00" })
Ok(DataString { id: 8, timestamp: "2024-08-02T21:54:38.026035696+02:00" })
Ok(DataString { id: 7, timestamp: "2024-08-02T21:54:38.026082222+02:00" })
Ok(DataString { id: 6, timestamp: "2024-08-02T21:54:38.026127051+02:00" })
Ok(DataString { id: 5, timestamp: "2024-08-02T21:54:38.026173730+02:00" })
Ok(DataString { id: 4, timestamp: "2024-08-02T21:54:38.026220179+02:00" })
Ok(DataString { id: 3, timestamp: "2024-08-02T21:54:38.026267193+02:00" })
Ok(DataString { id: 2, timestamp: "2024-08-02T21:54:38.026314768+02:00" })
Ok(DataString { id: 1, timestamp: "2024-08-02T21:54:38.026363817+02:00" })
Ok(DataString { id: 0, timestamp: "2024-08-02T21:54:38.026413559+02:00" })

Scanning a String secondary index (lower output) yields all entries in ascending lexicographical order as expected, i.e. the first inserted entry has the lowest timestamp and is therefore printed first.
Scanning a chrono::DateTime secondary index (upper output) yields the entries in a different order. DateTime seems to implement PartialOrd/Ord which had me confused. While in this demo the order is just reversed but seemingly deterministic, in a more complex program where I first encountered the unexpected ordering it looked more random.
Do you have any insights as to why chrono::DateTime secondary keys behave this way?
If this is expected behavior, please consider adding some documentation about index ordering.

@lbarnkow Thank you for pointing that out, this is an issue.
This is because the data of chrono::DateTime are stored in the database using the DateTime.timestamp function, which returns the UNIX standard:

Returns the number of non-leap seconds since January 1, 1970 0:00:00 UTC (aka “UNIX timestamp”).

This is a problem in your case because, as there is no wait time in your loop, the precision should be in nanoseconds. In your case, the data is inserted in the same second, so the order of insertion prevails.
Try to wait 1 second between each insert and you should have the good result.
...
for i in (0..10).rev() {
    std::thread::sleep(std::time::Duration::from_secs(1));
    tx.insert(DataChrono::new(i)).unwrap();
    tx.insert(DataString::new(i)).unwrap();
}
...

It might be necessary to change this by using DateTime.timestamp_nanos, but we should consider this carefully because it can panic. Thus, you should check how DateTime is actually stored in other databases.
Here is the code involved src/db_type/key/key.rs#L283.

@vincent-herlemont Thanks for pointing out the current implementation of ToKey for DateTime. I think I'll probably stick to String for now.
Unless you want to keep this issue open to track this as a defect I guess this can be closed now as there is no easy fix.

I think I'll probably stick to String for now.
👍

Unless you want to keep this issue open to track this as a defect I guess this can be closed now as there is no easy fix.

Hmm, I think you can leave it open. I will try to fix this as soon as possible, whether it's through documentation or implementation.

I was able to see in the following documentation:

PostgreSQL doc uses microseconds.
Oracle doc uses nanoseconds.
SQLite doc uses dynamic typing.
MongoDB doc uses microseconds.
SurrealDB doc uses nanoseconds (maybe the implementation in question /core/src/fnc/time.rs#L151)

It seems to me that storing in microseconds seems acceptable, but maybe nanoseconds too. I'm hesitant... @lbarnkow have you an opinion about that?
And also thinking about the migration.

First of: I have been learning Rust for maybe 2 years now and feel I have no real world experience as I only use it in personal projects not professionally. Keep that in mind when reading on. :smile:
I believe the built-in support for chrono (and uuid) is well intentioned (as other database offer native support for datetime/timestamp types), but maybe should not be part of the core crate? Having chrono::DateTime with nanosecond precision stored in the database but implicitly being keyed / indexed with any other precision is confusing to an end user, I think. If it were to stay this way, we would need documentation explicitly calling out this behavior or at least a comment in the custom-type test for chrono, from which I originally took inspiration.
For my own project I wrote a wrapper struct around chrono::DateTime implementing From<chrono::DateTime> and Deref, so it's easy to convert any chrono::DateTime<Tz> to my wrapper with .into() and still have all chrono::DateTime methods available. Using your ToKey implementation as base I opted to conserve the full nanosecond precision as the limited value range is more than sufficient for my app. See https://gist.github.com/lbarnkow/1d556cffbd1318e8df1a82be6d67fb06.
Maybe in the future you could provide an additional crate native_db_chrono that offers two such wrapper types? One that offers nano second precision as seen in my gist with the caveat of a panic if the value is out of the value range that timestamp_nanos_opt supports (1677-09-21T00:12:43.145224192 and 2262-04-11T23:47:16.854775807). And another wrapper that offers microsecond precision which (judging by the chrono docs) should support the full range ("Date types are limited to about +/- 262,000 years from the common epoch."). Then native_db could deprecate the chrono feature and force users to update their models to one of the wrappers doing proper model versioning and migrations?

@lbarnkow Thank you for your advice and feedback, it's valuable!
Indeed, leave users to use their own UUID and chrono wrappers would indeed be a good idea, and thus document how to implement them with ToKey.


Frontend base setup

setup frontend base of djangoindia.org website, dont include any components/media/pages etc, just add configs and basic project files.
Everything will be inside a folder named "frontend" in the root directory.

Resolve in 64596d85abccabceebeff8bfa061673231219cb4 .


Use elastic search as storage for Jaeger

Adding stateful set for elastic search service that will be used in jaeger service as a storage type.
For elastic search the memory is set to 10G to start with, incase required we can increase.
To clean the old trace, spans there is jaeger-es-index-cleaner which is setup as a cron job, the single run just cleans once so we need to run every day. It is schedule to run ever day start. Traces that are older than 3 days are cleared for now.
[ch14462]

@arramos84 Please take a look at the elastic stateful set, we have already elastic service running in dev. To keep it separate from the current one have a dedicated elastic search for jaeger.
I have re-used some of the setting suggesting in the elastic K8s setup.


The behaviour of import-deleting extensions

Import fail will be shown when a package of extensions is imported and the existing extension in the server is not included in the new aix file.
To ask for permission instead of failing it would be better, since sometimes this kind of operations are intentional.

How about the following: Let D be the set of of extensions not present in the new version but present in the old. If none of the extensions in D is instantiated in the project, accept the new version. If at least one extension in D is instantiated in the project, prompt to ask what the developer prefers to do.

Yes that would be more specific than asking all the time


Support setting a specific container name for container resources in AppHost projects

DCP supports setting the preferred container name but we don't expose an API in Aspire.Hosting to allow the user to customize the container name. The container name is set to a derivative of the resource name but users should be able to customize this. We need to consider what the behavior should be if a container with the requested name already exists:

Should it fail?
Should it append a suffix descriminator?
If the registry, image, and tag match, should it just use the existing container? What about binds/volumes/args? Should this be opt-in perhaps? Punt for later consideration along with support for container lifetime?

Example API:
var builder = DistributedApplication.CreateBuilder();

builder.AddContainer("mything") // <-- Name here is used as resource name and container name by default
    .WithContainerName("containerthing"); // <-- This overrides container name to what's specified

I think it should fail. This is a power user feature and we should pass through to the docker API and let it fail however it fails if the name is invalid or if there's a duplicate.

Sounds like this can be closed as presumably sail is the the existing behavior?

No, this should be moved to future/backlog.


Missing LICENSE files and invalid package.json

The workspaces in the libraries directory are missing LICENSE files (e.g. here). Although it's strictly not necessary as there is one at the root of the repo, it would make it clearer for users to have the LICENSE file alongside the package.json. This is fairly common practice (e.g. https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/2864)

The package.json files for the packages in the libraries directory have version which don't match the tags of the code, or the root level package.json. (See package.json where the version is the file is 4.1.6, the tag of the code is 4.11.0. I understand that you are using lerna to manage versions, but I would suggest making sure the version listed in the code at the tag agrees with whatever lerna uses (even if the workspace package.json doesn't have a version - it's better for it not be wrong). This would make it less confusing for those new to your project to understand!

Thanks for reporting, @j-buckland! I've added the issue to our backlog.

Thanks for reporting, @j-buckland! I've added the issue to our backlog.

@mrivera-ms in progress


[1.14] Author backport of #28928 (Dns proxy use original source address and port) #29239

[ ] #29239 (@jrajahalme)

Once this PR is merged, a GitHub action will update the labels of these PRs:
 29239

/test

/test-backport-1.14

/test-backport-1.14

/test-backport-1.14

@jrajahalme can you find additional reviewers outside of tophat for this please?

/test-backport-1.14

/test-backport-1.14

/test-backport-1.14

/test-backport-1.14

Upstream PR hasn't been merged, converting this to a draft.

Superceded by #30213


Feature-Request: Query/Mutation Hook Support

Preamble
Although probably mostly also applicable to EdgeQL, I talk mostly from a GraphQL point-of-view. My goal is to offer my frontend-devs the best experience they could possible get, by providing a complete, fully typed and single-endpoint endpoint API to all of our backend services.
Motivation
Modern web-apps are often dynamic in nature. You don't use only one database to get your data, but in fact multiple datasources (redis, azure, aws3, custom services, ...) are queried.
Also, mutations often have side-effects: When deleting the database entry that represents my image, I also want to delete the actual binary data from azure blob storage. Furthermore, I want to update certain statistics that are store somewhere else in my schema.
These requirements of modern web-apps can be solved by making use of both query- and mutation-hooks. These hooks could be implemented through web-hooks where the EdgeDB server sends (and receives) data to another webservice (either provided by EdgeDB itself or by a custom service, implemented by the user).
Q: Why webhooks?
A: They are easy to intergrate, and more importantly they make no assumptions on what programming language you want to use.
Query-Hooks
Sometimes you want to return fields to the user, which come from external sources.
Example:
type Image {
    id: ID!
    filename: String!
    url: String!
}

When querying the database for an image, my web-app needs the binary data of the actual image. It would be bad-practice to force clients to figure out for themselves where and how to get that binary data.
Instead, the EdgeDB server could ask a service provided by the user (again; in a language of their choice) to resolve that field.
The service, would either resolve it return an error. In the latter case, the error is propagated to the client.
Mutation Hooks
These hooks will trigger on insert/update/delete. They should also be able to modify/extend the users intentions by returning data to EdgeDB
Following hooks will be needed to cover the mutation side of things:
1. Pre- Insert/Update/Delete Hooks
These hooks need to be called before data is added/updated/deleted. Use-cases are:

input-validation
strict ordering of events (first the image binary data needs to be uploaded; afterwards the image entity is put into the database)
any other business logic
...

2. Post- Insert/Update/Delete Hooks
These hooks need to be called after data is inserted/updated/deleted successfully. Use-cases are:

update statistics on other schema types
creation/deletion of other types
deletion of external data (e.g. delete binary blob from azure)
....

Conclusion
Web-Hooks for Query/Mutations will bring the capabilities of EdgeDB on a complete new level by allowing to integrate with any existing backend service.
I hope I haven't forgot anything. Maybe @amaster507 has something to add.
For reference: @tailhook

Hi @maaft. We're contemplating an idea of using wasm to let users define their own HTTP endpoints and functions that would be callable from EdgeQL/GraphQL. That would address Query Hooks. Still early into the research, so thank you for providing a use case.
As for the insert/update/delete hooks we have an idea for a declarative data mutation API builder. That will cover input validation.
Both wasm and the API builder are very early ideas though.

Mutation Hooks

This will also be partially addressed by query rewrite policies, specifically the after commit mode.

I think we need to convert this into a Discussion to be able to have a proper threaded discussion, since it's a complex topic.


Check and test that ForestClassifier and ForestRegressor can be serialized

They can't, since jitclass cannot be serialized


Fix Auto generated config

Fixes #108

@gastaldi i compared it to Mailpit that is working is this something that changed?  do I need to update all my extensions for this pattern?

@melloware this is required when you bump to Quarkus 3.14+: https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.14#publishing-the-config-documentation

Excellent i will update mine for that and also to do your Split Release Workflow trick!

I'll be sending PRs for the Split Release, as requested in https://github.com/quarkiverse/quarkiverse-devops/issues/275

Oh you rock!!!


Fix visibility of org avatars

Views org avatars again.
Fixes #17778

Codecov Report

Merging #17789 (291f09d) into main (429ef43) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main   #17789      +/-   ##
==========================================
+ Coverage   45.55%   45.57%   +0.01%
==========================================
  Files         808      808
  Lines       89982    89986       +4
==========================================
+ Hits        40989    41007      +18
+ Misses      42447    42430      -17
- Partials     6546     6549       +3

Impacted Files
Coverage Δ

modules/templates/helper.go
50.25% <100.00%> (+0.17%)
:arrow_up:

modules/log/event.go
60.64% <0.00%> (-1.86%)
:arrow_down:

services/pull/pull.go
41.78% <0.00%> (-0.41%)
:arrow_down:

models/issue_comment.go
52.97% <0.00%> (-0.29%)
:arrow_down:

modules/queue/queue_bytefifo.go
63.47% <0.00%> (+4.19%)
:arrow_up:

models/gpg_key_common.go
64.51% <0.00%> (+4.83%)
:arrow_up:

modules/queue/workerpool.go
53.05% <0.00%> (+4.96%)
:arrow_up:

Continue to review full report at Codecov.

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

I think it's better
switch t := item.(type) {
case *models.Organization:
default:
}

@Gusted done.


[Feat]: scroll to top button

Feature Description
clicking the top to scroll button takes user to top of the page
Provide a detailed description of the feature
.
Put here any screenshots or videos (optional)
No response
By submitting this issue, you agree to

[X] I agree to follow this project's Code of Conduct
[X] I’ve read all the issues in the issue section, and this feature has not been proposed yet.

Other Information

[X] I'm a GSSoC '24 Extended contributor
[X] I'm a Hacktoberfest '24 contributor
[X] I am willing to work on this feature (optional)

@maniyaom please assign me this issue and assign the labels level 3, gssoc-extd please


HDFS-17529. Improve router state store cache entry deletion

Description of PR
Current implementation for router state store update is quite inefficient, so much that when routers are removed and a lot of NameNodeMembership records are deleted in a short burst, the deletions triggered a router safemode in our cluster and caused a lot of troubles.
This ticket contains 2 parts: improving the deletion process for ZK state store implementation, and allowing the overwrite part and delete part of org.apache.hadoop.hdfs.server.federation.store.CachedRecordStore#overrideExpiredRecords to run in parallel.
How was this patch tested?
UT
For code changes:

[x] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 31s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+0 :ok:
xmllint
0m  0s

xmllint was not available.

+0 :ok:
markdownlint
0m  0s

markdownlint was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
44m 32s

trunk passed

+1 :green_heart:
compile
0m 41s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
compile
0m 37s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
checkstyle
0m 32s

trunk passed

+1 :green_heart:
mvnsite
0m 45s

trunk passed

+1 :green_heart:
javadoc
0m 45s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javadoc
0m 34s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
1m 25s

trunk passed

+1 :green_heart:
shadedclient
33m 54s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 32s

the patch passed

+1 :green_heart:
compile
0m 32s

the patch passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javac
0m 32s

the patch passed

+1 :green_heart:
compile
0m 30s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
javac
0m 30s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 20s

the patch passed

+1 :green_heart:
mvnsite
0m 33s

the patch passed

+1 :green_heart:
javadoc
0m 30s

the patch passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javadoc
0m 25s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
1m 20s

the patch passed

+1 :green_heart:
shadedclient
33m 28s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

-1 :x:
unit
30m  5s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt
hadoop-hdfs-rbf in the patch passed.

+1 :green_heart:
asflicense
0m 40s

The patch does not generate ASF License warnings.

158m 32s

Reason
Tests

Failed junit tests
hadoop.hdfs.server.federation.router.security.token.TestSQLDelegationTokenSecretManagerImpl

hadoop.hdfs.server.federation.store.driver.TestStateStoreMySQL

Subsystem
Report/Notes

Docker
ClientAPI=1.45 ServerAPI=1.45 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/6833

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint

uname
Linux 1ff0867a1e1e 5.15.0-106-generic #116-Ubuntu SMP Wed Apr 17 09:17:56 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / ea4e518423a537eced42b86222955195aea361f6

Default Java
Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/1/testReport/

Max. process+thread count
3869 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

The failed unit tests really look like they were related to the changes but they aren't. Both tests fail without the patch, and seem to have failed for some past MRs already.

@ZanderXu Can you help me take a look when you're free, thanks!

@ZanderXu Thanks for the review, I have updated the codes + changed the ticket/PR title for the deletion part only, will open another PR for the async part later. I'm a bit confused about point 3, can you elaborate a bit on that part?

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
17m 31s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+0 :ok:
xmllint
0m  0s

xmllint was not available.

+0 :ok:
markdownlint
0m  0s

markdownlint was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
50m  0s

trunk passed

+1 :green_heart:
compile
0m 41s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
compile
0m 36s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
checkstyle
0m 29s

trunk passed

+1 :green_heart:
mvnsite
0m 41s

trunk passed

+1 :green_heart:
javadoc
0m 42s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javadoc
0m 30s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
1m 19s

trunk passed

+1 :green_heart:
shadedclient
41m 29s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

-1 :x:
mvninstall
0m 28s
/patch-mvninstall-hadoop-hdfs-project_hadoop-hdfs-rbf.txt
hadoop-hdfs-rbf in the patch failed.

-1 :x:
compile
0m 32s
/patch-compile-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkUbuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.txt
hadoop-hdfs-rbf in the patch failed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.

-1 :x:
javac
0m 32s
/patch-compile-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkUbuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.txt
hadoop-hdfs-rbf in the patch failed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.

-1 :x:
compile
0m 28s
/patch-compile-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkPrivateBuild-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06.txt
hadoop-hdfs-rbf in the patch failed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06.

-1 :x:
javac
0m 28s
/patch-compile-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkPrivateBuild-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06.txt
hadoop-hdfs-rbf in the patch failed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06.

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 18s

the patch passed

-1 :x:
mvnsite
0m 29s
/patch-mvnsite-hadoop-hdfs-project_hadoop-hdfs-rbf.txt
hadoop-hdfs-rbf in the patch failed.

-1 :x:
javadoc
0m 28s
/patch-javadoc-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkUbuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.txt
hadoop-hdfs-rbf in the patch failed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.

+1 :green_heart:
javadoc
0m 23s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

-1 :x:
spotbugs
0m 28s
/patch-spotbugs-hadoop-hdfs-project_hadoop-hdfs-rbf.txt
hadoop-hdfs-rbf in the patch failed.

+1 :green_heart:
shadedclient
41m 15s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

-1 :x:
unit
0m 32s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt
hadoop-hdfs-rbf in the patch failed.

+1 :green_heart:
asflicense
0m 35s

The patch does not generate ASF License warnings.

162m 45s

Subsystem
Report/Notes

Docker
ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/6833

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint

uname
Linux a2edf68c373e 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 08b297b0556c662324e649f795453fd8a63b652c

Default Java
Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/2/testReport/

Max. process+thread count
613 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/2/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 46s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+0 :ok:
xmllint
0m  0s

xmllint was not available.

+0 :ok:
markdownlint
0m  0s

markdownlint was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
49m 34s

trunk passed

+1 :green_heart:
compile
0m 41s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
compile
0m 36s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
checkstyle
0m 30s

trunk passed

+1 :green_heart:
mvnsite
0m 41s

trunk passed

+1 :green_heart:
javadoc
0m 43s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javadoc
0m 31s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
1m 22s

trunk passed

+1 :green_heart:
shadedclient
39m  4s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 32s

the patch passed

+1 :green_heart:
compile
0m 32s

the patch passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javac
0m 32s

the patch passed

+1 :green_heart:
compile
0m 28s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
javac
0m 28s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 18s

the patch passed

+1 :green_heart:
mvnsite
0m 32s

the patch passed

-1 :x:
javadoc
0m 28s
/patch-javadoc-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkUbuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.txt
hadoop-hdfs-rbf in the patch failed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.

+1 :green_heart:
javadoc
0m 23s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
1m 20s

the patch passed

+1 :green_heart:
shadedclient
39m  1s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
33m 38s

hadoop-hdfs-rbf in the patch passed.

+1 :green_heart:
asflicense
0m 36s

The patch does not generate ASF License warnings.

177m 29s

Subsystem
Report/Notes

Docker
ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/3/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/6833

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint

uname
Linux 1ecfff136614 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 00bca37b88cdf179a429030c4b53fc2c69e2ef54

Default Java
Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/3/testReport/

Max. process+thread count
4047 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/3/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 46s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+0 :ok:
detsecrets
0m  1s

detect-secrets was not available.

+0 :ok:
xmllint
0m  1s

xmllint was not available.

+0 :ok:
markdownlint
0m  1s

markdownlint was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
49m 18s

trunk passed

+1 :green_heart:
compile
0m 41s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
compile
0m 36s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
checkstyle
0m 30s

trunk passed

+1 :green_heart:
mvnsite
0m 40s

trunk passed

+1 :green_heart:
javadoc
0m 41s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javadoc
0m 29s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
1m 20s

trunk passed

+1 :green_heart:
shadedclient
38m 43s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 30s

the patch passed

+1 :green_heart:
compile
0m 33s

the patch passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javac
0m 33s

the patch passed

+1 :green_heart:
compile
0m 29s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
javac
0m 29s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 18s

the patch passed

+1 :green_heart:
mvnsite
0m 31s

the patch passed

-1 :x:
javadoc
0m 29s
/patch-javadoc-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkUbuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.txt
hadoop-hdfs-rbf in the patch failed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1.

+1 :green_heart:
javadoc
0m 23s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
1m 20s

the patch passed

+1 :green_heart:
shadedclient
38m 52s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
33m  8s

hadoop-hdfs-rbf in the patch passed.

+1 :green_heart:
asflicense
0m 36s

The patch does not generate ASF License warnings.

176m 18s

Subsystem
Report/Notes

Docker
ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/4/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/6833

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint

uname
Linux db3ba1bfe5a3 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 35b9915a7d90f0d824fb584c28f0b4885000130e

Default Java
Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/4/testReport/

Max. process+thread count
3505 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/4/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 46s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+0 :ok:
detsecrets
0m  1s

detect-secrets was not available.

+0 :ok:
xmllint
0m  1s

xmllint was not available.

+0 :ok:
markdownlint
0m  1s

markdownlint was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
49m 44s

trunk passed

+1 :green_heart:
compile
0m 40s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
compile
0m 36s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
checkstyle
0m 28s

trunk passed

+1 :green_heart:
mvnsite
0m 41s

trunk passed

+1 :green_heart:
javadoc
0m 42s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javadoc
0m 30s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
1m 21s

trunk passed

+1 :green_heart:
shadedclient
40m 23s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 35s

the patch passed

+1 :green_heart:
compile
0m 37s

the patch passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javac
0m 37s

the patch passed

+1 :green_heart:
compile
0m 31s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
javac
0m 31s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 20s

the patch passed

+1 :green_heart:
mvnsite
0m 34s

the patch passed

+1 :green_heart:
javadoc
0m 32s

the patch passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javadoc
0m 25s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
1m 34s

the patch passed

+1 :green_heart:
shadedclient
39m 47s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
32m 56s

hadoop-hdfs-rbf in the patch passed.

+1 :green_heart:
asflicense
0m 36s

The patch does not generate ASF License warnings.

179m 28s

Subsystem
Report/Notes

Docker
ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/6/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/6833

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint

uname
Linux 1be2770da36d 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 2b7aeaa91aa57e5b26bced05e23c81d21adfe1da

Default Java
Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/6/testReport/

Max. process+thread count
3751 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6833/6/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Merged. Thanks @kokonguyen191 for your contribution.


Cannot solve cmdstan=2.33.1=hc24a2e5_0 (linux) from osx-arm64

Hello, I'm trying to emulate CONDA_OVERRIDE_GLIBC=2.17 conda install -n test cmdstan=2.33.1=hc24a2e5_0 --subdir linux-64 with rattler and the solver doesn't seem to be able to resolve. I'm not too sure what's going on here.
>>> import asyncio
>>> import rattler
>>> virtual_packages = [
...     rattler.GenericVirtualPackage(rattler.PackageName("__glibc"), rattler.Version("2.17"), "0"),
...     rattler.GenericVirtualPackage(rattler.PackageName("__archspec"), rattler.Version("1"), "x86_64"),
...     rattler.GenericVirtualPackage(rattler.PackageName("__unix"), rattler.Version("0"), "0"),
...     rattler.GenericVirtualPackage(rattler.PackageName("__linux"), rattler.Version("0"), "0"),
... ]
>>> asyncio.run(rattler.solve([rattler.Channel("main")], ["cmdstan=2.33.1=hc24a2e5_0"], platforms=["linux-64", "noarch"], virtual_packages=virtual_packages))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/jcmorin/miniconda/envs/test/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/Users/jcmorin/miniconda/envs/test/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/jcmorin/miniconda/envs/test/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/Users/jcmorin/miniconda/envs/test/lib/python3.12/site-packages/rattler/solver/solver.py", line 81, in solve
    for solved_package in await py_solve(
                          ^^^^^^^^^^^^^^^
exceptions.SolverException: Cannot solve the request because of: cmdstan ==2.33.1 hc24a2e5_0 cannot be installed because there are no viable options:
└─ cmdstan 2.33.1 would require
   └─ gxx_linux-64 11.2.0.*, which cannot be installed because there are no viable options:
      └─ gxx_linux-64 11.2.0 would require
         └─ binutils_linux-64 ==2.38.0 hc2dff05_0, which cannot be installed because there are no viable options:
            └─ binutils_linux-64 2.38.0 would require
               └─ binutils_impl_linux-64 2.38.0.*, for which no candidates were found.

Am I doing something wrong or am I missing something?
Thanks!

Just did a little test, and this line also fails:
asyncio.run(rattler.solve([rattler.Channel("main")], ["binutils_impl_linux-64=2.38.0.*"], platforms=["linux-64", "noarch"], virtual_packages=virtual_packages))

I'll do some more testing.

So it seems like you might have found a bug 🎉 ! - micromamba (and probably conda?) do select 2.38 when asking for 2.38.0 which makes sense.
We should fix that in rattler.
Thanks!

Thanks for the thorough tests!
I think I have a fix for this in #686

I'm having a similar problem with pytorch, more precisely

pytorch=2.2.0=cpu_py38hdc00b08_0
pytorch=2.2.0=cpu_py312hb9e5694_0
pytorch=2.2.0=cpu_py310hdc00b08_0
pytorch=2.2.0=cpu_py311h6d93b4c_0
pytorch=2.2.0=cpu_py39hdc00b08_0

where I get
Failed to resolve pytorch=2.2.0=cpu_py38hdc00b08_0 (0.0691 secs): Cannot solve the request because of: pytorch ==2.2.0 cpu_py38hdc00b08_0 cannot be installed because there are no viable options:
└─ pytorch 2.2.0 would require
   └─ mkl 2023.* .*, for which no candidates were found.

Could this be the same problem?

For the MKL issue I found the line. It says: mkl 2023.*.* in the dependencies.
I think that's not really valid - if you would want to express the constraint like that, IMO it should be a regex.
Maybe we should strip everything after the first starts_with operator.

Excerpt from the repodata.

Yeah I think its actually still a bug. It looks like mkl 2023.*.* is parsed as mkl[version="2023.*", build=".*"]. I think it should become mkl[version="2023.*"].

https://github.com/mamba-org/rattler/pull/688 should fix the issue with mkl

cargo run -- create --dry-run --platform linux-64 pytorch=2.2.0=cpu_py38hdc00b08_0 -c main --virtual-package __glibc=2.17=0 --virtual-package __archspec=1=x86_64 --virtual-package __unix=0=0 --virtual-package __linux=0=0

Shows that this is indeed solvable with #688

Thank you for the fixes!

You're welcome, I appreciate the thorough tests! I just set in motion the release of py-rattler 0.6.1 which should include these fixes.


amount: break apart into object

PayGate Version: v0.9.0-dev
@joshsadler brought up that developers using PayGate would have an easier time by not needing to concat/parse our amount modeling. (USD 12.04) This is cumbersome and requires callers to understand that logic.
Instead a model like this would be easier to use.
{
  "amount": {
    "value": "12.04",
    "currency": "USD"
  }
}

@adamdecaf this is much easier to use. Any particular reason to favor a string for value rather than a number?

Floating point can mess with amounts and cause off-by-$0.01 errors. Various programming languages treat floats differently and JS is especially bad about it.
Internally we compute amounts as ints and in their value in cents. No floating point is used internally.
https://modernweb.com/what-every-javascript-developer-should-know-about-floating-points/

Another option is to use plain integers to represent a currency. If you make $1.01 into 101¢ and perform all your calculations on cent integers you will never run into these floating-point approximation issues, as you are no longer performing approximations.
From Stripe:
_All API requests expect amounts to be provided in a currency’s smallest unit. For example, to charge 10 USD, provide an amount value of 1000 (i.e., 1000 cents).
For zero-decimal currencies, still provide amounts as an integer but without multiplying by 100. For example, to charge ¥500, provide an amount value of 500._
Stripe golang SDK uses int64
https://github.com/stripe/stripe-go/blob/master/balance.go#L23
Interesting how go-money creates a similar structure in int64
https://github.com/Rhymond/go-money/blob/master/money.go#L42

Given the prior art @wadearnold posted, that sounds like a solid approach. Looks to be safely handle-able in many programming languages. I'm on board 👍

We can expose value as an integer - internally our Amount type has always computed off integers. We are splitting at the decimal to avoid floating point errors.