Project Panama is moving to GitHub

Jorn Vernee jorn.vernee at oracle.com
Mon Jan 27 11:57:14 UTC 2020


On 25/01/2020 04:24, John Rose wrote:
> On Jan 24, 2020, at 3:10 AM, Maurizio Cimadamore 
> <maurizio.cimadamore at oracle.com 
> <mailto:maurizio.cimadamore at oracle.com>> wrote:
>>
>> "A Project must be sponsored by one or more Groups. A Project may 
>> have web content, one or more file repositories, and one or more 
>> mailing lists."
>>
>> So I think, process-wise, we probably have cover.
>
> Yes, we do have permission to make more repos in
> any given project, although we don’t make use of
> that ability much, except at the inception of a project.
>
> I also think that the git-based infra will scale well
> to a multi-repo use case.  In the OpenJDK we have
> lots of fork-like copies of the JDK, each with a
> cluster of localized changes.  I assume the GitHub
> back end is able to recognize that there are many
> objects in common between the various repos.
>
> (Not getting into an hg-vs.-git evaluation here. It’s
> likely that hg also has some story for partial sharing
> across local repos.  But AFAIK OpenJDK infra. doesn’t
> use such a thing.)
>
> So we can reconsider our choice to use branches, since
> on GitHub we can spin up forks about as easily as branches.
>
> I think our use of branches has worn well on the hg infra,
> and would continue to wear well on GitHub.  So I don’t
> see much pressure to move to separate repos, other than:
>
> 1. Separate repos allow separate mirroring decisions for
> Vector and Foreign.
> 2. We could make the Vector and Foreign work less visible
> to people that don’t want to see one project or the other.

GitHub, the website, is oriented at having 1 main branch per repo. This 
is the 'master' branch by default, but can also be changed to another 
branch. This is also the branch which README is shown on the repo's web 
page, basically the front-page of the repository. With 2 repos, we can 
have 2 front pages.

Furthermore, having 2 repos allows us to have the Pull Requests for the 
2 parts of the project separated. Which would at least save some 
distraction when working on either part of the  project.

These are not stellar advantages of using separate repos over separate 
branches. Though, I currently don't see any downsides to having multiple 
repos over multiple branches either. So why not pick the slightly better 
of the two options? The main advantage here is being able to better 
shape how things look on GitHub. If you wanted, you could still combine 
the separate repos on GitHub into a single local repo using 2 remotes 
(git is stronger here than  hg).

> FTR, neither of those strike me as very strong reasons
> to use multiple repos.  Googling around on the theme
> of “git fork vs. branch” suggests that forking is most
> useful at a trust boundary, or divergence of artifacts,
> but the whole OpenJDK is really just one trust domain,
> one team, and one main result (the Java RI).

"Fork" is not really the right term to use here. A fork on GitHub is 
really just a copy of a repository on GitHub, created when clicking the 
'fork' button in the top-right [1] (/a//nybody/ can do this), that can 
be edited by the person who owns the fork, usually with the intent of 
making a pull request from the fork to the main repository later.

For instance, to contribute to Panama on GitHub, each of us would have 
to make their own fork of the Panama repo, push changes to the fork (we 
wouldn't have direct write-access to the main repo. There's the trust 
boundary), and then make a pull request based on a diff between a branch 
in our fork and a branch in the main repository.

Jorn

[1] : https://github.com/openjdk/panama

>
> Caveat: I’m no expert in git vs. hg or fork vs. branch.
>
> — John


More information about the panama-dev mailing list