I have merged 
https://github.com/apache/calcite/commit/3c19347cc45349a21a8c97d6f6e8d3e9f596070f
 with a new lint rule. I had to force-push to amended the previous two commits 
because the linter checks the N most recent commits.

Julian


> On Jan 4, 2024, at 11:28 AM, Julian Hyde <jhyde.apa...@gmail.com> wrote:
> 
> For the record, I think that ‘Lint’ and ’Typo’ are perfectly good commit 
> messages. Simple changes should look simple.
> 
> We have already documented the standards: 
> https://calcite.apache.org/develop/#contributing.
> 
> 
> 
>> On Jan 3, 2024, at 7:07 PM, Forward Xu <forwardxu...@gmail.com> wrote:
>> 
>> If the fix is very small and there is no related work order or issue, we
>> can briefly describe the problem and explain the reason for the fix when
>> submitting the PR. If we need to standardize this type of PR submission, we
>> can form some PR templates or documentation.
>> 
>> Best,
>> ForwardXu
>> 
>> Julian Hyde <jh...@apache.org> 于2024年1月4日周四 04:21写道:
>> 
>>> It's so difficult to agree on a vocabulary that everyone will agree
>>> on, I don't know whether we should even try.
>>> 
>>> I follow the universal rule: "When in Rome, do as the Romans do".
>>> Which is to say, follow the existing standard (even if it's
>>> undocumented, which it probably is) and don't invent your own. If I'm
>>> about to make a commit that fixes a typo, or fixes lint errors, or
>>> upgrades a component, I browse the commit log to see what commit
>>> messages people have used for similar changes.
>>> 
>>> Julian
>>> 
>>> On Wed, Jan 3, 2024 at 4:11 AM Benchao Li <libenc...@apache.org> wrote:
>>>> 
>>>> The word [MINOR] is very coarse-grained to me, as Stamatis mentions
>>>> above, it may contains small improvements to javadoc, site, test,
>>>> error message, method/variable name, etc. And it is subjective to the
>>>> author/committer whether a PR should be minor.
>>>> 
>>>> Looking at the git history, I found it useful when a commit without
>>>> Jira id starts with "Site:", "Refactor:", "Code style:", "Lint".
>>>> Maybe we can add more useful prefixes for common small changes, such
>>>> as "Mailmap: ", "Javadoc: ", "Typo:". For others which are not very
>>>> common small changes, just a clear/concise commit message without any
>>>> prefix is good enough.
>>>> 
>>>> Anyway, we'd better reach an agreement when we can omit Jira id and
>>>> consider a PR is small.
>>>> 
>>>> Stamatis Zampetakis <zabe...@gmail.com> 于2024年1月3日周三 18:27写道:
>>>>> 
>>>>> The presence of the "minor" keyword in the commit summary is a bit
>>>>> redundant. I would argue that if the message is precise enough the
>>>>> person reading it can infer it is minor or not.
>>>>> 
>>>>> Moreover, the minor classification is subjective. Some people consider
>>>>> minor things that do not change code at all. Others consider minor
>>>>> things that don't touch production code. The addition of tests and
>>>>> fixing a broken build is also considered minor by few people. All
>>>>> these examples are taken from the current commits which landed in
>>>>> Calcite.
>>>>> 
>>>>> For the reasons above, I feel that we don't really need to include
>>>>> "minor" in the commit summary but don't feel very strongly about it
>>>>> anyways.
>>>>> 
>>>>> In the past we agreed that if a change is trivial/minor we don't need
>>>>> a JIRA id. Although, this is convenient for getting this committed
>>>>> faster without too much hassle it has some drawbacks.
>>>>> 
>>>>> If at some point in the future we want to attach more information to a
>>>>> particular commit, this is not possible since we cannot modify the git
>>>>> history. When there is a JIRA we can always add new comments and
>>>>> clarifications there even if the ticket is resolved.
>>>>> 
>>>>> Having a JIRA id is also a convenient way and readable way for
>>>>> referring to particular commits. The commit hash can be used to
>>>>> identify a commit in Apache main branch but if the same commit is
>>>>> backported to other forks/branches using the hash becomes more
>>>>> cumbersome. This is especially useful in downstream projects and forks
>>>>> for tracking that a specific change landed in various branches.
>>>>> 
>>>>> Maybe in the future we should reconsider the optionality of the JIRA
>>>>> id in the commit summary. If this happens then [CALCITE-XXXXX][MINOR]
>>>>> would start getting overly long so this may be another argument
>>>>> against including "minor" in the message.
>>>>> 
>>>>> Best,
>>>>> Stamatis
>>>>> 
>>>>> On Wed, Jan 3, 2024 at 10:25 AM Ran Tao <chucheng...@gmail.com> wrote:
>>>>>> 
>>>>>> This format most likely comes from other open source projects.
>>>>>> If calcite has its own specifications, such as how to set the title
>>> for PRs
>>>>>> that do not require a jira name,
>>>>>> IMHO, it can be introduced in the contribution doc.
>>>>>> Commiters can also review PRs according to this specification.
>>>>>> 
>>>>>> Best Regards,
>>>>>> Ran Tao
>>>>>> 
>>>>>> 
>>>>>> Istvan Toth <st...@cloudera.com.invalid> 于2024年1月3日周三 16:11写道:
>>>>>> 
>>>>>>> Perhaps the square bracket convention ?
>>>>>>> If the ticket starts with CALICITE-\d+ , then make sure that the
>>> JIRA
>>>>>>> ticket id is between brackets.
>>>>>>> 
>>>>>>> Also check for Gerrit Change IDs which are often added
>>> automatically, and a
>>>>>>> paint to remove.
>>>>>>> 
>>>>>>> Istvan
>>>>>>> 
>>>>>>> On Tue, Jan 2, 2024 at 10:50 PM Tanner Clary <
>>> tannercl...@google.com
>>>>>>> .invalid>
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> I like the [MINOR] prefix because it makes it easy to identify
>>> simple
>>>>>>>> commits (via grep or ctrl+f), the same way [CALCITE-1234] makes
>>> it easy
>>>>>>> to
>>>>>>>> find commits related to [CALCITE-1234]. I also like that it
>>> maintains the
>>>>>>>> "[...]" styling at the beginning of the commit message.
>>>>>>>> 
>>>>>>>> Neither of these reasons is strong enough for me to say I
>>> oppose, just
>>>>>>> some
>>>>>>>> minor (heh) counter-arguments.
>>>>>>>> 
>>>>>>>> -Tanner
>>>>>>>> 
>>>>>>>> On Tue, Jan 2, 2024 at 1:05 PM Julian Hyde <jh...@apache.org>
>>> wrote:
>>>>>>>> 
>>>>>>>>> Ralph Waldo Emerson once wrote: “A foolish consistency is the
>>>>>>>>> hobgoblin of little minds, adored by little statesmen and
>>> philosophers
>>>>>>>>> and divines."
>>>>>>>>> 
>>>>>>>>> That said, people tend to bring conventions from other
>>> projects to
>>>>>>>>> Calcite, and we end up with chaos. By which I mean, lots of
>>>>>>>>> self-expression, but no standards, and therefore commit
>>> messages that
>>>>>>>>> have lower information content, and more work for the release
>>> manager
>>>>>>>>> coercing them into a consistent change log.
>>>>>>>>> 
>>>>>>>>> In Calcite we have not used '[MINOR]' as a prefix to minor
>>> commits. If
>>>>>>>>> it is minor, it doesn't need a jira case, and doesn't need a
>>> prefix.
>>>>>>>>> But a few commits with [MINOR] crept in, starting about a year
>>> ago.
>>>>>>>>> Once or twice, I asked people to remove them, but the PRs had
>>> already
>>>>>>>>> been merged.
>>>>>>>>> 
>>>>>>>>> Any objections if I add a lint rule to fail the build if the
>>> commit
>>>>>>>>> message contains [MINOR]?
>>>>>>>>> 
>>>>>>>>> While I'm there, any other standards we should enforce?
>>>>>>>>> 
>>>>>>>>> Julian
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> *István Tóth* | Sr. Staff Software Engineer
>>>>>>> *Email*: st...@cloudera.com
>>>>>>> cloudera.com <https://www.cloudera.com>
>>>>>>> [image: Cloudera] <https://www.cloudera.com/>
>>>>>>> [image: Cloudera on Twitter] <https://twitter.com/cloudera>
>>> [image:
>>>>>>> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
>>> Cloudera
>>>>>>> on LinkedIn] <https://www.linkedin.com/company/cloudera>
>>>>>>> ------------------------------
>>>>>>> ------------------------------
>>>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> 
>>>> Best,
>>>> Benchao Li
>>> 
> 

Reply via email to