#release-engineering - February 2020

February 2020
IckesJ
IckesJover 6 years ago
Any notes on how you guys at Cloud Posse or others that manage many modules as separate repos do your release process? It would be greatly appreciated.

I see the makefile works as the runner for the unit tests which is awesome and I’m assuming happens upon merging to master for module X. But what determines module X is ready to release into an new version? A global find and replace of the old version tag to the new, run all unit & integration tests & if all pass push release?
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
@IckesJ we talk about it here: https://github.com/cloudposse/docs/issues/335
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
basically, every time you merge to master, you bump the version.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
bugs = patch releases
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
every other release is a minor release.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
major releases are milestone driven.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
keep in mind that pre-1.0 has a special meaning in semver
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
@Julian Gindi might have some more thoughts on this.
Julian Gindi
Julian Gindiover 6 years ago
@Julian Gindi has joined the channel
Santiago Campuzano
Santiago Campuzanoover 6 years ago
Welcome @Julian Gindi !
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
(he just did a big presentation at a local meetup on semver and when/how to bump versions)
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago(edited)
IMO, the main purpose of semver is not to communicate the stability of the functionality. that's almost impossible to guarantee. even a bug fix can be a breaking change for someone else who had a workaround for that bug.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
I assume that every change could be breaking for someone.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
therefore, IMO the purpose behind semver is to pin software so it only changes when you expect it to.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
thus, I hate it when projects don't cut a release for every merge to master.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
and that's why I prefer every merge to master to have release so I can gauge our distance from the latest release.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
git sha's suck for humans.
Julian Gindi
Julian Gindiover 6 years ago
All of this I agree with, I do think you can add safety and a bit of structure to internal API’s and set rules on which services can talk to what, but it’s most powerful when used as a final “resolution” for software and being able to see how things change over time.
Julian Gindi
Julian Gindiover 6 years ago
I have a tool to help with this process, but it’s almost identical to what Erik suggested
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
do you have a recording of your talk?
Julian Gindi
Julian Gindiover 6 years ago
We do
IckesJ
IckesJover 6 years ago
This is awesome info guys! Thanks & would love to see/hear the recording
Julian Gindi
Julian Gindiover 6 years ago
Here is a repo that might “automate” the boring mechanical bits of incrementing semver https://github.com/JulianGindi/auto-semver
Julian Gindi
Julian Gindiover 6 years ago
thus, I hate it when projects don't cut a release for every merge to master. 100% @Erik Osterman (Cloud Posse)
Corey Gale
Corey Galeover 6 years ago(edited)
• Recording of the whole presentation: https://vimeo.com/388711413 (including @Julian Gindi’s talk on SemVer)
• Julian’s deck and notes on SemVer: https://gindi.io/semver.html
• Industry Updates slides: https://slides.com/coreygale/west-la-devops-5-versioning#/4
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
Thanks @Corey Gale
Corey Gale
Corey Galeover 6 years ago
No problem thanks again for all your support!
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago(edited)
@Julian Gindi did you consider showing a github actions code snippet that can be used to automate the semver stuff with your tool?
Julian Gindi
Julian Gindiover 6 years ago
So we have some bits and pieces, but I should 100% add something like that to the repo. My intention was to have it used with CI and it’s certainly how we use it.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
we have a lot of auto-* type actions
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
auto-approve, auto-assign, auto-merge, auto-readme, etc
Julian Gindi
Julian Gindiover 6 years ago
Perfect place to slot in an auto-semver
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
😃
IckesJ
IckesJover 6 years ago
This actions library is great. I just created a couple days ago to do BulkRepoChanges & pipeline in azdo to be able to do a find and replace in files across all our tf module repos &/or run a cmd like pre-commit run -a....auto creates the branch, pr, etc...i was also wondering how you guys managed hundreds of repos. Digging in reading also brought to light dependabot, i haven't seen that before...pretty cool as well.
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
yea, dependabot is great and pullreminders
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
IckesJ
IckesJover 6 years ago
oh ya that is nice
IckesJ
IckesJover 6 years ago
@Julian Gindi - nice presentation...I like the aviation angles...I have my instrument rating & loved every second of the learning process.
Julian Gindi
Julian Gindiover 6 years ago
@IckesJ nice! Absolutely a goal of mine to finish my private and get instrument one day! Will have to talk more… 🙂
PePe Amengual
PePe Amengualover 6 years ago
Hi, does cloudposse/atlantis:latest supports 0.12.16 ? AFAIK it downloads any version, right ?
Zachary Loeber
Zachary Loeberover 6 years ago
@Zachary Loeber has joined the channel
Andrew Roth
Andrew Rothover 6 years ago
Thoughts? My team is finally picking up on my "dadsgarage" idea. This is my writeup so far.
Neil Gealy
Neil Gealyover 6 years ago
What are some of the best tools to automate application deployments to Kubernetes? I was looking at Spinnaker and Jenkins X. Has to be cloud-provider agnostic
Erik Osterman (Cloud Posse)
Erik Osterman (Cloud Posse)over 6 years ago
@UUB28NLDS help keep tabs! 😉
Laurynas
Laurynasover 6 years ago(edited)
Hi, what do you use for application deployment to ECS? we use .NET core docker containers 🙂