
Hi Ben,
Well, the GitHub repo will still exist. Is that enough?
Yes, but I think I'll need to do some clean up in the code so that it's obvious where to look for answers. For example, here is a random comment from a Hadrian source file:
-- Objdump is only required on OpenBSD and AIX, as mentioned in #211.
The reader might confuse this with GHC ticket #211, so I guess this should be replaced with a full link https://github.com/snowleopard/hadrian/issues/211. There may be other potential pitfalls, but hopefully nothing difficult to handle.
I've created an issue to discuss and prepare for the merge: https://github.com/snowleopard/hadrian/issues/440.
Cheers,
Andrey
-----Original Message-----
From: Ben Gamari [mailto:ben@well-typed.com]
Sent: 19 October 2017 21:50
To: Andrey Mokhov
Thanks Ben,
Just to clarify: By history I mean not just commits, but GitHub issues and PRs as well -- together they contain a lot of valuable interlinked information for GHC/Hadrian developers.
Well, the GitHub repo will still exist. Is that enough? Cheers, - Ben

Hi, two things. a) why a git subtree if we keep working on github with hadrian, wouldn't that imply using a submodule? We use submodules for all the other ghc boot libs that are not part of the tree and are developed on github as well, no? As far as I understand a subtree, it's essentially integrating everything into the main tree. So this looks more like the submodule to subtree conversion, when hadrian development is switched over to phabricator? b) should we really hardcode the full url to hadrian tickets? wouldn't hadrian/#xxx suffice? Assuming for a moment hadrian would move into the github.com/haskell org or something, while the linkes would likely (due to githubs url redirection) keep on working, until someone recreates a snowleopard/hardian repo, but not necessarily correct anymore. Anyway, let's do this now rather than later. Cheers, moritz
On Oct 20, 2017, at 7:06 AM, Andrey Mokhov
wrote: Hi Ben,
Well, the GitHub repo will still exist. Is that enough?
Yes, but I think I'll need to do some clean up in the code so that it's obvious where to look for answers. For example, here is a random comment from a Hadrian source file:
-- Objdump is only required on OpenBSD and AIX, as mentioned in #211.
The reader might confuse this with GHC ticket #211, so I guess this should be replaced with a full link https://github.com/snowleopard/hadrian/issues/211. There may be other potential pitfalls, but hopefully nothing difficult to handle.
I've created an issue to discuss and prepare for the merge: https://github.com/snowleopard/hadrian/issues/440.
Cheers, Andrey
-----Original Message----- From: Ben Gamari [mailto:ben@well-typed.com] Sent: 19 October 2017 21:50 To: Andrey Mokhov
; Boespflug, Mathieu Cc: Jonas Pfenniger Chevalier ; Manuel M T Chakravarty ; ghc-devs Subject: RE: Hadrian Andrey Mokhov
writes: Thanks Ben,
Just to clarify: By history I mean not just commits, but GitHub issues and PRs as well -- together they contain a lot of valuable interlinked information for GHC/Hadrian developers.
Well, the GitHub repo will still exist. Is that enough?
Cheers,
- Ben
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Hi Moritz (et al.), On 2017-10-20 at 09:32:29 +0800, Moritz Angermann wrote:
a) why a git subtree if we keep working on github with hadrian, wouldn't that imply using a submodule? We use submodules for all the other ghc boot libs that are not part of the tree and are developed on github as well, no? As far as I understand a subtree, it's essentially integrating everything into the main tree. So this looks more like the submodule to subtree conversion, when hadrian development is switched over to phabricator?
Fwiw, using a submodule makes sense imho if hadrian is supposed to remain a submodule on the long-term; as transitioning from submodule <-> non-submodule is something Git doesn't handle to well automatically (we've had fun with that when we restructured ghc.git into the current structure...) Also, a submodule has the benefit of ticket references clearly referring to a different numbering namespace w/o having to rewrite all ticket & commit-hash references (which is often overlooked; I for one tend to refer quite often to other commit shas in my commits, and they also result when you 'git cherry-pick -x') So, what's the long-term plan for Hadrian repo-wise? Is it going to remain externally maintained on GitHub, or will it be integrated into GHC HQ's infrastucture which means using Phabricator (which may pose its own challenge, as Phabricator, like Trac, uses globally unique ticket numbers, rather than per-project numbering)? If it is to be a submodule, we (and by that I mean myself; it doesn't take long) also need to setup mirroring from snowleopard/hardian to git://git.haskell.org, and from there to to github.com/ghc/hadrian for technical reasons.
b) should we really hardcode the full url to hadrian tickets? wouldn't hadrian/#xxx suffice? Assuming for a moment hadrian would move into the github.com/haskell org or something, while the linkes would likely (due to githubs url redirection) keep on working, until someone recreates a snowleopard/hardian repo, but not necessarily correct anymore.
Note that GitHub doesn't support the abbreviated hadrian#xxx syntax; you *have* to prefix it by the organization/user, in order for GitHub to recognize a ticket reference; i.e. you *have* to use one of - https://github.com/snowleopard/hadrian/issues/123 (or possibly .../pull/123) - snowleopard/hadrian#123 - #123 - GH-123 for GitHub to recognize the issue reference. anything else won't be recognized. Moreover, github.com/haskell/ is not a good place for Hadrian since it's a too GHC-specific tooling; if anywhere, it would rather end up together with the other GHC repos in the /ghc/ org at https://github.com/ghc/hadrian (or something slightly different; we need reconcile this with our GHC mirroring scheme; that's may be a bit tricky). -- hvr

On Oct 20, 2017, at 6:24 PM, Herbert Valerio Riedel
wrote: Hi Moritz (et al.),
On 2017-10-20 at 09:32:29 +0800, Moritz Angermann wrote:
a) why a git subtree if we keep working on github with hadrian, wouldn't that imply using a submodule? We use submodules for all the other ghc boot libs that are not part of the tree and are developed on github as well, no? As far as I understand a subtree, it's essentially integrating everything into the main tree. So this looks more like the submodule to subtree conversion, when hadrian development is switched over to phabricator?
Fwiw, using a submodule makes sense imho if hadrian is supposed to remain a submodule on the long-term; as transitioning from submodule <-> non-submodule is something Git doesn't handle to well automatically (we've had fun with that when we restructured ghc.git into the current structure...)
Also, a submodule has the benefit of ticket references clearly referring to a different numbering namespace w/o having to rewrite all ticket & commit-hash references (which is often overlooked; I for one tend to refer quite often to other commit shas in my commits, and they also result when you 'git cherry-pick -x')
So, what's the long-term plan for Hadrian repo-wise? Is it going to remain externally maintained on GitHub, or will it be integrated into GHC HQ's infrastucture which means using Phabricator (which may pose its own challenge, as Phabricator, like Trac, uses globally unique ticket numbers, rather than per-project numbering)?
If it is to be a submodule, we (and by that I mean myself; it doesn't take long) also need to setup mirroring from snowleopard/hardian to git://git.haskell.org, and from there to to github.com/ghc/hadrian for technical reasons.
I would assume that hadrian will be developed on github for a while, to not disturb the current workflow. But I'm happy to be corrected, when wrong here. After reading up on git-subtree[1][2], which sounds to me like subsuming one repo in another one and requiring a set of different commands to handle it. Maybe I'm just too used to git submodules. But as all the other externals in the ghc tree are submodules, I'd prefer the consistency. Knowing myself, I'd probably screw up pushing changes back upstream into hadrian if its workflow is different from e.g. the libraries, ... libffi-tarballs with the orphan branches is already something that needs to be taken special care of...
b) should we really hardcode the full url to hadrian tickets? wouldn't hadrian/#xxx suffice? Assuming for a moment hadrian would move into the github.com/haskell org or something, while the linkes would likely (due to githubs url redirection) keep on working, until someone recreates a snowleopard/hardian repo, but not necessarily correct anymore.
Note that GitHub doesn't support the abbreviated hadrian#xxx syntax; you *have* to prefix it by the organization/user, in order for GitHub to recognize a ticket reference; i.e. you *have* to use one of
- https://github.com/snowleopard/hadrian/issues/123 (or possibly .../pull/123)
- snowleopard/hadrian#123
- #123
- GH-123
for GitHub to recognize the issue reference.
anything else won't be recognized.
Moreover, github.com/haskell/ is not a good place for Hadrian since it's a too GHC-specific tooling; if anywhere, it would rather end up together with the other GHC repos in the /ghc/ org at https://github.com/ghc/hadrian (or something slightly different; we need reconcile this with our GHC mirroring scheme; that's may be a bit tricky).
I didn't specifically care about github auto-linking features here. Primarily about giving tickets a prefix. And not necessarily hardcoding some github url into ticket numbers. Cheers, Moritz -- [1]: https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree [2]: http://alistra.ghost.io/2014/11/30/git-subtree-a-better-alternative-to-git-s...
participants (3)
-
Andrey Mokhov
-
Herbert Valerio Riedel
-
Moritz Angermann