unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Your commit 7409a79
@ 2014-12-06  8:56 Eli Zaretskii
  2014-12-06 10:22 ` Andreas Schwab
                   ` (3 more replies)
  0 siblings, 4 replies; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-06  8:56 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

  commit 7409a79b1b2acf1229dd763f5eb7b96abc17113a
  Author: Stephen Leake <stephen_leake@stephe-leake.org>
  Date:   Fri Dec 5 13:13:55 2014 -0600

      preparing for further changes/cleanup to developers/contributors docs

      * etc/CONTRIBUTE: renamed to ./CONTRIBUTE,

Please always start the commit log summary line with a capital letter,
and end the sentence with a period.  (Actually, in the above
particular case the summary line is redundant and could be omitted --
but this is a stylistic comment, not a requirement.)

Also, renaming a file needs an entry in the target's ChangeLog, like
this:

  * CONTRIBUTE: Renamed from etc/CONTRIBUTE.

and it also should end with a period, not a comma.

Thanks.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06  8:56 Your commit 7409a79 Eli Zaretskii
@ 2014-12-06 10:22 ` Andreas Schwab
  2014-12-06 10:29   ` Eli Zaretskii
                     ` (3 more replies)
  2014-12-06 16:14 ` Tom
                   ` (2 subsequent siblings)
  3 siblings, 4 replies; 52+ messages in thread
From: Andreas Schwab @ 2014-12-06 10:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stephen Leake, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Please always start the commit log summary line with a capital letter,
> and end the sentence with a period.

The summary line should not end with a period, like the title of a
document.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06 10:22 ` Andreas Schwab
@ 2014-12-06 10:29   ` Eli Zaretskii
  2014-12-06 10:32   ` Paul Eggert
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-06 10:29 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: stephen_leake, emacs-devel

> From: Andreas Schwab <schwab@linux-m68k.org>
> Cc: Stephen Leake <stephen_leake@stephe-leake.org>,  emacs-devel@gnu.org
> Date: Sat, 06 Dec 2014 11:22:34 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Please always start the commit log summary line with a capital letter,
> > and end the sentence with a period.
> 
> The summary line should not end with a period, like the title of a
> document.

Okay, but then (a) we should codify that, and (b) the summary line
should certainly not end with a comma.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06 10:22 ` Andreas Schwab
  2014-12-06 10:29   ` Eli Zaretskii
@ 2014-12-06 10:32   ` Paul Eggert
  2014-12-06 15:29   ` Yuri Khan
  2014-12-06 23:01   ` Stefan Monnier
  3 siblings, 0 replies; 52+ messages in thread
From: Paul Eggert @ 2014-12-06 10:32 UTC (permalink / raw)
  To: Andreas Schwab, Eli Zaretskii; +Cc: Stephen Leake, emacs-devel

Andreas Schwab wrote:
> The summary line should not end with a period

Both styles are OK, if you ask me.  My mild suggestion would be: if the summary 
line is a sentence, end it with a period; if not, not.  Often, summary lines are 
simple imperative sentences like "Improve CONTRIBUTE and related files." and 
that should be fine.  If the summary is "New macro `define-inline'" it might be 
better to omit the trailing period.  Either way, it's not a big deal.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06 10:22 ` Andreas Schwab
  2014-12-06 10:29   ` Eli Zaretskii
  2014-12-06 10:32   ` Paul Eggert
@ 2014-12-06 15:29   ` Yuri Khan
  2014-12-06 23:01   ` Stefan Monnier
  3 siblings, 0 replies; 52+ messages in thread
From: Yuri Khan @ 2014-12-06 15:29 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Eli Zaretskii, Stephen Leake, Emacs developers

On Sat, Dec 6, 2014 at 4:22 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> Eli Zaretskii <eliz@gnu.org> writes:
>
>> Please always start the commit log summary line with a capital letter,
>> and end the sentence with a period.
>
> The summary line should not end with a period, like the title of a
> document.

Technically, the summary line of the commit being discussed is:

preparing for further changes/cleanup to developers/contributors docs


Many projects using Git have a convention that the commit summary is
an imperative phrase:

Prepare for further changes/cleanup to developers/contributors docs

This way, commit summaries are useful as a rebase TODO list and they
work well with the default merge commit message.


Also, the subject line of this discussion should have been:

Re: preparing for further changes/cleanup to developers/contributors docs

as if the commit were an email sent to a patches list.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06  8:56 Your commit 7409a79 Eli Zaretskii
  2014-12-06 10:22 ` Andreas Schwab
@ 2014-12-06 16:14 ` Tom
  2014-12-06 18:54   ` Eli Zaretskii
  2014-12-06 22:43   ` Stephen Leake
  2014-12-06 22:33 ` Stephen Leake
  2014-12-06 22:59 ` Stefan Monnier
  3 siblings, 2 replies; 52+ messages in thread
From: Tom @ 2014-12-06 16:14 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> Please always start the commit log summary line with a capital letter,
> and end the sentence with a period.  (Actually, in the above
> particular case the summary line is redundant and could be omitted --
> but this is a stylistic comment, not a requirement.)
> 
> Also, renaming a file needs an entry in the target's ChangeLog, like
> this:
> 
>   * CONTRIBUTE: Renamed from etc/CONTRIBUTE.
> 
> and it also should end with a period, not a comma.
> 

These are exactly the situations where a server side commit hook
is really useful for the following reasons:

1. It prevent commits with incorrectly formatted commit messages.

2. It prints an error message describing the problem, thereby
teaching the committer how to make a properly formatted commit.

So there is no need for manually replying to incorrect commits
on the list, because the script checks every commit and even 
tells the user the problem.

So it would be a good idea to add such a precommit script to the
server.






^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06 16:14 ` Tom
@ 2014-12-06 18:54   ` Eli Zaretskii
  2014-12-06 22:43   ` Stephen Leake
  1 sibling, 0 replies; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-06 18:54 UTC (permalink / raw)
  To: Tom; +Cc: emacs-devel

> From: Tom <adatgyujto@gmail.com>
> Date: Sat, 6 Dec 2014 16:14:42 +0000 (UTC)
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> > 
> > Please always start the commit log summary line with a capital letter,
> > and end the sentence with a period.  (Actually, in the above
> > particular case the summary line is redundant and could be omitted --
> > but this is a stylistic comment, not a requirement.)
> > 
> > Also, renaming a file needs an entry in the target's ChangeLog, like
> > this:
> > 
> >   * CONTRIBUTE: Renamed from etc/CONTRIBUTE.
> > 
> > and it also should end with a period, not a comma.
> > 
> 
> These are exactly the situations where a server side commit hook
> is really useful for the following reasons:

The intent of my message was to explain how to prepare good log
messages that will not trigger any hook which will reject the commit.
Apart of having more people follow the standards to begin with,
avoiding such rejection is a Good Thing because while one fixed a
rejected push, someone else could push and force you to pull/rebase.

IOW, don't overestimate automated hooks and don't underestimate the
value of education.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06  8:56 Your commit 7409a79 Eli Zaretskii
  2014-12-06 10:22 ` Andreas Schwab
  2014-12-06 16:14 ` Tom
@ 2014-12-06 22:33 ` Stephen Leake
  2014-12-07  3:52   ` Eli Zaretskii
  2014-12-07  5:45   ` Stephen J. Turnbull
  2014-12-06 22:59 ` Stefan Monnier
  3 siblings, 2 replies; 52+ messages in thread
From: Stephen Leake @ 2014-12-06 22:33 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>   commit 7409a79b1b2acf1229dd763f5eb7b96abc17113a
>   Author: Stephen Leake <stephen_leake@stephe-leake.org>
>   Date:   Fri Dec 5 13:13:55 2014 -0600
>
>       preparing for further changes/cleanup to developers/contributors docs
>
>       * etc/CONTRIBUTE: renamed to ./CONTRIBUTE,
>
> Please always start the commit log summary line with a capital letter,
> and end the sentence with a period.

Do we really need to be so picky?

I agree there should be no comma here; that makes it an
incomplete statement.

But I don't think capitals and periods actually improve readability in
this context; it's _not_ a manual, nor a code comment.

Note that the Gnu coding standard does _not_ discuss this level of
detail, although all the examples do have capitals and periods
(http://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs).

I see this pickiness as a mild barrier to contributing, so I'd like to
get some more rationale before I add this to CONTRIBUTE.

And then I'll have to write some elisp to do that level of formatting
(if someone hasn't already).

> (Actually, in the above
> particular case the summary line is redundant and could be omitted --
> but this is a stylistic comment, not a requirement.)

I tried that:

* etc/CONTRIBUTE: renamed to ./CONTRIBUTE, preparing for further changes/cleanup to developers/contributors docs

But that was rejected by the commit filter as being longer than 79
chars.

I didn't want to just do:

* etc/CONTRIBUTE: renamed to ./CONTRIBUTE

since that doesn't say anything about _why_.

> Also, renaming a file needs an entry in the target's ChangeLog,

Yes, I messed up the commit process. I did edit ChangeLog, but then
forgot to stage it (and no, I'm not using 'git commit -a'). It's in the
next commit. I'll get there.

> like this:
>
>   * CONTRIBUTE: Renamed from etc/CONTRIBUTE.
>
> and it also should end with a period, not a comma.

Yes, the comma was a cut-and-paste error from the first attempt.

--
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06 16:14 ` Tom
  2014-12-06 18:54   ` Eli Zaretskii
@ 2014-12-06 22:43   ` Stephen Leake
  1 sibling, 0 replies; 52+ messages in thread
From: Stephen Leake @ 2014-12-06 22:43 UTC (permalink / raw)
  To: emacs-devel

Tom <adatgyujto@gmail.com> writes:

> Eli Zaretskii <eliz <at> gnu.org> writes:
>> 
>> Please always start the commit log summary line with a capital letter,
>> and end the sentence with a period.  (Actually, in the above
>> particular case the summary line is redundant and could be omitted --
>> but this is a stylistic comment, not a requirement.)
>> 
>> Also, renaming a file needs an entry in the target's ChangeLog, like
>> this:
>> 
>>   * CONTRIBUTE: Renamed from etc/CONTRIBUTE.
>> 
>> and it also should end with a period, not a comma.
>> 
>
> These are exactly the situations where a server side commit hook
> is really useful for the following reasons:
>
> 1. It prevent commits with incorrectly formatted commit messages.

To be precise, if it's only running on the server (Savannah), it does
not prevent the _commit_, it prevents the _push_.

There are a couple commit hooks in emacs/.git/hooks set by autogen.sh
(amazing what you learn reading commit logs :); we could add a hook
there to do this check.

vc could check for proper formatting before doing the commit. Catching
errors as early as possible is always better.

Of course, it would be even better if vc would silently fix the
formatting.

> 2. It prints an error message describing the problem, thereby
> teaching the committer how to make a properly formatted commit.
>
> So there is no need for manually replying to incorrect commits
> on the list, because the script checks every commit and even 
> tells the user the problem.
>
> So it would be a good idea to add such a precommit script to the
> server.

If we go this route, let's also add some vc functionality that checks
and/or does the formatting, and make sure the commit error message
mentions both CONTRIBUTE and the vc function.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06  8:56 Your commit 7409a79 Eli Zaretskii
                   ` (2 preceding siblings ...)
  2014-12-06 22:33 ` Stephen Leake
@ 2014-12-06 22:59 ` Stefan Monnier
  2014-12-07 22:44   ` Stephen Leake
  3 siblings, 1 reply; 52+ messages in thread
From: Stefan Monnier @ 2014-12-06 22:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stephen Leake, emacs-devel

>   * CONTRIBUTE: Renamed from etc/CONTRIBUTE.
                  ^^^^^^^
                  Rename

Of course, we also prefer the present tense because the text should
describe "what the patch does" rather than "what the patch did".


        Stefan



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06 10:22 ` Andreas Schwab
                     ` (2 preceding siblings ...)
  2014-12-06 15:29   ` Yuri Khan
@ 2014-12-06 23:01   ` Stefan Monnier
  3 siblings, 0 replies; 52+ messages in thread
From: Stefan Monnier @ 2014-12-06 23:01 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Eli Zaretskii, Stephen Leake, emacs-devel

> The summary line should not end with a period, like the title of a
> document.

I think we should not care about this.


        Stefan



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06 22:33 ` Stephen Leake
@ 2014-12-07  3:52   ` Eli Zaretskii
  2014-12-07 22:39     ` Stephen Leake
  2014-12-07  5:45   ` Stephen J. Turnbull
  1 sibling, 1 reply; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-07  3:52 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> From: Stephen Leake <stephen_leake@stephe-leake.org>
> Date: Sat, 06 Dec 2014 16:33:47 -0600
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >   commit 7409a79b1b2acf1229dd763f5eb7b96abc17113a
> >   Author: Stephen Leake <stephen_leake@stephe-leake.org>
> >   Date:   Fri Dec 5 13:13:55 2014 -0600
> >
> >       preparing for further changes/cleanup to developers/contributors docs
> >
> >       * etc/CONTRIBUTE: renamed to ./CONTRIBUTE,
> >
> > Please always start the commit log summary line with a capital letter,
> > and end the sentence with a period.
> 
> Do we really need to be so picky?

It's just a good style.

> Note that the Gnu coding standard does _not_ discuss this level of
> detail, although all the examples do have capitals and periods
> (http://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs).

Exactly.  Also, all the other entries in Emacs's own logs.

> I see this pickiness as a mild barrier to contributing

I don't think it is.  Writing correct English is a basic requirement,
it doesn't even have to be in the document.  Like correct spelling,
for example.

> > (Actually, in the above
> > particular case the summary line is redundant and could be omitted --
> > but this is a stylistic comment, not a requirement.)
> 
> I tried that:
> 
> * etc/CONTRIBUTE: renamed to ./CONTRIBUTE, preparing for further changes/cleanup to developers/contributors docs

The "preparing for" part doesn't need to be there, it has exactly zero
importance in the context of a commit log.

> I didn't want to just do:
> 
> * etc/CONTRIBUTE: renamed to ./CONTRIBUTE
> 
> since that doesn't say anything about _why_.

You don't need to say why.  You could push all the changes to the
file, including its move, as a single commit, or a merge-commit with a
single explanatory line.  In general, keeping related changes together
requires less explanations.

You could also point to the list discussion, if you really think
people will need to know why you moved the file.

Also, saying it's "in preparation" of something doesn't really explain
why, since a file can be changed without moving it.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06 22:33 ` Stephen Leake
  2014-12-07  3:52   ` Eli Zaretskii
@ 2014-12-07  5:45   ` Stephen J. Turnbull
  1 sibling, 0 replies; 52+ messages in thread
From: Stephen J. Turnbull @ 2014-12-07  5:45 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

Stephen Leake writes:
 > Eli Zaretskii <eliz@gnu.org> writes:

 > > Please always start the commit log summary line with a capital letter,
 > > and end the sentence with a period.

 > But I don't think capitals and periods actually improve readability in
 > this context; it's _not_ a manual, nor a code comment.

Just as a point of information (I claim no UX authority), I do find
summaries that are complete sentences more readable.  That may be
because the capital-and-period discipline encourages many writers to
write complete thoughts (vs complete sentences).  Or it may be that
better writers are more likely to write in complete sentences unless
told not to.




^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-07  3:52   ` Eli Zaretskii
@ 2014-12-07 22:39     ` Stephen Leake
  2014-12-08  1:57       ` Paul Eggert
  2014-12-08 15:51       ` Eli Zaretskii
  0 siblings, 2 replies; 52+ messages in thread
From: Stephen Leake @ 2014-12-07 22:39 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Stephen Leake <stephen_leake@stephe-leake.org>
>> Date: Sat, 06 Dec 2014 16:33:47 -0600
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >   commit 7409a79b1b2acf1229dd763f5eb7b96abc17113a
>> >   Author: Stephen Leake <stephen_leake@stephe-leake.org>
>> >   Date:   Fri Dec 5 13:13:55 2014 -0600
>> >
>> >       preparing for further changes/cleanup to developers/contributors docs
>> >
>> >       * etc/CONTRIBUTE: renamed to ./CONTRIBUTE,
>> >
>> > Please always start the commit log summary line with a capital letter,
>> > and end the sentence with a period.
>> 
>> Do we really need to be so picky?
>
> It's just a good style.
>
>> Note that the Gnu coding standard does _not_ discuss this level of
>> detail, although all the examples do have capitals and periods
>> (http://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs).
>
> Exactly.  Also, all the other entries in Emacs's own logs.

Ok, I'm arguing for changing a long-standing practice; that requires a
good reason.

>> I see this pickiness as a mild barrier to contributing
>
> I don't think it is.  

I made a statement of fact about myself. I intended to imply that there
could easily be others that feel the same.

Your statement, taken literally, says I am wrong about what I feel;
absurd, and not helpful.

Instead, I will take it to mean, "I (Eli) don't feel that way". That's
fine. Still not helpful.

> Writing correct English is a basic requirement,
> it doesn't even have to be in the document.  Like correct spelling,
> for example.

Correct spelling of computer language symbols is required because
compilers/interpreters are very picky.

Correct spelling in general is certainly less annoying to read.

Incorrect punctuation is much less annoying than incorrect spelling (to
me, at least. Apparently not to you).

To go to one extreme; non-English speakers will have a much harder time
than I of getting all of this right.

In light of the general discussion about the high barriers to becoming
an Emacs contributor, I'm suggesting we seriously consider lowering this
one.

Stefan said "we should not worry about this", but I'm not clear how much
lack of proper English punctiation he's agreeing to.


Since there is some disagreement about this issue among current
developers, I will adopt the following interpretation of the rules as
written:

    Developers are strongly encouraged to use fully proper English, but
    not doing so is not a reason to reject commits, nor to be
    chastised/gently reminded on the emacs-devel mailing list, unless
    the deviation actually causes misunderstanding.

If you disagree with the above, please edit ./CONTRIBUTE to say what you
want more clearly. Include a rationale, so we don't cycle on this
endlessly.

>> > (Actually, in the above
>> > particular case the summary line is redundant and could be omitted --
>> > but this is a stylistic comment, not a requirement.)
>> 
>> I tried that:
>> 
>> * etc/CONTRIBUTE: renamed to ./CONTRIBUTE, preparing for further
>> changes/cleanup to developers/contributors docs
>
> The "preparing for" part doesn't need to be there, it has exactly zero
> importance in the context of a commit log.
>
>> I didn't want to just do:
>> 
>> * etc/CONTRIBUTE: renamed to ./CONTRIBUTE
>> 
>> since that doesn't say anything about _why_.
>
> You don't need to say why.  

Ah. Here we have a fundamental misunderstanding/disagreement of what
commit logs are for.

The classic example in this case is two developers that have different
visions about what needs to be done, and keep undoing each other's
changes (in this case, moving CONTRIBUTE back to etc). If there is no
documentation of _why_, there is no way to resolve that cycle.

> You could also point to the list discussion, if you really think
> people will need to know why you moved the file.

That would be better; I'm not used to having a permanent archive around
to reference.

> You could push all the changes to the
> file, including its move, as a single commit, or a merge-commit with a
> single explanatory line.  In general, keeping related changes together
> requires less explanations.

I didn't do that because git does not track renames explicitly; it
relies on a % changed heuristic. Since I was planning to make extensive
changes, I decided to make separate commits to help the heuristic.

This should go in CONTRIBUTE, now that I think about it (and if it's
not a problem in practice, that should be stated as well, so others
don't make my mistake).

Now I realize the commit message should have been:

http:/<archive reference>; no other changes to help the git rename
heuristic

Still longer than 79 chars; I'm going to hit that limit a lot (note that
I am _not_ begging to change it; one fight at a time :).

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-06 22:59 ` Stefan Monnier
@ 2014-12-07 22:44   ` Stephen Leake
  2014-12-07 23:28     ` Stefan Monnier
  2014-12-08 15:54     ` Eli Zaretskii
  0 siblings, 2 replies; 52+ messages in thread
From: Stephen Leake @ 2014-12-07 22:44 UTC (permalink / raw)
  To: emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>>   * CONTRIBUTE: Renamed from etc/CONTRIBUTE.
>                   ^^^^^^^
>                   Rename
>
> Of course, we also prefer the present tense because the text should
> describe "what the patch does" rather than "what the patch did".

Ok. I often switch tenses halfway thru, and then get annoyed when I
realize that. Having a standard will help.

Added to CONTRIBUTE (not pushed yet).


Gentle reminder; when making comments about commit log style, please
reference CONTRIBUTE. And if what you are saying is _not_ currently in
CONTRIBUTE, please fix it (or don't say it :).


-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-07 22:44   ` Stephen Leake
@ 2014-12-07 23:28     ` Stefan Monnier
  2014-12-08  9:34       ` Stephen Leake
  2014-12-08 15:54     ` Eli Zaretskii
  1 sibling, 1 reply; 52+ messages in thread
From: Stefan Monnier @ 2014-12-07 23:28 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> Ok. I often switch tenses halfway thru, and then get annoyed when I
> realize that. Having a standard will help.

The use of the present tens is stated in the GNU Coding standard.


        Stefan



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-07 22:39     ` Stephen Leake
@ 2014-12-08  1:57       ` Paul Eggert
  2014-12-08  2:28         ` Stephen J. Turnbull
  2014-12-08 15:58         ` Eli Zaretskii
  2014-12-08 15:51       ` Eli Zaretskii
  1 sibling, 2 replies; 52+ messages in thread
From: Paul Eggert @ 2014-12-08  1:57 UTC (permalink / raw)
  To: Stephen Leake, emacs-devel

Stephen Leake wrote:
> Now I realize the commit message should have been:
>
> http:/<archive reference>; no other changes to help the git rename
> heuristic

When a commit merely renames files, wouldn't it be better for the subject line 
to explain the underlying reason for the change?  Something like this, perhaps: 
"Rename old ChangeLog files to prepare for gitlog-to-changelog."  That would be 
easier to follow than some URL.  Any URL could be placed in later lines in the 
commit message.

> Still longer than 79 chars; I'm going to hit that limit a lot

The limit is currently 72 characters (unless the line has just one word).

Some projects also have a separate limit of 50 characters for subject lines; for 
example, please see 
<http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html>.  But 
this might be a bit too short for Emacs.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08  1:57       ` Paul Eggert
@ 2014-12-08  2:28         ` Stephen J. Turnbull
  2014-12-08 15:58           ` Eli Zaretskii
  2014-12-08 15:58         ` Eli Zaretskii
  1 sibling, 1 reply; 52+ messages in thread
From: Stephen J. Turnbull @ 2014-12-08  2:28 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Stephen Leake, emacs-devel

Paul Eggert writes:

 > When a commit merely renames files, wouldn't it be better for the
 > subject line to explain the underlying reason for the change?

If the rename is out of the blue, yes.  But when does that happen?
Almost always renames happen in the context of other work and multiple
commits (some "pure renames" and some content changes) makes sense.

I would do the other work that the rename is intended to support on a
branch, do the rename, and then a merge commit with a commit message
like

    Clarify CONTRIBUTE and make it prominently visible.

    Step one in a revolutionary program to attract more contributors
    to Emacs.

    - Move from etc/ to top level for visibility in ls and git-browser.
    - Specify format of commit log summaries.
    - etc, etc

Then the rename commit can be trivial with a simple statement of fact:

    Rename etc/CONTRIBUTE to ./CONTRIBUTE.

Of course this style of committing and logs would be an insuperable
barrier to contribution if it were made policy. ;-)

Regards,



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-07 23:28     ` Stefan Monnier
@ 2014-12-08  9:34       ` Stephen Leake
  2014-12-08 10:22         ` Thien-Thi Nguyen
  2014-12-08 14:58         ` Stefan Monnier
  0 siblings, 2 replies; 52+ messages in thread
From: Stephen Leake @ 2014-12-08  9:34 UTC (permalink / raw)
  To: emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> Ok. I often switch tenses halfway thru, and then get annoyed when I
>> realize that. Having a standard will help.
>
> The use of the present tens is stated in the GNU Coding standard.

Hmm. Not in section 6.8 Change Logs or 5.2 Commenting Your Work; I've
read those carefully. The word "tense" does not appear in the rest of
the manual (searched both the single html and ascii versions).

Can you point to a more precise reference?


5.2 does say "write complete sentences and capitalize the first word",
so we can reference that if we want it to apply to commit messages.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08  9:34       ` Stephen Leake
@ 2014-12-08 10:22         ` Thien-Thi Nguyen
  2014-12-08 14:58         ` Stefan Monnier
  1 sibling, 0 replies; 52+ messages in thread
From: Thien-Thi Nguyen @ 2014-12-08 10:22 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 465 bytes --]

Probably better to say "imperative mood".  E.g.:

- http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
- http://chris.beams.io/posts/git-commit/

I also vaguely recall something in the GCS, but now can't find it.

-- 
Thien-Thi Nguyen
   GPG key: 4C807502
   (if you're human and you know it)
      read my lisp: (responsep (questions 'technical)
                               (not (via 'mailing-list)))
                     => nil

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08  9:34       ` Stephen Leake
  2014-12-08 10:22         ` Thien-Thi Nguyen
@ 2014-12-08 14:58         ` Stefan Monnier
  2014-12-08 23:32           ` Stephen Leake
  2014-12-09 11:00           ` Richard Stallman
  1 sibling, 2 replies; 52+ messages in thread
From: Stefan Monnier @ 2014-12-08 14:58 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> Hmm. Not in section 6.8 Change Logs or 5.2 Commenting Your Work; I've
> read those carefully. The word "tense" does not appear in the rest of
> the manual (searched both the single html and ascii versions).
> Can you point to a more precise reference?

Duh, I can't find it either, even though I'm absolutely positively
certain I've seen it (and have been pointed to it) in the past.
Obviously the examples there do, but indeed the text doesn't mention it.


        Stefan



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-07 22:39     ` Stephen Leake
  2014-12-08  1:57       ` Paul Eggert
@ 2014-12-08 15:51       ` Eli Zaretskii
  2014-12-08 17:32         ` John Yates
  2014-12-08 23:27         ` Stephen Leake
  1 sibling, 2 replies; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-08 15:51 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> From: Stephen Leake <stephen_leake@stephe-leake.org>
> Date: Sun, 07 Dec 2014 16:39:13 -0600
> 
> >> I see this pickiness as a mild barrier to contributing
> >
> > I don't think it is.  
> 
> I made a statement of fact about myself. I intended to imply that there
> could easily be others that feel the same.
> 
> Your statement, taken literally, says I am wrong about what I feel;
> absurd, and not helpful.

Your statement didn't imply it was about yourself.  To make that
clear, you should have said something like "it is a mild barrier for
my contributing".  (Which would surprise me coming from someone who
writes English poetry for a hobby, but I guess you learn something new
every day.)

> Instead, I will take it to mean, "I (Eli) don't feel that way". That's
> fine. Still not helpful.

I responded to the implied generalization of your feelings to be true
for others.  You didn't give any reasoning for your assessments, so I
didn't feel obliged to provide mine.  It's just your opinion against
mine at this stage.  Nothing wrong about differences of opinions, is
there?  Cause I feel like after a cold shower, and frankly don't
understand why I deserved one.  If this is going to be a frequent kind
of response to any mentoring attempt around here, I'll probably think
twice before trying that again.

> Correct spelling in general is certainly less annoying to read.
> 
> Incorrect punctuation is much less annoying than incorrect spelling (to
> me, at least. Apparently not to you).

Apart of being less annoying, it also looks better for posterity.  All
those random bits and pieces we write are forever sealed in the
Internet records.  Doing it right will save us from being mildly
ashamed down the road.

Last, but not least: we do want Emacs to be as close to perfect as
possible, don't we?  Why the objection to an attempt to educate
contributors in that direction?  Your commit message is immutable, so
whatever I wrote had an implicit "in the future" prepended to it.  Why
would someone object to make their prose in the future better?  There
was no reprimand in what I wrote, just good will and good advice.

> To go to one extreme; non-English speakers will have a much harder time
> than I of getting all of this right.

Given enough guidance and mentoring, they will learn in time; if we
refrain from guiding them, they are less likely to acquire these
skills.  If nothing else, people with these skills are valued higher
on the market, and are easier to communicate with in this age of
international trade and distributed development.  So it's for their
own good, as well as for ours.

I am a non-native English speaker; I wasn't born with the English
writing skills I possess now.  I learned them by listening to Richard
and others, who patiently explained how the text I wrote could and
should be improved.  I'm just trying to give some of that back.

> In light of the general discussion about the high barriers to becoming
> an Emacs contributor, I'm suggesting we seriously consider lowering this
> one.

I stand by my opinion above.  It could be overridden, of course, but I
wonder how low we will agree to descend in the name of "lowering the
barriers".  Especially since this particular barrier is yet to be
proven to be one.

> Since there is some disagreement about this issue among current
> developers, I will adopt the following interpretation of the rules as
> written:
> 
>     Developers are strongly encouraged to use fully proper English, but
>     not doing so is not a reason to reject commits, nor to be
>     chastised/gently reminded on the emacs-devel mailing list, unless
>     the deviation actually causes misunderstanding.

This text is not useful, IMO, because it'sa kind of oxymoron: it
basically says two contradicting things.  Trying to read this as a
newcomer, I find it hard to understand what is it that is required
from me.

> If you disagree with the above, please edit ./CONTRIBUTE to say what you
> want more clearly. Include a rationale, so we don't cycle on this
> endlessly.

First, I understand you are still working on CONTRIBUTE (and have
unpushed changes), so I don't think it's a good idea for me to start
changing it from under your feet.

More importantly, CONTRIBUTE isn't a good platform for discussions and
arguments, so we should reach some agreement here, and only later
write it down.

> >> * etc/CONTRIBUTE: renamed to ./CONTRIBUTE
> >> 
> >> since that doesn't say anything about _why_.
> >
> > You don't need to say why.  

> Ah. Here we have a fundamental misunderstanding/disagreement of what
> commit logs are for.

No, I don't think we do.  It's not about the need to explain in
general, it is about the need for it in this particular case, because
better alternatives exists.

> > You could push all the changes to the
> > file, including its move, as a single commit, or a merge-commit with a
> > single explanatory line.  In general, keeping related changes together
> > requires less explanations.
> 
> I didn't do that because git does not track renames explicitly; it
> relies on a % changed heuristic. Since I was planning to make extensive
> changes, I decided to make separate commits to help the heuristic.

Note the "merge-commit" alternative above: it would have solved the
renaming issue (if you even perceive it as an issue: many Git users
don't, and evidently neither do Git developers).

> This should go in CONTRIBUTE, now that I think about it (and if it's
> not a problem in practice, that should be stated as well, so others
> don't make my mistake).

I don't know what "it" alludes to here, but if you want to suggest
separating renames from other changes, it would most probably be the
wrong advice, unless you also suggest to make all this on a branch and
then merge onto master in a single merge-commit.  Related changes
should be committed together as a single changeset (something that
suddenly disappeared from our instructions).  In this particular case,
renaming alone makes no sense, at least not on the mainline, and if we
ever wanted to revert it, it will most probably be reverted with all
the other changes.  So it makes very little sense to have a separate
mainline commit for just the renaming.

> Now I realize the commit message should have been:
> 
> http:/<archive reference>; no other changes to help the git rename
> heuristic
> 
> Still longer than 79 chars; I'm going to hit that limit a lot (note that
> I am _not_ begging to change it; one fight at a time :).

There's any number of ways to fix this, while still staying on a
single line.  I suggested some, but there are others.  E.g., if you
still believe this should have been a separate mainline commit, you
could have used this:

 CONTRIBUTE: Moved from etc/CONTRIBUTE.

 This is in preparation for restructuring of developer contribution
 documents; see http:/<archive reference> for the related discussion,
 and see http:/<archive reference> for the decision to move the file.

This has a short summary line which tells enough in "git log" short
formats, and then the details below, including the rationale.

But this all is a creative, stylistic issue, not something to be
codified in mandatory documents.  There is no single solution to this;
as long as people choose a reasonable one, and don't goof with
misspellings or missing punctuation, they should be OK.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-07 22:44   ` Stephen Leake
  2014-12-07 23:28     ` Stefan Monnier
@ 2014-12-08 15:54     ` Eli Zaretskii
  2014-12-08 23:33       ` Stephen Leake
  1 sibling, 1 reply; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-08 15:54 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> From: Stephen Leake <stephen_leake@stephe-leake.org>
> Date: Sun, 07 Dec 2014 16:44:41 -0600
> 
> if what you are saying is _not_ currently in CONTRIBUTE, please fix
> it (or don't say it :).

I think it's basically wrong to expect us to put every piece of advice
in some document, or forever hold our peace.  A middle ground should
exist, where we could recommend, but not insist, if the other party
feels strong about whatever issue is being discussed.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08  1:57       ` Paul Eggert
  2014-12-08  2:28         ` Stephen J. Turnbull
@ 2014-12-08 15:58         ` Eli Zaretskii
  2014-12-08 18:24           ` Paul Eggert
  1 sibling, 1 reply; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-08 15:58 UTC (permalink / raw)
  To: Paul Eggert; +Cc: stephen_leake, emacs-devel

> Date: Sun, 07 Dec 2014 17:57:27 -0800
> From: Paul Eggert <eggert@cs.ucla.edu>
> 
> Stephen Leake wrote:
> 
>     Now I realize the commit message should have been:
> 
>     http:/<archive reference>; no other changes to help the git rename
>     heuristic
> 

> When a commit merely renames files, wouldn't it be better for the subject line to explain the underlying reason for the change? Something like this, perhaps: "Rename old ChangeLog files to prepare for gitlog-to-changelog." That would be easier to follow than some URL. Any URL could be placed in later lines in the commit message.

I see no reason for the explanation to be in the summary.  If you look
at the existing summary lines, you will see that they always say what
was done, but not why.  At least one reason for that is that including
the explanation will most likely violate the "one line of less than 80
characters" rule.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08  2:28         ` Stephen J. Turnbull
@ 2014-12-08 15:58           ` Eli Zaretskii
  2014-12-08 23:38             ` Stephen Leake
  0 siblings, 1 reply; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-08 15:58 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: eggert, stephen_leake, emacs-devel

> From: "Stephen J. Turnbull" <stephen@xemacs.org>
> Date: Mon, 08 Dec 2014 11:28:48 +0900
> Cc: Stephen Leake <stephen_leake@stephe-leake.org>, emacs-devel@gnu.org
> 
> I would do the other work that the rename is intended to support on a
> branch, do the rename, and then a merge commit with a commit message
> like
> 
>     Clarify CONTRIBUTE and make it prominently visible.
> 
>     Step one in a revolutionary program to attract more contributors
>     to Emacs.
> 
>     - Move from etc/ to top level for visibility in ls and git-browser.
>     - Specify format of commit log summaries.
>     - etc, etc
> 
> Then the rename commit can be trivial with a simple statement of fact:

Exactly my thoughts.

>     Rename etc/CONTRIBUTE to ./CONTRIBUTE.
> 
> Of course this style of committing and logs would be an insuperable
> barrier to contribution if it were made policy. ;-)

If people object to having instructions in CONTRIBUTE that might be
not 100% necessary, I wonder if we can put recommendations in
CONTRIBUTE without making it a policy that is enforced.  Something
like "we recommend ...".



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 15:51       ` Eli Zaretskii
@ 2014-12-08 17:32         ` John Yates
  2014-12-08 17:57           ` Eli Zaretskii
  2014-12-08 23:27         ` Stephen Leake
  1 sibling, 1 reply; 52+ messages in thread
From: John Yates @ 2014-12-08 17:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stephen Leake, Emacs developers

[-- Attachment #1: Type: text/plain, Size: 597 bytes --]

On Mon, Dec 8, 2014 at 10:51 AM, Eli Zaretskii <eliz@gnu.org> wrote:

> I wonder how low we will agree to descend in the name of "lowering
> the barriers".  Especially since this particular barrier is yet to be
> proven to be one.
>

While GNU ChangeLog conventions may be off-putting to those we
hope to recruit git subject line hygiene is widely discussed, documented
and viewed as a "best practice".  Failure to practice it ourselves is more
likely to be viewed as one more instance of our being out of touch with
the better elements of emerging practice than as a boon to new recruits.

/john

[-- Attachment #2: Type: text/html, Size: 992 bytes --]

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 17:32         ` John Yates
@ 2014-12-08 17:57           ` Eli Zaretskii
  2014-12-08 18:14             ` Paul Eggert
  2014-12-08 18:54             ` John Yates
  0 siblings, 2 replies; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-08 17:57 UTC (permalink / raw)
  To: John Yates; +Cc: stephen_leake, emacs-devel

> Date: Mon, 8 Dec 2014 12:32:36 -0500
> From: John Yates <john@yates-sheets.org>
> Cc: Stephen Leake <stephen_leake@stephe-leake.org>, Emacs developers <emacs-devel@gnu.org>
> 
>     I wonder how low we will agree to descend in the name of "lowering
>     the barriers". Especially since this particular barrier is yet to be
>     proven to be one.
>     
> 
> While GNU ChangeLog conventions may be off-putting to those we
> hope to recruit git subject line hygiene is widely discussed, documented
> and viewed as a "best practice". Failure to practice it ourselves is more
> likely to be viewed as one more instance of our being out of touch with
> the better elements of emerging practice than as a boon to new recruits.

Not sure what your point is here.  My comment above was in teh context
of a request to use full sentences as summary lines.  Is that a
"failure to practice git subject line hygiene"?  If so, in what ways?



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 17:57           ` Eli Zaretskii
@ 2014-12-08 18:14             ` Paul Eggert
  2014-12-08 18:28               ` Eli Zaretskii
                                 ` (2 more replies)
  2014-12-08 18:54             ` John Yates
  1 sibling, 3 replies; 52+ messages in thread
From: Paul Eggert @ 2014-12-08 18:14 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

On 12/08/2014 09:57 AM, Eli Zaretskii wrote:
> My comment above was in the context
> of a request to use full sentences as summary lines.  Is that a
> "failure to practice git subject line hygiene"?
Yes, absolutely.  The typical Git style has no period at the end. See, 
for example, "The seven rules of a great git commit message" 
<http://chris.beams.io/posts/git-commit/>, one of which is "Do not end 
the subject line with a period". This is a slight change from the style 
we've mostly been using, which has a period.

Perhaps we should change to the typical Git style.  We might also prefer 
to shorten the summary lines to 50 characters, as that is is also part 
of the usual Git style.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 15:58         ` Eli Zaretskii
@ 2014-12-08 18:24           ` Paul Eggert
  0 siblings, 0 replies; 52+ messages in thread
From: Paul Eggert @ 2014-12-08 18:24 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: stephen_leake, emacs-devel

On 12/08/2014 07:58 AM, Eli Zaretskii wrote:
>> From: Paul Eggert<eggert@cs.ucla.edu>
>> >
>> >Stephen Leake wrote:
>> >
>> >     Now I realize the commit message should have been:
>> >
>> >     http:/<archive reference>; no other changes to help the git rename
>> >     heuristic
>> >
>> >When a commit merely renames files, wouldn't it be better for the subject line to explain the underlying reason for the change? Something like this, perhaps: "Rename old ChangeLog files to prepare for gitlog-to-changelog." That would be easier to follow than some URL. Any URL could be placed in later lines in the commit message.
> I see no reason for the explanation to be in the summary.

Although explanations don't always need to be in the summary, for 
something this small (where the entire commit message can fit into one 
line) it's better to do it that way.

The summary in Stephen Leake's draft commit message was 
"http://something-or-another; no other changes to help the git rename". 
That is less helpful than "Rename ChangeLogs to prep for 
gitlog-to-changelog" (see, it fits 50 characters!).



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 18:14             ` Paul Eggert
@ 2014-12-08 18:28               ` Eli Zaretskii
  2014-12-08 18:37               ` Eli Zaretskii
  2014-12-08 19:00               ` Stefan Monnier
  2 siblings, 0 replies; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-08 18:28 UTC (permalink / raw)
  To: Paul Eggert; +Cc: emacs-devel

> Date: Mon, 08 Dec 2014 10:14:18 -0800
> From: Paul Eggert <eggert@cs.ucla.edu>
> CC: emacs-devel@gnu.org
> 
> On 12/08/2014 09:57 AM, Eli Zaretskii wrote:
> > My comment above was in the context
> > of a request to use full sentences as summary lines.  Is that a
> > "failure to practice git subject line hygiene"?
> Yes, absolutely.  The typical Git style has no period at the end.

I already agreed to no-period format.  It can still be a full
sentence.

> We might also prefer to shorten the summary lines to 50 characters,
> as that is is also part of the usual Git style.

If someone can write a meaningful summary in 50 characters every time,
chapeau.  IMO, it is more important for the summary to be informative
than it is to be short.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 18:14             ` Paul Eggert
  2014-12-08 18:28               ` Eli Zaretskii
@ 2014-12-08 18:37               ` Eli Zaretskii
  2014-12-08 18:54                 ` Paul Eggert
  2014-12-08 19:00               ` Stefan Monnier
  2 siblings, 1 reply; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-08 18:37 UTC (permalink / raw)
  To: Paul Eggert; +Cc: emacs-devel

> Date: Mon, 08 Dec 2014 10:14:18 -0800
> From: Paul Eggert <eggert@cs.ucla.edu>
> Cc: emacs-devel@gnu.org
> 
> We might also prefer to shorten the summary lines to 50 characters,
> as that is is also part of the usual Git style.

I don't see this being adhered to seriously.  E.g.:

  commit 08a713e078f03e7a870b0111960c6f4c54357152
  Author: Paul Eggert <eggert@cs.ucla.edu>
  Date:   Sun Nov 2 22:24:09 2014 -0800

      open, openat: document nonstandard FreeBSD, NetBSD O_NOFOLLOW errno

      * doc/posix-functions/open.texi (open):
      * doc/posix-functions/openat.texi (openat):
      Document that these functions do not set errno to ELOOP when
      a symlink is opened with O_NOFOLLOW.

and similarly in Git's Git repo.

(Btw, I think the above is a pretty good summary line.)



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 17:57           ` Eli Zaretskii
  2014-12-08 18:14             ` Paul Eggert
@ 2014-12-08 18:54             ` John Yates
  1 sibling, 0 replies; 52+ messages in thread
From: John Yates @ 2014-12-08 18:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stephen Leake, Emacs developers

[-- Attachment #1: Type: text/plain, Size: 721 bytes --]

On Mon, Dec 8, 2014 at 12:57 PM, Eli Zaretskii <eliz@gnu.org> wrote:

> Not sure what your point is here.  My comment above was in teh context
> of a request to use full sentences as summary lines.  Is that a
> "failure to practice git subject line hygiene"?  If so, in what ways?
>

My apologies for being obtuse.  Perhaps as a git user for some while
I assumed more familiarity with git culture than exists in this thread.

I was merely pointing out that across many important projects there
are rather stringent standards for the subject line of a git commit.
These cover line length, no trailing period, imperative mood, etc.

So actually Eli I was supporting your stance of resisting "lowering
the barriers".

/john

[-- Attachment #2: Type: text/html, Size: 1171 bytes --]

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 18:37               ` Eli Zaretskii
@ 2014-12-08 18:54                 ` Paul Eggert
  0 siblings, 0 replies; 52+ messages in thread
From: Paul Eggert @ 2014-12-08 18:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

On 12/08/2014 10:37 AM, Eli Zaretskii wrote:
> I don't see this being adhered to seriously.

Although Gnulib established its own style for git commit messages, the 
usual Git style is reasonable, it's not that hard to use, and it is a 
bit nicer when reviewing large quantities of commits.  The sample you 
just gave could have been summarized "openat etc.: document oddball BSD 
O_NOFOLLOW errno", for example, and that fits in 50.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 18:14             ` Paul Eggert
  2014-12-08 18:28               ` Eli Zaretskii
  2014-12-08 18:37               ` Eli Zaretskii
@ 2014-12-08 19:00               ` Stefan Monnier
  2 siblings, 0 replies; 52+ messages in thread
From: Stefan Monnier @ 2014-12-08 19:00 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Eli Zaretskii, emacs-devel

> Perhaps we should change to the typical Git style.

As far as I know, we've indeed asked for punctuation in the ChangeLog
(and I've added my share of such missing "."), but for the Summary line
we don't really have a convention in place and I suggest we don't bother
with one.  I do like those summaries to be properly capitalized, tho.


        Stefan



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 15:51       ` Eli Zaretskii
  2014-12-08 17:32         ` John Yates
@ 2014-12-08 23:27         ` Stephen Leake
  2014-12-09  0:51           ` Thien-Thi Nguyen
  2014-12-09 16:57           ` Eli Zaretskii
  1 sibling, 2 replies; 52+ messages in thread
From: Stephen Leake @ 2014-12-08 23:27 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Stephen Leake <stephen_leake@stephe-leake.org>
>> Date: Sun, 07 Dec 2014 16:39:13 -0600
>>
>> >> I see this pickiness as a mild barrier to contributing
>> >
>> > I don't think it is.
>>
>> I made a statement of fact about myself. I intended to imply that there
>> could easily be others that feel the same.
>>
>> Your statement, taken literally, says I am wrong about what I feel;
>> absurd, and not helpful.
>
> Your statement didn't imply it was about yourself.  To make that
> clear, you should have said something like "it is a mild barrier for
> my contributing".

Fair enough; I'll try to be clearer in the future. I should have said:

    For me, this pickiness is a mild barrier to contributing. I suspect
    the same is true for others.

>> Instead, I will take it to mean, "I (Eli) don't feel that way". That's
>> fine. Still not helpful.
>
> I responded to the implied generalization of your feelings to be true
> for others.  You didn't give any reasoning for your assessments, so I
> didn't feel obliged to provide mine.

Ok.

> It's just your opinion against
> mine at this stage.  Nothing wrong about differences of opinions, is
> there?

Right.

> Cause I feel like after a cold shower, and frankly don't
> understand why I deserved one.

That's how I felt reading your response. Sigh; email is not the best
communications mechanism.

>> Correct spelling in general is certainly less annoying to read.
>>
>> Incorrect punctuation is much less annoying than incorrect spelling (to
>> me, at least. Apparently not to you).
>
> Apart of being less annoying, it also looks better for posterity.  All
> those random bits and pieces we write are forever sealed in the
> Internet records.  Doing it right will save us from being mildly
> ashamed down the road.

Ok, that makes sense. This is going in the ChangeLog, as well as just
the commit message; that is more of a document than a transient thing.
And the commit messages are preseved indefinitely in the git repository,
so there's a good chance they will be read in the future.

> Last, but not least: we do want Emacs to be as close to perfect as
> possible, don't we?  Why the objection to an attempt to educate
> contributors in that direction?  Your commit message is immutable, so
> whatever I wrote had an implicit "in the future" prepended to it.  Why
> would someone object to make their prose in the future better?

Because I have been trying for 30 years to make myself write caps and
periods in commit messages, and it just doesn't work for me (mostly
because I just don't see it as important). Hence the barrier to
contributing.

> There was no reprimand in what I wrote, just good will and good
> advice.

I got the impression of "if you don't follow this advice, your commits
will be rejected/not taken seriously". That's _not_ from your text, just
from your position of core developer, and mine as Emacs newbie. And
because there is no clear documentation of what the standards are.

> First, I understand you are still working on CONTRIBUTE (and have
> unpushed changes), so I don't think it's a good idea for me to start
> changing it from under your feet.

That's what ediff/merge is for.

But I gather there is an aversion to lots of small commits; that's not
the style I used with my NASA team. But that was a much smaller team, so
I'll have to get used to this.

Anyway, I've added:

- Some of the rules in the GNU coding standards section 5.2 Commenting
  Your Work also apply to Changelog entries: they must be in English,
  and be complete sentences starting with a capital and ending with a
  period. It is tempting to relax this rule for commit messages, since
  they are somewhat transient. However, they are preserved indefinitely,
  and have a reasonable chance of being read in the future, so it's
  better that they have good presentation.

> More importantly, CONTRIBUTE isn't a good platform for discussions and
> arguments, so we should reach some agreement here, and only later
> write it down.

I was attempting to pass the buck. But I'll accept your rationale.

>> > You could push all the changes to the
>> > file, including its move, as a single commit, or a merge-commit with a
>> > single explanatory line.  In general, keeping related changes together
>> > requires less explanations.
>>
>> I didn't do that because git does not track renames explicitly; it
>> relies on a % changed heuristic. Since I was planning to make extensive
>> changes, I decided to make separate commits to help the heuristic.
>
> Note the "merge-commit" alternative above: it would have solved the
> renaming issue (if you even perceive it as an issue: many Git users
> don't, and evidently neither do Git developers).

As I understand it, by "merge-commit", you mean :

- create a feature branch

- On the feature branch, commit the rename without any changes

- make other changes on the feature branch

- merge the feature branch to trunk, squashing the commits into one.

But "squash all the commits into one" means the Git rename hueristic has
to cope with the changes, which is what I was trying to avoid.

(see; inconsistent caps, periods in the above bullet list; they just
slow me down :)

>> Now I realize the commit message should have been:
>>
>> http:/<archive reference>; no other changes to help the git rename
>> heuristic
>>
>> Still longer than 79 chars; I'm going to hit that limit a lot (note that
>> I am _not_ begging to change it; one fight at a time :).
>
> There's any number of ways to fix this, while still staying on a
> single line.  I suggested some, but there are others.  E.g., if you
> still believe this should have been a separate mainline commit, you
> could have used this:
>
>  CONTRIBUTE: Moved from etc/CONTRIBUTE.
>
>  This is in preparation for restructuring of developer contribution
>  documents; see http:/<archive reference> for the related discussion,
>  and see http:/<archive reference> for the decision to move the file.
>
> This has a short summary line which tells enough in "git log" short
> formats, and then the details below, including the rationale.
>
> But this all is a creative, stylistic issue, not something to be
> codified in mandatory documents.  There is no single solution to this;
> as long as people choose a reasonable one, and don't goof with
> misspellings or missing punctuation, they should be OK.

It's a big stretch to go from the examples in the Gnu coding standards
to this example. There are some like this in ./Changelog; first one
2014-11-11 Eric S. Raymond <esr@thyrsus.com>, and that has a leading
asterisk on the first line.

It's my impression that it is exactly this kind of style issue that
started this whole thread, so I'd like to have at least a statement of
what will be accepted in CONTRIBUTE. As you said about my paragraph
above, it's not easy to say "some deviations accepted" and still be
clear.

How about:

- The summary line is limited to 72 characters (enforced by a commit
  hook). If you have trouble making that a good summary, add a
  paragraph below it, before the individual file descriptions.

- If only a single file is changed, the summary line be the normal file
  first line (starting with the asterisk). Then there is no individual
  files section.


Diff from the current trunk below.

--
-- Stephe

index dc6fd71..0ceb4af 100644
--- a/CONTRIBUTE
+++ b/CONTRIBUTE
@@ -154,8 +154,9 @@ single short line explaining the change, then an empty line, then
 unindented ChangeLog entries.  (Essentially, a commit message should
 be a duplicate of what the patch adds to the ChangeLog files.  We are
 planning to automate this better, to avoid the duplication.) You can
-use the Emacs functions log-edit-add-to-changelog or
-log-edit-insert-changelog to ease this process.
+use various Emacs functions to ease this process; see
+http://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Log-Commands.html
+(info "(emacs)Change Log Commands").

 ** The patch itself.

@@ -235,6 +236,14 @@ specify the actual author; the committer defaults to you.

   (Rather than anything involving "ditto" and suchlike.)

+- The summary line is limited to 72 characters (enforced by a commit
+  hook). If you have trouble making that a good summary, add a
+  paragraph below it, before the individual file descriptions.
+
+- If only a single file is changed, the summary line can be the normal
+  file first line (starting with the asterisk).  Then there is no
+  individual files section.
+
 - In ChangeLog files, there is no standard or recommended way to
   identify revisions.

@@ -249,6 +258,17 @@ specify the actual author; the committer defaults to you.
   of files such as 'configure'.  "There is no need" means you don't
   have to, but you can if you want to.

+- Use the present tense; describe "what the change does", not "what
+  the change did".
+
+- Some of the rules in the GNU coding standards section 5.2
+  "Commenting Your Work" also apply to Changelog entries: they must be
+  in English, and be complete sentences starting with a capital and
+  ending with a period.  It is tempting to relax this rule for commit
+  messages, since they are somewhat transient.  However, they are
+  preserved indefinitely, and have a reasonable chance of being read
+  in the future, so it's better that they have good presentation.
+
 ** branches

 Development normally takes places on the trunk.
@@ -287,6 +307,21 @@ then exclude that commit from the merge to trunk.
 See all the files in admin/notes/* . In particular, see
 admin/notes/newfile, see admin/notes/repo.

+*** git vs rename
+
+git does not explicitly represent a file renaming; it uses a percent
+changed heuristic to deduce that a file was renamed. So if you are
+planning to make extensive changes to a file after renaming it (or
+moving it to another directory), you should:
+
+- create a feature branch
+
+- commit the rename without any changes
+
+- make other changes
+
+- merge the feature branch to trunk, squashing the commits into one.
+
 ** Emacs Mailing lists.

 Discussion about Emacs development takes place on emacs-devel@gnu.org.



^ permalink raw reply related	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 14:58         ` Stefan Monnier
@ 2014-12-08 23:32           ` Stephen Leake
  2014-12-09 11:00           ` Richard Stallman
  1 sibling, 0 replies; 52+ messages in thread
From: Stephen Leake @ 2014-12-08 23:32 UTC (permalink / raw)
  To: emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> Hmm. Not in section 6.8 Change Logs or 5.2 Commenting Your Work; I've
>> read those carefully. The word "tense" does not appear in the rest of
>> the manual (searched both the single html and ascii versions).
>> Can you point to a more precise reference?
>
> Duh, I can't find it either, even though I'm absolutely positively
> certain I've seen it (and have been pointed to it) in the past.
> Obviously the examples there do, but indeed the text doesn't mention
> it.

There was probably a controversy like our current one, and it got
removed as the only possible solution.

I prefer a clear statement of style; relaxing the rules can be done in
the enforcement stage.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 15:54     ` Eli Zaretskii
@ 2014-12-08 23:33       ` Stephen Leake
  0 siblings, 0 replies; 52+ messages in thread
From: Stephen Leake @ 2014-12-08 23:33 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Stephen Leake <stephen_leake@stephe-leake.org>
>> Date: Sun, 07 Dec 2014 16:44:41 -0600
>> 
>> if what you are saying is _not_ currently in CONTRIBUTE, please fix
>> it (or don't say it :).
>
> I think it's basically wrong to expect us to put every piece of advice
> in some document, or forever hold our peace.  A middle ground should
> exist, where we could recommend, but not insist, if the other party
> feels strong about whatever issue is being discussed.

"every" is a strong word, indeed.

I'll settle for "issues which have caused controversy or confusion".

And I'll have to get used to interpreting emails from core developers as
recommendations, not requirements.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 15:58           ` Eli Zaretskii
@ 2014-12-08 23:38             ` Stephen Leake
  0 siblings, 0 replies; 52+ messages in thread
From: Stephen Leake @ 2014-12-08 23:38 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: "Stephen J. Turnbull" <stephen@xemacs.org>
>> Date: Mon, 08 Dec 2014 11:28:48 +0900
>> Cc: Stephen Leake <stephen_leake@stephe-leake.org>, emacs-devel@gnu.org
>> 
>> I would do the other work that the rename is intended to support on a
>> branch, do the rename, and then a merge commit with a commit message
>> like
>> 
>>     Clarify CONTRIBUTE and make it prominently visible.
>> 
>>     Step one in a revolutionary program to attract more contributors
>>     to Emacs.
>> 
>>     - Move from etc/ to top level for visibility in ls and git-browser.
>>     - Specify format of commit log summaries.
>>     - etc, etc
>> 
>> Then the rename commit can be trivial with a simple statement of fact:
>
> Exactly my thoughts.
>
>>     Rename etc/CONTRIBUTE to ./CONTRIBUTE.
>> 
>> Of course this style of committing and logs would be an insuperable
>> barrier to contribution if it were made policy. ;-)
>
> If people object to having instructions in CONTRIBUTE that might be
> not 100% necessary, I wonder if we can put recommendations in
> CONTRIBUTE without making it a policy that is enforced.  Something
> like "we recommend ...".

We can use "shall" or "must" for requirements, "should" for
recommendations. That's standard NASA practice.

That is _not_ the language used in the Gnu coding standards; that uses
"should" and "please" and other random words. It's not at all clear how
that relates to required/recommended.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 23:27         ` Stephen Leake
@ 2014-12-09  0:51           ` Thien-Thi Nguyen
  2014-12-09  8:08             ` Stephen Leake
  2014-12-09 16:57           ` Eli Zaretskii
  1 sibling, 1 reply; 52+ messages in thread
From: Thien-Thi Nguyen @ 2014-12-09  0:51 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1710 bytes --]

() Stephen Leake <stephen_leake@stephe-leake.org>
() Mon, 08 Dec 2014 17:27:13 -0600

   Because I have been trying for 30 years to make myself write
   caps and periods in commit messages, and it just doesn't work
   for me (mostly because I just don't see it as important).
   Hence the barrier to contributing.

Maybe if you take a step sideways and consider the role of the
initial caps and period, it will make things easier to not only
accept, but formulate exceptions.  This is my roundabout way of
pushing my own personal axioms re TITLE:

- A sentence begins w/ a capitalized word and ends with period.
- Phrases that are not sentences do not merit this.
- A change can be described by a sentence or a phrase.

The last axiom is the escape hatch that allows TITLEs such as:

 - New module: (foo bar baz)
 - Add abstractions: make-coffee, stumble-about

in place of the excruciatingly "correct":

 - Add module ‘(foo bar baz)’.
 - Add abstractions ‘make-coffee’, ‘stumble-about’.

that the first two axioms alone would require.  (I always
capitalize TITLE, for personal aesthetics -- the salient
difference is lack of trailing dot and lack of quotes.)

In sum, the trick is not to force yourself into a static mold,
but to instead train yourself into the molding mindset, then
apply yourself freely and w/ deliberation, dynamically.

It is, essentially, another form of late binding (insert rainbows
and unicorns, here :-D).

-- 
Thien-Thi Nguyen
   GPG key: 4C807502
   (if you're human and you know it)
      read my lisp: (responsep (questions 'technical)
                               (not (via 'mailing-list)))
                     => nil

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-09  0:51           ` Thien-Thi Nguyen
@ 2014-12-09  8:08             ` Stephen Leake
  2014-12-09  9:36               ` Thien-Thi Nguyen
  0 siblings, 1 reply; 52+ messages in thread
From: Stephen Leake @ 2014-12-09  8:08 UTC (permalink / raw)
  To: emacs-devel

Thien-Thi Nguyen <ttn@gnu.org> writes:

> () Stephen Leake <stephen_leake@stephe-leake.org>
> () Mon, 08 Dec 2014 17:27:13 -0600
>
>    Because I have been trying for 30 years to make myself write
>    caps and periods in commit messages, and it just doesn't work
>    for me (mostly because I just don't see it as important).
>    Hence the barrier to contributing.
>
> Maybe if you take a step sideways and consider the role of the
> initial caps and period, it will make things easier to not only
> accept, but formulate exceptions.  This is my roundabout way of
> pushing my own personal axioms re TITLE:
>
> - A sentence begins w/ a capitalized word and ends with period.
> - Phrases that are not sentences do not merit this.
> - A change can be described by a sentence or a phrase.

Yes.

> The last axiom is the escape hatch that allows TITLEs such as:

Ah, but why limit the exception to the TITLE? The rest of the commit
entry is also describing changes. That's my problem :).

"this will be here for posterity" was _not_ true for the NASA projects I
worked on; it is true for Emacs. I think that will be sufficient
motivation for me.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-09  8:08             ` Stephen Leake
@ 2014-12-09  9:36               ` Thien-Thi Nguyen
  0 siblings, 0 replies; 52+ messages in thread
From: Thien-Thi Nguyen @ 2014-12-09  9:36 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1642 bytes --]

() Stephen Leake <stephen_leake@stephe-leake.org>
() Tue, 09 Dec 2014 02:08:45 -0600

   Ah, but why limit the exception to the TITLE? The rest of the
   commit entry is also describing changes. That's my problem :).

That escape hatch is TITLE-only to conserve space, i suppose.
In the entry BODY, an extra dot at the end (and quoting, YMMV)
is no big deal.  E.g.:

 Add abstraction: mumble
 
 * foo.el (mumble): New func.
 (explain, extemporize, spew): Use it.

Under pervasive axiom 3, this could have been written:

 Add abstraction: mumble
 
 * foo.el (mumble): new func
 (explain, extemporize, spew): Use it.

but that naked "new func" is jarring (i use lowercase "n" for
emphasis) w/in the BODY context.  All IMHO, of course.  Actually,
for this case, to reduce redundancy, i might instead settle on:

 Add abstraction: mumble
 
 * foo.el (mumble): ...here.
 (explain, extemporize, spew): Use it.

as long as i'm comfortable equating "abstraction" w/ "func".
Anyway, writing a style guide is tough work, so kudos to those who
Do It.  I like style guides that include rationale, personally.

   "this will be here for posterity" was _not_ true for the NASA
   projects I worked on; it is true for Emacs.  I think that will
   be sufficient motivation for me.

It's very possible that Emacs will outlast NASA.  I don't think
i'll be around to find out, though...  :-D

-- 
Thien-Thi Nguyen
   GPG key: 4C807502
   (if you're human and you know it)
      read my lisp: (responsep (questions 'technical)
                               (not (via 'mailing-list)))
                     => nil

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 14:58         ` Stefan Monnier
  2014-12-08 23:32           ` Stephen Leake
@ 2014-12-09 11:00           ` Richard Stallman
  2014-12-09 11:09             ` David Kastrup
  1 sibling, 1 reply; 52+ messages in thread
From: Richard Stallman @ 2014-12-09 11:00 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: stephen_leake, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Duh, I can't find it either, even though I'm absolutely positively
  > certain I've seen it (and have been pointed to it) in the past.

Strange, I also remember writing about this and I don't know where it
was.

-- 
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call.




^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-09 11:00           ` Richard Stallman
@ 2014-12-09 11:09             ` David Kastrup
  2014-12-10  8:24               ` Richard Stallman
  0 siblings, 1 reply; 52+ messages in thread
From: David Kastrup @ 2014-12-09 11:09 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> [Present tense]
>   > Duh, I can't find it either, even though I'm absolutely positively
>   > certain I've seen it (and have been pointed to it) in the past.
>
> Strange, I also remember writing about this and I don't know where it
> was.

M-x (info "(elisp) Documentation Tips")

   • Write documentation strings in the active voice, not the passive,
     and in the present tense, not the future.  For instance, use
     “Return a list containing A and B.” instead of “A list containing A
     and B will be returned.”


-- 
David Kastrup




^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-08 23:27         ` Stephen Leake
  2014-12-09  0:51           ` Thien-Thi Nguyen
@ 2014-12-09 16:57           ` Eli Zaretskii
  2014-12-10  9:26             ` Stephen Leake
  1 sibling, 1 reply; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-09 16:57 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> From: Stephen Leake <stephen_leake@stephe-leake.org>
> Date: Mon, 08 Dec 2014 17:27:13 -0600
> 
> I have been trying for 30 years to make myself write caps and
> periods in commit messages, and it just doesn't work for me (mostly
> because I just don't see it as important). Hence the barrier to
> contributing.

Nothing a simple Lisp function couldn't handle, if installed as a hook
in a proper place, right?

And the period is no longer an issue, so you are down to caps.

> > There was no reprimand in what I wrote, just good will and good
> > advice.

> I got the impression of "if you don't follow this advice, your commits
> will be rejected/not taken seriously". That's _not_ from your text, just
> from your position of core developer, and mine as Emacs newbie. And
> because there is no clear documentation of what the standards are.

Relax, this ain't NASA, and I'm not your boss ;-)  I do expect my
advice to carry some weight, but not enough to prevent you from
arguing if you feel strong about not using caps (or whatever is the
issue at hand).

> > Note the "merge-commit" alternative above: it would have solved the
> > renaming issue (if you even perceive it as an issue: many Git users
> > don't, and evidently neither do Git developers).
> 
> As I understand it, by "merge-commit", you mean :
> 
> - create a feature branch
> 
> - On the feature branch, commit the rename without any changes
> 
> - make other changes on the feature branch
> 
> - merge the feature branch to trunk, squashing the commits into one.

The "squashing" part is optional.  Personally, I prefer not to (if
nothing else, it makes bisecting more accurate, and also lets me
recall what I've done and why more easily), although the benefits are
minor, and some people do prefer squashing.

> But "squash all the commits into one" means the Git rename hueristic has
> to cope with the changes, which is what I was trying to avoid.

Then don't squash.  It's not required.  The single merge-commit is
good enough to make this a single changeset, from the mainline POV.

> >  CONTRIBUTE: Moved from etc/CONTRIBUTE.
> >
> >  This is in preparation for restructuring of developer contribution
> >  documents; see http:/<archive reference> for the related discussion,
> >  and see http:/<archive reference> for the decision to move the file.
> >
> > This has a short summary line which tells enough in "git log" short
> > formats, and then the details below, including the rationale.
> >
> > But this all is a creative, stylistic issue, not something to be
> > codified in mandatory documents.  There is no single solution to this;
> > as long as people choose a reasonable one, and don't goof with
> > misspellings or missing punctuation, they should be OK.

> It's a big stretch to go from the examples in the Gnu coding standards
> to this example. There are some like this in ./Changelog; first one
> 2014-11-11 Eric S. Raymond <address@hidden>, and that has a leading
> asterisk on the first line.

Asterisks come from add-change-log-entry and friends, so it will not
be there if you just write free text, like I did above.

In any case, the asterisks are optional, IMO.  They don't carry any
information with them.  I've been deleting them until now, but I hear
some people want to keep them.  Other projects are inconsistent wrt
this, although most of those I looked at do leave the asterisks alone,
probably because it's easier.

> It's my impression that it is exactly this kind of style issue that
> started this whole thread, so I'd like to have at least a statement of
> what will be accepted in CONTRIBUTE.

From experience, the rules are not rigid.  You need to put the right
information there, and make it in correct English, and that's about
all that's really required.  Beyond that, it's all about your
perfectionism.

> How about:
> 
> - The summary line is limited to 72 characters (enforced by a commit
>   hook). If you have trouble making that a good summary, add a
>   paragraph below it, before the individual file descriptions.
> 
> - If only a single file is changed, the summary line be the normal file
>   first line (starting with the asterisk). Then there is no individual
>   files section.

Should be fine.

> +- merge the feature branch to trunk, squashing the commits into one.

I'd suggest "optionally squashing the commits".

Thanks.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-09 11:09             ` David Kastrup
@ 2014-12-10  8:24               ` Richard Stallman
  2014-12-10 17:05                 ` Stephen Leake
  0 siblings, 1 reply; 52+ messages in thread
From: Richard Stallman @ 2014-12-10  8:24 UTC (permalink / raw)
  To: David Kastrup; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

     >   Write documentation strings in the active voice, not the passive,
     >   and in the present tense, not the future.  For instance, use
     >    Return a list containing A and B.  instead of  A list containing A
     >   and B will be returned. 

Thanks.  I should probably move the advice from there into the GNU
standards, since they are applicable to any manual.

-- 
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call.




^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-09 16:57           ` Eli Zaretskii
@ 2014-12-10  9:26             ` Stephen Leake
  2014-12-10 16:17               ` Eli Zaretskii
  0 siblings, 1 reply; 52+ messages in thread
From: Stephen Leake @ 2014-12-10  9:26 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> >  CONTRIBUTE: Moved from etc/CONTRIBUTE.
>> >
>> >  This is in preparation for restructuring of developer contribution
>> >  documents; see http:/<archive reference> for the related discussion,
>> >  and see http:/<archive reference> for the decision to move the file.
>> >
>> > This has a short summary line which tells enough in "git log" short
>> > formats, and then the details below, including the rationale.
>> >
>> > But this all is a creative, stylistic issue, not something to be
>> > codified in mandatory documents.  There is no single solution to this;
>> > as long as people choose a reasonable one, and don't goof with
>> > misspellings or missing punctuation, they should be OK.
>
>> It's a big stretch to go from the examples in the Gnu coding standards
>> to this example. There are some like this in ./Changelog; first one
>> 2014-11-11 Eric S. Raymond <address@hidden>, and that has a leading
>> asterisk on the first line.
>
> Asterisks come from add-change-log-entry and friends, so it will not
> be there if you just write free text, like I did above.

> In any case, the asterisks are optional, IMO.

http://www.gnu.org/prep/standards/html_node/Change-Log-Concepts.html
last paragraph says asterisks are part of the required Changelog style.

> From experience, the rules are not rigid.  

True, they are not consistently enforced.

But a new developer needs a clear set of rules, so they know what they
need to change in their habits from other projects.

> You need to put the right information there, and make it in correct
> English, and that's about all that's really required. Beyond that,
> it's all about your perfectionism.

That is not the impression I get from the mentoring comments on this
list, and it is not what it says in CONTRIBUTE.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-10  9:26             ` Stephen Leake
@ 2014-12-10 16:17               ` Eli Zaretskii
  2014-12-10 17:04                 ` Stephen Leake
  0 siblings, 1 reply; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-10 16:17 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> From: Stephen Leake <stephen_leake@stephe-leake.org>
> Date: Wed, 10 Dec 2014 03:26:39 -0600
> 
> > Asterisks come from add-change-log-entry and friends, so it will not
> > be there if you just write free text, like I did above.
> 
> > In any case, the asterisks are optional, IMO.
> 
> http://www.gnu.org/prep/standards/html_node/Change-Log-Concepts.html
> last paragraph says asterisks are part of the required Changelog style.

I wasn't talking about Changelog's, I was talking about commit log
messages.

> > You need to put the right information there, and make it in correct
> > English, and that's about all that's really required. Beyond that,
> > it's all about your perfectionism.
> 
> That is not the impression I get from the mentoring comments on this
> list, and it is not what it says in CONTRIBUTE.

You need to read just what the text says, as you yourself admitted.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-10 16:17               ` Eli Zaretskii
@ 2014-12-10 17:04                 ` Stephen Leake
  2014-12-10 18:02                   ` Eli Zaretskii
  0 siblings, 1 reply; 52+ messages in thread
From: Stephen Leake @ 2014-12-10 17:04 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Stephen Leake <stephen_leake@stephe-leake.org>
>> Date: Wed, 10 Dec 2014 03:26:39 -0600
>> 
>> > Asterisks come from add-change-log-entry and friends, so it will not
>> > be there if you just write free text, like I did above.
>> 
>> > In any case, the asterisks are optional, IMO.
>> 
>> http://www.gnu.org/prep/standards/html_node/Change-Log-Concepts.html
>> last paragraph says asterisks are part of the required Changelog style.
>
> I wasn't talking about Changelog's, I was talking about commit log
> messages.

CONTRIBUTE says:

    When using git, commit messages should use ChangeLog format, with a
    ...

>> > You need to put the right information there, and make it in correct
>> > English, and that's about all that's really required. Beyond that,
>> > it's all about your perfectionism.
>> 
>> That is not the impression I get from the mentoring comments on this
>> list, and it is not what it says in CONTRIBUTE.
>
> You need to read just what the text says, as you yourself admitted.

I don't follow; what is your point?

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-10  8:24               ` Richard Stallman
@ 2014-12-10 17:05                 ` Stephen Leake
  2014-12-10 19:08                   ` Stefan Monnier
  0 siblings, 1 reply; 52+ messages in thread
From: Stephen Leake @ 2014-12-10 17:05 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>      >   Write documentation strings in the active voice, not the passive,
>      >   and in the present tense, not the future.  For instance, use
>      >    Return a list containing A and B.  instead of  A list containing A
>      >   and B will be returned. 
>
> Thanks.  I should probably move the advice from there into the GNU
> standards, since they are applicable to any manual.

This came up in a discussion of commit messages and Changelogs; would
you recommend active voice, present tense (not past), for those?

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-10 17:04                 ` Stephen Leake
@ 2014-12-10 18:02                   ` Eli Zaretskii
  2014-12-10 19:20                     ` Paul Eggert
  0 siblings, 1 reply; 52+ messages in thread
From: Eli Zaretskii @ 2014-12-10 18:02 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> From: Stephen Leake <stephen_leake@stephe-leake.org>
> Date: Wed, 10 Dec 2014 11:04:03 -0600
> 
> >> > In any case, the asterisks are optional, IMO.
> >> 
> >> http://www.gnu.org/prep/standards/html_node/Change-Log-Concepts.html
> >> last paragraph says asterisks are part of the required Changelog style.
> >
> > I wasn't talking about Changelog's, I was talking about commit log
> > messages.
> 
> CONTRIBUTE says:
> 
>     When using git, commit messages should use ChangeLog format, with a

That's obviously inaccurate.

> >> > You need to put the right information there, and make it in correct
> >> > English, and that's about all that's really required. Beyond that,
> >> > it's all about your perfectionism.
> >> 
> >> That is not the impression I get from the mentoring comments on this
> >> list, and it is not what it says in CONTRIBUTE.
> >
> > You need to read just what the text says, as you yourself admitted.
> 
> I don't follow; what is your point?

That your impression doesn't have any basis, the text of mentoring
comments as written and posted does not imply anything to that effect.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-10 17:05                 ` Stephen Leake
@ 2014-12-10 19:08                   ` Stefan Monnier
  0 siblings, 0 replies; 52+ messages in thread
From: Stefan Monnier @ 2014-12-10 19:08 UTC (permalink / raw)
  To: Stephen Leake; +Cc: emacs-devel

> This came up in a discussion of commit messages and Changelogs; would
> you recommend active voice, present tense (not past), for those?

Yes.  And that's what we use.


        Stefan



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: Your commit 7409a79
  2014-12-10 18:02                   ` Eli Zaretskii
@ 2014-12-10 19:20                     ` Paul Eggert
  0 siblings, 0 replies; 52+ messages in thread
From: Paul Eggert @ 2014-12-10 19:20 UTC (permalink / raw)
  To: Eli Zaretskii, Stephen Leake; +Cc: emacs-devel

On 12/10/2014 10:02 AM, Eli Zaretskii wrote:
>> CONTRIBUTE says:
>> >
>> >     When using git, commit messages should use ChangeLog format, with a
> That's obviously inaccurate.
>

No, it's pretty much correct.  Once we start generating ChangeLogs 
automatically from commit messages, we'll need to use the same 
guidelines for both.  In the meantime we might as well use the same 
guidelines for both.



^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2014-12-10 19:20 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-06  8:56 Your commit 7409a79 Eli Zaretskii
2014-12-06 10:22 ` Andreas Schwab
2014-12-06 10:29   ` Eli Zaretskii
2014-12-06 10:32   ` Paul Eggert
2014-12-06 15:29   ` Yuri Khan
2014-12-06 23:01   ` Stefan Monnier
2014-12-06 16:14 ` Tom
2014-12-06 18:54   ` Eli Zaretskii
2014-12-06 22:43   ` Stephen Leake
2014-12-06 22:33 ` Stephen Leake
2014-12-07  3:52   ` Eli Zaretskii
2014-12-07 22:39     ` Stephen Leake
2014-12-08  1:57       ` Paul Eggert
2014-12-08  2:28         ` Stephen J. Turnbull
2014-12-08 15:58           ` Eli Zaretskii
2014-12-08 23:38             ` Stephen Leake
2014-12-08 15:58         ` Eli Zaretskii
2014-12-08 18:24           ` Paul Eggert
2014-12-08 15:51       ` Eli Zaretskii
2014-12-08 17:32         ` John Yates
2014-12-08 17:57           ` Eli Zaretskii
2014-12-08 18:14             ` Paul Eggert
2014-12-08 18:28               ` Eli Zaretskii
2014-12-08 18:37               ` Eli Zaretskii
2014-12-08 18:54                 ` Paul Eggert
2014-12-08 19:00               ` Stefan Monnier
2014-12-08 18:54             ` John Yates
2014-12-08 23:27         ` Stephen Leake
2014-12-09  0:51           ` Thien-Thi Nguyen
2014-12-09  8:08             ` Stephen Leake
2014-12-09  9:36               ` Thien-Thi Nguyen
2014-12-09 16:57           ` Eli Zaretskii
2014-12-10  9:26             ` Stephen Leake
2014-12-10 16:17               ` Eli Zaretskii
2014-12-10 17:04                 ` Stephen Leake
2014-12-10 18:02                   ` Eli Zaretskii
2014-12-10 19:20                     ` Paul Eggert
2014-12-07  5:45   ` Stephen J. Turnbull
2014-12-06 22:59 ` Stefan Monnier
2014-12-07 22:44   ` Stephen Leake
2014-12-07 23:28     ` Stefan Monnier
2014-12-08  9:34       ` Stephen Leake
2014-12-08 10:22         ` Thien-Thi Nguyen
2014-12-08 14:58         ` Stefan Monnier
2014-12-08 23:32           ` Stephen Leake
2014-12-09 11:00           ` Richard Stallman
2014-12-09 11:09             ` David Kastrup
2014-12-10  8:24               ` Richard Stallman
2014-12-10 17:05                 ` Stephen Leake
2014-12-10 19:08                   ` Stefan Monnier
2014-12-08 15:54     ` Eli Zaretskii
2014-12-08 23:33       ` Stephen Leake

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).