Skip to content

Contributing

Thank you for your interest in contributing to f5xc-auth!

This project uses 100% automated CI/CD for releases. No manual intervention required!

  1. Merge PR to main - Automated release workflow triggers
  2. Analyze commits - Determines version bump based on conventional commits
  3. Run tests and build - Ensures quality before release
  4. Update version - Automatically increments package.json
  5. Generate changelog - Creates/updates CHANGELOG.md
  6. Create GitHub release - Publishes release notes
  7. Publish to npm - Pushes package to npmjs.com
  8. Commit changes - Updates version files back to main
  • 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)

All commits must follow the Conventional Commits specification.

<type>(<scope>): <subject>
<body>
<footer>
TypeDescriptionVersion BumpExample
featNew featureMinor (1.x.0)feat: add certificate validation
fixBug fixPatch (1.0.x)fix: resolve token expiration issue
docsDocumentationPatch (1.0.x)docs: update authentication guide
perfPerformance improvementPatch (1.0.x)perf: optimize HTTP client caching
refactorCode refactoringPatch (1.0.x)refactor: simplify profile loading logic
testTests onlyNo releasetest: add profile manager tests
choreMaintenanceNo releasechore: update dependencies
ciCI/CD changesNo releaseci: update release workflow
buildBuild systemNo releasebuild: update TypeScript config

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 boolean
Terminal window
git checkout main
git pull origin main
git checkout -b feature/your-feature-name
  • Write code following project conventions
  • Add/update tests
  • Update documentation if needed
Terminal window
git add .
git commit -m "feat: add new authentication method"
Terminal window
git push origin feature/your-feature-name
gh pr create --title "feat: add new authentication method" --body "Description of changes"
Terminal window
# Install dependencies
npm install
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Type check
npm run typecheck
# Build
npm run build

Use conventional commit format:

feat: add custom CA bundle support
fix: resolve token refresh issue
docs: update quick start guide
  • 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