Internal Applications: When Semantic Versioning Doesn't Make Sense
davehall.com.au
davehall.com.au
After all, the point of the thing is to solve dependency hell - it's only meaningful for things that other code can declare dependencies against.
I was able to convince them not to use it for what were defined as internal apps in my proposal.
But if you don't have that balkanization is a reasonable option.
This is what makes microservices hard, and this is the unforeseen friction that kicks people in the ass.
branch-buildno
Where branch is the git branch, and buildno came from our build machine (Jenkins in our case).
examples:
* develop-5
* master-10
I then used this ivy-based project: https://github.com/sethcall/depends to push those dependencies to our own internal artifact repository.
Because of this, I could say, 'use the latest artifact on the develop branch', or, I could say 'use exactly master-103'. Those two alone were pretty powerful.
By the way, I asked Maven devs if this would numbering scheme would possible (at the time, I would have happily used Maven instead of Ivy because I had to build some tooling to use Ivy); they were strongly against the idea: http://maven.40175.n5.nabble.com/Is-it-possible-to-tie-curre...
Human testing should occur during development. Users should play with prototypes and provide feedback, humans should help define automated acceptance tests. A machine should run the tests and throw the code over the wall, people are no longer needed for that.