Thank you for your interest in contributing to ProSim! We welcome bug reports, feature requests, documentation improvements, and pull requests from the community.
- Code of Conduct
- Getting Started
- Development Setup
- Making Changes
- Running Tests
- Submitting a Pull Request
- Reporting Bugs
- Requesting Features
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this standard. Please report unacceptable behavior by opening a GitHub issue.
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/<your-username>/prosim.git cd prosim
- Add the upstream remote:
git remote add upstream https://github.com/alch3mistdev/prosim.git
# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Install the package with development dependencies
pip install -e ".[dev]"
# Copy the environment template and fill in your API key
cp .env.example .envSet ANTHROPIC_API_KEY in .env to enable workflow generation tests that call
the Claude API.
cd frontend
npm install- Create a feature branch off
main:git checkout -b feat/my-feature
- Follow the existing code style:
- Python: PEP 8 with Pydantic models
for data structures and
pytestfor tests. - TypeScript/React: strict TypeScript, functional components, Tailwind CSS utility classes.
- Python: PEP 8 with Pydantic models
for data structures and
- Keep commits focused and write clear commit messages.
- Add or update tests to cover your changes (see Running Tests).
pytest tests/ -vFor coverage:
pytest tests/ --cov=src/prosim --cov-report=term-missingcd frontend && npx next buildWith the backend running (prosim serve --port 8000):
./scripts/verify-api.sh- Push your branch to your fork:
git push origin feat/my-feature
- Open a pull request against the
mainbranch of this repository. - Fill in the PR template, describing what changed and why.
- Ensure all existing tests pass and add new tests where appropriate.
- A maintainer will review your PR and may request changes before merging.
Please open a GitHub issue and include:
- A clear and descriptive title.
- Steps to reproduce the problem.
- Expected and actual behaviour.
- ProSim version, Python version, and OS.
- Relevant log output or error messages.
Open a GitHub issue with the label enhancement and describe:
- The problem you are trying to solve.
- Your proposed solution or workflow.
- Any alternatives you have considered.
We appreciate every contribution, big or small. Thank you for helping make ProSim better!