Before You Start
Before contributing, please:- Search existing issues to ensure your bug report or feature request doesn’t already exist
- Keep contributions focused to just the feature or bug fix you’re addressing
- Open an issue first if you’re unsure about your implementation approach
Our team reviews all contributions to ensure they meet project standards and are properly tested. Focused, well-documented changes are easier to review and merge.
Getting Started
Set Up Development Environment
Ensure you have the required tools:
- Java 17 or higher
- Git
- Gradle (wrapper included)
Create a Branch
Create a new branch for your contribution:Use descriptive branch names like:
fix/entity-conversion-crashfeature/add-version-supportdocs/update-build-instructions
Contributor License Agreement (CLA)
When you submit a pull request, a CLA bot will automatically check if you need to sign a Contributor License Agreement.The CLA declares that you have the right to grant us the rights to use your contribution. You only need to sign it once across all Microsoft-related repositories.
Pull Request Process
What to Include
Your pull request should:- Describe the change: Clearly explain what you’re changing and why
- Reference issues: Link to related GitHub issues (e.g., “Fixes #123”)
- Include tests: Add or update tests to cover your changes
- Update documentation: Modify relevant docs if your changes affect usage
- Keep it focused: Limit changes to the specific bug or feature
PR Checklist
Before submitting, ensure:- Code builds successfully (
./gradlew build) - All tests pass (
./gradlew test) - No new compiler warnings
- Code follows project conventions
- Documentation is updated if needed
- Commit messages are clear and descriptive
Code of Conduct
This project has adopted the Contributor Covenant Code of Conduct. All contributors are expected to:- Be respectful and inclusive
- Accept constructive criticism gracefully
- Focus on what’s best for the community
- Show empathy towards other community members
Out of Scope Features
Out of scope features include (but are not limited to):- Entities (excluding paintings and item frames)
- Structure data (e.g., Villages, Strongholds)
This list may change over time. Features may be added or removed from this list as the project evolves.
Development Workflow
Building
Build the project:Testing
Run tests:Code Style
Java Conventions
- Use Java 17 features appropriately
- Follow standard Java naming conventions
- Add meaningful comments for complex logic
- Use JetBrains annotations where applicable
Build Configuration
- Use Kotlin DSL for Gradle files
- Keep dependencies up to date
- Document custom Gradle tasks
- Follow existing project structure
Types of Contributions
Bug Fixes
- Report the bug: Create a GitHub issue with reproduction steps
- Verify the fix: Ensure your fix resolves the issue without breaking existing functionality
- Add tests: Include tests that prevent regression
Adding Version Support
When adding support for new Minecraft versions:- Update version enums and constants
- Add or update block/item mappings
- Include validation tests for the new version
- Test conversions to/from the new version
- Update documentation with supported versions
Documentation Improvements
Documentation contributions are welcome:- Fix typos or unclear explanations
- Add examples and usage scenarios
- Improve API documentation
- Expand troubleshooting guides
Mapping Improvements
Block and item mapping contributions:- Ensure mappings are accurate
- Test with real world data
- Validate identifiers against game palettes
- Document any edge cases or limitations
Testing Your Contributions
Chunker’s automated testing helps catch issues:Block/Item Validation
Block/Item Validation
Identifier validation tests run automatically during
./gradlew test to ensure all mappings are valid against game palettes.Integration Tests
Integration Tests
World conversion tests validate that your changes don’t break existing functionality. Run
./gradlew test for a sample or ./gradlew longRunningTest for comprehensive testing.Manual Testing
Manual Testing
Test your changes with real Minecraft worlds:
Getting Help
GitHub Issues
Ask questions or report problems:
github.com/HiveGamesOSS/Chunker/issues
Documentation
Review project documentation:
Microsoft Creator Docs
Project Maintenance
This project is maintained by Hive Games and receives funding from Mojang Studios. Mojang Studios and its parent company Microsoft assume no responsibility for the contents of this project.Join the Team
Interested in working on Chunker full-time? Hive Games is hiring! Check out open positions: jobs.playhive.com/software-engineer-javaLicense
By contributing to Chunker, you agree that your contributions will be licensed under the MIT License. See the LICENSE file for details.Next Steps
- Learn about building from source
- Understand testing procedures
- Explore the CLI interface
- Review advanced settings