Bug 574076 - Shutdown git:// protocol
Summary: Shutdown git:// protocol
Status: RESOLVED FIXED
Alias: None
Product: Community
Classification: Eclipse Foundation
Component: Git (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Eclipse Webmaster CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 402183 574191
Blocks:
  Show dependency tree
 
Reported: 2021-06-08 10:47 EDT by Denis Roy CLA
Modified: 2022-03-06 04:04 EST (History)
12 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Denis Roy CLA 2021-06-08 10:47:29 EDT
A few years ago we've moved all our Git repositories to Gerrit. Gerrit supports anonymous cloning via https and we've kept the legacy git:// protocol around.

The current git:// protocol is handled by antique servers that we are planning on terminating. Rather than move the (arguably obsolete) git:// protocol to another server, we will simply terminate it, as it does not see much usage anymore.

To do this, here's what I propose:

1. Immediately, remove publicizing availability of Anonymous git:// from Gerrit. Anonymous https would remain, as it's the best way to do anonymous git.

2. Immediately, remove publicizing availability of Anonymous git:// from cGit, at https://git.eclipse.org/c/. Anonymous https links would remain.

3. Immediately, communicate our intentions to the community.

4. Schedule two or three brownouts - perhaps June 25 and July 9 and July 23, with a shut-off date of July 31.
Comment 1 Eclipse Genie CLA 2021-06-09 18:04:17 EDT
New Gerrit change created: https://git.eclipse.org/r/c/egit/egit-pipelines/+/181739
Comment 3 Andrew Johnson CLA 2021-06-14 11:33:12 EDT
There are also git links for clone in many of the project pages.

https://projects.eclipse.org/projects/technology.packaging/developer
    Review With Gerrit https://git.eclipse.org/r/q/epp%2Forg.eclipse.epp.packages
    Browse Repository https://git.eclipse.org/r/plugins/gitiles/epp/org.eclipse.epp.packages

Clone: git://git.eclipse.org/gitroot/epp/org.eclipse.epp.packages.git
Comment 4 Denis Roy CLA 2021-06-14 14:06:46 EDT
(In reply to Andrew Johnson from comment #3)

Great catch.  I'll see if we can mass-update all those.
Comment 5 Denis Roy CLA 2021-06-16 09:23:21 EDT
Links in the PMI are being cleaned up. Links on cGit have been changed too. Matt will be sending another reminder email today, and I've scheduled the brownout dates as per comment 0.
Comment 6 Till Brychcy CLA 2021-06-18 04:42:26 EDT
The mirrors on github still use the git:// protocol, e.g.

https://github.com/eclipse/eclipse.jdt.core

says:

"mirrored from git://git.eclipse.org/gitroot/jdt/eclipse.jdt.core.git"
Comment 7 Denis Roy CLA 2021-06-18 09:11:05 EDT
(In reply to Till Brychcy from comment #6)
> The mirrors on github still use the git:// protocol, e.g.
> 
> https://github.com/eclipse/eclipse.jdt.core


I think we need to remove github mirrors. I think they are generally not used, often receive PRs that go ignored.
Comment 8 Till Brychcy CLA 2021-06-18 13:13:54 EDT
(In reply to Denis Roy from comment #7)
> (In reply to Till Brychcy from comment #6)
> > The mirrors on github still use the git:// protocol, e.g.
> > 
> > https://github.com/eclipse/eclipse.jdt.core
> 
> 
> I think we need to remove github mirrors. I think they are generally not
> used, often receive PRs that go ignored.

More than once I have used github to find out which of the many Eclipse repos I need to clone - then I've cloned them from git.eclipse.org.

AFAICS the search on https://git.eclipse.org/c/ only allows searching by repo name, not by file names or file content.
Comment 9 Denis Roy CLA 2021-07-09 09:27:51 EDT
Brownout #2 is in progress.
Comment 10 Sebastian Zarnekow CLA 2021-07-24 10:36:36 EDT
(In reply to Denis Roy from comment #7)
> (In reply to Till Brychcy from comment #6)
> > The mirrors on github still use the git:// protocol, e.g.
> > 
> > https://github.com/eclipse/eclipse.jdt.core
> 
> 
> I think we need to remove github mirrors. I think they are generally not
> used, often receive PRs that go ignored.

I use GitHub code search on a daily basis to find usages and browse code. It would be a shame if this would no longer be available for Eclipse projects.
Comment 11 Gunnar Wagenknecht CLA 2021-07-25 14:34:42 EDT
(In reply to Sebastian Zarnekow from comment #10)
> > I think we need to remove github mirrors. I think they are generally not
> > used, often receive PRs that go ignored.
> 
> I use GitHub code search on a daily basis to find usages and browse code. It
> would be a shame if this would no longer be available for Eclipse projects.

AFAIK the removal was needed due to lack of support from GitHub itself for mirrors.

However, I agree with the comment. The code search capability of git.eclipse.org is very poor. A solution is needed here.
Comment 12 Roland Grunberg CLA 2021-07-27 17:49:20 EDT
Agreed. I used the GitHub mirrors to reference parts of Eclipse code (in comments) because it's really easy to quickly search for particular content, and even easier to immediately go to a particular source file.

Without it I guess we could still ensure we have a cloned copy of the repo locally, search for the file and reconstruct the path from the root of the repo web view.

Some kind of service that has an indexed search over the major platform project sources would have been nice.
Comment 13 Eclipse Webmaster CLA 2021-07-28 10:55:17 EDT
(In reply to Gunnar Wagenknecht from comment #11)
(In reply to Sebastian Zarnekow from comment #10)
(In reply to Roland Grunberg from comment #12)

In my rich fantasy world, the eventual state is that Eclipse projects will end up in either our Gitlab instance or on Github.  That solves not only the search issue, but integrates more modern issue tracking and community interaction features, while allowing us to lower maintenance overhead somewhat. 

So if there are projects you'd like to be able to search, please feel free to ask them to think about moving to Gitlab or Github.

-M.
Comment 14 Sebastian Zarnekow CLA 2021-07-28 11:05:07 EDT
(In reply to Eclipse Webmaster from comment #13)

> So if there are projects you'd like to be able to search, please feel free
> to ask them to think about moving to Gitlab or Github.
> 
> -M.

So you are saying "The foundation did provide this service for all projects (to be able to be mirrored by Github). This service will be shutdown without replacement. If that service was used, the user should try to work with all project individually in order to cause work for them to achieve a comparable functionality."?
Comment 15 Sebastian Zarnekow CLA 2021-07-28 11:18:00 EDT
FWIW:
This comment indicates that there was already a first user who found some old'ish copy if jdt.core on Github and drew conclusions from that about the state of the project.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=565512#c5
Comment 16 Eclipse Webmaster CLA 2021-07-28 13:23:29 EDT
(In reply to Sebastian Zarnekow from comment #14)

> So you are saying "The foundation did provide this service for all projects
> (to be able to be mirrored by Github). This service will be shutdown without
> replacement. If that service was used, the user should try to work with all
> project individually in order to cause work for them to achieve a comparable
> functionality."?

No, although I concede you could certainly choose to interpret it that way. 

It's awesome that you(and others) were able to leverage this Github feature to contribute or just make your day to day faster, and for what it's worth I'm sorry that this wasn't socialized very well.

(In reply to Sebastian Zarnekow from comment #15)

I don't think you're suggesting that we should have kept the older and potentially out of date Github mirrors around to confuse more people, but preventing that results in the same outcome(mirrors are removed).

-M.
Comment 17 Eclipse Webmaster CLA 2021-07-29 09:59:27 EDT
I'm running one last brownout of the git protocol for the next 3 hours(https://eclipse.statuspage.io).

Also I'm rescheduling the shutdown from July 31st(Saturday) to EOB Friday the 30th

-M.
Comment 18 Eclipse Webmaster CLA 2021-07-30 16:55:31 EDT
The git:// protocol service has been shutdown. 

Use https:// or ssh:// URLs ie:

git clone https://git.eclipse.org/r/zenoh/zenoh

or 

git clone ssh://userid@git.eclipse.org:29418/zenoh/zenoh

-M.
Comment 19 Markus Knauer CLA 2021-08-04 10:51:42 EDT
This will cause some trouble for some projects.

Good citizens in the OSGi world were adding Eclipse-SourceReferences headers [1] to bundle manifests that are pointing to the exact commit in a certain source code management system like Git. With PDE it used to be very simple to check out exactly what you were using.

Here is an example from a newer org.eclipse.osgi bundle:

> Bundle-SymbolicName: org.eclipse.osgi; singleton:=true
> Eclipse-SourceReferences: scm:git:git://git.eclipse.org/gitroot/equino
>  x/rt.equinox.framework.git;path="bundles/org.eclipse.osgi";tag="I2021
>  0226-1800";commitId=d60755236727ba69734922858db966f316bf5936

Most, or probably all projects are using the git protocol because that was the way to go at that time.


[1] https://wiki.eclipse.org/PDE/UI/SourceReferences
Comment 20 Denis Roy CLA 2021-08-09 14:52:01 EDT
> Most, or probably all projects are using the git protocol because that was
> the way to go at that time.
> 
> 
> [1] https://wiki.eclipse.org/PDE/UI/SourceReferences

If that document shows how to pull code from CVS pserver like I think it does, the PDE project has some stale documentation to update :)
Comment 21 Jonah Graham CLA 2021-08-09 15:30:28 EDT
(In reply to Denis Roy from comment #20)
> > Most, or probably all projects are using the git protocol because that was
> > the way to go at that time.
> > 
> > 
> > [1] https://wiki.eclipse.org/PDE/UI/SourceReferences
> 
> If that document shows how to pull code from CVS pserver like I think it
> does, the PDE project has some stale documentation to update :)

:-) There is a reticence to delete stuff on the Wiki - when I added the new relevant section[1] I suppose I should have deleted all the old stuff. Anyway, I have not updated the page to remove most of the dated references to CVS and recreated the screenshots.

The relevant section of the document that Markus was referring to in Comment 19 was the last section "Generating Source Reference Headers with Tycho" which was up to date, but still requires the default git.eclipse.org/ URL to be updated.

[1] https://wiki.eclipse.org/index.php?title=PDE/UI/SourceReferences&diff=414621&oldid=208100
Comment 22 Jonah Graham CLA 2021-08-09 15:38:20 EDT
FWIW - almost none of the 2021-06 release (the current release) can be imported into Eclipse because the git:// server is gone. The error message the dev will see is this or similar:

git://git.eclipse.org/gitroot/platform/eclipse.platform.debug.git: Connection timed out: connect
Comment 23 Denis Roy CLA 2021-08-09 15:53:14 EDT
(In reply to Jonah Graham from comment #22)
> FWIW - almost none of the 2021-06 release (the current release) can be
> imported into Eclipse because the git:// server is gone.

Not sure what you mean?  Inported from where?

We've spent time examining git:// traffic and frankly, there was none.
Comment 24 Jonah Graham CLA 2021-08-09 16:32:34 EDT
(In reply to Denis Roy from comment #23)
> (In reply to Jonah Graham from comment #22)
> > FWIW - almost none of the 2021-06 release (the current release) can be
> > imported into Eclipse because the git:// server is gone.
> 
> Not sure what you mean?  Inported from where?

Using the steps as documented in https://wiki.eclipse.org/PDE/UI/SourceReferences#Importing_Projects_from_Git - similar content is in eclipse help: https://help.eclipse.org/2021-06/topic/org.eclipse.pde.doc.user/guide/tools/import_wizards/import_plugins.htm and the Importing line of https://help.eclipse.org/2021-06/topic/org.eclipse.pde.doc.user/guide/tools/views/plugins.htm refers to it too.

> We've spent time examining git:// traffic and frankly, there was none.

I assume nearly none, rather than literally 0? I do the above operation a handful of times per year and others [1] report the same.

The effect of the shutdown of the git:// protocol is basically it breaks these old links.

There is precedence for this breaking change - at some point when repos were moved from CVS to Git importing older CVS releases would have failed. I wasn't really active during that transition, so I can't comment much more. I defer to others for how important this is - I just want to update the documentation that I am aware of and make sure all the right people are talking to each other.


[1] https://www.eclipse.org/lists/jdt-dev/msg01884.html
Comment 25 Some User CLA 2021-09-11 22:13:09 EDT
Are there also any plans to disable access over unencrypted HTTP (http://)? For example by responding with HTTP 501.
At the moment the Git server does seem to upgrade these requests to HTTPS, but an attacker could probably perform a man-in-the-middle attack preventing this upgrade to HTTPS and serving malicious repository content.

A request from Git can be identified by its "Git-Protocol" HTTP header, see https://git-scm.com/docs/protocol-v2.


Regarding GitHub mirrors:
https://github.com/eclipse-mirrors has unofficial mirrors for some of the Eclipse projects. Maybe you could utilize similar GitHub Actions as defined in https://github.com/eclipse-mirrors/eclipse-mirrors to have GitHub update the mirrors.

> I think they are generally not used, often receive PRs that go ignored.

GitHub Actions could also help with this by automatically commenting on the pull requests, letting users know that this is only a mirror, and closing the pull request.
Comment 26 Denis Roy CLA 2021-09-13 13:55:12 EDT
I would suggest filing a separate issue.  Thanks.
Comment 27 Pierre-Yves Bigourdan CLA 2022-03-06 04:04:33 EST
It still feels really detrimental to have deleted all mirrors. Many contributors have already complained about the resulting loss of features such as search, and the cost of that removal is unfortunately increasing over time as GitHub improves its feature set but git.eclipse.org stays behind.

In addition to this, another advantage of mirrors is that contributions were automatically linked in the GitHub contribution graph, the activity overview, optional pinned respositories, etc. Many unpaid open-source contributors do care about building a portfolio and showcasing their work publicly, and removing the mirrors went against this. Am I really encouraged to contribute to a project if my contributions aren't surfaced anywhere and stay hidden in an obscure system?

If "the eventual state is that Eclipse projects will end up in either our Gitlab instance or on Github", then that should have been the main focus, and any useful integrations should have been kept around until the transition was complete.