DEV Community

Yuki Inoue
Yuki Inoue

Posted on

The Most Important Task For Every OSS Maintainer

Is to release the library whenever new feature or bugfix is merged into the master.

More descriptively, on modern development environment OSS is generally hosted on the Github. If so, they are likely to be adopting (explicitly or implicitly) the development flow of Github flow. In this style of development, every commit against master branch is a release candidate. Since it is a release candidate, it can always be released as pre-release version, if the versioning system adopted by the language library ecosystem supports Semantic Versioning.

When the library maintainer keep publishing whatever is merged into master, what the library user need to do is to manage libraries systematically according to their needs. Since Semantic Versioning defines linear ordering against every released version, one can expect the library managing tool (e.g. npm, gem) of each language to do those management well. On the other hand, when some feature/bugfix is merged into develop but not yet released, the library user generally need to handle "the source location to fetch specific library" (e.g. git url along with branch/tag/ref). Since all the other libraries specify their dependency by some constraints against the released version, that means the library user would have now manage versioning and source location for that library. I believe it is something that no library user wants.

I know that to maintain OSS, there many other tasks too. But releasing operation can be simply done if release policy is made. For example, just release every new master commit as new major/minor/patch release depending on the content of the commit made; major release if breaking changes, minor release if new feature, patch release if bug fix, do them as pre-release if you are not certain the commit won't break anything. If such policy is made, then what the maintainer needs to do can be made into just a single command, by automating the deploy procedure. By doing this, it can bring benefit to all the users of that library, IMHO... So, I sincerely hope every OSS maintainer kindly publishes their fabulous libraries regularly.

Top comments (0)