Thank you for your interest in contributing to MindFry SDK! This document provides guidelines for contributing.
-
Fork the repository on GitHub
-
Clone your fork locally
-
Set up the development environment:
# Install dependencies pnpm install # Build all packages pnpm build # Run tests pnpm test
mindfry-sdk/
├── packages/
│ ├── protocol/ # @mindfry/protocol - MFBP types and encoding
│ └── client/ # @mindfry/client - Main SDK
feat/description- New featuresfix/description- Bug fixesdocs/description- Documentation changesrefactor/description- Code refactoringtest/description- Test additions/modifications
Follow Conventional Commits:
feat(client): add connection pooling support
fix(protocol): handle UTF-8 edge cases in string encoding
docs: update README with new API examples
test(client): add integration tests for pipelining
- TypeScript Strict Mode: All code must pass strict type checking
- Tests Required: New features must include tests
- Documentation: Public APIs must have JSDoc comments
- Formatting: Run
pnpm formatbefore committing (Prettier) - Linting: Run
pnpm lintand address any issues (ESLint)
- Create a feature branch from
main - Make your changes with clear, atomic commits
- Write or update tests as needed
- Update documentation if applicable
- Open a Pull Request with a clear description
- Address review feedback promptly
- Code compiles without errors (
pnpm build) - All tests pass (
pnpm test) - Code is formatted (
pnpm format) - Linting passes (
pnpm lint) - Documentation is updated (if applicable)
- CHANGELOG.md is updated (if user-facing)
We welcome SDK contributions for other languages! Please:
- Open an issue first to discuss the implementation plan
- Follow the existing protocol specification exactly
- Include comprehensive tests
- Document any language-specific considerations
- Open a Discussion for questions
- Check existing Issues before opening a new one
By contributing, you agree that your contributions will be licensed under the project's MIT license.