Contributing to the Zen Browser Desktop project is a great way to get involved with open-source software development. This guide will walk you through the steps to clone the project, set up your development environment, make contributions, and submit pull requests.

Prerequisites

Before you begin, ensure you have the following tools installed:

  • Git: Version control system to clone the repository and manage your code.
  • Node.js: Required for building the browser.
  • npm: Node package manager, which comes with Node.js.
  • MozillaBuild: Meta-installer required to build the browser.
  • Mercurial/TortoiseHg: Required by Mozilla scripts, with its install directory added to PATH.
  • Python: Required by build scripts, with its install directory added to PATH.

Run Locally

Clone the project

git clone --depth 1 https://github.com/zen-browser/desktop.git
cd desktop
git submodule update --init --recursive --depth 1

Install dependencies

npm i

Download and bootstrap the browser

npm run init

Run bootstrap to identify and fix potential errors

npm run bootstrap

Copy a language pack

sh scripts/update-en-US-packs.sh

Start building the browser

npm run build

Finally, run the browser!

npm start

Limiting CPU Usage During Build

On Linux, you can use cpulimit to restrict CPU usage of intensive build processes:

# Limit by process name
cpulimit -e rustc -l 50  # Limits rustc to 50% CPU
cpulimit -e clang -l 50  # Limits clang to 50% CPU
 
# Or limit by PID
cpulimit -p PID -l 50

On Windows, use Process Lasso or Process Hacker to set CPU affinity and priority:

  1. Open Process Lasso/Process Hacker
  2. Find rustc.exe or clang.exe processes
  3. Right click β†’ Set CPU Affinity/Priority

Making a Contribution

1. Fork the Repository

2. Create a New Branch

It’s a good practice to create a new branch for each feature or bug fix.

git checkout -b feature/your-feature-name

3. Make Your Changes

Edit the code in your local repository.

  • Ensure that your changes do not break existing functionality.
  • Write tests if applicable.

You can test your changes by

4. Commit Your Changes

Commit your changes with a descriptive message.

git commit -m "Add feature: your feature description"

5. Push Your Changes

Push your branch to your forked repository.

git push origin feature/your-feature-name

6. Submit a Pull Request

Go to the original Zen Browser repository and submit a pull request from your forked repository.

  • Provide a clear title and description of your changes.
  • Reference any relevant issues in the pull request.

Additional Resources


Thank you for contributing to Zen Browser! Your contributions are valuable and help make the project better for everyone.