Thank you for your interest in contributing to CryoFM! This document provides guidelines for contributing to the project.
This project follows Semantic Versioning (SemVer) for version management.
Version numbers follow the format: MAJOR.MINOR.PATCH
- MAJOR: Incremented for incompatible API changes
- MINOR: Incremented for backward-compatible functionality additions
- PATCH: Incremented for backward-compatible bug fixes
The version number is stored in src/cryofm/__init__.py:
__version__ = "0.1.0"The pyproject.toml automatically reads the version from this file, so you only need to update it in one place.
This project follows the Conventional Commits specification for commit messages.
Commit messages should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the code (white-space, formatting, etc.)refactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing tests or correcting existing testsbuild: Changes that affect the build system or external dependenciesci: Changes to CI configuration files and scriptschore: Other changes that don't modify src or test files
feat: add support for new data format
feat(datasets): add EMDB data loader
fix: resolve memory leak in sampling process
fix(sampling): correct timestep calculation
docs: update installation instructions
refactor(models): simplify UNet architecture
test: add unit tests for FFT operations
This project recommends following the Conventional Branch specification for branch names.
Branch names should follow the format:
<type>/<description>
feature/orfeat/: For new featuresbugfix/orfix/: For bug fixeshotfix/: For urgent fixesrelease/: For branches preparing a releasechore/: For non-code tasks like dependency or documentation updates
- Use lowercase letters, numbers, and hyphens only
- Keep names descriptive yet concise
- No consecutive, leading, or trailing hyphens
feature/add-emdb-support
feat/new-sampling-method
bugfix/fix-memory-leak
fix/correct-fsc-calculation
hotfix/security-patch
release/v1.2.0
chore/update-dependencies
The user guide is located in the user-guide/ directory and uses MkDocs for documentation generation.
- Install MkDocs and required plugins:
pip install mkdocs mkdocs-material- Navigate to the user guide directory:
cd user-guide- Edit the Markdown files in
user-guide/docs/directory - If adding a new page, update
user-guide/mkdocs.ymlto include it in the navigation - Preview your changes locally:
mkdocs serveThis will start a local server (usually at http://127.0.0.1:8000) where you can preview the documentation
Step 1: Create a new Markdown file in the appropriate directory:
# For example, adding a new how-to guide
touch user-guide/docs/how-to/new-feature.mdStep 2: Add content to the file:
# New Feature Guide
This guide explains how to use the new feature...
## Getting Started
...Step 3: Update user-guide/mkdocs.yml to include the new page in navigation:
nav:
- How-to Guides:
- how-to/working-with-emdb.md
- how-to/new-feature.md # Add your new page hereStep 4: Commit your changes:
git add user-guide/docs/how-to/new-feature.md user-guide/mkdocs.yml
git commit -m "docs: add guide for new feature"Step 1: Edit the existing Markdown file:
# Edit the file you want to update
code user-guide/docs/getting-started/installation.mdStep 2: Preview your changes:
cd user-guide
mkdocs serveStep 3: Commit your changes:
git add user-guide/docs/getting-started/installation.md
git commit -m "docs: update installation instructions"If you have questions about contributing or version management, please open an issue on GitHub.