summaryrefslogtreecommitdiffstats
path: root/devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md')
-rw-r--r--devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md191
1 files changed, 191 insertions, 0 deletions
diff --git a/devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md b/devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md
new file mode 100644
index 0000000000..4159bedea6
--- /dev/null
+++ b/devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md
@@ -0,0 +1,191 @@
+## Table of contents
+
+To set up `mozilla-central`, follow parts 1-6. Part 7 is for debugging common errors that may pop up during the process.
+
+1) Before you start
+2) Bootstrapping your modules
+3) Cloning mozilla-central
+4) Bootstrapping mozilla-central
+5) Setting up arcanist and moz-phab
+6) Making your first practice patch
+7) Common errors
+
+## Before you start
+
+1) Install [Xcode](https://developer.apple.com/xcode/).
+2) Install [Homebrew](https://brew.sh/).
+
+## Bootstrapping your modules
+
+1) Create a "src" directory for yourself under your home directory:
+```
+mkdir src && cd src
+```
+
+2) Download the [bootstrap.py](https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py) script and save it in your `src/` directory.
+
+3) Run the bootstrap script with:
+```
+python bootstrap.py
+```
+
+4) Follow the prompts, which should be mostly Yes (`Y`). One of the prompts will ask you if you want to clone mozilla-unified. Leave the destination field empty and hit Enter.
+
+## Cloning mozilla-central
+
+In your `src` folder run the following:
+```
+hg clone https://hg.mozilla.org/mozilla-central/ mozilla-central
+```
+
+Your directory should now look something like this:
+```
+src
+ |--- mozilla-central
+ |--- bootstrap.py
+```
+
+Go ahead and open your cloned `mozilla-central` folder:
+```
+cd mozilla-central
+```
+
+## Bootstrapping mozilla-central
+
+1. Run the command below to bootstrap your mozilla-central:
+```
+./mach bootstrap
+```
+
+2. At the end of the bootstrapping process, it will ask you to create a `mozconfig` file. Create a file named `mozconfig` in the `mozilla-central` folder, and paste the following. Afterwards, save that file:
+```
+ac_add_options --enable-artifact-builds
+```
+
+3. Run the command below to build mozilla-central
+```
+./mach build
+```
+
+4. If your build is successful, it should tell you that you can now run `./mach run`. Go ahead and do that to run Firefox!
+```
+./mach run
+```
+
+## Setting up arcanist and moz-phab
+
+Follow these instructions here: https://moz-conduit.readthedocs.io/en/latest/arcanist-macos.html.
+
+If at the end of the instructions you try to run `moz-phab -h` and it can't find the command, edit your `.bash_profile`:
+```
+sudo nano ~/.bash_profile
+```
+
+Enter your password, and then paste the string below into that file:
+```
+export PATH="$HOME/.mozbuild/arcanist/bin:$HOME/.mozbuild/moz-phab:$PATH"
+```
+
+Restart your terminal, and `moz-phab -h` should now work as expected.
+
+## Making your first practice patch
+
+To verify that everything works correctly, try submitting a practice patch. These steps are primarily based off of https://moz-conduit.readthedocs.io/en/latest/arcanist-user.html.
+
+Before proceeding, make sure to create a [Phabricator account](https://phabricator.services.mozilla.com).
+
+1) Go into your mozilla-central folder and setup arc:
+```
+cd mozilla-central
+arc install-certificate
+```
+
+2) Using your editor, create a test file named `testfile`.
+
+3) Check to see if your `testfile` is detected and identified as an untracked file:
+```
+hg status
+# `? testfile` should be logged in PINK
+```
+
+4) Track your `testfile`:
+```
+hg add testfile
+```
+
+5) Check that the `testfile` is now identified as a tracked file:
+```
+hg status
+# `A testfile` should be logged in GREEN
+```
+
+6) Commit the tracked changes:
+```
+hg commit -m "Bug N/A - first test patch, please ignore r=davidwalsh"
+```
+
+7) Verify the commit by checking your commit logs:
+```
+hg log
+# Your "Added test file" should appear at the top of the log
+```
+
+8) Submit your patch:
+```
+arc diff
+# this should open a text file with VIM, just fill it similarly to the one below
+```
+
+```
+Bug N/A - first test patch, please ignore r=davidwalsh
+
+Summary: Test patch to see if I set MC correctly. Referring to a benign bug that's CLOSED WONTFIX
+
+Test Plan: N/A
+
+Reviewers: davidwalsh
+
+Subscribers:
+
+Bug #: 1395261
+```
+
+### Finished submitting your patch?
+Double check in Phabricator that it did go through: https://phabricator.services.mozilla.com
+
+## Common Errors
+
+### Checking for rustc... not found
+```
+checking for rustc... not found
+checking for cargo... not found
+```
+
+Install rust and cargo with `curl https://sh.rustup.rs -sSf | sh` and then restart your terminal. Afterwards, install cbindgen with `cargo install cbindgen`.
+
+### Baldrdash
+```
+`Common error: failed to run custom build command for `baldrdash v0.1.0 (directory here)`
+```
+First, delete any existing `gecko-dev` folder that you might have cloned. Afterwards, delete your `mozilla-central` folder and repeat the **Cloning Mozilla Central** steps above.
+
+If you still run into the same error, reinstall llvm with `brew uninstall llvm && brew install llvm`. Again, delete your `mozilla-central` folder and repeat the **Cloning Mozilla Central** steps above.
+
+### Error running mach
+```
+ 0:00.73 /usr/bin/make -f client.mk -s
+ 0:16.13 Error running mach:
+ 0:16.13 ['--log-no-times', 'artifact', 'install']
+```
+Delete your `mozilla-central` folder and repeat the **Cloning Mozilla Central** steps above.
+
+### Packaging specialpowers@mozilla.org.xpi...
+```
+1:28.71 Packaging specialpowers@mozilla.org.xpi...
+ 1:29.14 Traceback (most recent call last):
+ 1:29.14 File "/Users/jarilvalenciano/Desktop/src/mozilla-central/config/nsinstall.py", line 188, in <module>
+ 1:29.14 sys.exit(_nsinstall_internal(argv[1:]))
+ 1:29.14 File "/Users/jarilvalenciano/Desktop/src/mozilla-central/config/nsinstall.py", line 149, in _nsinstall_internal
+ 1:29.14 copy_all_entries(args, target)
+```
+Just run `./mach build` again. \ No newline at end of file