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

New versioning proposal #56

Closed
mauriciovigolo opened this issue May 9, 2018 · 3 comments
Closed

New versioning proposal #56

mauriciovigolo opened this issue May 9, 2018 · 3 comments
Labels
enhancement This issue/PR is an enhancement or new feature.

Comments

@mauriciovigolo
Copy link
Owner

mauriciovigolo commented May 9, 2018

We are working on the next release and found some issues regarding what's the best way to version the keycloak-angular library, considering breaking changes in Angular and Keycloak versions.

The new proposal is presented in:

Please if someone sees any problem regarding this new versioning proposal, help us sharing your thoughts. 💭 😄

--- EDIT ---

In Summary

keycloak-angular Angular Keycloak SSO-RH
4.x.x 4 (keycloak latest version) / 4 -
4.x.x-k3 4 3 7
5.x.x 5 (keycloak latest version) / 4 -
5.x.x-k3 5 3 7
6.x.x 6 (keycloak latest version) / 4 -
6.x.x-k3 6 3 7
  • keycloak-angular X.X.X: will be compatible with the latest version of keycloak, at the moment of this writing is keycloak 4 or the future release of SSO-RH based on keycloak 4.
  • keycloak-angular X.X.X-k3: will be compatible with keycloak 3 and SSO-RH 7.
@mauriciovigolo mauriciovigolo added enhancement This issue/PR is an enhancement or new feature. Community discussion labels May 9, 2018
@mauriciovigolo mauriciovigolo added this to the v.6.0.0 milestone May 9, 2018
@marcelnem
Copy link

marcelnem commented May 17, 2018

I am not sure that this will work.

In semver the versioning the model is MAJOR.MINOR.PATCH-prerelease

In semver, the part after hyphen (in this case "-k3") is used for pre-releases. Our use case is that someone wants to stay on keycloak 3 because switching to a version of the library that supports keycloak 4 would be a breaking change for them.

If someone has ^4.0.0-k3 in their package.json, when 4.0.1 is released, their module would be automatically updated to 4.0.1 on the next build of their angular app. That would be a breaking change for them.

I would use the major version to denote breaking changes:

Every time we decide to support new angular or keycloak in a backward-compatibility breaking way, the major version should increment. At the moment, the idea is to update to newer version of angular. So the next major version (keycloak-angular@2.0.0) could support the angular 6.

The support for keycloak 4 is still in working and keycloak 4 is still in beta, so version keycloak-angular@3.0.0-beta1 could support angular 6 and the beta version of keycloak 4.

I think we are not going to support angular <= 5 + keycloak 4, are we? the support for keycloak 4 which we are implementing now will probably be merged with your new code for angular 6, so keycloak 4 + angular <= 5 will never happen.

In the future every time when we need to change a keycloak-angular library to support the new version of angular or keycloak, and if this is breaking, then the new version should be created.

Also, the question is whether upgrading the keycloak-angular library to angular 6 is a breaking change. If not, we could theoretically (but we do not have to) even stay on 1.x.x for angular 6 (release it with a minor version) and do keycloak-angular@2.0.0-beta1 for keycloak 4 (keycloak 4 is a breaking change - for sure).

@mauriciovigolo
Copy link
Owner Author

Hi @marcelnem, glad to have your comments.

This is a real problem, considering a future release, like you said, 4.0.0-k3 and then 4.0.1. The npm will update the 4.0.0-k3 to 4.0.1 (compatible with keycloak 4). Maybe your suggestion will gonna be better.
I will prepare some tests and think about it.

@mauriciovigolo mauriciovigolo moved this from To Do to In progress in keycloak-angular v. 4.0.0 May 18, 2018
@mauriciovigolo
Copy link
Owner Author

So the final versioning pattern will be:

keycloak-angular Angular Keycloak SSO-RH
1.4.x 4 and 5 3 7
2.x.x 4 and 5 4 -
3.x.x 6 3 7
4.x.x 6 4 -

This versioning proposal was the result of a talk with @marcelnem at slack last week. Being honest this is much cleaner than the initial proposal.

So, as the next release must happen as soon as possible, I will update the proposal doc later, after releasing this new versions.

This versioning will be available at the README and project documentation to guide the developers.

Thanks all!

@mauriciovigolo mauriciovigolo moved this from In progress to Done in keycloak-angular v. 4.0.0 May 21, 2018
mauriciovigolo added a commit that referenced this issue May 21, 2018
- This commit includes the work done in milestone v.4.0.0.
- Milestone v.4.0.0 includes the following issues:
#47, #50, #51, #52, #56, #58 and #61
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement This issue/PR is an enhancement or new feature.
Projects
No open projects
Development

No branches or pull requests

2 participants