Version: v1.0.0 → v1.1.0 Published: 2026-01-01 Status: Live in CircleCI Registry
src/
└── @orb.yml (422 lines - monolithic)
src/
├── @orb.yml (113 lines - imports only)
├── commands/
│ ├── format.yml (67 lines)
│ ├── lint.yml (73 lines)
│ ├── danger.yml (81 lines)
│ └── rebase.yml (69 lines)
├── jobs/
│ ├── code-quality.yml (62 lines)
│ └── pr-review.yml (15 lines)
└── executors/
└── python.yml (18 lines)
.circleci/
└── test-deploy.yml (103 lines - integration tests)
- Before: All code in single 422-line file
- After: 8 separate, focused files
- Benefit: Easier to navigate, modify, and review
- Before: Custom structure
- After: Follows official orb development kit standards
- Benefit: Better compatibility with CircleCI tooling
- Before: Editing required scrolling through large file
- After: Each component is self-contained
- Benefit: Faster development and fewer merge conflicts
- Before: Integration tests in main config
- After: Dedicated test-deploy.yml
- Benefit: Proper orb testing workflow
- Before: Limited inline comments
- After: Detailed descriptions per component
- Benefit: Better developer experience
- Auto-format with Black and isort
- Configurable line length
- Optional auto-commit
- Supports custom paths and profiles
- Pylint for code quality
- Flake8 for style compliance
- Mypy for type checking
- Bandit for security scanning
- Individual linter toggles
- Automated PR review
- Checks PR description
- Validates changelog updates
- Detects large files
- Finds TODO comments
- Smart rebasing
- Auto-conflict resolution
- Force push with safety
- Configurable base branch
- Full quality suite
- Dependency caching
- Configurable formatting/linting
- Optional auto-commit
- Automated PR analysis
- Coverage requirements
- Danger integration
- Python 3.9, 3.10, 3.11 support
- Resource class selection
- Optimized caching
- Environment configuration
- Format command testing
- Lint command testing
- Full quality suite testing
- PR review job testing
- Custom executor testing
- Individual command testing
No changes needed! The orb API remains the same:
version: 2.1
orbs:
python-quality: branchbutler-labs/python-quality@1.1.0 # Updated version
workflows:
quality:
jobs:
- python-quality/code-quality # Same APINew development workflow:
- Edit individual files instead of monolithic @orb.yml
- Run tests with test-deploy.yml
- Pack and validate:
circleci orb pack src > orb.yml circleci orb validate orb.yml
- Commands: 290 lines (65%)
- Jobs: 77 lines (17%)
- Executors: 18 lines (4%)
- Main file: 113 lines (25%)
- Tests: 103 lines
- Smallest: python.yml (18 lines)
- Largest: danger.yml (81 lines)
- Average: ~56 lines per file
- Before: Single 422-line file
- After: 8 files averaging 56 lines each
- Reduction: 87% smaller per-file complexity
- Faster navigation to specific components
- Less context switching
- Easier code reviews
- Reduced merge conflicts
- Clear component ownership
- Better git history
- Dedicated integration test suite
- Component-level testing
- Easier to add new tests
- Simple to add new commands
- Easy to create new jobs
- Clear patterns to follow
$ circleci orb pack src > orb.yml
✅ Orb packed successfully (445 lines)
$ circleci orb validate orb.yml
✅ Orb at `orb.yml` is valid
$ circleci orb publish promote branchbutler-labs/python-quality@dev:refactor minor
✅ Promoted to branchbutler-labs/python-quality@1.1.0- ✅ Published v1.1.0
- ✅ Validated structure
- ✅ Committed to main
- Add more integration tests
- Document contribution workflow
- Create CONTRIBUTING.md
- Add more commands (test, coverage, docs)
- Create additional jobs (security-scan, performance)
- Build GitHub Actions equivalent
- Orb Registry: https://circleci.com/developer/orbs/orb/branchbutler-labs/python-quality
- GitHub: https://github.com/branchbutler-labs/python-quality-orb
- CircleCI Orb Tools: https://circleci.com/docs/orb-development-kit/
- Orb Best Practices: https://circleci.com/docs/orbs-best-practices/
Refactoring completed: 2026-01-01 Version: v1.1.0 Status: Production Ready ✅