🌟 First off, thanks for taking the time to contribute! 🌟
The following is a set of guidelines for contributing to WatchMeDance, which is hosted on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this (or any) document in a pull request.
- Code of Conduct
- What should I know before I get started?
- How Can I Contribute?
- Styleguides
- Linting
- Community and Behavioral Expectations
This guide for contributor interactions is important enough that we maintain it as a separate document.
Before you jump into the code, it's a good idea to familiarize yourself with the design philosophy, project structure, and development roadmap of the app. This will help you understand the bigger picture and where your contributions can fit in.
See DESIGN_AND_ARCHITECTURE.md for an overview of WatchMeDance's design principles and architectural decisions.
Our TECH_SPEC_AND_ROADMAP.md outlines the technical specifics and the planned progression of the project.
This section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
Before Submitting A Bug Report:
- Check the debugging guide — you might be able to find the cause of the problem and fix it yourself.
- Determine which repository the problem should be reported in.
- Check if the issue has already been reported.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
This section guides you through submitting an enhancement suggestion for WatchMeDance, including completely new features and minor improvements to existing functionality.
Before Submitting An Enhancement Suggestion:
- Check if the enhancement has already been suggested.
- Determine which repository the enhancement should be suggested in.
- If you find a suggestion similar to yours, add a comment to the existing issue instead of opening a new one. Otherwise, start the discussion with a new issue.
The process described here has several goals:
- Maintain WatchMeDance's quality
- Fix problems that are important to users
- Engage the community in working toward the best possible WatchMeDance
Here are a couple of pointers to keep in mind while making a pull request:
- Fill in the required template
- Follow the styleguides
- Keep pull requests small to facilitate easier review
- It can help to include screenshots and animated GIFs in pull requests that produce a visible change in the app or its interface or processes
Adhering to style guides helps keep our codebase clean, organized, and accessible to all contributors. Please ensure you follow the language-specific style guides and use the configured linters before submitting your code.
- 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
- All JavaScript must adhere to JavaScript Standard Style.
- Ensure that your code passes the linter checks by running
eslint
before committing.
- All Swift code must follow the Swift API Design Guidelines.
- We use SwiftLint to enforce the style guide.
- Run
swiftlint
in your project directory before committing to ensure your code complies with the style guide.
- Kotlin code should adhere to the Kotlin Coding Conventions.
- We use ktlint for linting Kotlin code.
- To check your code, run
ktlint
in your project directory, and address any issues it reports before committing.
- Use Markdown for all documentation.
- Follow the Markdown Style Guide to maintain consistency in documentation formatting.
Linting helps us to maintain code quality and consistency throughout our codebase. We have included linter configuration files in the repository to make it easier to comply with our coding standards.
Before submitting a pull request, please make sure to run the linters for your code:
- For JavaScript:
npm run lint
oryarn lint
(make sure you haveeslint
installed). - For Swift:
swiftlint
(after installing SwiftLint following the instructions in ourREADME.md
). - For Kotlin:
./gradlew ktlintCheck
(if using Gradle) or simplyktlint
if you have it installed globally.
If there are any linter warnings or errors, please fix them before submitting your pull request. This will speed up the review process and increase the chance of your pull request being merged without additional modifications.
In all interactions, we adhere to the Code of Conduct outlined in CONDUCT.md. This code describes the minimum behavior expectations for all contributors.
Again, thank you for your contributions to WatchMeDance. We eagerly anticipate your creative ideas and energy.
Happy coding!