-
Notifications
You must be signed in to change notification settings - Fork 27
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
✨ catalog: adds services compatibility policy 🗃️ #6071
✨ catalog: adds services compatibility policy 🗃️ #6071
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #6071 +/- ##
=========================================
+ Coverage 84.5% 88.0% +3.4%
=========================================
Files 10 1267 +1257
Lines 214 53376 +53162
Branches 25 732 +707
=========================================
+ Hits 181 46983 +46802
- Misses 23 6230 +6207
- Partials 10 163 +153
Flags with carried forward coverage won't be shown. Click here to find out more.
|
fff2aee
to
cf753ab
Compare
fa9c49a
to
6ff7203
Compare
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.
I've seen it working, nice 👌
Very very good. Thank you. One thing that comes to mind (but in the case of sim4life it might anyhow not work) Can you deduce the inverse dependency chain? i.e. can the frontend deduce how to downgrade from one version to another across different keys? |
@mguidon @odeimaiz the reverse operation is one-to-many. A way forward would be that when a service is upgraded, we keep the changes history (similar to do/undo functionatliy). Perhaps a service in a project could keep that in a special entry. |
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.
Very cool! Thanks a lot for the effort
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.
Please consider my two comments.
packages/models-library/src/models_library/api_schemas_catalog/services.py
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.
Cool, thanks!
What do these changes do?
Uses version specifiers clauses (e.g.
~=0.9, >=1.0, !=1.3.4.*, <2.0
) to define version ranges for compatibility policies. This provides rules to determine, given aservice:X.Y.Z
, a range of compatible versions from which the latest is returned ascan_update_to
. This is then usedin the front-end to update to the "latest compatible version".Hightlights
>X.Y.Z, ~=X.Y.Z
).A:X.Y.Z
is compatible with serviceA:$versions_specifier
A:X.Y.Z
is compatible with serviceB:$versions_specifier
services_compatibility
table to serialize customization (otherwise defaults policy).history
entries, both in- Listing (temporarily to monitor performance)
- GET operations.
Related issue/s
How to test
/dev/catalog/services/*
entrypointsservices_compatibility
row with custom rules forsimcore/services/comp/itis/sleeper:1.0.0
From the image
Dev-ops checklist