Thank you for your interest in contributing to the OKS-CLI Project ! This document describes how you can participate and help us improve the project.
There are several ways to contribute to this project:
- Report bugs - Help us identify and fix issues
- Suggest new features - Propose improvements and new functionality
- Improve the documentation - Make our guides clearer and more helpful
Before reporting a bug, check that it has not already been reported by consulting existing issues.
Suggestions for improvements are welcome! Before reporting a bug :
- Check if the Bug has already been reported
- Use the "Bug Report" issue template
- Provide a clear and concise description of the problem
- Include steps to reproduce the bug
- Describe the actual behavior
- Describe the expected behavior
- Specify your environment (OS, oks-cli version, terminal, etc.)
- Attach any relevant logs, screenshots, or error messages
Suggestions for improvements are welcome! Before proposing a feature :
- Check if the Feture has already been reported
- Use the "Feature Request" issue template
- Clearly describe the problem your proposal solves
- Explain your proposed solution
- Mention any alternatives you considered
- Wait for feedback from the team — or, if you're ready, implement the feature yourself by opening a pull request
Before you start development, make sure you have :
- Python 3.11 or newer
- Pip
# Clone the repository
git clone https://github.com/outscale/oks-cli.git
cd oks-cli
# Create a virtual environment
python -m venv venv
# Activate your virtual environment
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Install in editable mode
pip install -e .oks-cli/
├── oks_cli/ # Main source code
│ ├── __pycache__/ # Compiled Python files
│ ├── __init__.py # Package initialization
│ ├── cache.py # Cache management functionality
│ ├── cluster.py # Cluster operations
│ ├── main.py # Main CLI entry point
│ ├── netpeering.py # NetPeering management
│ ├── profile.py # Profile management
│ ├── project.py # Project configuration
│ ├── quotas.py # Quota management
│ └── utils.py # Utility functions
├── setup.py # Dependencies configuration
├── requirements.txt # Dependencies list
├── CONTRIBUTING.md # This file
└── README.md # Documentation
- Fork the repository
- Create a branch for your feature (git checkout -b feature)
- Commit your changes (git commit -m 'Adding my feature')
- Push it to your branch (git push origin feature)
- Open a Pull Request
- The code follows the project's Python conventions and CLI architecture
- Documentation is updated as needed
- Commits are well formatted
- No merge conflicts
Use the provided template and include:
- Summary of changes
- Type of change (bug fix, new feature, breaking change, etc.)
- Tests performed
- Screenshots if applicable
- Related issues (e.g., "Fixes #123")
- Follow project naming conventions
- Use configured linting tools (PEP8)
- Respect existing indentation and formatting
- Comment out complex code
Use the conventional format :
git commit -m "feat: brief description of your functionality"
Accepted types : feat, fix, docs, style, refactor, test
- Update documentation as needed
- Use docstrings for public functions and classes
- Keep README.md up to date
- Manual testing : The CLI should be tested locally. Verify that the commands work and do not generate errors.
- Review by someone from our team : A member of our team will review the PR to ensure the code is clear and consistent.
- Merge : A maintainer merges the PR after validation.
If you have questions not covered in this guide :
- Consult existing issues
- Contact support
Thank you to all the contributors who help improve this project! 🚀
By contributing to this project, you agree that your contributions are licensed under the same license as the project.