Thank you for your interest in contributing to Agenite! This document provides guidelines and instructions for contributing to this project.
- Code of conduct
- Getting started
- Development workflow
- Pull requests
- Using changesets
- Documentation
- Community
- Helpful resources
Please read and follow our Code of Conduct to maintain a respectful and inclusive community.
- Node.js 18+
- pnpm (we use pnpm workspaces)
- TypeScript 5.x
- Git
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/agenite.git cd agenite - Add the original repository as a remote to keep your fork in sync:
git remote add upstream https://github.com/subeshb1/agenite.git
- Install dependencies:
pnpm install
- Build all packages:
pnpm build
main- The primary branch for stable releases- Feature branches - For new features, bug fixes, or improvements
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Start the development server:
pnpm dev
-
Make your changes and ensure:
- All tests pass:
pnpm test - Linting passes:
pnpm lint - Types check:
pnpm check-types
- All tests pass:
-
Keep your branch up to date with the upstream:
git fetch upstream git rebase upstream/main
Before submitting your changes, ensure they work as expected:
# Run all tests
pnpm test
# Check linting
pnpm lint
# Check types
pnpm check-types
# Build packages
pnpm build- Follow TypeScript best practices
- Use ESLint and Prettier configurations
- Write clear comments and documentation
- Maintain test coverage
-
Push your changes to your fork:
git push origin feature/your-feature-name
-
Go to the original repository on GitHub and create a pull request from your fork.
-
Fill out the pull request template, providing a clear description of your changes.
- Tests are added or updated for new functionality
- Documentation is updated
- All existing tests pass
- Code follows the project's style guidelines
- A changeset is included if needed (see Using changesets)
- Maintainers will review your pull request
- Address any requested changes from reviewers
- Once approved, a maintainer will merge your PR
We use Changesets to manage versions and changelogs. Here's how to use it:
-
After making your changes, create a changeset:
pnpm changeset
-
Select the packages you've modified when prompted.
-
Choose the appropriate semver bump type (patch, minor, major).
-
Write a summary of changes when prompted.
-
Commit the changeset file:
git add .changeset/*.md git commit -m "chore: add changeset for your feature"
When your PR is merged, our GitHub Actions will:
- Collect all changesets
- Update versions
- Generate changelogs
- Create a release PR
- Publish to npm when the release PR is merged
Good documentation is crucial for the project:
- Update relevant README files
- Add JSDoc comments to public APIs
- Include examples for new features
- Update API documentation as needed
Join our community to get help or discuss ideas:
Thank you for contributing to Agenite! Your efforts help make this project better for everyone.