Skip to content
chromosomix

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.

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.

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.

You need Node 22.12 or later.

Terminal window
git clone https://github.com/js2264/chromosomix
cd chromosomix
npm install
npm run dev # the web app at http://localhost:5173
npm run test:nofixtures # the tests that need no generated fixtures
npm run build:cli && npm link # the chromosomix command, from your clone

The rest of the suite needs fixtures generated by Python scripts (npm run fixtures).

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.

Terminal window
npm ci --prefix documentation
npm run docs:dev # the site at http://localhost:4321
npm run docs:build # every internal link checked

A 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