-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sort envs returned by REST API by current build's scheduled_on time #881
Sort envs returned by REST API by current build's scheduled_on time #881
Conversation
✅ Deploy Preview for conda-store canceled.
|
7a9b540
to
0d57b2b
Compare
871e0e3
to
0442238
Compare
After a discussion, it seems like no matter how we solve this there's going to be a breaking change to the API. Cursor-based pagination will allow for any sorting order, so I'll look into implementing that, probably through |
Adding pagination via |
9e55051
to
847eed4
Compare
Hot reloading's done, but the |
7b5a0bc
to
dd5a139
Compare
9c14e99
to
466ac3b
Compare
2edfff6
to
9c21efa
Compare
9c21efa
to
43c63c2
Compare
b673196
to
54f7907
Compare
ee054f0
to
2c88c59
Compare
664d122
to
63db9d0
Compare
63db9d0
to
d5a8846
Compare
Not sure if this is actually ready to be merged, as it is not currently compatible with the frontend, and a discussion about REST API versioning needs to be had before this approach can be merged. But otherwise, tests are passing and the implementation is I think mostly complete :) @soapy1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good! Thank you for adding such beautiful formatted and thorough docs to a lot of these functions 🤩
Just a few things to sort out.
I took notes on what I tested manually in this gist https://gist.github.com/soapy1/beae935f78725cfd1dd0897c1ce016d4
conda-store-server/conda_store_server/_internal/server/views/api.py
Outdated
Show resolved
Hide resolved
conda-store-server/conda_store_server/_internal/server/views/pagination.py
Outdated
Show resolved
Hide resolved
conda-store-server/conda_store_server/_internal/server/views/api.py
Outdated
Show resolved
Hide resolved
conda-store-server/conda_store_server/_internal/server/views/api.py
Outdated
Show resolved
Hide resolved
One more question (related to how we want to approach versioning for this change): how do we want to approach pagination for the rest of the api? Do we want all the other endpoints to also adopt this type of pagination? |
I vote yes - as far as I can tell the advantages of limit/offset are that it's easy to implement, but the cost of it is exactly what is described in #859. Cursor based pagination addresses that. |
f4c3e6f
to
8178520
Compare
8178520
to
38a03c3
Compare
The cursor-based pagination is now on |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Just 2 small changes suggested
conda-store-server/conda_store_server/_internal/server/views/api.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great 📃
Fixes #859.
Description
This PR sorts environments returned when a GET is sent to
/environment/
by the time the environments' current builds were submitted. In systems where users are creating environments while environments are being queried, this ensures that all results are returned; other sorting methods (e.g. by name) can yield incomplete results.Pull request checklist