Contributing =========== We love your input! We want to make contributing to AWS SSO Manager as easy and transparent as possible, whether it's: - Reporting a bug - Discussing the current state of the code - Submitting a fix - Proposing new features - Becoming a maintainer Development Process ----------------- We use GitHub to host code, to track issues and feature requests, as well as accept pull requests. 1. Fork the repo and create your branch from `master`. 2. If you've added code that should be tested, add tests. 3. If you've changed APIs, update the documentation. 4. Ensure the test suite passes. 5. Make sure your code lints. 6. Issue that pull request! Local Development Setup --------------------- 1. Clone the repository: .. code-block:: bash git clone https://github.com/jmfelice/aws_sso.git cd aws_sso 2. Create a virtual environment: .. code-block:: bash python -m venv venv source venv/bin/activate # On Linux/Mac # OR .\.venv\Scripts\Activate.ps1 # On Windows PowerShell 3. Install development dependencies: .. code-block:: bash pip install -e ".[dev]" Running Tests ----------- Run the test suite using pytest: .. code-block:: bash pytest For coverage report: .. code-block:: bash pytest --cov=aws_sso Code Quality ----------- We use several tools to maintain code quality: 1. **MyPy** for type checking: .. code-block:: bash mypy . 2. **Ruff** for linting: .. code-block:: bash ruff check . 3. **Flake8** for additional linting: .. code-block:: bash flake8 . Documentation ------------ We use Sphinx for documentation. To build the docs: 1. Install documentation dependencies: .. code-block:: bash pip install -e ".[docs]" 2. Build the documentation: .. code-block:: bash cd docs make html The documentation will be available in `docs/build/html`. Pull Request Process ------------------ 1. Update the README.md with details of changes to the interface, if applicable. 2. Update the docs explaining the new functionality, if applicable. 3. The PR will be merged once you have the sign-off of at least one other developer. Any contributions you make will be under the MIT Software License -------------------------------------------------------------- In short, when you submit code changes, your submissions are understood to be under the same [MIT License](http://choosealicense.com/licenses/mit/) that covers the project. Feel free to contact the maintainers if that's a concern.