Contributing
Contributing to dagster-slurm
We welcome contributions of all kinds—bug fixes, documentation improvements, new launchers, and cluster-specific recipes.
How to get started:
- Browse open issues, especially those labelled
good first issue. - Check the project board for planned work.
- Fork the repository and create a feature branch.
- Follow Conventional Commits (
feat:,fix:,chore:). - Run formatting and linting before pushing:
pixi run -e build --frozen fmtpixi run -e build --frozen lint
- Open a pull request against
main.
Coding conventions: Python 3.12, 4-space indentation, type hints on public APIs.
Reporting Issues
Found a bug or have a feature request? Open an issue.
To help us resolve issues quickly, please include:
- dagster-slurm version
- Python version and OS
- Slurm version (if applicable, run
sinfo --version) - A minimal reproducible example (ideally as a full git repository including the pixi-based dependencies with a lockfile and ideally reproduciblle with the docker-based local slurm cluster)
- Full traceback or error output
- Expected vs. actual behaviour
Seeking Support
- GitHub Discussions — For questions, how-to requests, and general feedback, use GitHub Discussions. This is the preferred channel for conversations that are not confirmed bugs.
- GitHub Issues — For confirmed bugs and feature requests.
- Dagster Community Slack — For questions that span the broader Dagster ecosystem, join the Dagster Slack.
Development Setup
You have to have uv installed for the library development - but pixi for executing the examples.
Prerequisites
- pixi installation: https://pixi.sh/latest/installation/
curl -fsSL https://pixi.sh/install.sh | sh
- install global tools
pixi global install git make uv prek
Development setup
git clone https://github.com/ascii-supply-networks/dagster-slurm.git
cd dagster-slurm
pixi run prek-install
pixi run prek-run
Useful commands during development
# fmt
pixi run -e build --frozen fmt
# lint
pixi run -e build --frozen lint
# test
pixi run -e build --frozen test
# documentation
pixi run -e docs --frozen docs-serve
pixi run -e docs --frozen docs-build
When committing - ensure semver compatible standard commit patterns are followed.
Dependency upgrade
pixi update
pixi run -e build --frozen sync-lib-with-upgrade
cd examples pixi update
Local slurm cluster
Start a local slurm cluster via
docker compose up
ssh submitter@localhost -p 2223
# password: submitter
sinfo
The cluster runs Slurm 25.11 by default, the line most production clusters still use. CI also tests against the newest release, 26.05. To run that one locally, select its image:
docker compose down -v
IMAGE_TAG=26-05-5-1 SLURM_TAG=slurm-26-05-5-1 docker compose up -d
IMAGE_TAG picks the published image and SLURM_TAG the Slurm release that docker compose build compiles. Every image has its own SSH host keys, so after switching versions or pulling a rebuilt image, remove the old entry with ssh-keygen -R "[localhost]:2223" before connecting again. Changes to the Slurm versions go in docker-compose.yml, .github/workflows/library.yaml and .github/workflows/slurm-image-builder.yml.