Versioning strategy

release
discussion

#1

We should get out of never ending Alpha stage in my opinion. First and foremost because of the people perception of Alpha being broken or unstable. This rarely holds true but it’s very difficult to convince people. Also in our case a lot of Alpha extensions proved to be mature and stable, so there is no point of keeping them in limbo.

I would suggest we switch to semantic versioning, but I would be very curious to hear your opinion about it.

Universe

For this project I would suggest slightly different approach - based on semver, but a bit different. In universe we simplify setup for particular version of Arquillian Core and compatible extensions. That said, in my eyes, the most helpful versioning pattern would be following. Assuming that we have released Arquillian Core 1.2.0 and no new extensions included in universe yet, the version for universe would be 1.2.0.0. When, let’s say we have new cube-q version but core is still untouched we bump last digit and release 1.2.0.1. So in essence this would mean Cx.Cy.Cz.X, where Cx.Cy.Cz is semver for Core and X is just an increment of universe still being compatible with core, but giving new versions of extensions. Thougts?


#2

Completely agree with this approach. The question is what is happens with those extensions containers that has not been updated for several months and are still at CR/Alpha phase.

I suppose that we just move to “final” and that’s all.
Another option would be that this update happens when a new release happens of that extension, and meanwhile there is no new release then the Alpha/CR version is still valid. So basically in this way we avoid that 1.0.0.Alpha15 == 1.0.0


#3

semantic versioning +1
your universe versioning pattern +1


#4

@bartoszmajsak I think we can go ahead with this.


#5

I think so. But we should switch all or nothing I believe.


#6

Since Arquillian is just a test dependency, the alpha/beta stuff has never been an issue. However, switching to real releases would be awesome.