feat: add npm publish workflow and rename package to @ecmwf.int/tensogram - #62
Merged
Conversation
HCookie
force-pushed
the
feature/publish-npm
branch
from
April 21, 2026 12:36
3e96397 to
a7ac3ed
Compare
Rename all occurrences of @ecmwf/tensogram to @ecmwf.int/tensogram across 41 files including source, docs, plans, and package manifests. Regenerate package-lock.json for typescript/, tensoscope/, and examples/typescript/.
npm does not walk up to the repo root when packaging a subdirectory, so typescript/package.json's "files": ["LICENSE"] entry would produce an empty-license tarball without this step.
Replace inlined wasm-pack + tsc with npm run build so typescript/package.json stays the single source of truth for how to build the npm distributable. No behaviour change — same commands, same outputs.
Plans and specs under docs/superpowers/ were not meant to ship with the public docs. Main already removed its copy in 9fe6856; align this branch by deleting the whole directory (including this PR's just-added publish-npm plan/spec).
Renaming the package from @ecmwf/tensogram to @ecmwf.int/tensogram added 4 chars to the middle box's first content line without adjusting its surrounding whitespace, so the interior width became 38 cols while the box borders stayed at 34. Trim padding from 3+4 to 1+2 (matching the 'TS Application' line's pattern) so all 8 interior lines are 34 cols.
Previously Node was curl'd + extracted per-job (~10 s overhead each, 4 workflows). Pre-baking in the CI image removes that overhead, consolidates the version pin to the Dockerfile, and drops the nodejs.org runtime dependency. deploy-tensoscope.yml still installs Node inline — it runs on bare Ubuntu with no container, so it cannot use the image.
sametd
force-pushed
the
feature/publish-npm
branch
from
April 22, 2026 01:41
f501c82 to
e82da28
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@ecmwf/tensogramto@ecmwf.int/tensogramacross 40 files (source imports,package.jsonmanifests, lock files, docs)publishConfig: { "access": "public" }totypescript/package.json.github/workflows/publish-npm.yml— manualworkflow_dispatchworkflow that publishes@ecmwf.int/tensogramto npmjs.com, matching the style ofpublish-crates.ymlandpublish-pypi-tensogram.ymlKey workflow design decisions:
NPMJS_API_TOKENsecret in anpmGitHub EnvironmentLICENSEintotypescript/before publish (npm doesn't walk up to repo root).npmrc(contains auth token) on exit withif: always()Test plan
@ecmwf.intscope is registered and owned on npmjs.comnpmGitHub Environment in repo settingsNPMJS_API_TOKEN(publish-scoped npm token for@ecmwf.int) to that environment's secretsrelease-preflightworkflow to confirm version consistency passespublish-npmworkflow manually and confirm it publishes successfully🤖 Generated with Claude Code
Docs Preview
https://sites.ecmwf.int/docs/tensogram/pull-requests/PR-62