Contributing
Contributing to Viber3D
Thank you for your interest in contributing to Viber3D! This guide will help you understand how to contribute to the project.
Project Structure
Viber3D is organized as a monorepo with multiple packages:
viber3d
- The main package published to npm
Development Setup
- Clone the repository:
git clone https://github.com/instructa/viber3d.git cd viber3d
- Install dependencies:
pnpm install
- Build the packages:
pnpm build:packages
Pull Requests
When submitting a pull request:
- Fork the repository and create a new branch from
main
- Make your changes and ensure all tests pass
- Submit a pull request to the
main
branch - Ensure your PR has a clear description of the changes and why they're needed
For larger features, consider opening an issue first to discuss the approach.
Templates
Viber3D provides different templates for project initialization. These templates are stored in the templates
directory of the repository.
- The default template is the
starter
template - The
starter-next
template (accessed via thenext
branch) contains upcoming features and changes
When developing new templates or making changes to existing ones, you can test them locally by using the --template
flag with the CLI:
npx viber3d@latest init my-game --template next
This will use the experimental template from templates/starter-next
on the next
branch.
Coding Standards
- Follow the existing code style and conventions
- Write tests for new features
- Update documentation for any changes to the API or functionality
Commit Guidelines
We follow conventional commit messages to make the commit history more readable and to automate versioning:
feat:
- A new featurefix:
- A bug fixdocs:
- Documentation changesstyle:
- Changes that do not affect the meaning of the coderefactor:
- Code changes that neither fix a bug nor add a featureperf:
- Performance improvementstest:
- Adding or correcting testschore:
- Changes to the build process or auxiliary tools
Need Help?
If you need help with contributing, please open an issue on GitHub or reach out to the maintainers.