For a long time Firefox Desktop development has supported both Mercurial and Git users. This dual SCM requirement places a significant burden on teams which are already stretched thin in parts. We have made the decision to move Firefox development to Git.
- We will continue to use Bugzilla, moz-phab, Phabricator, and Lando
- Although we’ll be hosting the repository on GitHub, our contribution workflow will remain unchanged and we will not be accepting Pull Requests at this time
- We’re still working through the planning stages, but we’re expecting at least six months before the migration begins
APPROACH
In order to deliver gains into the hands of our engineers as early as possible, the work will be split into two components: developer-facing first, followed by piecemeal migration of backend infrastructure.
Phase One - Developer Facing
We’ll switch the primary repository from Mercurial to Git, at the same time removing support for Mercurial on developers’ workstations. At this point you’ll need to use Git locally, and will continue to use moz-phab to submit patches for review.
All changes will land on the Git repository, which will be unidirectionally synchronised into our existing Mercurial infrastructure.
Phase Two - Infrastructure
Respective teams will work on migrating infrastructure that sits atop Mercurial to Git. This will happen in an incremental manner rather than all at once.
By the end of this phase we will have completely removed support of Mercurial from our infrastructure.
Although we’ll be hosting the repository on GitHub
Why aren’t they using a self-hosted instance of Gitea? This makes no sense move to Github of all places.
Could be familiarity? I saw an article go by recently about how projects that aren’t on GitHub suffer from lack of contributions. Although that matters more for smaller projects, Mozilla is a beast and could probably pull people off GitHub if it wanted to.
Also if anyone should be trying to build up an alternative to GitHub, it should be Mozilla
If you are at a skill level, where you can meaningfully contribute to a project like this, registering for an alternative git provider should not be an obstacle
Obstacle? No. Annoyance? Yes.
I agree with this in a lot of cases, but I’m not sure about this case - Mozilla won’t be accepting PRs over GitHub from what I can tell.
Git desperately needs something like activity pub. That’s how it should have been from the beginning
and it was lol. Git was designed to work using email and plain text patches. No nonsense, no closed platforms. You can still use git that way.
It’s super cool that it supports this, heck I’ve used it when no other options were there (and thank git I could! It made a nightmare into just a little more work instead).
I will say though, it’s most of the other software forge features that people normally talk about adding Activity Pub support for (issues tracking, merge requests, tracking forks, CI tooling, handling documentation, etc).
Maybe you can convince Gitea guys to work on that? After all they’re the leading open-source alternative.
Lets just say it’s coming… soon :)
ForgeJo?
The J is lowercase, -ejo is an Esperanto suffix meaning “place”.
Pull people off GitHub? I get the impression from others that contributing to Mozilla projects, particularly Firefox, is a painful experience. But afaik one former Mozilla project uses GitHub for everything: Rust, the programming language.
Agreed. They could’ve hosted nearly any git forge since they’ll keep using bugzilla and other workflows as is.
They already use GitHub for a bunch of other projects. See https://github.com/mozilla/ and https://github.com/mozilla-mobile/
It’s the most widely used platform that the most people are familiar with that they get to use likely for free. Newer projects of theirs are also hosted there. Why would you say it makes no sense?
Hosting the public repo? I heard that the GH repo is just a mirror
Out of all the possible Git choices, they chose one of the worst options. I am very curious about the reasoning for that. Could have been a Mozilla-hosted Gitlab instance, or something else like Gitea
Why do you say GitHub is the worst choice, out of curiosity?
Especially lately, incredibly poor performance, and constant outages. Plus if you’re an owner of a private repository, I don’t want them to train their asshole AI based on my code, without my knowledge
And Micro$oft
At least when it comes to Git I’m not too concerned. What could MS possibly do to you? Maybe vendor lock in via the issue tracker? They aren’t using it and it’s not exactly that hard to migrate off of it in the first place.
deleted by creator
Would have been amazing if they federated with Forgejo and supported federated git like they’re doing with mastodon.
Mozilla being Mozilla, I’d guess. They should have gone sel-hosted with sourcehut, or at least gitlab. Or if not self-hosted, the choice should have been at the least gitlab or better, given it allows to chose DCO over CLA. But perhaps not everyone cares… I remember when gitlab introduced DCO, and how that helped debian and gnome to migrate to gitlab. After allowing DCO, other projects migrated as well.
I’m not that fan of gitlab, and I’d prefer sourcehut for open source projects, but if wanting something closer to github, then gitlab might be the answer. But Mozilla is a corp, maybe they don’t care much about these things, and as a corp, perhaps they were looking for CLA sort of contribution any ways…
I also think gitlab hosted by Mozilla Foundation would have been a better solution than github.
Mozilla Corporation is owned by the Mozilla Foundation, so their incentives aren’t that of a corporation but a non-profit.
I would love to see the Mozzilla foundation double down on ActivityPub and host a Forgejo instance or work with Codeberg for hosting.
I wonder how much Github being the primary place for FOSS source code limits people around the world from joining the movement.
I’d also like to see an open platform for their source code, but Github is undeniably the preferred platform for most developers, so I understand Mozilla’s decision.
So long as only the source code is hosted on Github I don’t think it limits people to contribute. Bugs and features are still tracked with the existing tools.
deleted by creator
I agree that PRs are problematic, but that doesn’t make GitHub “trash”.
Also, that dude is so obnoxious and really seems to like to make broad generalizations of his opinion like it’s fact.
and really seems to like to make broad generalizations of his opinion like it’s fact.
None of what Brodie said is baseless, even if some are more opinion than fact. He sight’s sources for a reason.
He sight’s sources for a reason.
I’d hope so. It wouldn’t be good if they were blind.
Anyway, I didn’t question the accuracy of what he said, just that his manner of delivery is obnoxious and portrays an attitude of self-importance. It feels like he’s yelling at the viewer with hostility.
Aussies tend to be quite direct. It’s basically our natural state. I get how it can be perceived as hostile, but I don’t actually think Brodie is very abrasive. He seems like a pretty relaxed guy.
He’s literally talking to the viewer the same way the vast majority of YouTubers speak, he’s just Australian.
the same way the vast majority of YouTubers speak
“Everyone else is doing it” is not a free pass. Absolutely none of the creators I watch speak like that, and I can list quite a lot. It’s obnoxious.
- The video is 2y old.
- He’s Australian.
Cut the man some slack.
Why do either of those matter towards being obnoxious?
Are all Australians obligated to be like that? Two years ago people were supposed to make videos acting obnoxious?
I’m just curious, why are PRs worse on GitHub compared to other git hosting services?
Instead of using valid commit messages they just slap on “#42” which isn’t valid anywhere other than the GitHub web UI.
Also, GitHub PRs atleast to me feel like they encourage reviewing changes by the total diff of the entire PR, and not each commit. I don’t want a slog of commits that don’t add any value - it just makes doing things like reverts more annoying. Stuff like Gerrit and phabricator enforce reviews by making you review individual commits / changes / whatever you want to call them and not branch diffs.
GitHub has an option when merging a PR to “squash and merge”. This option squashes all of the commits on the PR branch into a single commit and cherry-picks it on top of the base branch. We use this by default in our open source projects at work. Most people are not gonna go through the effort of making a well defined patch series the way it would be required for a Linux kernel contribution. Most changes aren’t that big though and so it doesn’t really matter. Send as many commits as you want in the PR, I’ll just review the diff as a whole and squash it when I’m done. Workflows should adapt to user preference, not the other way, and this is a good example of that.
How much of that is what GitHub encourages and how much of that is what Users prefer? Plenty of users seem to enjoy phabricator / Gerrit for code review in practice precisely because of their workflows.
Well squash and merge isn’t default or pushed in any way. It’s an option, and we chose to enable it ourselves because that’s what works best for us. It’s what works well for many other projects too, which is why many choose to enable it instead of the default merge commit.
Yeah, but phabricator and Gerrit are entirely separate workflows from GitHub, and a lot of people prefer that workflow because it leads to encouraging better histories and reviews. It helps you in getting rid of the “fixed typos” type of commits, while still letting you make larger PRs.
GitHub obviously does let you keep a clean git history, but the code review workflow in GH just doesn’t encourage reviewing commits.
… which is part of why they aren’t using GitHubs pull request feature to land changes?
“at this time”
Meaning they’re planning/considering to in the future.
That is not what that means
deleted by creator
I’m only a native English speaker, so guess I could be interpreting it wrong.
You should try being a native English reader.
What it means is “they will not be accepting pull requests at this time.” Whether or not they are open to changing this in the future is not specified. They have not specifically stated that this is off the table, nor have they stated this is their intent.
deleted by creator
No. They’re just not publicly saying it’s off the table. Whether they’re entertaining it internally is a totally different question.
And I’m sure you’ve got a long history of submitting patches to Firefox given your strong opinions on the process Mozilla uses to manage this?
Nobody here needs “a long history of submitting patches to Firefox” to have an opinion on the tools used to manage the project. I assume that most here sharing their opinion don’t and yet you need not scroll far. You merely need some knowledge and experience with the tools, be it in personal, corporate, FOSS, etc. projects. Besides I don’t spend my free time helping FOSS projects just to use it to be like “my opinion better” that’s literally just the “appeal to authority fallacy”. But if you must know, I have helped here and there throughout the years under various different aliases/accounts. (Why “various aliases”? because I enjoy helping not some meaningless credit, it’s just how I am.)
So what you are saying is that as someone who has never worked on the Firefox codebase, you still somehow know more about managing contributions to one of the largest FOSS projects in the world that has been running pretty successfully for the last 25 years?
Idk, maybe try a bit of humility - like if it looks like they are making a weird decision, maybe it’s not because they are dumb and you are very smart, maybe it’s because they know stuff that you don’t?
First off, not what I said.
Second off, I never called them dumb. I actually happen to have a good relationship with them, so I take offense to what you’re implying. I mearly stated that I don’t like GitHub and gave some legitimate reasons. Which btw : Maybe the one who should learn humility is you.
Here is an alternative Piped link(s):
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I’m open-source; check me out at GitHub.
I’m amazed people are still using Mercurial. I worked on a few hg projects about a decade ago and it wasn’t a very good experience. It was easy for people who used subversion, but if you were even halfway familiar with git you just missed a lot of functionality.
I wonder if the same is going to be true of Thunderbird. Thunderbird actually requires you use Mercurial to contribute at all, rather than managing both git and Mercurial.
That being said…it’s kind of odd to me how swiftly Mozilla of all companies/orgs is to embrace a code forge hosted by Microsoft for their main software. Surreal, even.
- Although we’ll be hosting the repository on GitHub, our contribution workflow will remain unchanged and we will not be accepting Pull Requests at this time
Whyyyyy? Why github?
Reviewing PRs costs money/time
Edit: added “Why github?”
Fair point. I would say on a personal level that GitHub actions is quite nice to use, especially with the marketplace. But I’d be surprised if switching version controls also entailed a CI/CD change for Mozilla, so I can’t think of a good reason.
Wtf is wrong with gitlab…
Nothing, it works fine.
Then why didn’t Firefox use their power to support a git that’s not owned by Microsoft?
I don’t know. Because they are not angry with Microsoft anymore and github better fits their workflow?
It’s rather bold of many of the commenters in this thread to assume they know the needs of Mozilla and their developers rather than those people themselves. GitHub makes complete sense, even if it doesn’t live up to some people’s desires for free software purity.
This is great. Honestly it is the best option.
I wonder if they’ll consider Codeberg as their future Git host of choice. GitHub is less than ideal in terms of digital sovereignty, GitLab also has some questionable leadership. Codeberg seems like the most solid alternative to these so far.
Dang, I was really hoping that they would stop using bugzilla and switch to something like GitHub/GitLab/Gitea issues instead. Perhaps also put things like feature requests there as well and have one place to contribute to Firefox