4 ms·
It's one command to clone from git or hg at your convenience, one line to install the development dependencies (that figures out the os/distro and does the righ
by padenot 3y ago
It's one command to clone from git or hg at your convenience, one line to install the development dependencies (that figures out the os/distro and does the right thing) and one line to build.
Then one line to install the command line tooling to submit patches and another line to submit a patch (or a patch series).
All the docs are there for all major platforms, aimed at first timer in our code base: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html#firefox-contributors-quick-reference https://firefox-source-docs.mozilla.org/contributing/contrib...
It used to be much more complex than that but this isn't the case anymore. Using GitHub (that we need to use anyways because lots of projects and lots of web standards use it) feels like banging two rocks together compared to what our tooling can do, especially at that scale.
Source: I work at Mozilla and frequently onboard contributors of all backgrounds and levels.
- nikeee 3y agoI'm curious, can you elaborate on what's missing at GH/GL?
- padenot 3y agoI use GitHub everyday, and problems, or what I miss from the mozilla stuff are: - git is not as modern as mercurial (no absorb, no evolve, no nice ncurse gui, weird explicit branching model). I've been using both daily for more than ten years, but mercurial is largely superior in every respect - no way to properly do patch stacks and proper reviews, with static analysis and linting integrated into the review tool, no way to lose comments by force push or that kind of thing (phabricator is amazing) - no way to properly do private issues for security bugs or touchy audits that could reveal large problems - no hierarchical categories for issues, no severity, priority, little provision for advanced filtering for a project our size. Bugzilla is very nice and much better than anything else I've tried. You can use tags for a lot of that on gh but it's messy - code browsing is primitive compared to https://searchfox.org/ https://searchfox.org/ (but most code browsing tool are, in comparison) - my notifications are completely flooded by lots of useless information on GitHub, but that might be fixable - our CI system (treeherder/taskcluster) scales, works on Linux/Mac/windows/Android and a bunch of version and arch, integrated with all of the other tools mentioned. Things such as auto-running tests based on the content of the patch, automatic categorization and prioritization of intermittent test failures, or auto-recording test failures and offering a pernosco recording showing the issue are just some of the features that we use daily without even thinking There's probably a lot of other stuff that is better, but that's a nice start. If GitHub had a real patch stack management story, a real issue tracker and a real review tool it would go a long way, but that's not the case.
- extraduder_ire 3y agoSearchfox looks pretty cool, I'm surprised I've never heard of it. I often wonder how many great softwares are out there, but only used in a small niche.
- padenot 3y agoIt works for other code bases than Firefox, e.g. we index LLVM and webkit. It has a special understanding of the Firefox code, though. Here's a cool class diagram with emojis: https://asuth.searchfox.org/mozilla-central/query/default?q=inheritance-diagram%3A%27AudioNode%27+depth%3A4+graph-layout%3Afdp https://asuth.searchfox.org/mozilla-central/query/default?q=...
- xign 3y agoCan you explain what you mean by "patch stack"? I can roughly guess what you meant but not sure. Do you mean rebasing changes while to preserving the diffs of what you were reviewing? (I find that essentially no Git service I have used does this well) Personally I think I got used to Git since it's 99.99% of what I use today. There are definitely pain points to it, but just like most people it's kind of become "the way it is", which I don't think is healthy. While Git has helped revolutionized the way SCM works, it's far from perfect (and it still does certain things worse than a traditional centralized SCM like binary file management and renaming files), and I think its prevalence sometimes puts people in a collective blindspot/groupthink. Imagine if you are in your 20's and Git is the only SCM you have used, everything other than Git would either be old-school or weird. I definitely agree on GitHub though. I think it's quite nice for small projects (I manage one myself) but I don't see how it's usable for a serious large software project for reasons you mentioned. Even simple things like correctly linking issues together, or code review tools just seem severely lacking to me.
- padenot 3y agohttps://firefox-source-docs.mozilla.org/contributing/stack_quickref.html https://firefox-source-docs.mozilla.org/contributing/stack_q.... It's then two clicks to diff two arbitrary versions of a particular patch. For complex patch sets that take a few rounds of review, it's nice to understand what changed since last time you looked at it. When reviewing code from e.g. a beginner, it helps to quickly check that all comments have been addressed and nothing else has changed, etc. Then you merge ("land") the patch stack in one unit, and it's tested in one unit, and bisection tooling knows that it is the case and it's nice.
- abdullahkhalids 3y agoBeautiful. Now I can finally do the necessary custom build: Replace all keyboard shortcuts with emacs ones.
- Rendello 3y agoThose 3 lines look nicer than the "3 commands to install Gentoo"! https://web.archive.org/web/20160309055829/http://www.bash.org/?464385 https://web.archive.org/web/20160309055829/http://www.bash.o...