Re: Proposal: better library management ideas (was: how to checkout proper submodules)

2013-06-10 Thread John Lato
On Mon, Jun 10, 2013 at 1:32 PM, Roman Cheplyaka r...@ro-che.info wrote:

 * John Lato jwl...@gmail.com [2013-06-10 07:59:55+0800]
  On Mon, Jun 10, 2013 at 1:32 AM, Roman Cheplyaka r...@ro-che.info
 wrote:
 
  
   What I'm trying to say here is that there's hope for a portable base.
   Maybe not in the form of split base — I don't know.
   But it's the direction we should be moving anyways.
  
   And usurping base by GHC is a move in the opposite direction.
 
 
  Maybe that's a good thing?  The current situation doesn't really seem to
 be
  working.  Keeping base separate negatively impacts workflow of GHC devs
 (as
  evidenced by these threads), just to support something that other
 compilers
  don't use anyway.  Maybe it would be easier to fold base back into ghc
 and
  try again, perhaps after some code cleanup?  Having base in ghc may
 provide
  more motivation to separate it properly.

 After base is in GHC, separating it again will be only harder, not
 easier. Or do you have a specific plan in mind?


It's more about motivation.  It seems to me right now base is in a halfway
state.  People think that moving it further away from ghc is The Right
Thing To Do, but nobody is feeling enough pain to be sufficiently motivated
to do it.  If we apply pain, then someone will be motivated to do it
properly.  And if nobody steps up, maybe having a platform-agnostic base
isn't really very important.
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: how to checkout proper submodules

2013-06-10 Thread 山本和彦
Hi Geoffrey,

 I am of the opinion that major feature branches should be rebased
 *and* that they should then be merged with --no-ff.

I totally agree with you. :-)

--Kazu

___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: how to checkout proper submodules

2013-06-10 Thread 山本和彦
Hi,

 I think you've to differentiate the case of merging a feature branch
 into the master branch and the case of merging a local with a remote
 branch, like just calling git pull/push on the master branch.

I just wanted to say that first forward merge loses information about
which sequence of commits was a topic branch.

As far as I'm concerned, I rebase my topic branch by myself before I
send a pull request.

 Therefore I'm using 'git pull --rebase' to prevent the creation
 of these merge commits.

I think this is a good practice for puller side. :-)

--Kazu

___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: Proposal: better library management ideas (was: how to checkout proper submodules)

2013-06-10 Thread Nicolas Trangez
On Mon, 2013-06-10 at 11:45 +0100, Ian Lynagh wrote:
  Side note: the fingerprint script *didn't even work* for almost
  a year after it was introduced; see commit 73ce2e70.
 
 Which implies that wanting to go back in time is rare, so making it
 easy
 should be given low weight when considering the options?

If 'git bisect' would work (out of the box) on the GHC repo, going back
in time would certainly be a more common operation.

Nicolas


___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: Proposal: better library management ideas (was: how to checkout proper submodules)

2013-06-10 Thread Geoffrey Mainland
On 06/10/2013 11:49 AM, Nicolas Trangez wrote:
 On Mon, 2013-06-10 at 11:45 +0100, Ian Lynagh wrote:
 Side note: the fingerprint script *didn't even work* for almost
 a year after it was introduced; see commit 73ce2e70.

 Which implies that wanting to go back in time is rare, so making it
 easy
 should be given low weight when considering the options?

 If 'git bisect' would work (out of the box) on the GHC repo, going back
 in time would certainly be a more common operation.

I agree. Going back in time is really, really hard with fingerprints
because you have to get the fingerprint files somewhere, and they don't
always exist.

Also, it could be the case that people used the fingerprint files to
bisect but didn't notice they weren't quite right because the
fingerprints were close enough. OK for bug-finding, terrible for
reproduceable builds.

Many people on the list have been quite vocal about wanting to be able
to bisect. *I* have wanted to be able to bisect many, many times, but I
don't because it's such a pain.

I also want to be able to tell people how to build branches of ghc that
I am working on, e.g., the simd and th-new branches. That means having
to store a fingerprint file somewhere public and keep it in sync with my
tree. I would much rather just tell them to check out the foo branch of
ghc and be done with it.

Geoff


___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: how to checkout proper submodules

2013-06-10 Thread Simon Marlow

On 08/06/13 08:38, Geoffrey Mainland wrote:

On 06/06/2013 09:44 PM, Simon Marlow wrote:

On 05/06/13 16:59, Ian Lynagh  wrote:

  On Tue, Jun 04, 2013 at 09:05:58PM -0500, Austin Seipp wrote:
 
  I know we had this discussion sometime recently I think, but can
  someone *please* explain why we are in this situation of half
  submodules, half random-floating-git-repository-checkouts?
 
  Submodules are very handy for libraries that someone else maintains: We
  can make a local change to the library when we need something fixed,
  and then, when upstream has a fix too, we can jump straight to their
fix
  without having to do any merging.
 
  However, submodules have various disadvantages, e.g.
 
http://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/

 
  The main one for me is that it's fairly easy to lose local changes when
  using submodules. This is relatively unimportant for the libraries that
  someone else maintains, as we don't often make any local changes to
  lose. Even so, I've lost changes on a couple of occasions.
 
  Drive-by-comment: 'sync-all new' doesn't work since we switched to
  submodules.  If someone could fix that I'd be very grateful (or
  alternatively tell me what workflow you use to figure out what patches
  you have in your local repos that aren't upstream).
 
  Another thing that annoys me about submodules is that I like to keep a
  local mirror of the GHC repos on my computer.  When I clone from it,
  the submodules all come from darcs.haskell.org instead of my local
  mirror. I know how to fix this by hand, but it's sync-all's job to get
  this right (it does for the other repos).
 
  Cheers,
  Simon

Yes, I have hit this problem too. It's the cause of many of the nightly
build failures at GHC HQ.

Does anyone know how to get git-submodule to use a mirror? There is the
--reference option to 'git submodule update', but I think it still needs
a network connection.


IIRC, you have to manually edit the .git/config file at the correct time 
(after git submodule init, but before the pull).  But sync-all doesn't 
stop between these two steps, so it's a bit more fiddly.


Cheers,
Simon




Geoff


So the reason we entered  this state is that we didn't think the

  advantages outweighed the disadvantages for the other repositories.
 
 
  Thanks
  Ian




___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs