Thank you for your interest in contributing to the Lingo.dev Deno SDK! We welcome contributions from the community.
-
Fork and Clone
git clone https://github.com/YOUR_USERNAME/sdk-deno.git cd sdk-deno -
Install Deno
# Install Deno if you haven't already curl -fsSL https://deno.land/install.sh | sh
-
Verify Setup
deno task check deno task test
-
Create a branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
-
Test your changes
# Format code deno task fmt # Lint code deno task lint # Type check deno task check # Run tests deno task test # Test JSR configuration deno publish --dry-run
-
Commit and push
git add . git commit -m "feat: add new feature" git push origin feature/your-feature-name
-
Create a Pull Request
- Use a descriptive title
- Explain what your changes do
- Link any related issues
- Use TypeScript for all new code
- Follow Deno's formatting standards (
deno fmt) - Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Keep functions focused and small
- Add unit tests for all new functionality
- Tests should be in the
tests/directory - Use descriptive test names
- Mock external dependencies
- Ensure all tests pass before submitting
- Update README.md for new features
- Add JSDoc comments for public APIs
- Include usage examples
- Update type definitions if needed
- All tests pass
- Code is formatted (
deno fmt) - Code passes linting (
deno lint) - TypeScript compilation succeeds
- Documentation is updated
- Examples work correctly
-
Descriptive Title: Use conventional commit format
feat:for new featuresfix:for bug fixesdocs:for documentation changeschore:for maintenance tasks
-
Clear Description: Explain what the PR does and why
-
Linked Issues: Reference any related issues
-
Breaking Changes: Clearly document any breaking changes
When reporting bugs, please include:
- Deno version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Code samples (if applicable)
For new features:
- Describe the use case
- Explain why it would be valuable
- Consider implementation complexity
- Check if it fits the SDK's scope
Documentation improvements are always welcome:
- Fix typos or unclear explanations
- Add examples
- Improve API documentation
- Update setup instructions
- Deno 1.x or 2.x
- Git
- Text editor with TypeScript support
- Deno (official Deno extension)
- TypeScript and JavaScript Language Features
For testing:
export LINGO_API_KEY="your-test-api-key"Releases are handled automatically:
- Version Bumps: Use GitHub Actions "Version Bump" workflow
- Automated Testing: All changes are tested in CI
- Publishing: Automatic to JSR and Deno Land
- Documentation: README and examples are automatically updated
- Documentation: docs.lingo.dev
- Discord: Join our community
- Issues: GitHub Issues
- Email: support@lingo.dev
Please be respectful and inclusive in all interactions. We're building a welcoming community for developers worldwide.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.