Idea detail
vsix_export
reqlan rq/distribution/distribution.rq:280
Summary
One VSIX is built per native_targets tuple via `vsce package --target <tuple> --no-dependencies`.
Each VSIX keeps today's esbuild-bundled JS ( TS dependency graph stays bundled ); only the matching platform native package is staged into the VSIX so other targets' binaries are excluded.
The same VSIX packs `bin/reqlan-lsp` for that target ( language_server_rust ). Azure `collect-napi-binary.mjs --with-lsp` copies that binary into the native artifact. The pack script checks that zip entry by `file_size`. It does not read the binary through a pipe. The napi addon stays for the index host. npm platform packages do not contain it ( rust_binary_distribution ).
Stamp `targetPlatform` so Marketplace / Open VSX route by extension host ( extension_host_target, native_host_binary_distributed ).
Artifact name shape: `reqlan-extension-<version>-<target>.vsix`.
The VSIX includes logo assets from the extension media build: PNG for marketplace icon, language file icon, activity bar, and README; WebP as a raster fallback.
Implementation: package-extension-targets.mjs, prepare-native-packages.mjs, collect-napi-binary.mjs, .vscodeignore ( `native/`, `bin/` ), azure-pipelines.yml.
Navigation
Attributes
| Key | Value |
|---|---|
| plan | goal Ship six host-targeted VSIXes, each containing only the core engine `.node` for that extension-host platform. constraints - Keep --no-dependencies for the bundled TS graph; stage only the matching native package. - Git at the `ext/v*` tag is canonical (vsix_native_not_from_npm). Azure compiles the native_targets matrix from that commit and packs those binaries. - npm platform packages remain a CLI/MCP install path on `analytical/v*` (npm_distribution / rust_binary_distribution). They are not an input to Azure. - `vscode:prepublish` must not restage the host native addon (`--skip-native`); each VSIX `native/target.json` must equal that VSIX `--target`. steps 1. Stage matching `@reqlan/analytical-<platform>-<arch>` into extension `native/` before vsce. (done) 2. Package with `vsce package --target <tuple> --no-dependencies` for each vsix_export entry; skip native restage in vscode:prepublish; verify packed `native/target.json`. (done) 3. Compile the native_targets matrix in Azure and prepare packages from git versions + those artifacts. (done) 4. Publish each target to Marketplace and Open VSX (extension_distribution, openvsx_registry). |
| status | in-progress |
| todo | first ext/v* release with six target VSIXes not yet shipped |
Ancestor context
No ancestor chain recorded.
Outbound references
Inbound references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | analytical_package | reqlan rq/core-architecture.rq | vsix_export |
| references | analytical_rust_port | reqlan rq/core_analysis/rust_port.rq | vsix_export |
| references | native_bridge | reqlan rq/core_analysis/rust_port.rq | vsix_export |
| references | incremental_extension_build | reqlan rq/development/build.rq | vsix_export |
| references | extension_host_native_stage | reqlan rq/development/build.rq | vsix_export |
| references | native_targets | reqlan rq/distribution/distribution.rq | vsix_export |
| references | rust_binary_distribution | reqlan rq/distribution/distribution.rq | vsix_export |
| references | vsix_native_not_from_npm | reqlan rq/distribution/distribution.rq | vsix_export |
| references | extension_distribution | reqlan rq/distribution/distribution.rq | vsix_export |
| references | extension_pipeline_publish | reqlan rq/distribution/distribution.rq | vsix_export |
| references | openvsx_registry | reqlan rq/distribution/distribution.rq | vsix_export |
| references | native_host_binary_distributed | reqlan rq/distribution/native_host_binary.rq | vsix_export |
| references | language_server_rust | reqlan rq/extension/language/support/language-server-rust.rq | vsix_export |
Unresolved references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| None | |||
Local graph
Initialising graph…