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

Integrate with pipeline templates from vscode-engineering #26

Closed
deepak1556 opened this issue Dec 15, 2023 · 2 comments · Fixed by #27
Closed

Integrate with pipeline templates from vscode-engineering #26

deepak1556 opened this issue Dec 15, 2023 · 2 comments · Fixed by #27

Comments

@deepak1556
Copy link
Contributor

As part of aligning core extensions that rely on native modules to have similar glibc constraints as core, I will be adding template steps that configures the C++ toolchain in the vscode-engineering repo.

In its current state this repo will not be able to benefit from the above change, one idea discussed with @joaomoreno was to use the upstream zeromq.js project directly in the jupyter extension so that module files get built as expected. But I now realized this is a no go, although the patch changes are minimal the blocker would be upstream zeromq already publishes prebuilds and we cannot override them to force rebuild in the jupyter extension.

So now coming to the other alternative, the vscode-engineering repo also contains templates for building and publishing npm packages https://github.com/microsoft/vscode-engineering/wiki/NPM-Packages-Build-and-Publish. I will also add the compiler configuration to those templates as well. I see that the npm package https://github.com/microsoft/vscode-zeromq currently downloads the prebuilts from this repo github releases and replaces them for the prebuilds from the upstream zeromq project during postinstall step in the jupyter extension project. I suggest the following path instead,

  1. Merge microsoft/zeromq-prebuilt and microsoft/vscode-zeromq into a single npm package that builds, publishes the vscode specific prebuilds to npm
  2. The combined repo uses the npm pipeline templates from the vscode-engineering repo
  3. Jupyter extension will depend on this new npm package that will still replace the prebuilds from upstream zeromq as part of postinstall step.

Only difference between now and the proposed solution, prebuilds are published to npm rather than github releases and sharing the pipeline templates allows to get the glibc compatibility free of cost.

What are you thoughts on this @DonJayamanne and let me know if you have alternate ideas.

@joaomoreno
Copy link
Member

Does npm allow publishing platform specific packages?

@deepak1556
Copy link
Contributor Author

Not that I know of npm/rfcs#120, packages have been publishing prebuilds into a single npm and pick the right one via helper libraries like https://github.com/prebuild/prebuildify?tab=readme-ov-file#prebuildify

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants