Unreleased development workflow. Use the exact candidate artifacts described below. The published npm release remains beta.1.
Develop against the current candidate#
Use the TypeScript starter when beginning an application trial against unreleased
Marionette changes. It includes editable rows, asynchronous selection, cancellation,
ownership cleanup, lint, tests, and Vite. It has no backend or persistence; connect
its navigate(id) function to your application's router when URLs are needed.
Choose matching packages and documentation#
The published release is 5.0.0-beta.1, on npm's latest tag. The website's
beta reference describes that release. Development artifacts may have the same
version string and newer behavior: identify them by their full source commit and
tarball integrity hashes. The next channel is reserved for development after the
first stable v5 release.
Download release-candidate-<full-source-commit> from a successful run of
Release promotion.
Pull requests build this artifact in dry-run mode; it does not publish packages.
Select the run for the commit you intend to test. Check release-evidence.json
for that commit and candidate-validation.json for completed validation. A green
unrelated job or the package version alone does not identify the candidate.
GitHub may require signing in to download workflow artifacts.
Extract the artifact into an empty directory. Keep its five tarballs beside the
starter directory: the starter lockfile selects those exact local files and
integrity hashes. Use the Node and npm versions recorded in the artifact's
release-evidence.json toolchain, then:
cd starter
npm ci
npm run typecheck
npm run lint
npm test
npm run build
npm run dev
The artifact's START-HERE.md repeats these instructions. There is no repository
checkout, linking step, or separate runtime installation. To create an artifact
from source, maintainers use the release procedure.
Creating or testing a candidate does not publish it.
Read node_modules/marionette/dist/docs/docs/readme.md and its neighboring pages
for the APIs in this candidate. node_modules/marionette/dist/docs/manifest.json
records its source revision. Give an agent that installed documentation path;
start with the compact reference, then the relevant API.
Do not combine an unreleased starter with registry beta.1 dependencies.
Edit and verify a feature#
Start with workspace.ts: its typed options describe the mount element and the
asynchronous note loader. main.ts supplies browser setup and a demonstration
loader. workspace.test.mjs uses Node and jsdom against the installed packages.
TypeScript checks options, native models, and owned state without application
casts or declarations copied from the framework.
- Edit a row without opening it, then reverse the rows. Its draft survives.
- Open the slow first note, then the second. The late first load cannot replace it.
- Edit
workspace.tswhile a load is pending. Vite replaces the workspace and cancels the old load. Code updates deliberately reset application state; row reconciliation during ordinary use preserves surviving DOM and drafts. - Run
npm run typecheck,npm run lint,npm test, andnpm run build. Add a regression for the behavior you change. Use a real browser for focus, layout, keyboard interaction, and your router's history behavior.
The browser suite installs this portable kit outside the checkout, moves it, and edits its running Vite module repeatedly. It checks that detached buttons stop handling events and pending work cannot commit into the replacement workspace. This evidence covers the starter's owner boundary, not arbitrary application HMR.
Debug the authored source#
The candidate's ESM and CommonJS distributions ship source maps with embedded
TypeScript. The starter's vite.config.mjs loads dependency maps through Vite's
plugin API and retains them through the application build. It also leaves
Marionette packages outside dependency prebundling while developing.
Enable JavaScript source maps in browser developer tools. Open a Marionette frame
or search Sources for src/modules/view.ts; the embedded TypeScript is available
without the library checkout. For Node consumers, use node --enable-source-maps.
The application build emits maps too; decide whether to distribute your own
application source maps when deploying.
For symptoms and framework error codes, use troubleshooting. For a larger typed feature, see TypeScript, application tests, and consumer lint.