Contributing to SixGman#
Thank you for considering contributing to SixGman, a Python-based toolkit for optical network planning and simulation! We welcome contributions from the community to improve features, documentation, and performance.
How to Contribute#
There are several ways you can contribute to SixGman:
- Report Bugs
Check existing issues to see if the bug is already reported.
- Open a new issue and provide:
Steps to reproduce
Expected behavior
Actual behavior
Screenshots or error logs (if any)
- Suggest New Features
Open a feature request issue describing: - Why the feature is needed - Possible implementation ideas
- Improve Documentation
Fix typos, add examples, or clarify confusing sections.
Update the
README.mdor docstrings.
Submit Code Changes
Fork the repository Click the “Fork” button at the top right of this page.
Clone your fork:
git clone https://github.com/your-username/SixGman.git cd SixGman
Create a branch:
git checkout -b my-feature
Make your changes - Follow existing code style and conventions. - Write clear, concise commit messages:
git commit -m "Change QoT Estimation code for S-Band support"
Push and open a Pull Request:
git push origin my-feature
Then go to your fork on GitHub and open a Pull Request.
Pull Request Guidelines#
Follow PEP 8 for Python code style.
Add docstrings to all public functions and classes.
Add or update unit tests in the
tests/folder.Ensure that all tests pass before submitting your PR:
pytest -v
Include a clear description of the problem or feature in your PR.
Running the Project Locally#
Clone the repo and create a virtual environment:
git clone https://github.com/OS-ONDT/SixGman.git cd SixGman python -m venv .venv source .venv/bin/activate # Linux/Mac .venv\Scripts\activate # Windows
Install dependencies:
pip install -r requirements.txt
Run tests to verify everything works:
pytest -v
Code of Conduct#
Please note that this project follows the Contributor Covenant Code of Conduct. Be respectful and collaborative when interacting with the community.