Sometimes (more often than not, fortunately enough), things work as they should and one feels the warmth that things done the right way bring.
Sharing is caring
Most projects run in the company I work for have a dependency towards a miscellanea library (I do not to call it utilities library anymore). You know, the kind of thing that helps you in your day to day coding, if you know where to find help.
The company hosts an internal NuGet feed and projects take the binary dependency from the package.
Not so long ago I started a company effort to slim the library down and improve its coherence while bringing it to a more modern version of the framework.
Part of that effort was to implement Continuous Delivery practices to automatically publish a new version of the package with every commit to the master branch.
Today I was doing some customer work and I found myself missing an overload of an existing extension method. 6 minutes later I was not missing it anymore…
It used to be easy
Not so long ago, without CI or CD the work would have been like this:
It is easier now
Magic, but not really
Tasks get easier (even trivial) when the right tools are put to use.
In our case, we moved the code repository from Team Foundation Server to GitHub (because pull requests rock!) and the continuous integration platform from none to TeamCity.
TeamCity has this awesome feature to easily build package and publish NuGet packages and every time I take advantage of the five minutes it took to set it up I feel goooood.
Here is the complete workflow (watch and cry TFBuild):