Discussion on: Confessions of an Open Source contributor

entrptaher profile image
Md. Abu Taher 👨‍💻

And that's why all big guys focus on major releases. And linux gives way to install only major updates too.

Maybe the developers at windows are thinking the same,

more updates = more releases = more productivity

Thread Thread
xet7 profile image
Lauri Ojansivu Author

It's not mainly about productivity. New releases often have important bug and security fixes.

Thread Thread
xet7 profile image
Lauri Ojansivu Author

I do still remember at the beginning of starting to maintain Wekan, that someone asked could I do releases, so I figured it out.

I have not yet learned how to do separately stable release.

Snap has 4 channels:

  • stable
  • candidate
  • beta
  • edge

Currently when I do releases, I:

  1. Merge develop branch to master
  2. Build snap package
  3. Release snap package first to edge
  4. Test it with sudo snap refresh wekan --edge
  5. If it works, release it to all channels
  6. Change my server to use stable channel with sudo snap refresh wekan --stable --amend

But how it would work, if I would mostly develop at edge, release to stable less often?

There could be different GitHub branches for these channels. Also with Docker it would be possible to select which Docker image and which tag to use.

Wekan does not yet have plugin system:

Maybe it could be like in git feature branch workflow:

So for example, I could have have this workflow:

  1. Feature would be in it's own feature branch.
  2. I merge feature to devel branch.
  3. I release devel branch to snap edge.
  4. When feature works well enough, I would merge feature to stable.

Would this work?

Or would something else work better? Anyone?

Thread Thread
entrptaher profile image
Md. Abu Taher 👨‍💻

This is really popular way to deal with development features, In fact most other companies does this. They often release to development branch. The users can either use the stable version and only update when there is another major/security update. The curious users can use development version and use the latest features.

  • Ubuntu has two release channels, well, normal users know of it as LTS and non-LTS. LTS is well tested, non-LTS is not.
  • Chrome has canary and dev channel.

The list can go on. This is least stressful way to deal with releases.