Thank you for your interest in contributing to the Tuteliq SDK! This document provides guidelines and information for contributors.
By participating in this project, you agree to maintain a respectful and inclusive environment. We are committed to providing a welcoming experience for everyone.
Before submitting a bug report:
- Check the existing issues to avoid duplicates
- Use the latest version of the SDK
- Collect relevant information (Node.js version, OS, error messages)
When submitting a bug report, include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected vs actual behavior
- Code samples if applicable
- Environment details
We welcome feature suggestions! Please:
- Check existing issues and discussions first
- Clearly describe the use case
- Explain why this would benefit other users
- Fork the repository and create your branch from
main - Install dependencies:
npm install - Make your changes following our coding standards
- Add tests for new functionality
- Run tests:
npm test - Run build:
npm run build - Submit a pull request
# Clone your fork
git clone https://github.com/YOUR_USERNAME/sdk-typescript.git
cd sdk-typescript
# Install dependencies
npm install
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Build the project
npm run build- Use TypeScript for all source files
- Enable strict mode
- Provide JSDoc comments for public APIs
- Use explicit return types for functions
- Use 4 spaces for indentation
- Use single quotes for strings
- Add trailing commas in multi-line arrays/objects
- Keep lines under 100 characters when practical
camelCasefor variables and functionsPascalCasefor classes and typesSCREAMING_SNAKE_CASEfor constants- Descriptive names over abbreviations
- Write tests for all new functionality
- Maintain existing test coverage
- Use descriptive test names
- Test edge cases and error conditions
Example test structure:
describe('FeatureName', () => {
describe('methodName', () => {
it('should do something specific', async () => {
// Arrange
// Act
// Assert
});
it('should handle error case', async () => {
// ...
});
});
});Follow conventional commit format:
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat(client): add batch analysis method
fix(retry): handle timeout errors correctly
docs(readme): update installation instructions
- Update documentation if needed
- Add tests for new functionality
- Ensure all tests pass
- Update CHANGELOG.md if applicable
- Request review from maintainers
Releases are managed by the Tuteliq team. Version numbers follow Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features (backwards compatible)
- PATCH: Bug fixes (backwards compatible)
- Documentation: docs.tuteliq.ai
- Discord: discord.gg/tuteliq
- Issues: GitHub Issues
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Tuteliq! Your efforts help make the internet safer for children.