Idea detail
vsix_native_not_from_npm
reqlan rq/distribution/distribution.rq:249
block
done
Summary
Azure must not use the npm deploy path as an input when it packs VSIXes.
Git at the `ext/v*` tag is canonical. Azure compiles the native_targets matrix from that commit ( vsix_export, extension_distribution ).
npm stays the install path for CLI and MCP only ( npm_distribution, rust_binary_distribution ).
Navigation
Attributes
| Key | Value |
|---|---|
| history | First native VSIX design: GitHub Actions compiled napi on `analytical/v*`, published platform packages, and Azure fetched `--latest` from npm. Azure did not compile Rust. That design treated npm as a hand-off between the two pipelines. After a changeset release, platform packages stayed on the previous patch (received `1.11.0`) while analytical and the extension moved (expected `1.11.1`). native-packaging.test.ts failed on that mismatch. The lag is structural: `changeset version`, a glob in the Changesets `fixed` group, and a registry wait are not one atomic git snapshot. Decision: keep npm for CLI and MCP; compile the matrix in Azure from git for VSIX. |
| justification | Marketplace version is `reqlan-extension` package.json and can differ from `@reqlan/analytical` (version_management). Azure compiles the six host binaries from that `ext/v*` commit (`build_native` in azure-pipelines.yml). The VSIX then contains the engine that matches the extension checkout, not a different `@reqlan/analytical` npm tarball. |
| negative | Do not feed npm_distribution into Marketplace or Open VSX packaging. Do not wait for an `analytical/v*` tag, and do not poll `npm view` or `npm pack` (`scripts/fetch-native-packages.mjs --latest`). That path couples two tag channels and two clocks. Changesets can bump `@reqlan/analytical` and `reqlan-extension` independently (version_management). `--latest` then packs a different `@reqlan/analytical` semver than the `ext/v*` tag, or the pipeline waits on packages that are not on the registry yet. |
| status | done |
| tests | native-packaging.test.ts |
Ancestor context
No ancestor chain recorded.
Outbound references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | native_targets | reqlan rq/distribution/distribution.rq | native_targets |
| references | vsix_export | reqlan rq/distribution/distribution.rq | vsix_export |
| references | extension_distribution | reqlan rq/distribution/distribution.rq | extension_distribution |
| references | npm_distribution | reqlan rq/distribution/distribution.rq | npm_distribution |
| references | rust_binary_distribution | reqlan rq/distribution/distribution.rq | rust_binary_distribution |
| file_reference | "../../packages/analytical/test/native-packaging.test.ts" | packages/analytical/test/native-packaging.test.ts | native-packaging.test.ts |
| references | version_management | reqlan rq/distribution/distribution.rq | version_management |
| file_reference | "../../azure-pipelines.yml" | azure-pipelines.yml | azure-pipelines.yml |
Inbound references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | version_management | reqlan rq/distribution/distribution.rq | vsix_native_not_from_npm |
| references | rust_binary_distribution | reqlan rq/distribution/distribution.rq | vsix_native_not_from_npm |
| references | vsix_export | reqlan rq/distribution/distribution.rq | vsix_native_not_from_npm |
| references | extension_distribution | reqlan rq/distribution/distribution.rq | vsix_native_not_from_npm |
| references | extension_pipeline_cache | reqlan rq/distribution/distribution.rq | vsix_native_not_from_npm |
| references | native_host_binary_distributed | reqlan rq/distribution/native_host_binary.rq | vsix_native_not_from_npm |
Unresolved references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| None | |||
Local graph
Initialising graph…