Contributing
Thank you for your interest in contributing to f5xc-auth!
Automated Release Process
Section titled “Automated Release Process”This project uses 100% automated CI/CD for releases. No manual intervention required!
How It Works
Section titled “How It Works”- Merge PR to main - Automated release workflow triggers
- Analyze commits - Determines version bump based on conventional commits
- Run tests and build - Ensures quality before release
- Update version - Automatically increments package.json
- Generate changelog - Creates/updates CHANGELOG.md
- Create GitHub release - Publishes release notes
- Publish to npm - Pushes package to npmjs.com
- Commit changes - Updates version files back to main
What This Means for Contributors
Section titled “What This Means for Contributors”- Use conventional commits (required for automated versioning)
- Merge PRs to main (triggers the automation)
- Never manually bump versions (automation handles this)
- Never manually create releases (automation handles this)
- Never manually publish to npm (automation handles this)
Conventional Commits
Section titled “Conventional Commits”All commits must follow the Conventional Commits specification.
Commit Format
Section titled “Commit Format”<type>(<scope>): <subject>
<body>
<footer>Commit Types
Section titled “Commit Types”| Type | Description | Version Bump | Example |
|---|---|---|---|
feat | New feature | Minor (1.x.0) | feat: add certificate validation |
fix | Bug fix | Patch (1.0.x) | fix: resolve token expiration issue |
docs | Documentation | Patch (1.0.x) | docs: update authentication guide |
perf | Performance improvement | Patch (1.0.x) | perf: optimize HTTP client caching |
refactor | Code refactoring | Patch (1.0.x) | refactor: simplify profile loading logic |
test | Tests only | No release | test: add profile manager tests |
chore | Maintenance | No release | chore: update dependencies |
ci | CI/CD changes | No release | ci: update release workflow |
build | Build system | No release | build: update TypeScript config |
Breaking Changes
Section titled “Breaking Changes”For breaking changes (major version bump), add BREAKING CHANGE: in the commit footer:
feat: redesign authentication API
BREAKING CHANGE: The authenticate() method now returns a Promise<AuthResult> instead of booleanDevelopment Workflow
Section titled “Development Workflow”1. Create Feature Branch
Section titled “1. Create Feature Branch”git checkout maingit pull origin maingit checkout -b feature/your-feature-name2. Make Changes
Section titled “2. Make Changes”- Write code following project conventions
- Add/update tests
- Update documentation if needed
3. Commit with Conventional Format
Section titled “3. Commit with Conventional Format”git add .git commit -m "feat: add new authentication method"4. Push and Create PR
Section titled “4. Push and Create PR”git push origin feature/your-feature-namegh pr create --title "feat: add new authentication method" --body "Description of changes"Testing Locally
Section titled “Testing Locally”# Install dependenciesnpm install
# Run testsnpm test
# Run tests in watch modenpm run test:watch
# Type checknpm run typecheck
# Buildnpm run buildPull Request Guidelines
Section titled “Pull Request Guidelines”PR Title
Section titled “PR Title”Use conventional commit format:
feat: add custom CA bundle supportfix: resolve token refresh issuedocs: update quick start guideBefore Submitting
Section titled “Before Submitting”- Tests pass (
npm test) - Type check passes (
npm run typecheck) - Build succeeds (
npm run build) - Commit messages follow conventional format
- Documentation updated (if needed)
- No manual version changes in package.json