Thank you for your interest in contributing to Doctype! We welcome contributions from the community and are grateful for your support.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Coding Standards
- Commit Guidelines
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:
- Clear title and description
- Steps to reproduce the behavior
- Expected behavior vs actual behavior
- Environment details (OS, Node version, etc.)
- Code samples or error messages if applicable
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the suggested enhancement
- Explain why this enhancement would be useful
- Include examples of how the feature would work
We actively welcome your pull requests:
- Fork the repo and create your branch from
main - If you've added code that should be tested, add tests
- Ensure the test suite passes
- Make sure your code lints
- Update documentation as needed
- Issue that pull request!
-
Clone the repository
git clone https://github.com/doctypedev/doctype.git cd doctype -
Install dependencies
npm install
-
Set up environment variables
- Copy
.env.exampleto.env(if applicable) - Add your OpenAI API key if testing AI features
- Copy
-
Run tests
npm test -
Build the project
npm run build
- Update documentation - Ensure README.md and any relevant docs are updated
- Add tests - New features should include appropriate test coverage
- Follow coding standards - See below
- Update CHANGELOG - Add a note about your changes
- One feature per PR - Keep pull requests focused on a single concern
- Descriptive commits - Write clear commit messages (see below)
- Code follows the project's coding standards
- Tests pass locally
- New tests added for new functionality
- Documentation updated
- No breaking changes (or clearly documented if necessary)
- Commit messages follow guidelines
- Use TypeScript for all new code
- Enable strict mode
- Avoid
anytypes when possible - Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Indentation: 2 spaces
- Quotes: Single quotes for strings
- Semicolons: Required
- Line length: Maximum 100 characters when practical
- Naming conventions:
camelCasefor variables and functionsPascalCasefor classes and typesUPPER_CASEfor constants
- Write unit tests for new features
- Maintain test coverage above 80%
- Use descriptive test names
- Follow AAA pattern (Arrange, Act, Assert)
We follow conventional commits for clear history:
<type>(<scope>): <subject>
<body>
<footer>
- feat: New feature
- fix: Bug fix
- docs: Documentation changes
- style: Code style changes (formatting, etc.)
- refactor: Code refactoring
- test: Adding or updating tests
- chore: Maintenance tasks
feat(parser): add support for JSDoc comments
Implement JSDoc parsing to extract documentation
from TypeScript source files.
Closes #123
fix(git): resolve auto-commit race condition
Ensure git operations are properly queued to prevent
concurrent modifications.
Feel free to open an issue with the question label, or reach out to the maintainers.
Thank you for contributing to Doctype!