Contributing
============
We welcome contributions to NeuRodent! This guide will help you get started with developing and contributing to the project.
Development Setup
-----------------
We recommend using `uv `_ for managing the development environment:
.. code-block:: bash
# Clone the repository
git clone https://github.com/josephdong1000/neurodent.git
cd neurodent
# Install with development dependencies
uv sync --all-groups
Running Tests
-------------
To run the test suite:
.. code-block:: bash
uv run pytest
To run tests with coverage:
.. code-block:: bash
uv run pytest --cov=neurodent
Building Documentation
----------------------
To build the documentation locally:
.. code-block:: bash
uv run sphinx-build -b html docs docs/_build/html
For live-reloading during development:
.. code-block:: bash
uv run sphinx-autobuild docs docs/_build/html
Code Style
----------
We follow standard Python code style conventions:
- Use `ruff` for code formatting and linting
- Follow PEP 8 guidelines
- Add type hints where appropriate
- Write docstrings in NumPy style
Pull Request Process
---------------------
1. Fork the repository and create a new branch for your feature or bug fix
2. Make your changes and add tests if applicable
3. Ensure all tests pass and documentation builds successfully
4. Submit a pull request with a clear description of the changes
Questions?
----------
If you have questions about contributing, please open an issue on the `GitHub repository `_.