Thank you for your interest in contributing to the Outlit SDK! This document provides guidelines and instructions for contributing.
We are committed to providing a welcoming and inclusive environment. Please be respectful and considerate in all interactions.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/your-username/outlit-sdk.git cd outlit-sdk - Install dependencies:
npm install
- Create a branch for your changes:
git checkout -b feature/your-feature-name
Build all packages:
npm run buildBuild a specific package:
cd packages/core
npm run buildRun all tests:
npm run testRun tests for a specific package:
cd packages/core
npm run testRun tests in watch mode:
npm run test:watchLint code:
npm run lintFormat code:
npm run formatCheck formatting:
npm run format:checkRun TypeScript type checking:
npm run typecheck- Follow the existing code style
- Use TypeScript for all code
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions small and focused
Write clear, descriptive commit messages:
- Use present tense ("Add feature" not "Added feature")
- Use imperative mood ("Move cursor to..." not "Moves cursor to...")
- Reference issues and pull requests when relevant
- Keep the first line under 72 characters
Example:
Add automatic page view tracking to browser SDK
- Implement page view tracking on navigation
- Add configuration options for auto-tracking
- Update tests and documentation
Fixes #123
- Discuss first: Open an issue to discuss the feature before implementing
- Write tests: Add tests for new functionality
- Update docs: Update README and relevant documentation
- Add types: Ensure full TypeScript support
- Follow patterns: Match existing code patterns and architecture
- Create an issue: If one doesn't exist, create an issue describing the bug
- Write a test: Add a test that reproduces the bug
- Fix the bug: Implement the fix
- Verify: Ensure the test passes and no other tests break
- Document: Add comments if the fix is non-obvious
- Update documentation: Ensure all documentation is updated
- Add tests: Ensure adequate test coverage
- Run all checks: Ensure tests, linting, and type checking pass
- Update CHANGELOG: Add an entry to the relevant package's CHANGELOG
- Create PR: Submit a pull request with a clear description
- Address feedback: Respond to review comments promptly
## Description
Brief description of the changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
Describe the testing you've done
## Checklist
- [ ] Tests added/updated
- [ ] Documentation updated
- [ ] Linting passes
- [ ] Type checking passes
- [ ] Builds successfullyoutlit-sdk/
├── packages/
│ ├── core/ # Core SDK functionality
│ │ ├── src/ # Source code
│ │ ├── dist/ # Built output (generated)
│ │ └── package.json
│ ├── browser/ # Browser-specific SDK
│ └── node/ # Node.js SDK
├── turbo.json # Turbo build configuration
├── tsconfig.json # Shared TypeScript config
└── package.json # Root package with workspaces
Releases are managed using Changesets:
- Create a changeset:
npm run changeset
- Commit the changeset: Include it in your PR
- Release (maintainers only):
npm run version npm run release
Feel free to:
- Open an issue for questions
- Join our community discussions
- Email us at support@outlit.ai
Thank you for contributing! 🎉