Source code and contributing
chromosomix is free software (GPL-3.0 or later). Its code, specification, tests and these pages are in one repository: js2264/chromosomix.
Reporting a problem
Section titled “Reporting a problem”Open an issue on GitHub: what you did, what you
expected, what happened, and which build you used (About → version, or the /Producer field of
any PDF the app exports). For a file that will not open, say what kind it is and where it is hosted.
A link to the view shows it fastest (Sessions, workspaces and links);
a file on your own disk cannot travel in one, so describe it instead.
What is where
Section titled “What is where”| In the repository | What it is |
|---|---|
src/ |
the app, in TypeScript, and the command line |
SPECS.md |
the contract: what the app does and why |
CHANGELOG.md |
what changed in each release |
GLOSSARY.md |
the words the code uses in a sense of its own |
test/ |
the tests, and the oracle files the analyses are compared against |
notebooks/ |
the validation, timing, viewers, parity and laptop notebooks (How the results are checked) |
widgets/ |
the Jupyter and R packages |
electron/ |
the desktop app’s shell |
documentation/ |
these pages |
A change to what the app does changes its section of SPECS.md, and the changelog’s Unreleased
list, in the same pull request.
Building and testing it
Section titled “Building and testing it”You need Node 22.12 or later.
git clone https://github.com/js2264/chromosomixcd chromosomixnpm installnpm run dev # the web app at http://localhost:5173npm run test:nofixtures # the tests that need no generated fixturesnpm run build:cli && npm link # the chromosomix command, from your cloneThe rest of the suite needs fixtures generated by Python scripts (npm run fixtures).
Improving these pages
Section titled “Improving these pages”Each published page’s Edit page link opens its source on GitHub. The guides are written by hand in
documentation/src/content/docs/; the tasks’ parameters, the reference pages and the release notes
come from the app’s code, so change the app to change them. documentation/README.md says how to
build the site, which needs Node 22.23.4 or later, and how to write a page.
npm ci --prefix documentationnpm run docs:dev # the site at http://localhost:4321npm run docs:build # every internal link checkedA pull request from a branch of the repository, not a fork, gets a preview of its app at
chromosomix.app/pr/<number>/ and of these pages at chromosomix.app/pr/<number>/docs/, whose live
views open that app.
Documentation of chromosomix v0.20.0 · built from 40ec1ec · source
