Contributing to PyDASA#
⚠️⚠️⚠️ Contributions are welcome! We use Conventional Commits for automatic versioning and changelog generation to maintain a clean and predictable release process. ⚠️⚠️⚠️
Commit Message Format#
<type>(<scope>): <subject>
Types:
feat: New feature (triggers MINOR version bump).fix: Bug fix (triggers PATCH version bump).docs: Documentation changes only.refactor: Code refactoring without feature changes.test: Adding or updating tests.perf: Performance improvements.chore: Other changes that don’t modify src or test files.
Breaking Changes: Add BREAKING CHANGE: in commit footer to trigger MAJOR version bump.
Examples#
# Feature (0.6.0 → 0.7.0)
git commit -m "feat(workflows): add uncertainty propagation analysis"
# Bug fix (0.6.0 → 0.6.1)
git commit -m "fix(buckingham): resolve matrix singularity edge case"
# Breaking change (0.6.0 → 1.0.0)
git commit -m "feat(api)!: redesign Variable API
BREAKING CHANGE: Variable.value renamed to Variable.magnitude"
Development Workflow#
# Clone and setup
git clone https://github.com/DASA-Design/PyDASA.git
cd PyDASA
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest tests/
# Commit with conventional format
git commit -m "feat(module): add new feature"
# Create PR for review
Release Process#
Make changes with conventional commit messages.
Create PR and merge to
main.- GitHub Actions automatically:
Analyzes commit messages.
Bumps version (MAJOR.MINOR.PATCH).
Updates
_version.pyandpyproject.toml.Creates GitHub release with changelog.
Publishes to PyPI.