che
che copied to clipboard
Setup the release job for Che-Code
Is your task related to a problem? Please describe
Currently, the Che-Code repository doesn't have a release job that could be included in the overall Che release process.
Describe the solution you'd like
Create a GitHub Workflow that would:
- run a script that prepares a release branch;
- build the images;
- publish the built images to the Quay registry.
Describe alternatives you've considered
No response
Additional context
No response
There used to be branches like 1.62.x, 1.63.x with stable releases of VS Code and the job is cutting release and pushing images etc
https://github.com/che-incubator/che-code/blob/main/.github/workflows/image-publish-stable.yml
I think we should map this way and not cut releases with Che lifecycle as people want mainly to use either insiders version or the latest stable release of VS Code.
There used to be branches like
1.62.x,1.63.xwithstablereleases of VS Code and the job is cutting release and pushing images etchttps://github.com/che-incubator/che-code/blob/main/.github/workflows/image-publish-stable.yml
I think we should map this way and not cut releases with Che lifecycle as people want mainly to use either insiders version or the latest stable release of VS Code.
I like Florent's idea of providing the Che-Code images based on the VS Code releases.
But let's look at it from both perspectives:
- the community should be able to use the Che-Code image that includes an expected set of the VS Code features/bugfixes
- we should be able to include easily a Che-specific patch into a particular Che release and backport the Che-Code patches to any previous Che release
Che-Code can support both release schedules: VS Code-based and be included in the overall Che release process. So, we can benefit from both approaches.
Suggested solution based on chat today w/ Artem:
- [ ] add a new make-release.sh script (similar to what's in machine-exec?); this will
- [ ] create a branch every 3 weeks
- [ ] push a commit to trigger an action
- [ ] rename
image-publish-insiders.yamltoimage-publish.yamland have it handle BOTHmainbranch ->insidersandnext, and add code for handling7.yy.x->7.yy.zreleases - [ ] update Che plugin registry builds so that we use the tagged releases in addition to the
insidersversion of che-code (as we do with theia next and 7.yy.z) - [ ] review DS plugin registry builds to see if there's a followup related task for that forked registry too
@svor @azatsarynnyy Do we need to also update https://github.com/eclipse-che/che-plugin-registry/blob/main/che-editors.yaml to point to released che-code images & tags, or just stick with "insiders" ?
@nickboldt yes, we need to update the plugin registry as well. https://github.com/eclipse-che/che-plugin-registry/blob/9d4ee0009c30139b9b67f539b7d720bcc8ccb28f/make-release.sh#L121
So, when the user takes the plugin registry 7.54.0 (for example) they will get the expected version of Che-Code - 7.54.0.
I still don't know why the lifecycle of Che should be used in CheCode
I expect as a user to have a VS Code v1.71.0, not a VS Code 7.54.0
I still don't know why the lifecycle of Che should be used in CheCode
I expect as a user to have a VS Code v1.71.0, not a VS Code 7.54.0
@benoitf with the VS Code releases-based versioning it will be much harder to track the mapping of Che versions to Che-Code versions. For example, when we need to backport the patches between different Che versions.
initial PR https://github.com/che-incubator/che-code/pull/103
closed too early by automation. Remaining work: Suggested solution based on chat today w/ Artem:
- [x] add a new make-release.sh script (similar to what's in machine-exec?); this will
- [ ] create a branch every 3 weeks
- [ ] push a commit to trigger an action
- [x] rename
image-publish-insiders.yamltoimage-publish.yamland have it handle BOTHmainbranch ->insidersandnext, and add code for handling7.yy.x->7.yy.zreleases - [x] update Che plugin registry builds so that we use the tagged releases in addition to the
insidersversion of che-code (as we do with theia next and 7.yy.z) - [ ] review DS plugin registry builds to see if there's a followup related task for that forked registry too
@mkuznyetsov @nickboldt can we close this issue? I am asking to decide if we should include it in 7.54 release notes or not.
As discussed today, "review DS plugin registry builds to see if there's a followup related task for that forked registry too" means:
- https://github.com/redhat-developer/devspaces/blob/devspaces-3-rhel-8/dependencies/job-config.json#L29-L33 --> move 3.3 to use 7.54.x branch
See also:
- https://github.com/redhat-developer/devspaces/blob/devspaces-3-rhel-8/product/updateVersionAndRegistryTags.sh#L184-L185
- https://github.com/redhat-developer/devspaces/blob/devspaces-3-rhel-8/product/updateVersionAndRegistryTags.sh#L229-L230 where we need some sort of "if 3.2 use devspaces-3.2-rhel-8 branch; else 7.yy.x (or main)" logic
So... can't close it until it's actually complete. That's why there's a checklist! :/
I see job-config.json was manually updated https://github.com/redhat-developer/devspaces/commit/d5efb318c1a9cc621776093b15283d1c743443a9 via https://github.com/redhat-developer/devspaces/pull/816 but the script has not been fixed so that it will do the correct mapping for 3.3+.
https://github.com/redhat-developer/devspaces/blob/devspaces-3-rhel-8/product/updateVersionAndRegistryTags.sh#L184-L185 https://github.com/redhat-developer/devspaces/blob/devspaces-3-rhel-8/product/updateVersionAndRegistryTags.sh#L229-L230
Issue remains open. @mkuznyetsov please LMK if you have a PR for this fix.
See PR https://github.com/redhat-developer/devspaces/pull/835 which manually updated job-config.json to achieve what I asked @mkuznyetsov to do 20 days ago via script.
Updated the script here: https://github.com/redhat-developer/devspaces/commit/657f2f5a64a2197d30b33a0881b6b4111481a7da and verified it works here: https://github.com/redhat-developer/devspaces/commit/f98a171b40400a290181a6d275b31d8e23c4a9d7 so it's ready for when we branch for 3.3/3.4