←back to thread

848 points thefilmore | 2 comments | | HN request time: 0.001s | source
Show context
jgraham ◴[] No.43970574[source]
(I work at Mozilla, but not on the VCS tooling, or this transition)

To give a bit of additional context here, since the link doesn't have any:

The Firefox code has indeed recently moved from having its canonical home on mercurial at hg.mozilla.org to GitHub. This only affects the code; bugzilla is still being used for issue tracking, phabricator for code review and landing, and our taskcluster system for CI.

In the short term the mercurial servers still exist, and are synced from GitHub. That allows automated systems to transfer to the git backend over time rather than all at once. Mercurial is also still being used for the "try" repository (where you push to run CI on WIP patches), although it's increasingly behind an abstraction layer; that will also migrate later.

For people familiar with the old repos, "mozilla-central" is mapped onto the more standard branch name "main", and "autoland" is a branch called "autoland".

It's also true that it's been possible to contribute to Firefox exclusively using git for a long time, although you had to install the "git cinnabar" extension. The choice between the learning hg and using git+extension was a it of an impediment for many new contributors, who most often knew git and not mercurial. Now that choice is no longer necessary. Glandium, who wrote git cinnabar, wrote extensively at the time this migration was first announced about the history of VCS at Mozilla, and gave a little more context on the reasons for the migration [1].

So in the short term the differences from the point of view of contributors are minimal: using stock git is now the default and expected workflow, but apart from that not much else has changed. There may or may not eventually be support for GitHub-based workflows (i.e. PRs) but that is explicitly not part of this change.

On the backend, once the migration is complete, Mozilla will spend less time hosting its own VCS infrastructure, which turns out to be a significant challenge at the scale, performance and availability needed for such a large project.

[1] https://glandium.org/blog/?p=4346

replies(5): >>43970669 #>>43971472 #>>43971745 #>>43974450 #>>43974555 #
iamcreasy ◴[] No.43970669[source]
Thanks for the added context.

If I may - what were the significant scale challenges for self hosted solution?

replies(3): >>43970862 #>>43970906 #>>43976364 #
jgraham ◴[] No.43970906[source]
Again, I can only comment from the perspective of a user; I haven't worked on the VCS infrastructure.

The obvious generic challenges are availability and security: Firefox has contributors around the globe and if the VCS server goes down then it's hard to get work done (yes, you can work locally, but you can't land patches or ship fixes to users). Firefox is also a pretty high value target, and an attacker with access to the VCS server would be a problem.

To be clear I'm not claiming that there were specific problems related to these things; just that they represent challenges that Mozilla has to deal with when self hosting.

The other obvious problem at scale is performance. With a large repo both read and write performance are concerns. Cloning the repo is the first step that new contributors need to take, and if that's slow then it can be a dealbreaker for many people, especially on less reliable internet. Out hg backend was using replication to help with this [1], but you can see from the link how much complexity that adds.

Firefox has enough contributors that write contention also becomes a problem; for example pushing to the "try" repo (to run local patches through CI) often ended up taking tens of minutes waiting for a lock. This was (recently) mostly hidden from end users by pushing patches through a custom "lando" system that asynchronously queues the actual VCS push rather than blocking the user locally, but that's more of a mitigation than a real solution (lando is still required with the GitHub backend because it becomes the places where custom VCS rules which previously lived directly in the hg server, but which don't map onto GitHub features, are enforced).

[1] https://mozilla-version-control-tools.readthedocs.io/en/late...

replies(2): >>43971007 #>>43977390 #
monegator ◴[] No.43971007[source]
why github and not codeberg? badwidth? $$$ from microsoft? (traffic, free training for copilot, ..)
replies(6): >>43971085 #>>43971120 #>>43971319 #>>43971424 #>>43972405 #>>43973600 #
GuB-42 ◴[] No.43971319[source]
I would say that using GitHub only for a public git repository is pretty good value.

It is free and robust, and there is not much bad Microsoft can do to you. Because it is standard git, there is no lockdown. If they make a decision you don't like, migrating is just a git clone. As for the "training copilot" part, it is public, it doesn't change anything that Microsoft hosts the project on their own servers, they can just get the source like anyone else, they probably already do.

Why not Codeberg? I don't know, maybe bandwidth, but if that's standard git, making a mirror on Codeberg should be trivial.

That's why git is awesome. The central repository is just a convention. Technically, there is no difference between the original and the clone. You don't even need to be online to collaborate, as long as you have a way to exchange files.

replies(2): >>43971550 #>>43974654 #
immibis ◴[] No.43971550[source]
I am banned from GitHub because I didn't want to give them my phone number. They ignored a legally binding GDPR request to delete all my data. I haven't got around to suing them yet.

Recently I also got "rate limited" after opening about three web pages.

Microsoft can do something to you, and that is to arbitrarily deny you access after you've built a dependence on it, and then make you jump through hoops to get access back.

replies(5): >>43971753 #>>43971894 #>>43972095 #>>43973248 #>>43980513 #
LadyCailin ◴[] No.43971753[source]
This is kind of a weird hill to die on, but you’re well within your rights, so you do you.

However, it is clearly not correct to say that you were banned from GitHub. It’s like saying “I was banned from Google because I refuse to use computing devices.”

Not really a ban, just self flagellation, which, again, whatever works for you.

replies(2): >>43971900 #>>43974101 #
immibis ◴[] No.43971900[source]
Give me your social security number or you may not reply to my comments. If you don't give me your social security number, choosing instead to die on this weird hill, it's not correct to say you're banned - you're merely self-flagellating.
replies(2): >>43974590 #>>43977341 #
LadyCailin ◴[] No.43974590[source]
A phone number given to a generally reputable company is hardly equivalent to giving a rando your social security number.

I mean, obviously you disagree with them being generally reputable, but you must realize that’s not a broad opinion, and they are certainly better at preventing data breaches than the average company that stores phone numbers.

Sincerely though, I hope you get your GDPR request sorted.

replies(1): >>43974812 #
fsflover ◴[] No.43974812[source]
> generally reputable company

Are you talking about Microsoft here? https://en.wikipedia.org/wiki/Microsoft#Controversies

replies(1): >>43974899 #
LadyCailin ◴[] No.43974899[source]
Hence the qualifier “generally”. I’m not saying they’re above reproach, but I am saying that companies that care far less about data security already have my phone number, such as most/all of my utilities - including my phone company. And those aren’t realistically optional.
replies(2): >>43975571 #>>43977855 #
fsflover ◴[] No.43975571[source]
> companies that care far less about data security already have my phone number ... including my phone company.

Far less than these?

https://news.ycombinator.com/item?id=40592789

https://news.ycombinator.com/item?id=12305598

https://en.wikipedia.org/wiki/Criticism_of_Microsoft#Privacy...

This is unlikely.

replies(1): >>43977794 #
1. Dylan16807 ◴[] No.43977794[source]
The bar is a lot lower than you think.
replies(1): >>43994702 #
2. fsflover ◴[] No.43994702[source]
Tell me more. Meanwhile: https://news.ycombinator.com/item?id=43993076