mirror of
https://github.com/chase-manning/pokemon-js.git
synced 2025-07-16 08:37:52 +00:00
2.9 KiB
2.9 KiB
Contributing to Pokemon JS
First off, thank you for considering contributing to Pokemon JS! It's people like you that make Pokemon JS such a great tool.
How Can I Contribute?
Reporting Bugs
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps which reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include screenshots if possible
Suggesting Enhancements
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- Use a clear and descriptive title
- Provide a step-by-step description of the suggested enhancement
- Provide specific examples to demonstrate the steps
- Describe the current behavior and explain which behavior you expected to see instead
Pull Requests
- Fill in the required template
- Do not include issue numbers in the PR title
- Include screenshots and animated GIFs in your pull request whenever possible
- Follow the TypeScript and React styleguides
- Include thoughtfully-worded, well-structured tests
- Document new code
- End all files with a newline
Styleguides
Git Commit Messages
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
TypeScript Styleguide
- Use 2 spaces for indentation
- Use semicolons
- Use
const
andlet
instead ofvar
- Use meaningful variable names
- Use TypeScript interfaces for type definitions
- Use proper type annotations
React Styleguide
- Use functional components with hooks
- Use proper prop types
- Keep components small and focused
- Use meaningful component names
- Follow the container/presenter pattern when appropriate
Development Process
- Fork the repo
- Create a new branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Getting Started with Development
- Install dependencies:
yarn install
- Start the development server:
yarn start
- Run tests:
yarn test
Project Structure
/src/components
: React components/src/maps
: Game map data/src/state
: Redux store and state management/src/assets
: Game assets (sprites, music, etc.)/src/styles
: Global styles
Questions?
Feel free to open an issue for any questions you might have about contributing.