Skip to content
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

Follow Hilla minor versioning #285

Closed
11 tasks done
mcollovati opened this issue Oct 1, 2023 · 11 comments · Fixed by #306
Closed
11 tasks done

Follow Hilla minor versioning #285

mcollovati opened this issue Oct 1, 2023 · 11 comments · Fixed by #306
Labels

Comments

@mcollovati
Copy link
Owner

mcollovati commented Oct 1, 2023

To be able to add tests introduced by Hilla minor versions, we should consider pinning the quarkus-hilla versioning to the Hilla minor versions.

This means that the current quarkus-hilla main should use Hilla 2.3-SNAPSHOT, and we should create 2.2 and 2.1 branches pinned to the relative Hilla latest version.
At every Hilla minor release, we should create a branch for the newly released version and bump main to the next Hilla snapshot.

The tasks to perform at every minor release (e.g A.B.0) should likely be

  • Create quarkus-hilla A.B branch from main and pin Hilla version to A.B.0
  • Update release.yaml to add branch A.B the selectable branch list
  • Update dependabot configuration to add A.B target branch with the following ignore rules
      ignore:
        - dependency-name: "dev.hilla:*"
          update-types: [ "version-update:semver-major", "version-update:semver-minor"]
        - dependency-name: "com.vaadin:*"
          update-types: [ "version-update:semver-major", "version-update:semver-minor"]
    
  • Update update-npm-deps.yaml to add A.B branch
  • Update validation.yaml to add A.B branch on push trigger
  • Update main to use Hilla A.<NEXT>-SNAPSHOT
  • Release quarkus-hilla A.B.0 from branch A.B
  • optional: create target/A.B label for cherry-picks. It could be done on demand.

Tasks:

  • Create Branch 2.0
  • Create Branch 2.1
  • Create Branch 2.2
  • Release quarkus-hilla 2.1.0
  • Release quarkus-hilla 2.2.0
  • Update main to 2.3-SNAPSHOT with Hilla 2.3-SNAPSHOT and Vaadin 24.2-SNAPSHOT (chore: prepare revision 2.3 #307)

After Hilla 2.3 stable release

  • Create Branch 2.3 and update workflows
  • Release quarkus-hilla 2.3.0
  • Update main to 2.4-SNAPSHOT with Hilla 2.4-SNAPSHOT and Vaadin 24.3-SNAPSHOT

Additional tasks to be performed only once:

@mcollovati mcollovati moved this from 🆕 New to 📋 Backlog in quarkus-hilla backlog Oct 1, 2023
@Dudeplayz
Copy link
Collaborator

The patch version is then used for our versioning or should it also follow the hilla version and we add a fourth version number, e.g. 2.3.1.1 ?

@mcollovati
Copy link
Owner Author

Patch version will be specific for quarkus-hilla, since Hilla patches should not have features or breaking changes.

@Dudeplayz
Copy link
Collaborator

since Hilla patches should not have features or breaking changes.

I am not sure if this always applies to us, since we apply some bytecode hacks on code which could be seen as internal, thus changes can always happen. But I think we can go with the suggested versioning and if we encounter a version which has this problem, we add a .1 or something to only this one.

@mcollovati
Copy link
Owner Author

Good point! In such situations, we should probably try to find a backward-compatible way to apply our changes, so that for example, quarkus-hilla 2.2.N could work both with Hilla 2.2.X and 2.2.Y, where Y introduced a change that for us is breaking.

@Dudeplayz
Copy link
Collaborator

Sounds ok, but then we should track this somehow, because if a new minor version occurs, the compatibility code gets obsolete.

@Dudeplayz
Copy link
Collaborator

Another idea would be, to go with a double digit number as patch version, like kotlin. So that we always have the same as hilla and use our patch version als the last number, so 2.1.10, 2.1.20, ... is default and a patch is applied as 2.1.21, 2.1.22, ..., it looks better than 2.1.2.2

@mcollovati
Copy link
Owner Author

I don't like the double-digit idea that match, is seems a bit confusing to me.

we should track this somehow, because if a new minor version occurs, the compatibility code gets obsolete.

Maybe annotating code with the latest incompatible version (e.g. @CompatibilityFix("2.1.X")) and add something to the build so that it fails if the minor version does not match with the current project version.
For example, having that annotation somewhere in the code should work for 2.1-SNAPSHOT, but the build should fail with 2.2-SNAPSHOT

@Dudeplayz
Copy link
Collaborator

Dudeplayz commented Oct 4, 2023

I don't like the double-digit idea that match, is seems a bit confusing to me.

Understandable.

Maybe annotating code with the latest incompatible version (e.g. @CompatibilityFix("2.1.X")) and add something to the build so that it fails if the minor version does not match with the current project version.
For example, having that annotation somewhere in the code should work for 2.1-SNAPSHOT, but the build should fail with 2.2-SNAPSHOT

Yea that sounds good, lets go with that. Maybe we can also use the quarkus build pipeline somehow, that it picks the code for the desired version. So that e.g. one function is for 2.1.2 and another for 2.1.3, annotated somehow. And the build / deploy stage then picks the desired function. We should examine which is the safest and easiest solution.

@mcollovati
Copy link
Owner Author

Maybe we can also use the quarkus build pipeline somehow

Excellent idea!

@mcollovati
Copy link
Owner Author

So, let's proceed with the plan in the ticket description, and move the discussion about incompatible changes in patch release to #294

@mcollovati
Copy link
Owner Author

Since latest quarkus-hilla version 2.0.1 already targets Hilla 2.1.x, I propose to release version 2.1.0 (branch 2.1) and 2.2.0 (branch 2.2).
There will be no new quarkus-hilla 2.0.x because that would mean downgrading Hilla from 2.1.x to 2.0.x.

@mcollovati mcollovati moved this from 📋 Backlog to 🏗 In progress in quarkus-hilla backlog Oct 15, 2023
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in quarkus-hilla backlog Oct 21, 2023
@mcollovati mcollovati pinned this issue Jul 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants