openeditorcode.devFIELD MANUAL / 0.2.41Español
releases.md DOCUMENTATION

20 — Under the hood

Build and publication

How editor binaries are built, npm is packaged and a release is published.

v0.2.41Source review ·
On this page

Distribution changes in 0.2.39–0.2.40

  • The workflow tests the PowerShell installer and attaches install.ps1 to GitHub Releases alongside binaries and SHA256SUMS. Documentation includes real plugin screenshots; plugin 0.3.0 uses an independent release tag/workflow.
  • Before publishing the launcher, verify-registry-release.ts waits for public metadata and archives for both platforms; afterward it checks all three packages. Runtime and launcher verify complete platform availability before offering/installing an update.
  • Distribution CI checks Windows/WSL saving, permissions and installer failures. The workbench image test checks actual height and decoding; a dedicated graphics smoke verifies executable interaction. This does not certify every protocol or terminal.

Build by platform

build.ts compiles bootstrap/executable.ts with the Solid plugin, minification and Bun compile. Bytecode is used on Windows but disabled for Linux x64 due to observed Bun 1.3.14 crashes. Windows outputs packages/oec-win32-x64/bin/oec.exe; Linux outputs packages/oec-linux-x64/bin/oec. Current output is not dist/oec.exe.

build without a target chooses Windows on win32 hosts and Linux otherwise. It does not detect alternative architectures. package-check requires both binaries and checks minimum files for all three packages.

Explicit targets and package validationshell
bun run build:windows
bun run build:linux
bun run pack:check

Three npm packages

openeditorcode contains the launcher, README, manuals and license. @2jmalvarez/oec-win32-x64 and @2jmalvarez/oec-linux-x64 contain the corresponding executable. The root declares them optional with exact versions and the launcher resolves the appropriate one.

Release procedure

  1. Update the root version, both platform packages and bun.lock. Review documentation for the new version.
  2. Run typecheck, test, Windows/Linux builds, preflight v<VERSION> and pack:check. Workflows repeat distribution checks.
  3. After validating the release, publish the commit and annotated v<VERSION> tag. The tag triggers publish.yml.
  4. The workflow builds and tests both platforms, checks the Linux tarball executable mode and publishes platform packages before the root via npm trusted publishing (OIDC, Node 24). The GitHub release attaches binaries and SHA256SUMS.
  5. Check the Actions result and all three npm versions before announcing publication.

Current workflow details

publish.yml accepts v* tags and workflow_dispatch. GitHub release and npm jobs are independent after building; one can finish while the other fails. A GitHub prerelease does not itself configure an alternative npm dist-tag.

Checksums are integrity checks, not independent signatures. The workflow uses npm OIDC publishing without an explicit NPM_TOKEN; it does not configure SBOM or additional attestations. Preflight checks versions and tag, not documentation content synchronization.

Chapter sources

Links pinned to the reviewed commit; they do not follow main.

Static documentation · ES / ENView coverage ↗