Skip to content
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

Publish extension on open-vsx.org #1177

Closed
andhet opened this issue Feb 3, 2021 · 8 comments
Closed

Publish extension on open-vsx.org #1177

andhet opened this issue Feb 3, 2021 · 8 comments

Comments

@andhet
Copy link

andhet commented Feb 3, 2021

This is relating to the closed issue #222.
To quote @meysholdt

Hi,

congrats on moving this extension to the Go-Team!

Could you also publish the golang.Go extension on https://open-vsx.org/ ?

This would make it much easier to use this great extension in project such as

  • gitpod.io
  • theia-ide.org
  • vscodium.com
  • code-server

because the ToS doesn't allow those projects to obtain the extension from Microsoft's marketplace:

Marketplace Offerings are intended for use only with Visual Studio Products and Services and you may only install and use >>Marketplace Offerings with Visual Studio Products and Services.

The presented solution to keep the "latest" branch up to date, didn't work very well so a issue [golang.go] latest version is not being published "open-vsx/publish-extensions" was created. During the discussion a commit was created changing the former behaviour to use the vscode-go latest branch to publish new versions to open-vsx.org and to use a fix version instead. Of course this means that every version must be manual updated in the open-vsx/publish-extensions project, which is not an ideal solution.
During the discussion @jankeromnes said:

That's why it's much better when the extension's owners/maintainers can publish to OpenVSX directly. (It's as simple as setting >up a OVSX_PAT token and running npx ovsx publish -- no dependencies required).
But since this wasn't set up yet for golang.go, we took over the publishing in the interim, using this repository.

So I would ask if you be so kind to publish directly to open-vsx.org in the future.

@hyangah
Copy link
Contributor

hyangah commented Feb 3, 2021

Thanks for pinging us. We will resume updating the latest branch.

The latest extension requires vscode API compatible with vscode 1.46 or newer engine. End of last year, we noticed some of theia-ide based services couldn't use latest versions. #1038
We will resume updating the latest branch.

After reviewing the setup process and long-term maintenance cost for publishing open-vsx directly, we decided to stay with the current setup for now.

The vsix files are available from the release page too.

@hyangah hyangah added this to the v0.22.1 milestone Feb 3, 2021
@andhet
Copy link
Author

andhet commented Feb 6, 2021

Thanks for your answer.
I will try to clarify if "open-vsx/publish-extensions" will go back to use your latest branch again or will keep maintaining a fix version, which wouldn't make it necessary to keep the latest branch up to date. (At least not from their side.)

@jankeromnes
Copy link

jankeromnes commented Feb 6, 2021

Thanks! Please feel free to make this decision.

In general for this repository (EDIT: open-vsx/publish-extensions), we prefer re-publishing the latest official .vsix release, because that's less "risky" than cloning the extension repository and trying to rebuild/repackage the extension (where there is a chance to mess up and upload a broken extension binary, especially since we manage a significant number of extensions and don't have much time to look deeply into each extension's packaging process, or even test the uploaded extension).

I guess this means that, if we're confident that we can always publish a 100% working extension by checking out the latest branch (always with the same the build instructions, even months from now), then it's okay to publish from latest. Otherwise we re-publish an official .vsix, but occasionally need to update to a newer version (manually or automatically).

@gopherbot
Copy link
Collaborator

Change https://golang.org/cl/290433 mentions this issue: e365097 CHANGELOG.md: update v0.22.1 release date

gopherbot pushed a commit that referenced this issue Feb 9, 2021
Fixes #1177

e365097 CHANGELOG.md: update v0.22.1 release date
ea76c49 [release] src/goMain: fix the exception caused by invalid version string
b33ce83 [release] src/goMain: correct showGoWelcomePage hard-coded version string
7b70563 [release] test/runTest: use vscode 1.52.1
345c297 [release] package.json: fix typos
5236c49 [release] src/goLanguageServer: add platfom info in the automated issue report
86e3e20 [release] CHANGELOG.md: v0.22.1
acad49d [release] goLanguageServer: disable the language server with SSH URIs
1aefe8e [release] package-lock.json: update ini
88a972d [release] src/goMain: use a hard-coded version string for welcome page state
f796ab1 [release] package.json: add dlv to alternateTools value list
0aeab66 [release] src/goLanguageServer: protect language restart with mutex
9b53776 [release] src/goLanguageServer: block until the language client is ready
33a0c85 [release] README.md: add the new video material
b5f15f5 [release] src/goMain: linkify documentLink deprecation warning message
2f2f2a2 [release] goLanguageServer: add extra information to automated error reports
a7d4839 [release] build: run docker with SYS_PTRACE capability
9acd4d8 [release] src/welcome: correct link to Gophers Slack
2cb6d04 [release] all: merge master@b665d37
b665d37 src/goLanguageServer: remove gopls start progress bar
ad4fc9d [release] all: merge master@d04d4cf
d04d4cf README.md: correct tools installation command name
03274ad src/goStatus: present error icon if gopls couldn't be found
465fe7e src/goLanguageServer.ts: prompt to update instead of silent update
607cebe src/welcome: add note about removing go.useLanguageServer setting
3c71ee9 [release]: merge master@d762a13 to release
d762a13 README.md: use the exact links
1707d4b README: add troubleshooting section, some cleanup
b55b129 [release] merge master@cc04c37 to get doc updates
cc04c37 .github/ISSUE_TEMPLATE: update bug report template
f7bd66d docs: pull advanced documentation out of the main README
b87c454 src/goMain: use vscode setting doc for importShortcut
0cd9eab README.md: format README to wrap to 80 characters
5e8b1e9 README: updates to README.md after a review
cebe687 [release] Update README.md and CHANGELOG.md
c717b8d [release] all: merge master to release for v0.22.0
063b57d src/goLanguageServer.ts: remove prompt when the default is changed
30b8fdb package.json: enable gopls by default
b386aef src/goMain: show welcome page for 0.22.0
8d7dda0 src/goMain: adjust showGoWelcomePage to show for prereleases
d993742 docs/settings: include enum and enum descriptions
f534354 README.md: rewrite assuming gopls is on by default
f99b5fb docs/features.md: add call hierarchy documentation
867b590 src/goTools: update hardcoded gopls latest version
bb6665d docs/features.md: remove default tool description for gopls features
61305d9 src/welcome: re-work the welcome page
ea221fb [release] src/goLanguageServer: partial revert of cl/280601
392e7d7 [release] CHANGELOG.md: v0.21.1 changelog
5435f95 [release] package.json: update version to v0.21.1
0a4362f CHANGELOG.md: v0.21.1 changelog
560cd9e [release] src/util.ts: handle inactive languageClient
fbd2fc4 src/goLanguageServer: partial revert of cl/280601
7f56895 src/util.ts: handle inactive languageClient
bc20520 docs: rewrite troubleshooting guide
f0680f9 docs: remove modules.md because it is not relevant with gopls enabled
bcd1314 docs/features.md: add feature gifs for snippets and fill struct
e988b14 [release] src/config: fix initConfig and WrappedConfiguration
a267fff src/config: fix initConfig and WrappedConfiguration
2163a5a test/integration: increase installation test timeout
5011235 docs/features.md: Add gifs and images for features
d0d360a [release] package.json: do not claim .tmpl files in stable version
ddb4e6f [release] test/integration: increase installation test timeout
913cd43 [release] package.json: remove 'preview' attribute
4af88f9 docs/images: add gifs and images for features
9a81869 [release] all: prepare v0.21.0 release
fd5d558 CHANGELOG.md: prepare for v0.21.0 release
b7b9a3e test/*: use getGoConfig instead of directly calling vscode API
3e3f506 src/util: resolveToolsGopath ignores toolsGopath from untrusted workspace
e1a6cb4 package.json: update settings description to mark dangerous settings
bc8b63e src/config: move getGoConfig/getGoplsConfig to config
3a013bd src/config.ts: initialize the Configuration singleton during activation
d62869d package.json: address comments from cl/280697
1ac4671 src/config: add Configuration class to encapsulate the extension settings
b15a5cc tools/generate: move gopls settings to a dedicated section
2b54c86 src/goMain: fix build breakage - isNightly is renamed
d2e07f8 CHANGELOG.md: v0.20.2
70ef416 src/goMain.ts: show welcome page on update
55eb46d package.json: switch the main branch in preview mode
60116ee src/goLanguageServer: include .tmpl only in nightly mode.
4f8150a src/goLanguageServer.ts: deduplicate diagnostics from language client
34d732e package.json: change go.toolsGopath default to null
64847ab src/goLanguageServer: report when falling back to default providers
3b5f327 vscode-go: allow gopls to see .tmpl files
d9b30a2 media/welcome.css: add style to the welcome webview
4c91c38 src/goLanguageServer: remove languageServerExperimentalFeatures
f9896e8 src/goStatus: avoid statusBarEntry leak
898e719 docs/settings.md: fix the settings for the context menu
04c1bcf src/goLanguageServer: fix a bug that prevented gopls start after forced update
cda36be src/debugAdapter: add dlvFlags to accept arbitrary delve flags
98d8a1a [release] CHANGELOG.md: v0.20.2
705272c src/goLiveErrors: disable gotype-live when language server is enabled
ae693b8 src/welcome.ts: add 'latest updates' section to welcome page
0dc4650 src/welcome.ts: add external resources to welcome page
197bec6 src/welcome.ts: add welcome webview
bd63db5 [release] tools/goplssetting: handle changes in gopls setting structure
de64eaa tools/goplssetting: handle changes in gopls setting structure
343a5dc src/goLanguageServer: deprecate documentLink configuration
b730717 docs/gopls.md: remove the link of `gopls` settings block section
e7a2363 src/debugAdapter: address TS2794 warnings
229c425 CHANGELOG.md: describe v0.20.1 change
811693e CHANGELOG.md: Change logs for v0.20.0
d9eab14 [release] CHANGELOG.md: describe v0.20.1 change
4763006 [release] src/utils/pathUtils: return the default go path only if exists
dd9c54f src/utils/pathUtils: return the default go path only if exists
0abde47 docs/gopls.md: update documentation about `gopls` block
83197d8 build: install typescript in Dockerfile and adjust .vscodeignore
4ddeb55 [release] README.md: place gopls by default announcement
61dae92 README.md: place gopls by default announcement
be919de [release] CHANGELOG.md: Change logs for v0.20.0
a4f6ba1 [release] prepare v0.20.0 release (2)
6c7bfb3 src/debugAdapter: report that next is automatically cancelled if interrupted
f38e348 src/goLanguageServer: propagate go.buildFlags,buildTags to gopls
dbc8da9 src/goDebug: fix drive casing when substituting paths
2f72921 test/integration/goDebug: disable a substitutePath test that times out
dfc4e72 [release] LICENSE: update LICENSE
d5e74ea [release] prepare v0.20.0 release
6e8bbba build: run vsce package during testing
cf03db6 package.json: update gopls settings based on gopls v0.6.0
1985e90 docs/settings.md: add description of object type settings' properties
4b24e75 package.json: add go.toolsManagement.checkForUpdates
63b4bd1 tools/generate: include deprecationMessage
9fcd568 test: remove symlink tests for substitutePath
0dee1a8 src/goInstallTools: fix broken gocode-gomod install
1812139 src/goLanguageServer: disable language service on guest side completely
a1ed38c snippets: add snippet for type function declaration
211c7a6 src/goLanguageServer.ts: update gopls when gopls is turned on by default
93f32bb src/debugAdapter: add substitutePath config for debugging
8b7bc62 src/goLanguageServer: show language server start progress
b950da5 test: increase timeout for extension tests
bb26907 src/goInstallTools: stop requiring to install legacy tools
a9f7034 CHANGELOG: v0.19.1 change
6407dc1 test: fix resolve file names in logs tests for GOPATH
27a25c4 test: fix remote attach tests on windows long tests
43afbf2 src/goInstallTools: fix gocode-gomod installation path
2a643de src/goInstallTools: add reference for incorrect PATH issue
8511760 src/pathUtils: check /usr/local/bin/go for go
a6d5d51 src/goDebugConfiguration.ts: offer quick pick menu for creating launch.json
da0f1c6 src/goLanguageServer: enable user survey in stable version.
4e42d93 package.json: declare gopls settings as a one property
685e302 src/goLanguageServer: change back revealOutputChannelOn to Never
203dbe9 [master] update CHANGELOG for v0.19.0
4fee2d6 src/goLanguageServer: improve automated gopls log collection
f379f50 src/goLanguageServer: prompt users to file an issue if they opted out
49bca83 package.json: mark settings that are not applicable when using gopls
650b8ae src/goDebug: check for undefined launchArgs.packagePathToGoModMap
e2d78f1 src/goDebug: fix noDebug mode for windows
e8d462e snippets: avoid using "var" as default name in snippets
cecb575 package.json: embed autogenerated gopls settings
98e508a tools/goplssetting: use text note instead of emoji for section
8ea68d8 src/testUtils: adjust file path expansion regexp to capture subtest failures
795bf32 package.json: Add "template" property to go.addTags configuration
f6c5b08 .github/workflows: update to use env file instead of set-env
dd08b76 src/goLanguageServer: suggest updating gopls before filing an issue
9dd4a94 webpack.config.js: ignore warnings from yargs dependency
15a6a04 .github/ISSUE_TEMPLATE: request gopls version

Change-Id: If876fb153d7ed38462c0299e632093e0b59a6da8
@hyangah
Copy link
Contributor

hyangah commented Feb 9, 2021

@jankeromnes and @andhet, Thanks!

I prefer scraping from the release page instead of the latest branch - it's set up that way because I thought open-vsx could only watch a tag or a branch back then. Open-vsx is the only user of the branch latest AFAIK (other non-vscode extension consumers already scrape our release branch). It sounds like open-vsx can republish the latest official .vsix, so can we delete the latest branch?

@andhet
Copy link
Author

andhet commented Feb 10, 2021

@hyangah
Yes, we'll find another solution than using the latest branch. So feel free to delete it.

@jankeromnes
Copy link

Open-vsx is the only user of the branch latest AFAIK

For what it's worth, OpenVSX already scrapes GitHub Releases and doesn't use the latest branch:

https://github.com/open-vsx/publish-extensions/blob/618b2ff140622e3e9ce976bf477c19c65a09a31f/extensions.json#L548-L552

(other non-vscode extension consumers already scrape our release branch)

Interesting, which non-vscode extension consumers do you have in mind?

I know that VSCodium, Gitpod.io, Theia, Eclipse Che and others all use OpenVSX directly.

@hyangah
Copy link
Contributor

hyangah commented Feb 10, 2021

Sounds good. Deleting the latest branch.

Last time I checked (Dec 2020), gitpod.io had ms-vscode.go extension embedded in the default container and users weren't able to use ours. That should be fixed now. Code server has their own marketplace. VSCodium uses openvsx.

And, due to eclipse-theia/theia#8752, currently I recommend v0.20.x or earlier for theia-based IDEs.

Thanks for the help!!

@hyangah hyangah closed this as completed Feb 10, 2021
@golang golang locked and limited conversation to collaborators Feb 10, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants