Skip to content

Latest commit

 

History

History
166 lines (118 loc) · 7.67 KB

CONTRIBUTING.md

File metadata and controls

166 lines (118 loc) · 7.67 KB

Contributing to Mandelbrot.site

Thank you for taking the time to contribute! ❤️

All types of contributions are encouraged and valued. Please refer to the Table of Contents for various ways you can help and details on how the project handles them. Reading the relevant section before contributing will make it easier for the maintainers and smooth out the experience for everyone involved. The community looks forward to your contributions.

Tip

If you like the project but don't have time to contribute, that's totally fine! There are other ways to show your support:

  • Star the project
  • Tweet about it
  • Mention this project in your project's readme
  • Share it with your friends and colleagues

Table of Contents

Code of Conduct

This project and everyone participating in it are governed by the Mandelbrot.site Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].

I Have a Question

Before asking a question, please search for existing issues that might help you. If you find a relevant issue but still need clarification, you can comment there. It's also advisable to search the internet first.

If you still have a question:

  • Open a new issue.
  • Provide as much context as possible.
  • Include project and platform versions (Node.js, npm, etc.) as relevant.

We will address your issue as soon as possible.

Reporting Bugs

Before Submitting a Bug Report

A good bug report shouldn't leave others needing more information. Please investigate carefully, collect details, and describe the issue thoroughly. Before submitting, please:

  • Ensure you're using the latest version.
  • Determine if your issue is indeed a bug and not a misconfiguration or environment issue. If you need support, check this section.
  • Check the bug tracker to see if the issue has already been reported.
  • Search the internet (including Stack Overflow) to see if others have encountered the issue.
  • Collect relevant information:
    • Stack trace or error messages
    • Operating system, platform, and version (e.g., Windows 10 x64)
    • Versions of Node.js, npm, and other relevant software
    • Steps to reproduce the issue reliably
    • Any relevant input and output

How Do I Submit a Good Bug Report?

We use GitHub issues to track bugs and errors. If you encounter an issue:

  • Open a new issue.
  • Describe the expected behavior and the actual behavior.
  • Provide as much context as possible, including steps to reproduce the issue.
  • Include the information you collected above.

Once filed:

  • The team will label the issue accordingly.
  • A team member will try to reproduce the issue. If reproduction steps are missing or unclear, we may ask for more details.
  • If the issue is confirmed, it will be labeled appropriately and left to be implemented.

Suggesting Enhancements

This section guides you through submitting an enhancement suggestion for Mandelbrot.site, including completely new features and minor improvements to existing functionality.

Before Submitting an Enhancement

  • Ensure you're using the latest version.
  • Search the issues to see if the enhancement has already been suggested. If so, comment on the existing issue.
  • Consider whether your idea fits within the scope of the project. Make a strong case for your suggestion.

How Do I Submit a Good Enhancement Suggestion?

Enhancement suggestions are tracked as GitHub issues.

  • Use a clear and descriptive title.
  • Provide a detailed description of the enhancement.
  • Describe the current behavior and explain the desired behavior.
  • Include screenshots or GIFs if helpful.
  • Explain why this enhancement would be useful to most users.

Your First Code Contribution

Important

By contributing to this project, you agree that you have authored 100% of the content, have the necessary rights to the content, and that the content you contribute may be provided under the project license.

Before running the project, you'll need to fork and clone the repository:

  1. Fork the repository on GitHub.

  2. Clone your fork to your local machine:

    git clone https://github.com/your-username/Mandelbrot.site.git

Now you can run the project and start making changes to the code! We recommend using a modern code editor like Visual Studio Code, IntelliJ IDEA, or Neovim.

Running the Project

Once you've cloned the repository, you can begin working on the project. This project requires Node.js to be installed on your system. Check the .nvmrc file for the recommended Node.js version.

Run all commands from within the client directory:

  • Install dependencies: npm install
  • Build the project: npm run build
  • Start development server: npm run dev
  • Run code quality checks:
    • Type errors: npm run typecheck
    • Linting: npm run lint
    • Formatting: npm run format
    • Rust tests: npm run test
  • Preview production build: npm run serve
  • Clean caches and build artifacts: npm run clean

Project Structure

Below is an overview of important files and directories to help you navigate and understand the codebase.

Opening a Pull Request

  1. Make your changes and commit them with clear commit messages:

    git add .
    git commit -m "Add feature XYZ"
  2. Push your changes to your fork:

    git push origin main
  3. Open a pull request from your branch to the main repository's main branch.

  4. In the pull request, provide a clear description of your changes and any relevant context.

  5. A maintainer will review your PR and may request changes or provide feedback.

  6. Once you've addressed all of the feedback, kick back and wait for your PR to be merged! 🎉

For detailed guidance, see Creating a Pull Request.