I was wondering how to best create stable releases of this GitHub Action going forward?
Given that development on this project is just picking up speed again, this may not be the most important topic right now. Still I wanted to put it in writing, so that we don't forget about it.
Worthwhile goals would be
- not to break workflows of people by introducing breaking changes
- allowing as many people as possible to benefit from improvements, without them having to update their workflow
Now I noticed that the documentation currently suggest to use the v1.x string:
- name: Screenshot Website
uses: swinton/screenshot-website@v1.x
with:
source: https://github.com/swinton/screenshot-website
destination: screenshot.png
full-page: true
That might be a bit misleading, at least it was for me. Based on the v1.x string I assumed:
- this points to releases of this project (while it actually is a branch)
- when using this, I will automatically get all new releases of the
v1 major version. However this does not automatically work but only if for every new release the v1.x branch is updated as well. This means extra burden for the maintainers.
Suggested Release Strategy
I don't know many users this GHA has, so the level of effort that should be put into this is certainly up for debate.
FYI I am basing my assumptions on how GHA version works on 1 and 2.
Now how could we version/release this GHA going forward:
- make essential fixes to keep the
v1.x working for a while (e.g. upgrade to node16 plus the actions/core upgrades that are already done). then update the v1.x branch with these fixes, and create new packaged releases in parallel as desired (e.g. v1.1.0 and v1.2.0)
- the above should be the last upgrade to the
v1.x branch (to save the maintainers extra burden)
- update the documentation to specify
v1 instead of v1.x allowing new users to automatically benefit from new releases of the 1-major version
Alternative
An alternative to this might be to not update the v1.x at all, so that it will break at some point (not sure when that will be).
That might motivate users of this GHA to read the documentation again, and notice the new releases. For this to work we would have to make it super obvious for them which change they have to make to get the latest version.
Thoughts?
I was wondering how to best create stable releases of this GitHub Action going forward?
Given that development on this project is just picking up speed again, this may not be the most important topic right now. Still I wanted to put it in writing, so that we don't forget about it.
Worthwhile goals would be
Now I noticed that the documentation currently suggest to use the
v1.xstring:That might be a bit misleading, at least it was for me. Based on the
v1.xstring I assumed:v1major version. However this does not automatically work but only if for every new release thev1.xbranch is updated as well. This means extra burden for the maintainers.Suggested Release Strategy
I don't know many users this GHA has, so the level of effort that should be put into this is certainly up for debate.
FYI I am basing my assumptions on how GHA version works on 1 and 2.
Now how could we version/release this GHA going forward:
v1.xworking for a while (e.g. upgrade to node16 plus the actions/core upgrades that are already done). then update thev1.xbranch with these fixes, and create new packaged releases in parallel as desired (e.g.v1.1.0andv1.2.0)v1.xbranch (to save the maintainers extra burden)v1instead ofv1.xallowing new users to automatically benefit from new releases of the 1-major versionAlternative
An alternative to this might be to not update the
v1.xat all, so that it will break at some point (not sure when that will be).That might motivate users of this GHA to read the documentation again, and notice the new releases. For this to work we would have to make it super obvious for them which change they have to make to get the latest version.
Thoughts?
Footnotes
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-versioned-actions ↩
https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runsstepsuses ↩