Contributing
Contributions are very welcome. Please file issues or submit pull requests in our GitHub repository. All contributors will be acknowledged, but must abide by our Code of Conduct.
Setup
uv venvto create a virtual environmentsource .venv/bin/activateto activate itmakefor a list of available commands
| target | action |
|---|---|
| commands | show available commands |
| package | build package |
| check | check Python code issues |
| clean | clean up |
| docs | build documentation |
| fix | fix formatting and code issues |
| publish | publish using ~/.pypirc credentials |
| build-wasm | build WASM version of example notebook |
| run-local | run the example notebook directly |
| run-wasm | run the WASM version of the example notebook |
Publishing the npm package
The standalone JavaScript bundle (js/dist/marimo-learn.js) is published to npm separately from the Python package.
-
One-time setup: create an account at npmjs.com if you don't have one, then run
npm loginin your terminal. -
Check the package name before the first publish — if
marimo-learnis already taken, change"name"injs/package.jsonto a scoped name such as"@gvwilson/marimo-learn". -
Build and publish from the
js/directory:cd js npm run build npm publish # unscoped package # or: npm publish --access public # required for scoped packages -
Subsequent releases: bump
"version"injs/package.jsonfollowing semver, then repeat step 3. Only thedist/directory is uploaded; source files and test fixtures are excluded.
Publishing the Python package
Run make publish from the project root. This uses the credentials in ~/.pypirc to upload the distribution files in dist/ to PyPI via Twine. Build the distribution first with make build if you haven't already.