Firefox Development Is Moving From Mercurial To Git

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.

TCB13,
@TCB13@lemmy.world avatar

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.

Chewy7324,

Agreed. They could’ve hosted nearly any git forge since they’ll keep using bugzilla and other workflows as is.

Gecko,
@Gecko@lemmy.world avatar

They already use GitHub for a bunch of other projects. See github.com/mozilla/ and github.com/mozilla-mobile/

otter, (edited )

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

dinckelman,

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

lolcatnip,

Obstacle? No. Annoyance? Yes.

russjr08,
@russjr08@outpost.zeuslink.net avatar

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.

antrosapien,

Git desperately needs something like activity pub. That’s how it should have been from the beginning

emax_gomax,

ForgeJo?

richieadler,

The J is lowercase, -ejo is an Esperanto suffix meaning “place”.

TCB13,
@TCB13@lemmy.world avatar

Maybe you can convince Gitea guys to work on that? After all they’re the leading open-source alternative.

deur, (edited )

Lets just say it’s coming… soon :)

sir_reginald,
@sir_reginald@lemmy.world avatar

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.

andruid,

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).

lukas,
@lukas@lemmy.haigner.me avatar

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.

bamboo,

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?

merthyr1831,

Hosting the public repo? I heard that the GH repo is just a mirror

kixik, (edited )

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…

Chewy7324,

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.

andruid,

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.

Chewy7324,

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.

Rustmilian, (edited )
@Rustmilian@lemmy.world avatar

deleted_by_author

  • Loading...
  • Lord_ToRA,
    @Lord_ToRA@lemmy.world avatar

    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.

    Scorpion3869, (edited )

    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.

    Lord_ToRA,
    @Lord_ToRA@lemmy.world avatar

    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.

    Spectacle8011,
    @Spectacle8011@lemmy.comfysnug.space avatar

    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.

    Scorpion3869,

    He’s literally talking to the viewer the same way the vast majority of YouTubers speak, he’s just Australian.

    Lord_ToRA, (edited )
    @Lord_ToRA@lemmy.world avatar

    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.

    Scorpion3869, (edited )
    1. The video is 2y old.
    2. He’s Australian.

    Cut the man some slack.

    Lord_ToRA,
    @Lord_ToRA@lemmy.world avatar

    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?

    Scorpion3869,

    Right now, I’d say you’re the one choosing to be obnoxious.

    Lord_ToRA,
    @Lord_ToRA@lemmy.world avatar

    Because I’m answering you with logic?

    Scorpion3869, (edited )

    Because you’re being obnoxious.
    Caring this much about how some YouTuber speaks is literally obnoxious and portrays an attitude of self-importance.

    Lord_ToRA,
    @Lord_ToRA@lemmy.world avatar

    You’ve clearly just devolved into ad hominem attacks. Does your ego really hang on whether or not your YouTuber friend is perceived the way you want?

    I just pointed out that the dude is obnoxious and you’re over there trying to defend him with complete nonsense.

    Move on, buddy.

    Scorpion3869, (edited )

    Move on, buddy.

    🫴

    jaybone,

    I’m just curious, why are PRs worse on GitHub compared to other git hosting services?

    Rustmilian, (edited )
    @Rustmilian@lemmy.world avatar

    Instead of using valid commit messages they just slap on “” which isn’t valid anywhere other than the GitHub web UI.

    IAm_A_Complete_Idiot,

    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.

    bamboo,

    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.

    IAm_A_Complete_Idiot,

    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.

    bamboo,

    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.

    IAm_A_Complete_Idiot, (edited )

    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.

    bamboo,

    I think the idea here is that reviewing individual commits is irrelevant if the plan is just to squash it all down. Each PR corresponds to a single change on the main branch in the end, the fact there was a main commit followed by a half size “fixed typos” and “fixed bug” commits doesn’t actually matter since it will be blown away in the end. The process results in the same clean history with good individual commits on the main branch, just as if the user squashes those commits locally before pushing it up to the code review platform.

    IAm_A_Complete_Idiot, (edited )

    Right, but squashed commits don’t scale for large PRs. You could argue that large PRs should be avoided, but sometimes they make sense. And in the case where you do have a large PR, a commit by commit review makes a lot of sense to keep your history clean.

    Large features that are relatively isolated from the rest of the codebase make perfect sense to do in a different branch before merging it in - you don’t merge in half broken code. Squashing a large feature into one commit gets rid of any useful history that branch may have had.

    bamboo,

    I agree, and GitHub allows choosing how to merge each PR individually if you need to do something different for a specific PR. Large PRs like that are at most 1% of our total PRs, and we review those more per-commit and use a merge commit instead of a squash. By default we optimize for the other 99%.

    RegalPotoo,
    @RegalPotoo@lemmy.world avatar

    … which is part of why they aren’t using GitHubs pull request feature to land changes?

    Rustmilian, (edited )
    @Rustmilian@lemmy.world avatar

    “at this time”

    Meaning they’re planning/considering to in the future.

    kogasa,
    @kogasa@programming.dev avatar

    That is not what that means

    Rustmilian, (edited )
    @Rustmilian@lemmy.world avatar

    It’s exactly what it means.

    “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 can all read it right there plan as day.
    If they weren’t planning to/considering it, then why specify “at this time”?
    I’m only a native English speaker, so guess I could be interpreting it wrong.
    Do tell oh wise one, what alternative meaning could it possibly have?

    Edit : statement from glob himself. 1000000728

    kogasa, (edited )
    @kogasa@programming.dev avatar

    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.

    Rustmilian, (edited )
    @Rustmilian@lemmy.world avatar

    So they are considering it.
    Thanks for confirming my point.
    If they weren’t, they wouldn’t have specified, they’d just say “we will not be accepting Pull Requests”.

    You should try being a native English reader.

    Ironic

    kogasa,
    @kogasa@programming.dev avatar

    No. They’re just not publicly saying it’s off the table. Whether they’re entertaining it internally is a totally different question.

    Rustmilian, (edited )
    @Rustmilian@lemmy.world avatar

    What’s funny is I have direct contact with some of the internal Firefox devs. ◉⁠‿⁠◉
    I’ll deadass just ask.

    kogasa,
    @kogasa@programming.dev avatar

    Okay? Is this supposed to change something?

    Rustmilian,
    @Rustmilian@lemmy.world avatar

    You’ll see.

    kogasa,
    @kogasa@programming.dev avatar

    How does the opinion of your supposed internal contact at mozilla affect the basic English interpretation of the public announcement?

    Rustmilian, (edited )
    @Rustmilian@lemmy.world avatar

    How does the opinion of your supposed internal contact at mozilla affect the basic English interpretation of the public announcement?

    We’d see who’s interpretation is right? Duh.

    Padenot (contributer with direct ties to Mozilla internal) agrees with me on GitHub PR being terrible. 🤣
    Waiting for other responses. 10000007231000000724

    Note : most of them are sleeping rn, so it’s going to take a bit of time.

    I asked Glob (the literal author of the announcement) directly as well. Waiting for him to wake up and see it, he was up at 3am last night, lol.

    kogasa, (edited )
    @kogasa@programming.dev avatar

    You’re quite the lunatic. I’m obviously not defending GitHub PRs, or saying Mozilla should or should not use them. I said “we are not open to PRs at this time” is not the same as “we will be open to PRs in the future.” The truth of that statement has absolutely nothing to do with whether or not Mozilla is, in fact, open to using PRs in the future. But there’s no point in telling you that, because you’re clearly unhinged. Have a good life.

    Rustmilian, (edited )
    @Rustmilian@lemmy.world avatar

    First off :

    “we will be open to PRs in the future.”

    Is not what I said they meant to being with. I said planning/considering, which is wildly different.

    Second :
    Who’s unhinged? 10000007281000000729Looks like I was right all along, they were indeed considering it but have since decided against it because of the same concerns I had mentioned previously. Is this definitive enough for you?

    RegalPotoo,
    @RegalPotoo@lemmy.world avatar

    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?

    Rustmilian, (edited )
    @Rustmilian@lemmy.world avatar

    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.)

    RegalPotoo,
    @RegalPotoo@lemmy.world avatar

    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?

    Rustmilian, (edited )
    @Rustmilian@lemmy.world avatar

    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 : 100000072310000007241000000728Maybe the one who should learn humility is you.

    csolisr,

    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.

    doink,

    This is great. Honestly it is the best option.

    bamboo,

    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.

    uis, (edited )
    @uis@lemmy.world avatar
    • 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?

    kogasa,
    @kogasa@programming.dev avatar

    Reviewing PRs costs money/time

    uis,
    @uis@lemmy.world avatar

    Edit: added “Why github?”

    kogasa,
    @kogasa@programming.dev avatar

    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.

    blindbunny,

    Wtf is wrong with gitlab…

    ExLisper,

    Nothing, it works fine.

    blindbunny,

    Then why didn’t Firefox use their power to support a git that’s not owned by Microsoft?

    ExLisper,

    I don’t know. Because they are not angry with Microsoft anymore and github better fits their workflow?

    soulfirethewolf,

    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

    aport,

    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.

    dinckelman,

    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

    bassomitron,

    Why do you say GitHub is the worst choice, out of curiosity?

    dinckelman,

    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

    Thorned_Rose,
    @Thorned_Rose@kbin.social avatar

    And Micro$oft

    moon_matter, (edited )
    @moon_matter@kbin.social avatar

    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.

    Hexadecimalkink,

    Would have been amazing if they federated with Forgejo and supported federated git like they’re doing with mastodon.

    Spectacle8011,
    @Spectacle8011@lemmy.comfysnug.space avatar

    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.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • linux@lemmy.ml
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 18878464 bytes) in /var/www/kbin/kbin/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php on line 171

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 10502144 bytes) in /var/www/kbin/kbin/vendor/symfony/error-handler/Resources/views/logs.html.php on line 38