From 5e02a4b29a24a7e972c3dda837a1b7880a510042 Mon Sep 17 00:00:00 2001 From: RayZ3R0 <69317757+RayZ3R0@users.noreply.github.com> Date: Tue, 29 Oct 2024 23:07:24 +0600 Subject: [PATCH] Improved contribution docs for building locally (#79) * Modified the desktop app building docs with more info and some fixes. Fixed the docs for webpage contributing guide. * Update www.md fixed a typo --- content/contribute/desktop.md | 56 +++++++++++++++++++++++++---------- content/contribute/www.md | 24 ++++++++++----- 2 files changed, 57 insertions(+), 23 deletions(-) diff --git a/content/contribute/desktop.md b/content/contribute/desktop.md index 3611c60..4fd823b 100644 --- a/content/contribute/desktop.md +++ b/content/contribute/desktop.md @@ -13,7 +13,7 @@ Before you begin, ensure you have the following tools installed: - [**Git**](https://git-scm.com/): Version control system to clone the repository and manage your code. - [**Node.js**](https://nodejs.org/): Required for building the browser. - [**npm**](https://www.npmjs.com/): Node package manager, which comes with Node.js. -- [**MozillaBuild**](https://wiki.mozilla.org/MozillaBuild): Meta-installer required to build the browser. +- [**MozillaBuild**](https://wiki.mozilla.org/MozillaBuild): Meta-installer required to build the browser. - [**Mercurial/TortoiseHg**](https://www.mercurial-scm.org/downloads): Required by Mozilla scripts, with its install directory added to PATH. - [**Python**](https://www.python.org/): Required by build scripts, with its install directory added to PATH. @@ -22,8 +22,9 @@ Before you begin, ensure you have the following tools installed: Clone the project ```bash -git clone https://github.com/zen-browser/desktop.git --recurse-submodules +git clone --depth 1 https://github.com/zen-browser/desktop.git cd desktop +git submodule update --init --recursive --depth 1 ``` Install dependencies @@ -34,43 +35,66 @@ npm i Download and bootstrap the browser -``` +```bash npm run init ``` -Copy a language pack +Run bootstrap to identify and fix potential errors + +```bash +npm run bootstrap ``` + +Copy a language pack +```bash sh scripts/update-en-US-packs.sh ``` Start building the browser -``` +```bash npm run build ``` Finally, run the browser! -``` +```bash npm start ``` +### Limiting CPU Usage During Build + +On Linux, you can use cpulimit to restrict CPU usage of intensive build processes: + +```bash +# 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. - + ```bash 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. +- Ensure that your changes do not break existing functionality. - Write tests if applicable. You can test your changes by @@ -79,21 +103,21 @@ You can test your changes by #### 4. Commit Your Changes Commit your changes with a descriptive message. - + ```bash git commit -m "Add feature: your feature description" ``` - + #### 5. Push Your Changes Push your branch to your forked repository. - + ```bash 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. @@ -101,10 +125,10 @@ Go to the original Zen Browser repository and submit a pull request from your fo - [Zen Browser Repository](https://github.com/zen-browser/desktop) - [[CONTRIBUTING| Contribution Guidelines]] -- [[CODE_OF_CONDUCT | Code of Conduct]] +- [[CODE_OF_CONDUCT | Code of Conduct]] - [Searchfox](https://searchfox.org/) a source code indexing tool for Mozilla Firefox - [MDN Web Docs](https://developer.mozilla.org/) a documentation repository and learning resource for web developers --- -Thank you for contributing to Zen Browser! Your contributions are valuable and help make the project better for everyone. \ No newline at end of file +Thank you for contributing to Zen Browser! Your contributions are valuable and help make the project better for everyone. diff --git a/content/contribute/www.md b/content/contribute/www.md index 8f73347..3db8065 100644 --- a/content/contribute/www.md +++ b/content/contribute/www.md @@ -41,17 +41,27 @@ npm install This command installs all the necessary packages listed in the `package.json` file. -## Step 4: Start the Development Server +## Step 4: Build the Project + +To build the project files: + +```bash +npm run build +``` + +This command will compile and process all the source files into a production-ready format. + +## Step 5: Start the Development Server After installing the dependencies, you can start the development server: ```bash -npm start +npm run dev ``` This command will start a local server and open the homepage in your default web browser. The server will automatically reload whenever you make changes to the code. -## Step 5: Make Your Changes +## Step 6: Make Your Changes You can now start making changes to the homepage. The project structure is as follows: @@ -61,11 +71,11 @@ You can now start making changes to the homepage. The project structure is as fo Feel free to explore and modify the files to implement new features or fix bugs. -## Step 6: Test Your Changes +## Step 7: Test Your Changes Before submitting your changes, make sure they work as expected. Check the functionality across different pages and ensure that your changes do not introduce any new issues. -## Step 7: Commit and Push Your Changes +## Step 8: Commit and Push Your Changes Once you are satisfied with your changes, commit them to your local repository: @@ -80,7 +90,7 @@ Push your changes to your forked repository: git push origin main ``` -## Step 8: Create a Pull Request +## Step 9: Create a Pull Request After pushing your changes, go to the original Zen Browser Homepage Repository and submit a pull request: @@ -101,4 +111,4 @@ Your pull request will be reviewed by the maintainers, and you may be asked to m --- -Thank you for contributing to Zen Browser's homepage! Your contributions help make the project better for everyone. \ No newline at end of file +Thank you for contributing to Zen Browser's homepage! Your contributions help make the project better for everyone.