Contributing to CLOE ToolboxΒΆ
Welcome to the CLOE Toolbox contribution guide! This guide will help you contribute effectively to our modular suite of building blocks and tools.
π― OverviewΒΆ
The CLOE Toolbox is a modular ecosystem of reusable building blocks designed to accelerate development and standardize practices across our organization. By contributing, you're helping to:
- Accelerate Development: Reusable components reduce time-to-market
- Standardize Practices: Consistent development patterns across teams
- Enable Collaboration: Shared tools that benefit the entire organization
- Ensure Quality: Built-in testing, security, and best practices
graph TB
A[π‘ Idea] --> B{New Package?}
B -->|Yes| C[οΏ½ Request Repository]
B -->|No| D[π Find Existing Package]
C --> E[ποΈ Setup Development]
D --> E
E --> F[π» Develop & Test]
F --> G[οΏ½ Document]
G --> H[π Create PR]
H --> I[β
Review & Deploy]
οΏ½ Getting StartedΒΆ
PrerequisitesΒΆ
Before you begin contributing, ensure you have:
- Development Environment: VSCode with devcontainer
- Version Control: Git configured with your Azure DevOps credentials
- Python Environment: Python 3.11+ with uv for package management
- Azure DevOps Access: Permissions to create work items and repositories
Choose Your Contribution PathΒΆ
flowchart TD
A[What do you want to contribute?] --> B{New Tool/Package}
A --> C{Enhance Existing Package}
A --> D{Fix Bug/Issue}
B --> E[π Request New Repository]
C --> F[π Find Package Repository]
D --> F
E --> G[ποΈ Setup New Project]
F --> H[π Fork & Branch]
G --> I[π» Develop & Test]
H --> I
I --> J[π Document Changes]
J --> K[π Submit PR]
π Quick ReferenceΒΆ
Creating a New PackageΒΆ
- Create feature in Azure DevOps board
- Request repository setup from Product Management
- Clone repository to local environment (VSCode recommended)
- Use appropriate package template for initialization
- Set package version and owner in
pyproject.toml - Write comprehensive tests
- Create documentation in
docsfolder
- Create PR or commit to main branch
- Verify package deployment on PyPI stream
π Detailed GuidesΒΆ
For comprehensive information on specific aspects of contributing:
- Development Workflow - Step-by-step development process, branching strategy, and code review
- Git & Conventional Commits - Git workflow, commit standards, and Azure DevOps integration
- Documentation Guidelines - How to write effective documentation with MkDocs
- Python Development - Python-specific coding standards and best practices
For information about our three-tier building blocks architecture, see the Building Blocks page.
Ready to Contribute?
Choose your path from the detailed guides above and start contributing to the CLOE Toolbox ecosystem!
Remember to start with a clear plan, follow our guidelines, and don't hesitate to ask for help when needed.
π Getting HelpΒΆ
π¬ Communication ChannelsΒΆ
- π¨βπΌ Product Manager: Repository setup, concept questions, strategic questions
- π₯ Developer Chat: Microsoft Teams for technical discussions
- π Work Items: Azure DevOps for bug reports and feature requests
- π Documentation: Comprehensive guides for self-service help
π Common QuestionsΒΆ
Q: How do I request a new repository? A: Contact Product Management with your project proposal and requirements.
Q: Which building block type should I create? A: See our Building Blocks to understand the different types.
Q: How do I link my commits to work items?
A: Include the work item ID in your commit message: feat: new feature #1234
Q: Where can I see if my package was published? A: Check our PyPI stream for published packages.
π Ready to Contribute?ΒΆ
Choose your path and start contributing to the CLOE Toolbox ecosystem:
-
Master our Git workflow and conventional commit standards
-
Create clear, helpful documentation for your contributions
-
Follow Python-specific coding standards and best practices
Pro Tip
Start small! Consider improving documentation or fixing a small bug as your first contribution to get familiar with our process.