-
Notifications
You must be signed in to change notification settings - Fork 182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add OpenVSX publishing #1064
Add OpenVSX publishing #1064
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @filiptronicek
Thanks for the PR! It's great to see OpenVSX now supports multi-platform extensions.
We'll get the process started for (re)claiming the hashicorp
namespace and generating the PAT.
In the meantime, I have just two questions:
- Would you mind signing the CLA?
- Would you mind decoupling the OpenVSX into a separate job? i.e. we now have
publish
job, so we could rename it topublish-ms-marketplace
&name: Publish to VS Code Marketplace
and then add another job, practically identical, just with different secret andnpx vsce
replaced forovsx publish
.
The reason for coupling is:
- if the OpenVSX job fails, we don't want to be in a situation where we have to re-publish to the Marketplace too
- the two publishing jobs can run in parallel
Hey @radeksimko, thanks for the quick review!
Working on that :)
I would not at all, but maybe we could implement something a bit different which would wouldn't require its own step. We could essentially have the setup I made, but we would use
This is a fair point that would not work with the approach I'm proposing, but I think the ~30 seconds it takes the job to publish all of the extension versions could be tolerated because the GitHub Actions runners often have different boot times (hence this approach could be faster sometimes, and sometimes slower). |
So the main benefit of splitting it into its own job is that GitHub allows us to rerun a failed job, but we cannot rerun individual steps unfortunately. So let's say that OpenVSX publishing fails and Marketplace succeeds - if we had both as steps - we'd have to retry both, or have some extra logic to ensure that repeated publishing to the Marketplace is harmless. More likely we just wouldn't retry.
Right, I wasn't entirely clear but this is the main benefit I had in mind when talking about parallel jobs, more than the time saved. I think the two jobs can still be independent of each other and both use something like this? needs: build
if: success() && startsWith( github.ref, 'refs/tags/v') |
I think so as well. All other comments sound fair, I will add it as a separate job just like the MS publish. Update: just realized there will be close to no duplicate code, I thought we would have to create a whole new workflow 🤦 😄. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This LGTM, thank you for the edits and for signing the CLA.
I'm just in the process of clarifying one small part of the Terms with the Eclipse Foundation, as asked by our Legal team and once done I will go ahead with the namespace transfer and PAT creation, and then we can merge this.
Thanks for your patience.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@filiptronicek We have claimed the namespace and have a PAT ready, but there's still an issue with publishing as the latest version of ovsx with the target support isn't available on npm - see eclipse/openvsx#450
Not realizing I used an old version (0.3.0) I managed to accidentally already publish two versions as universal (2.20.0 & 2.20.1) - is there any way of either retracting them or republishing as platform specific?
Co-authored-by: Radek Simko <radek.simko@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All issues regarding platform-specific extensions on the OpenVSX side seem to have been resolved. I was able to upload all the missing versions manually. 🎉
After one more minor change, we can finally merge this PR. Thank you for being so patient.
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. |
This is a succession to #388, which adapts publishing to OpenVSX embedded in the publishing workflow in GitHub Actions.
Fixes #379
Before using this it is necessary to set up an
OVSX_PAT
GitHub Action secret with the value from open-vsx.org/user-settings/tokens. A claim of thehashicorp
namespace will be also required (this can be done by submitting an issue in the OpenVSX repo).