Contributing¶
We welcome contributions!
Development Setup¶
git clone https://github.com/argonne-lcf/ensemble_launcher.git
cd ensemble_launcher
pip install -e ".[dev-core]"
This installs the core dev dependencies (pytest, pytest-timeout, pytest-asyncio) plus mpi4py.
For the full dev environment including MCP and inference dependencies:
Building Docs¶
Running Tests¶
Tests live in ensemble_launcher/tests/ and must be run from that directory:
cd ensemble_launcher/tests
pytest # all tests
pytest test_ensemble_launcher.py # end-to-end launcher tests
pytest test_async_master.py # async master/worker tests
pytest test_cluster.py # cluster-mode tests
pytest test_mcp.py # MCP interface tests
pytest test_ensemble_launcher.py::test_el_run # single test
Tests require pytest-asyncio. Async tests are decorated with @pytest.mark.asyncio.
Pull Request Workflow¶
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
Support¶
- Issues: GitHub Issues
- Discussions: GitHub Discussions