Uh oh!
There was an error while loading. Please reload this page.
feat(abg): support different binding versions via version prefix - #1639
feat(abg): support different binding versions via version prefix#1639Vampire wants to merge 1 commit into
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
029b490 to
7972d27CompareVampire
commented
Sep 5, 2024
Here a sketch how versioned routes could work, or if you like it maybe even the ready implementation. :-) If a version is marked as deprecated, the binding classes are deprecated with a deprecation message that the binding version is deprecated. It also prints out a warning if you run it manually and additionally when run on GitHub Actions emits a GitHub Actions warning, as most often you will not see this locally due to Maven Local cached binding jar. I would as far as possible not remove deprecated binding versions, just hint users with it to upgrade to a newer binding version. New binding versions are by default marked experimental and issue similar warnings, with the last stable binding version in the message. The The Theoretically, we could also in the generated classes Then when a new binding version is added, we can add a page to the docs that documents which library version is compatible with which binding version, and which breaking changes happened from one binding version to the next, besides requiring a new library version eventually. |
7972d27 to
f39757dCompare6aef8d4 to
6e0c383Compare6e0c383 to
05942abCompare8edd315 to
00a3375Compare2c8968b to
e7c3171Compare449f7e8 to
ebabafeComparea58151e to
a35c588Compare1832b54 to
86db4c4Compared518c2b to
671733fCompare@krzema12 I recently came to the conclusion that version server routes will be a major problem. If I am the one doing the change, I could of course delete the jar from MavenLocal. And even worse, if you have one project using So I guess the plan to use the server route was not a good one, and also this version needs to be stored somewhere in the coordinates, for example |
Vampire
commented
Apr 23, 2026
Yes, I confirmed now that the problem is exactly like I feared. So as assumed, the binding version must also be part of the coordinates and not of the route. |
Having it in the version is maybe also better for people that use Renovate, The question is what is, whether it will behave better as prefix or suffix, or whether it does not matter. @file:DependsOn("actions:checkout___major:[v6___binding_version_v2,v7___binding_version_v2-alpha)")
@file:DependsOn("actions:checkout___major:[binding_version_v2___v6,binding_version_v2___v7-alpha)")
@file:DependsOn("actions:checkout:v6___binding_version_v2")
@file:DependsOn("actions:checkout:binding_version_v2___v6") |
Vampire
commented
Apr 23, 2026
Ah, remembering the Renovate algorithm for ranges that I recently majorly improved, I think it needs to be prefix, so @file:DependsOn("actions:checkout___major:[binding_version_v2___v6,binding_version_v2___v7-alpha)")
@file:DependsOn("actions:checkout:binding_version_v2___v6")otherwise the range is not properly recognized as one-version closed range. |
059bd56 to
03f356fCompare03f356f to
7c051caCompare7c051ca to
a0211aeComparea0211ae to
d580237Compare4a77e9d to
933b1aaCompare
No description provided.