Thoughts on the Contributing page
Tobias Dammers
tdammers at gmail.com
Thu Jan 31 16:04:54 UTC 2019
On Thu, Jan 31, 2019 at 03:57:20PM +0000, Matthew Pickering wrote:
> I think you should suggest cloning the main ghc repo and adding the
> fork as a remote. This is the usual github workflow.
And by "the main ghc repo", I take it you mean the gitlab one?
>
> On Thu, Jan 31, 2019 at 3:48 PM Tobias Dammers <tdammers at gmail.com> wrote:
> >
> > One more thing I noticed: the current Newcomers instructions say to
> > clone git://github.com/ghc/ghc, but if you're going to use the
> > gitlab-based MR workflow later on, cloning the gitlab repo directly is
> > going to be a lot more convenient. And then there's also
> > git.haskell.org, which is what I've been using so far.
> >
> > So which one of these should we tell people to clone? I'm inclined to
> > recommend the following workflow:
> >
> > 1. Create gitlab account as needed
> > 2. Fork the GHC project
> > 3. Clone your fork from gitlab
> > 4. Create feature branch
> > 5. Make changes, squash, validate, rebase, push to fork
> > 6. Create MR on gitlab
> >
> > This would keep the hassle to a minimum for a new contributor, and does
> > not require push permissions on `ghc/ghc`.
> >
> > On Sat, Jan 19, 2019 at 03:55:06PM -0500, Ben Gamari wrote:
> > >
> > >
> > > For those following along at home:
> > >
> > > David has been looking at revising our contributor documentation.
> > > He has started consolidating a variety of relevant content on the
> > > Contributing page of the Wiki [1]. Below are my thoughts; feel free
> > > to chime in with your own.
> > >
> > >
> > > David,
> > >
> > > The contributing page is looking quite good. However, I do wonder
> > > whether we could reduce the link "fan-out" a bit more: it still rather
> > > feels like a collection of links with no clear "beginning".
> > >
> > > The "Newcomers to GHC" section is a great start but I see two
> > > potential issues:
> > >
> > > * we don't clearly articulate the precise steps that a newcomer will
> > > need to take
> > >
> > > * the first thing we mention are four links which, while useful,
> > > constitute a significant volume of reading for a newcomer.
> > > I fear we may lose people at this point.
> > >
> > > Regarding the second point, I think that WorkingConventions/FixingBugs is a
> > > good model in that it clearly lists a series of concrete steps that the
> > > contributor should take. Admittedly, I think some of the detail should
> > > be dropped or moved (e.g. the mention of setting git's user.name
> > > variable is likely unnecessary in 2019).
> > >
> > > I think that something similar to this list should be the first thing
> > > one sees when they reach the contributing page. Ideally the "typical"
> > > case of a new contributor wanting to submit their first patch would be
> > > able to gather everything they need to get started in one or two
> > > screenfuls of text. After that prose can come additional links to
> > > more in-depth documentation.
> > >
> > > Other various issues I noticed:
> > >
> > > * We link to wiki:WorkingConventions from a variety of places
> > > (including wiki:Contributing) but it is now just a link to
> > > wiki:Contributing.
> > >
> > > * wiki:WorkingConventions/FixingBugs still has references to
> > > Phabricator. In general we should start culling such references.
> > >
> > > * wiki:WorkingConventions/FixingBugs also has references to Trac
> > > documentation. We should try to replace these with the relevant
> > > GitLab documentation when we migrate.
> > >
> > > * wiki:WorkingConventions/FixingBugs should be updated to reflect
> > > that GitLab CI is now the source of truth for validation.
> > >
> > > * I don't know exactly how this should look but I think we need to do a
> > > better job of concisely stating what we expect of contributions. That
> > > is:
> > >
> > > * commit messages should be readable and discuss what the patch
> > > does. "Fixes #NNNN" is not an adequate commit message.
> > >
> > > * changes should be commented where necessary (my usual rule of
> > > thumb is "write the comment you would have liked to read when you
> > > started writing your patch"). We should mention the Note
> > > convention.
> > >
> > > * commit messages and comments should refer to ticket numbers where
> > > appropriate (e.g. using usual #NNNN syntax; people often get this
> > > wrong).
> > >
> > > * commits should be either squashed or logically distinct,
> > > individually buildable changes.
> > >
> > > * changes to most of `base` need to go through the CLC (this may be
> > > optional as defining what set of `base` this applies to is a bit
> > > tricky; in the interest of keeping things concise we may be
> > > better off handling this personally on a case-by-case basis)
> > >
> > > * code changes should conform to GHC's (somewhat fluid, for better
> > > or worse) code style
> > > (https://ghc.haskell.org/trac/ghc/wiki/Commentary/CodingStyle)
> > >
> > > * thought should be given to testing
> > >
> > > Having a document which succinctly summarised these expectations as
> > > we could easily refer to it during code review. Even better, we
> > > could excerpt it as a checklist in our merge request description
> > > template (I have put up an initial attempt at this as !149).
> > >
> > > Anyways, there is more to be said here but this email is getting a bit
> > > long so let's leave it for future discussions.
> > >
> > > Cheers,
> > >
> > > - Ben
> > >
> > >
> > > [1] https://ghc.haskell.org/trac/ghc/wiki/Contributing
> >
> >
> >
> > > _______________________________________________
> > > ghc-devs mailing list
> > > ghc-devs at haskell.org
> > > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> >
> >
> > --
> > Tobias Dammers - tdammers at gmail.com
> > _______________________________________________
> > ghc-devs mailing list
> > ghc-devs at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
--
Tobias Dammers - tdammers at gmail.com
More information about the ghc-devs
mailing list