Thank you for your interest in contributing! This repository contains experimental modules for the Auki Network, and we welcome contributions of all kinds.
⚠️ Note: This is an experimental project under active development. The API is subject to rapid changes, including breaking changes. Please keep this in mind when contributing.
- Check existing issues - Search GitHub Issues to see if your idea or bug is already being discussed
- Open an issue first - For major changes, open an issue to discuss your approach before starting work
- Read module-specific guidelines - Each module has its own detailed contribution guide (see below)
We are committed to providing a welcoming and inclusive environment. Please:
- Be respectful and professional in all interactions
- Accept constructive criticism gracefully
- Focus on what is best for the community
- Show empathy towards other community members
We welcome:
- Bug reports - Help us identify and fix issues
- Feature requests - Suggest new capabilities
- Documentation improvements - Better docs help everyone
- Code contributions - Bug fixes, features, refactoring
- Examples - Show others how to use the modules
- Testing - Help improve test coverage
Required for all modules:
- Rust 1.70 or higher
- Git
For specific language bindings:
- Node.js 18+ (JavaScript/TypeScript)
- Python 3.8+ (Python)
- Docker Desktop (for cross-platform builds)
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/authentication.git cd authentication -
Add upstream remote:
git remote add upstream https://github.com/aukilabs/experimental-modules.git
-
Install build tools:
make install-tools
-
Set up environment variables:
cp .env.example .env # Edit .env with your test credentials
Each module has detailed contribution guidelines. Please read the relevant guide before contributing:
View Authentication Contributing Guide →
The authentication module has specific requirements for:
- Rust core library changes
- Language binding updates (JavaScript, Python, Swift, Kotlin)
- API change propagation across all bindings
- Cross-platform testing
Create a descriptive branch from main:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/bug-description- Follow the module-specific coding standards
- Write clear, descriptive commit messages
- Add tests for new functionality
- Update documentation as needed
Run tests for all affected modules:
# Rust core
cargo test
cargo clippy
cargo fmt --check
# JavaScript (if modified)
cd pkg/javascript
npm test
# Python (if modified)
cd pkg/python
python examples/basic.pyUse Conventional Commits:
git commit -m "feat: add new authentication method"
git commit -m "fix: resolve token refresh race condition"
git commit -m "docs: update Python README"
git commit -m "test: add integration tests for multi-domain"
git commit -m "chore: update dependencies"Commit Types:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesrefactor:- Code refactoringtest:- Test additions or changeschore:- Build process or tooling changesbreaking:- Breaking changes (major version bump)
git push origin feature/your-feature-nameThen create a Pull Request on GitHub with:
- Clear title describing the change
- Description explaining what changed and why
- Reference to any related issues
- Screenshots/examples if applicable
## Description
Brief description of the changes
## Type of Change
- [ ] Bug fix (non-breaking change fixing an issue)
- [ ] New feature (non-breaking change adding functionality)
- [ ] Breaking change (fix or feature causing existing functionality to change)
- [ ] Documentation update
## Module(s) Affected
- [ ] Authentication
- [ ] (Future modules)
## Testing
- [ ] Rust tests pass (`cargo test`)
- [ ] JavaScript examples work (if applicable)
- [ ] Python examples work (if applicable)
- [ ] All linting passes
## Checklist
- [ ] My code follows the style guidelines
- [ ] I have performed a self-review
- [ ] I have commented my code where necessary
- [ ] I have updated the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix/feature works
- [ ] New and existing tests pass locally
## Related Issues
Closes #(issue number)- Automated checks - CI/CD will run tests and linting
- Code review - Maintainers will review your code
- Feedback - Address any requested changes
- Approval - Once approved, your PR will be merged
- All automated checks must pass
- At least one maintainer approval
- No unresolved comments
- No merge conflicts with
main
Regularly sync your fork with upstream:
git checkout main
git fetch upstream
git merge upstream/main
git push origin mainWhen reporting bugs, please include:
- Clear title - Summarize the issue
- Description - What happened vs what you expected
- Reproduction steps - How to reproduce the issue
- Environment - OS, language version, module version
- Code samples - Minimal code to reproduce
- Error messages - Full error output if applicable
When requesting features, please include:
- Use case - Why is this feature needed?
- Proposed solution - How should it work?
- Alternatives - Other approaches you've considered
- Module - Which module(s) would this affect?
- Code changes - Update relevant READMEs
- API changes - Update all language binding docs
- New features - Add usage examples
- Breaking changes - Clearly document migration path
- Use clear, concise language
- Include code examples
- Keep examples up to date with API changes
- Use proper markdown formatting
- Link to related documentation
Note: This section is for maintainers
Releases are managed by maintainers following semantic versioning:
- Patch (0.0.x) - Bug fixes, minor improvements
- Minor (0.x.0) - New features, non-breaking changes
- Major (x.0.0) - Breaking changes
Each module is versioned independently.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Module Docs: See individual module READMEs
By contributing, you agree that your contributions will be licensed under the same license as the project (MIT).
Thank you for contributing to Auki Network! 🎉