Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move from GitHub long-term #41448

Closed
lukateras opened this issue Jun 4, 2018 · 60 comments
Closed

Move from GitHub long-term #41448

lukateras opened this issue Jun 4, 2018 · 60 comments

Comments

@lukateras
Copy link
Member

See:

Maybe it's worth looking into hosting a GitLab instance, as GNOME and FreeDesktop projects do.

@lukateras lukateras changed the title Move to GitLab? Move to GitLab Jun 4, 2018
@lukateras lukateras changed the title Move to GitLab Move to GitLab? Jun 4, 2018
@edolstra
Copy link
Member

edolstra commented Jun 4, 2018

I don't see a reason to switch at this moment. If/when Microsoft starts screwing up GitHub, we can always switch then.

@Anton-Latukha
Copy link
Contributor

Anton-Latukha commented Jun 4, 2018

Microsoft bought closed source product with closed source company.


Microsoft is Open Source company now.

  • Balmer left company around end 2013 beginning of 2014.
    With Satya Nadella new direction started [Proof].

  • They laid off most Microsoft evangelists in the company, and hired a flexibly minded people.

  • They said that Windows 10 is the last version of Windows [Proof], the it is going to be only long rolling support.

  • They secretly closed Windows department, and joined them into Customer products department. The head of that department is Office 365 guy.
    [Proof]

  • Microsoft main business treasures today are Azure Cloud [Proof], where 60% is Linux, and Office 365, that is web based.

  • They open sourced many products. [Proof: 1836 repositories on GitHub]

  • Started networking Linux distro recently. [Proof]

  • [Proof] Bash on Windows, [Proof] Windows packaging, [Proof] use open source packages.

  • Linux subsystem for Windows.

  • They are one of the big contributors to the kernel.

What are the contrary facts?

I am not a Microsoft fan, one I left work because IT stack was mostly on Microsoft.

But at this point, if they can really be a good buddy, why not.

@bbigras
Copy link
Contributor

bbigras commented Jun 4, 2018

Maybe we should never have used Github for our projects since it's closed source and now is just the right time to make things right. One of Gitlab's downside is that most people don't have an account and won't even bother to create one for a PR. Maybe that could change now if enough projects move to it.

@Anton-Latukha
Copy link
Contributor

Anton-Latukha commented Jun 4, 2018

People, let's wait.

The beautiful thing is, we would wait.

And watch and IT people flip-out because they don't understand that Microsoft would only refresh GitHub AND GitLab development at this point.

And all IT guys flip-out. And move to GitLab. And GitLab development goes through the roof, and it becomes superB over time.
I can see people right now start writing code for migration from GitHub to GitLab. 8)

We can sit and watch the GitLab grow (https://www.openhub.net/p/gitlab) and receive all kinds of features and become ready for our migration to it.

@bbigras
Copy link
Contributor

bbigras commented Jun 4, 2018

I can see people right now start writing code for migration from GitHub to GitLab

You can already import a repo in 1 click (and it must have been that way for a while).

@grahamc
Copy link
Member

grahamc commented Jun 4, 2018

Yes, I think the prudent move right now is to wait and see. Moving an entire community is quite costly in terms of time and effort. We should not rush in to this decision, and should take great care in evaluating our options and the future.

People who would like to not use GitHub now due to the ownership are able to send patches over email, or maybe even a link to a patch over IRC.

I'm going to close this issue because I don't think we are likely to take any immediate action. I think mirrors and backups are good and smart -- thank you @volth for setting that up.

@grahamc grahamc closed this as completed Jun 4, 2018
@lukateras
Copy link
Member Author

lukateras commented Jun 4, 2018

@grahamc I agree with the overall sentiment, but I would like a bit more community feedback/discussion before closing this issue, if possible. Judging by likes on OP, this is not just me concerned by this, and closing issue would significantly decrease its visibility.

@lukateras lukateras changed the title Move to GitLab? Move from GitHub long-term Jun 4, 2018
@Anton-Latukha
Copy link
Contributor

Anton-Latukha commented Jun 4, 2018

Ok, now as I look closely to interface, seems GitLab has most features I thought was not present.
I personally use GitLab as private stash. And used GNOME one quite a big portion of time in recent days. GNOME hosting seems slow.

And if discussion is not about Microsoft acquiring GitHub, but about migration to GitLab, because better - I am interested.

I am for migrating when it would be solid-prof migration. With issues, and a everything.
GitHub in fact have a lack of features, khm... (inline highlighting) khm... (SVGs) khm...

@yegortimoshenko Can you refer to Pros/Cons articles, Slant in the head message, maybe have a small list of useful to us features? Then if after this issue would be reopened, referred to everyone would know the points.

@lukateras
Copy link
Member Author

lukateras commented Jun 4, 2018

Initial title did not communicate intent clearly, I'm concerned about moving away from GitHub rather than by specifically going with GitLab.

Regarding that tangent, GitLab does have all the features, and Nix highlighting is better in that it properly highlights key pairs outside of attrsets. Say, GitHub doesn't highlight this properly:

imports = [ <nixpkgs/pkgs/top-level/all-packages.nix> ];

It is unlikely that there would be issues regarding feature set, but sunk cost is obviously huge: there are over 40000 issues and pull requests. GitLab has auto-import that retains interlinking, wikis, etc., that should help, but even then this would be hard to pull off.

The main thing going behind this is that Linux distributions have traditionally preferred libre infrastructure and Nix/NixOS/Nixpkgs is a major exception. This is a chance to make things right in regards to that, and this might help migrate more people to NixOS that are reluctant to do so because of less principled stance on centralization and software freedom.

@vcunat
Copy link
Member

vcunat commented Jun 4, 2018

No panic yet! Microsoft loves open-source, reportedly, so perhaps they will open-source GitHub code 🌈

EDIT: BTW I really like GitLab and we use it at my work all the time (full-time open-source). Back then when Nix* went to GitHub, there was no other option getting close in usability (for free). Now it's mainly about the cost to make such a big change (issues, PRs, Borg, etc.), and I hope Microsoft won't make it worth to pay the price...

@Anton-Latukha
Copy link
Contributor

Anton-Latukha commented Jun 6, 2018

GitLab announce that they make:

  • Hosted gitlab.com profile Gold

    • 50,000 CI pipeline minutes per month on our shared runners
    • Built-in CI/CD
    • Cycle Analytics
    • Issue Boards
    • Time tracking
    • Preview your changes with Review Apps
    • Publish static websites for free with GitLab Pages
    • Git LFS 2.0 support
    • Configurable Issue Boards
    • Issue Board Focus Mode
    • Multiple Issue Boards
    • Next business day support
    • Multiple approvals in code review
    • Related issues
    • Issue Weights
    • Burndown Charts for Project Milestones
    • Multiple assignees for issues
    • Group webhooks
    • Push rules
    • Block secret file push
    • Squash and merge
    • Remote repository pull mirroring
    • Display merge request status for builds on Jenkins CI
    • Lock project membership to group
    • Export issues as CSV
    • Merge request approvals
    • Code Quality
    • Restrict push and merge access to certain users
    • Include external files in CI/CD pipeline definition
    • Contribution Analytics
    • Custom Additional Text in Emails
    • Burndown Charts for Group Milestones
    • Reject unsigned commits
    • Verified Committer
    • Multi-project pipeline graphs
    • Environment-specific secret variables
    • Support for multiple Kubernetes clusters
    • Service Desk
    • File Locking
    • Deploy Boards
    • Incremental rollout deployments
    • Canary Deployments
    • JIRA development panel
    • Browser Performance Testing
    • CI/CD for external repo
    • CI/CD for GitHub
    • Epics
    • Roadmaps
    • Static Application Security Testing
    • Dependency Scanning
    • Container Scanning
    • Dynamic Application Security Testing
    • Kubernetes Cluster Monitoring
    • ChatOps
    • Coming soon: Portfolio Management
    • Coming soon: License management
    • Coming soon: Free guest users
  • self-hosted profile Ultimate

    • Built-in CI/CD
    • Issue Boards
    • AD / LDAP integration
    • Multiple LDAP / AD server support
    • Merge request approvals
    • Disaster Recovery
    • Globally distributed cloning with GitLab Geo
    • Support for High Availability
    • Incremental rollout deployments
    • Canary Deployments
    • Epics
    • Roadmaps
    • Static Application Security Testing
    • Dependency Scanning
    • Container Scanning
    • Dynamic Application Security Testing
    • Kubernetes Cluster Monitoring
    • ChatOps
    • Coming soon: Portfolio Management
    • Coming soon: License management
    • Coming soon: Free guest users

Free "for open source and educational projects, this means unlimited access to current and new features, including Epics, Roadmap, Static Application Security Testing, Container Scanning, and so much more!"

"To apply, send a merge request to add your project to a list of open source projects using GitLab Ultimate and Gold."

Official source

@lukateras
Copy link
Member Author

I've reframed the issue title to only be concerned about long-term decision, and de facto discussion still continues, so reopening just to keep this option on the table.

@lukateras lukateras reopened this Jun 6, 2018
@ryantm
Copy link
Member

ryantm commented Jun 6, 2018

Additional discussion here: https://discourse.nixos.org/t/github-was-purchased-by-microsoft/313

@Anton-Latukha
Copy link
Contributor

In time there would be articles of big communities moving to GitLab and their experience, and then we would get a deep insight.

@Anton-Latukha
Copy link
Contributor

Anton-Latukha commented Jun 7, 2018

Updated upper post with list of features provided.

@nightkr
Copy link
Member

nightkr commented Jun 7, 2018

@Anton-Latukha Sadly I don't think NixOS would qualify for that, since there are quite a few paid contributors (@edolstra from LogicBlox IIRC, various consultancies such as @zimbatm's, etc).

EDIT: Nevermind, with the new language (https://gitlab.com/gitlab-com/gitlab-ultimate-for-open-source/commit/8bfafd8872ac59b53d22863ba5b500f30be2f726) it should be fine, since there is no "NixOS Gold" or similar.

@coretemp
Copy link
Contributor

coretemp commented Jun 8, 2018

I am not sure why GitLab is pushed so much, since there is also https://www.atlassian.com/software/views/open-source-license-request.

  • Atlassian actually makes a profit, while GitLab is just a venture capital backed pile of risk
  • GitHub is a superior product compared to GitLab (just wonder whether GitLab would sell for 7.5B if you have any doubts)
  • Microsoft won't fall over easily; the risk for the NixOS project since the acquisition is lower.

If NixOS was a company, I would also suggest to try to reduce dependencies for the code review system, the issue system to the point that GitHub would just become dumb storage, but then comes the question: who is willing to do that? If you want to build all the tooling to make everything redundant, multi-cloud, multi-vendor backed, go ahead, I am sure that everyone would want to use it if it is at least as good as GitHub is currently.

Let's say Microsoft would do the worst thing possible: deletion of all data on purpose. The probability of that happening is smaller than that of an operational error by GitHub staff (GitHub was never designed as a security fortress).

The only effect of that would be more people (including people they might want to hire, because apparently nobody wants to use Windows in a cloud environment) would like them less, which is bad for their stock price.

@lukateras
Copy link
Member Author

lukateras commented Jun 8, 2018

I am not sure why GitLab is pushed so much, since there is also https://www.atlassian.com/software/views/open-source-license-request.

Because GitLab has a libre version that we could self-host, and even EE version has all source code available (with JS under a free license), while Atlassian is just as bad as GitHub is in this regard.

For example, if you look at software that comes on NixOS install DVD, overwhelming majority of developers of that software will use GitLab, cgit, Pagure, gitweb, gitolite, etc. I would argue there is a reason for why that is the case, and I think by using GitHub we ironically are somewhat alienated from upstream, the larger Linux community and some of the users.

This is about setting policy.

There are of course other options: Gitea is fully community-driven, @thoughtpolice makes a case for Phabricator. This issue is about moving from GitHub in general, not to GitLab specifically.

See #41448 (comment), #41448 (comment).

@Anton-Latukha
Copy link
Contributor

Anton-Latukha commented Jun 8, 2018

Also at this point, it is definite that GitLab would be just a technically superior product onward.

The feature that it is free software open for improving it, it would became same magnitude and influence as Linux, or as Emacs. People and companies would work on it, and develop GitLab more, for themselves. It would become the huge feature-full tool.
https://www.openhub.net/p/gitlab

Also Ruby is pretty clean, intuitive, good and simple enough for all people to understand most of the processes, and make in it, at least, something.

Last release of Ruby received JIT possibility. WebAssembly. There is a full pack of tech to make Ruby jump fast enough as never before. Now I always sing praises to Ruby.

@Anton-Latukha
Copy link
Contributor

Anton-Latukha commented Jun 8, 2018

Linux work happens over clean Git, and mail list.
Emacs through Git and old Savannah.

Besides GIT - they are developed on legacy workflows. Which slows development or lessens volume of contributions/contributors.

And since development processes of GitLab are using GitLab itself - it makes productivity progression correspond to a power function. f(x) = cx^n

@coretemp
Copy link
Contributor

coretemp commented Jun 8, 2018

If you say GitLab's import works for every single GitHub's feature, prove it (this is more difficult than just pressing the import button, but you seem to think that it isn't). GitLab's marketing people can say everything.

Your other assertion is that the current proprietary tools might stop potential contributors. If you can find 5 people who declare this openly on their website specific to the NixOS project, then this might be an issue, but otherwise it is statistical noise. Certainly not a convincing argument to do a major migration.

Only the owner of this repository (or the future one) can set policy. All we can do is provide convincing arguments, which I'd hope the owner of this repository can also think of.

By the time the current owner is doing things so terribly bad, someone will fork, so if it's about policy, I think the right policy is to do nothing at all or to wait until someone does all the work to build something that is so convincingly superior that there is no need to discuss anything.

In general, that's a thing that I see a lot in open-source projects: people want to discuss a lot.

Regarding the pulseaudio policy. What should be the policy for technical decisions? Are we a democracy? Or should we appoint a committee to allow them to make decisions? I think the arguments against pulseaudio are convincing. I think it's great that user shared knowledge on how broken pulseaudio is; something I would have never known if I hadn't used NixOS. Clearly, that person has a superior understanding of PulseAudio compared to me, and probably every other user in our community.

Why should we not listen to such a person? Is it just because "all the other distributions are not doing it"?

I wonder how a vote amongst people that actually know something about the subject would turn out. I read libcardiacarrest's source code. I am going to guess that 99.5% of NixOS users didn't.

People use GitHub, because it works and people like to use it. That's why companies pay money for it.

Like I said before, if you want to do a migration, just fork all the infrastructure with whatever group likes your tool of choice and see where people open most of the issues, post most of the patches, etc. If your suggestion is really better, then we should expect more people to use your solution to the point that GitHub becomes a deserted wasteland. At that point one might make it official, but until that day this is little more than an idea.

GitLab will never accept patches in the community edition adding SAML support or other enterprise features like more robustness (i.e. all the things that actually make a product valuable). As such, all you are doing is providing free labor to make their enterprise product worth more by squashing bugs in the core of the product. You also seem to be under the impression that there is not going to be any difference between a hosted version of GitLab enterprise by them and something you could run on your own servers; this is a rather naive thought and nobody from GitLab is going to say that they won't have additional proprietary patches running on their systems.

If someone would fork GitLab implementing the missing enterprise features, GitLab's revenue would go to zero the moment Amazon thinks the quality of this hypothetical GitLab fork would be high enough. GitLab will just have the same problem as GitHub (lack of VC funds) in a few years with the difference that nobody is going to buy them, because there won't be a second GitHub exit.

If you really think GitLab is a superior product, then I'd think you haven't used GitLab for an extended period of time (I have).

This thread reminds me a lot of the mailing list vs Discourse issue.

@lukateras
Copy link
Member Author

lukateras commented Jun 8, 2018

If you say GitLab's import works for every single GitHub's feature, prove it (this is more difficult than just pressing the import button, but you seem to think that it isn't). GitLab's marketing people can say everything.

I have done a test import of a medium-sized community project (2K+ issues, 5300 commits) over to GitLab recently, and it worked really well. Users, issues, pull requests, interlinking, etc. were all imported properly. That only involved pressing the button.

Your other assertion is that the current proprietary tools might stop potential contributors. If you can find 5 people who declare this openly on their website specific to the NixOS project, then this might be an issue, but otherwise it is statistical noise. Certainly not a convincing argument to do a major migration.

These people are not around because we scared them away. Look at Debian community and you'll find plenty not comfortable with hosting infrastructure on GitHub. Also, as a hypothetical, imagine us using Discord instead of IRC and what would be the effect of that.

I wonder how a vote amongst people that actually know something about the subject would turn out. I read libcardiacarrest's source code. I am going to guess that 99.5% of NixOS users didn't.

It's just an API stub, there's nothing to read. I know for a fact that most people that participated in that thread have done great work in Nixpkgs (including OP) and I wouldn't assume they don't understand the issue or don't understand what libcardiacarrest does.

Like I said before, if you want to do a migration, just fork all the infrastructure with whatever group likes your tool of choice and see where people open most of the issues, post most of the patches, etc.

This is not how collaboration and community projects work.

GitLab will never accept patches in the community edition adding SAML support or other enterprise features like more robustness (i.e. all the things that actually make a product valuable).

Demonstrably false: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests?label_name%5B%5D=Community+Contribution&scope=all&sort=popularity&state=merged


This also seems to get off-topic relatively quickly, with PulseAudio/libcardiacarrest opinions, telling me to fork instead of seeking community decision here, etc. Let's continue in Discourse thread instead? :-)

@Anton-Latukha

This comment has been minimized.

@oxij

This comment has been minimized.

@coretemp

This comment has been minimized.

@7c6f434c

This comment has been minimized.

@7c6f434c

This comment has been minimized.

@oxij

This comment has been minimized.

@Anton-Latukha

This comment has been minimized.

@7c6f434c

This comment has been minimized.

@bhipple

This comment has been minimized.

@7c6f434c

This comment has been minimized.

@oxij

This comment has been minimized.

@edolstra
Copy link
Member

Slight aside: brevity is a virtue. Please don't use this issue to filibuster about mailing lists, Discourse, Pulseaudio, mail configurations, project governance etc., since probably not many people have the time to read through all of that. I've hidden some of the more off-topic comments.

@oxij
Copy link
Member

oxij commented Jun 10, 2018 via email

@Anton-Latukha
Copy link
Contributor

Anton-Latukha commented Jun 10, 2018

@oxij

the lack of governance

  1. Is what is needed. As Linus said, evolution of Kernel happens naturally, without any plan. And this is the only living model so far. Even neural networks evolve.

  2. I don't know about you, but my commits go through a great review process, and @jtojnar mentored me a lot.

  3. Number of PRs is stable (~660), so maintainers are keeping up the great work.

  4. GitHub could had even better bugtracking. But even now, issues have a slow, but healthy net gain.

  5. And yes, standardized full backup, and Free Software license - this would be big benefit.

  6. The less rules [RFCs], the more Wu wei the process is by itself - the better. NixPkgs are very Wu wei-able codebase.

@coretemp
Copy link
Contributor

@Anton-Latukha

  1. Linux kernel development is very organized and supported by tooling; that's why it works.
  2. I think the review process has great variability, which would mean by definition that it's not a good progress. The average review engagement is quite high, but this is only one of the factors in determining process quality.
  3. It was "stable" at 200 in a similar way a year ago or so.

@jb55
Copy link
Contributor

jb55 commented Jun 23, 2018 via email

@oxij
Copy link
Member

oxij commented Jun 24, 2018 via email

@7c6f434c
Copy link
Member

Do we have any member that sees all the teams inside NixOS org without being an owner? (I am almost sure I do not)

@oxij
Copy link
Member

oxij commented Jun 24, 2018 via email

@7c6f434c
Copy link
Member

I had an impression that @rbvermaa and @domenkozar have access to the organization administration.

There is non-public data, for example some of the access levels.

I am not sure there is a sane way to handle review comments; the main discussion is even sanely scrapable, if I look at the HTML code right.

@Ekleog
Copy link
Member

Ekleog commented Oct 11, 2018

Is it actually important that the access levels stay private? I mean, GitHub decided they are private, but that's not necessarily a decision of NixOS, is it?

I would personally very much like to know whom to ping to know eg. who is able to merge PRs in the RFCs repository. And I don't think this security-through-obscurity brings very much: the people who actually have power over the whole org are quite easy to find anyway, and all nixpkgs committers are equally destructive targets currently anyway, as they can all push a commit with a backdoor.

@7c6f434c
Copy link
Member

@Ekleog my comment about access levels was an explanation why GitHub has access control for some kinds of export operations, not a point about our hosting platform requirements.

@Gabriella439
Copy link
Contributor

I'm opposed to a premature migration. GitHub has more mindshare than the alternatives, which in turn leads to more contributions and those contributions are vital to this project's health.

Given the size of this project and its community we should be late adopters of alternative hosting solutions, not early adopters.

@7c6f434c
Copy link
Member

NixOS project currently has enough visibility that GitHub is not really a source of visibility for us.

Our PR review backlog is a larger barrier than whatever UI differences there can be, or the hassle of «login with GitHub account» or even «register with email».

I think we do need to understand before any migration why it would help creating better review workflow or better review-supporting bots. But if there is a clear benefit and a reason to believe in reasonable availability level, mindshare is not our real problem.

@Ekleog
Copy link
Member

Ekleog commented Oct 14, 2018

@Gabriel439 I think we're no longer really talking of migration, just of preparing migration in case we need it. Taking the archive organization owners can download from GitHub and make it public would be preparing this migration in case we ever need it, by securing all data.

It would also allow people who want to experiment with a migration to go ahead and import the data into another system, which might end up being better than GitHub… but that's not even the major point (to me), I mostly think having a backup of all data can already help in case a random event comes in, and making this backup available to everyone makes searching in it much easier than using the GitHub search bar.

@zimbatm
Copy link
Member

zimbatm commented Nov 26, 2018

Closing as this issue as discussions better belong on Discourse. We actually had a similar thread over here: https://discourse.nixos.org/t/github-was-purchased-by-microsoft/313/39

@zimbatm zimbatm closed this as completed Nov 26, 2018
@ghost
Copy link

ghost commented Mar 19, 2022

I'd like to mention, for future reference, that github now forces users to use their web UI if they want to interact with pull requests and bugs in large projects. The github API for these features works only in theory; the author of git-bug has found it too fragile for everyday use on large projects like nixpkgs:

MichaelMure/git-bug#749 (comment)

We should be aware that by selecting a cloud-web platform, people are prevented from choosing a plain-text user interface. The converse is not true: it's quite easy to build a web UI on top of kerneldev-like workflows; sourcehut (https://sr.ht) does exactly this.

I think this asymmetry is the main issue, and which particular corporation owns github is sort of a distraction. I bear no ill will towards Microsoft; this is a problem with cloud companies in general and I think we'd run into it no matter who owned github. Bringing github's ownership into the discussion facilitates mischaracterization of those who object to UI-lockin as "simply Microsoft-haters" or something else dismissive like that.

Closing as this issue as discussions better belong on Discourse. We actually had a similar thread over here: https://discourse.nixos.org/t/github-was-purchased-by-microsoft/313/39

@zimbatm, you've blocked new comments in that thread. Would you care to link to a different one where people can still comment? It would be nice to be able to discuss this issue in a thread where which particular entity owns github is explicitly off-topic. I think you'd get a higher signal-to-noise ratio.

@zimbatm
Copy link
Member

zimbatm commented Mar 19, 2022

It's a fair data point that is worth mentioning. Just create a new thread if you want to highlight this new issue more widely.

Just to re-iterate but the only issue is when the discussion gets nasty. As long as all participants can appreciate that others might value things differently, it's fine. Typically there is only a fixed combination of arguments to make, and then it comes down to values.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests