This guide provides comprehensive information for contributors to the CircleCI Docs Static Site project.
- Ways to Contribute
- Setting Up Your Development Environment
- Contribution Workflow
- Code Style Guidelines
- Testing Guidelines
- Documentation Guidelines
- Review Process
- Release Process
There are several ways to contribute to the CircleCI Docs Static Site:
- Documentation content: Add or improve documentation pages
- Technical improvements: Enhance the site's functionality
- UI improvements: Improve the user interface and experience
- Bug fixes: Fix issues with the site or content
- Feature requests: Suggest new features or improvements
- Writing tutorials and how-to guides
- Improving API and reference documentation
- Translating content
- Fixing typos and clarifying explanations
- Developing new UI components
- Improving build performance
- Adding new functionality to the site
- Node.js: v22 or later
- npm: v8 or later
- Git: Latest version recommended
- A code editor of your choice (VS Code, IntelliJ, etc.)
-
Fork the repository:
- Visit https://github.com/circleci/circleci-docs
- Click the "Fork" button to create your own copy
-
Clone your fork:
git clone https://github.com/YOUR-USERNAME/circleci-docs.git cd circleci-docs -
Add the upstream remote:
git remote add upstream https://github.com/circleci/circleci-docs.git
-
Install dependencies:
npm ci
Create a new branch for your work:
git checkout -b type/descriptionBranch naming conventions:
docs/: Documentation changesfeature/: New featuresfix/: Bug fixesrefactor/: Code refactoringstyle/: Style and UI changestest/: Adding or modifying tests
Example: docs/add-kubernetes-guide or fix/broken-navigation
-
Update your branch:
git checkout main git pull upstream main git checkout your-branch-name git rebase main
-
Make your changes:
- Edit files as needed
- Follow the code style guidelines
- Add tests if applicable
-
Test your changes locally:
npm run start:dev
-
Commit your changes:
git add . git commit -m "Your commit message"
Commit message format:
type(scope): Brief description Longer description if needed Fixes #123Types:
docs: Documentation changesfeat: New featuresfix: Bug fixesrefactor: Code refactoringstyle: Style changestest: Test-related changes
-
Push your branch:
git push origin your-branch-name
-
Create a pull request:
- Go to your fork on GitHub
- Click "Pull Request"
- Select your branch and fill in the PR template
- Add reviewers if you know who should review your changes
-
Address feedback:
- Make requested changes
- Push additional commits
- Respond to comments
-
Update your PR if needed: If main has been updated while your PR was open:
git checkout your-branch-name git pull upstream main --rebase git push origin your-branch-name --force
- Follow the ESLint configuration in the project
- Use modern JavaScript (ES6+) features
- Document functions with JSDoc comments
- Use meaningful variable and function names
- Limit line length to 100 characters
Example:
/**
* Performs a specific task
* @param {string} input - Description of input
* @returns {Object} Description of return value
*/
function performTask(input) {
const result = doSomething(input);
return result;
}- Follow the project's TailwindCSS conventions
- Use utility classes when appropriate
- Extract components for repeated patterns
- Use meaningful class names for custom components
- Follow the content authoring guidelines in CONTENT_AUTHORING.md
- Use consistent heading levels
- Include proper metadata and attributes
- Use the appropriate formatting for different content types
- Content validation: Ensuring documentation is accurate
- Link checking: Verifying all links work correctly
- UI testing: Checking for visual and interactive issues
- Build testing: Ensuring the site builds correctly
-
Content verification:
npm run start:dev
Review the site locally for content issues.
-
Link checking: The CI pipeline includes automatic link checking.
- Document all functions, classes, and modules
- Explain complex algorithms and decisions
- Use inline comments for non-obvious code
- Keep code documentation up-to-date with changes
- Update the README.md for significant changes
- Document new features and components
- Update usage instructions when needed
- Add examples for new functionality
All contributions go through a review process:
- Automated checks: CI system runs tests and checks
- Code review: Maintainers review the code for:
- Code quality and style
- Security considerations
- Performance impact
- Test coverage
- Content review: For documentation changes:
- Technical accuracy
- Clarity and completeness
- Adherence to style guide
- Does the change solve the stated problem?
- Is the code well-structured and maintainable?
- Is the documentation clear and complete?
- Are there adequate tests?
- Does it follow project conventions?
Once your PR is approved:
- It will be merged by a maintainer
- Your contribution will be included in the next release
- You'll be credited as a contributor
The CircleCI Docs Static Site follows a continuous delivery model:
- Documentation changes: Released as soon as they're approved
- Technical changes: Released on a scheduled basis
- Emergency fixes: Released as needed
- Changes are merged to
main - CI pipeline builds and tests the site
- Automatic deployment to staging environment
- Review and testing in staging
- Deployment to production
The project follows Semantic Versioning:
- MAJOR: Backward-incompatible changes
- MINOR: New functionality (backward-compatible)
- PATCH: Bug fixes (backward-compatible)
For the documentation content itself, individual pages aren't versioned, but the site structure supports versioned components through Antora's versioning system.
If you need help with your contribution:
- Issues: Create an issue on GitHub
- Discussions: Use GitHub Discussions for questions
- Documentation: Refer to the technical docs
Contributors are recognized in several ways:
- Attribution in commit history
- Inclusion in the contributors list
- Recognition in release notes for significant contributions
Thank you for contributing to the CircleCI Docs Static Site!