Skip to contentSkip to conversation

CodingGuidelines: document NEEDSWORK comments

PATCH In review Junio C Hamano 4 participants 8 messages Feb 11 – Feb 14 Documentation

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 CodingGuidelines: document NEEDSWORK comments

We often say things like /* NEEDSWORK: further _do_ _this_ */ in comments, but it is a short-hand to say "We might later want to do this. We might not. We do not have to decide it right now at this moment in the commit this comment was added. If somebody is inclined to work in this area further, the first thing they need to do is to figure out if it truly makes sense to do so, before blindly doing it.

This seems to have never been documented. Do so now.

---
 Documentation/CodingGuidelines | 9 +++++++++
 1 file changed, 9 insertions(+)
Documentation/CodingGuidelines +9 -0
index df72fe0177..b358d6bfb8 100644
@@ -33,6 +33,15 @@ Git in general, a few rough rules are:
    achieve and why the changes were necessary (more on this in the
    accompanying SubmittingPatches document).
 
+ - A label "NEEDSWORK:" followed by description of the things to be
+   done is a way to leave in-code comments to document design
+   decisions yet to be made. 80% of the work to resolve a NEEDSWORK
+   comment is to decide if it makes sense to do so.  It can be a very
+   valid change to remove an existing NEEDSWORK comment without doing
+   anything else, with the commit log message describing a good
+   argument why it does not make sense to do the thing the NEEDSWORK
+   comment mentioned.
+
 Make your code readable and sensible, and don't try to be clever.
 
 As for more concrete guidelines, just imitate the existing code
Signature · 1 line
2.53.0-247-g50a2c88be3
#1 lore raw
Quoted 9 lines · Junio C Hamano

We often say things like /* NEEDSWORK: further _do_ _this_ */ in comments, but it is a short-hand to say "We might later want to do this. We might not. We do not have to decide it right now at this moment in the commit this comment was added. If somebody is inclined to work in this area further, the first thing they need to do is to figure out if it truly makes sense to do so, before blindly doing it.

This seems to have never been documented. Do so now.

I noticed recently that there have been multiple patch series that blindly turn such NEEDSWORK comments into code. But I agree with you, the first and most important thing that such an author would need to worry about is whether the comment still applies, and what the ramifications of it are.

I almost feel as if NEEDSWORK is a bit of a misnomer, and that something like NEEDSTHOUGHTS would be a much better fit. But I don't have any intent to change that throughout our code base right now.

Quoted 6 lines
Documentation/CodingGuidelines +0 -0
index df72fe0177..b358d6bfb8 100644
@@ -33,6 +33,15 @@ Git in general, a few rough rules are:
    achieve and why the changes were necessary (more on this in the

Documentation/CodingGuidelines Git in general, a few rough rules are: · line 43

Quoted 10 lines
Documentation/CodingGuidelines +8 -0
    accompanying SubmittingPatches document).
 
+ - A label "NEEDSWORK:" followed by description of the things to be
+   done is a way to leave in-code comments to document design
+   decisions yet to be made. 80% of the work to resolve a NEEDSWORK
+   comment is to decide if it makes sense to do so.  It can be a very
+   valid change to remove an existing NEEDSWORK comment without doing
+   anything else, with the commit log message describing a good
+   argument why it does not make sense to do the thing the NEEDSWORK
+   comment mentioned.

Documenting is a good first step, but I have to wonder whether such authors would even discover this. But even if not, it means that we have an easy place to point to going forward.

Thanks!

Patrick

#2 lore raw
Quoted 3 lines · Patrick Steinhardt

I almost feel as if NEEDSWORK is a bit of a misnomer, and that something like NEEDSTHOUGHTS would be a much better fit. But I don't have any intent to change that throughout our code base right now.

I somewhat disagree with this, by the way. Thinking has to be the first step of working for anybody. It is not like somebody thinks things through thoroughly and writes an instruction to do these in comments, only to be implemented by somebody else who does not have to think.

Quoted 8 lines
Quoted 8 lines
Documentation/CodingGuidelines +0 -0
index df72fe0177..b358d6bfb8 100644
@@ -33,6 +33,15 @@ Git in general, a few rough rules are:
    achieve and why the changes were necessary (more on this in the
    accompanying SubmittingPatches document).
 
Quoted 8 lines

Documentation/CodingGuidelines Git in general, a few rough rules are: · line 43

Quoted 8 lines
Documentation/CodingGuidelines +8 -0
+ - A label "NEEDSWORK:" followed by description of the things to be
+   done is a way to leave in-code comments to document design
+   decisions yet to be made. 80% of the work to resolve a NEEDSWORK
+   comment is to decide if it makes sense to do so.  It can be a very
+   valid change to remove an existing NEEDSWORK comment without doing
+   anything else, with the commit log message describing a good
+   argument why it does not make sense to do the thing the NEEDSWORK
+   comment mentioned.

I wonder if adding a "still" there, i.e.,

... decide if it still makes sense to do so.

makes our intent clearer.

Quoted 3 lines

Documenting is a good first step, but I have to wonder whether such authors would even discover this. But even if not, it means that we have an easy place to point to going forward.

Yup.

Thanks.

#3 lore raw

PATCH v2 1/1 CodingGuidelines: document NEEDSWORK comments

In reply to Junio C Hamano

We often say things like /* NEEDSWORK: further _do_ _this_ */ in comments, but it is a short-hand to say "We might later want to do this. We might not. We do not have to decide it right now at this moment in the commit this comment was added. If somebody is inclined to work in this area further, the first thing they need to do is to figure out if it truly makes sense to do so, before blindly doing it.

This seems to have never been documented. Do so now.

---
* reworded with a bit more stress on the possibility that the rationale behind NEEDSWORK comment may have gotten stale.

 Documentation/CodingGuidelines | 10 ++++++++++
 1 file changed, 10 insertions(+)
Documentation/CodingGuidelines +10 -0
index df72fe0177..318829d4e4 100644
@@ -33,6 +33,16 @@ Git in general, a few rough rules are:
    achieve and why the changes were necessary (more on this in the
    accompanying SubmittingPatches document).
 
+ - A label "NEEDSWORK:" followed by description of the things to be
+   done is a way to leave in-code comments to document design
+   decisions yet to be made. 80% of the work to resolve a NEEDSWORK
+   comment is to decide if it still makes sense to do so, since the
+   situation around the codebase may have changed since the comment
+   was written.  It can be a very valid change to remove an existing
+   NEEDSWORK comment without doing anything else, with the commit log
+   message describing a good argument why it does not make sense to do
+   the thing the NEEDSWORK comment mentioned.
+
 Make your code readable and sensible, and don't try to be clever.
 
 As for more concrete guidelines, just imitate the existing code

Interdiff against v1:
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines index b358d6bfb8..318829d4e4 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -36,11 +36,12 @@ Git in general, a few rough rules are:
- A label "NEEDSWORK:" followed by description of the things to be done is a way to leave in-code comments to document design decisions yet to be made. 80% of the work to resolve a NEEDSWORK

  -   comment is to decide if it makes sense to do so.  It can be a very
  -   valid change to remove an existing NEEDSWORK comment without doing
  -   anything else, with the commit log message describing a good
  -   argument why it does not make sense to do the thing the NEEDSWORK
  -   comment mentioned.
  +   comment is to decide if it still makes sense to do so, since the
  +   situation around the codebase may have changed since the comment
  +   was written.  It can be a very valid change to remove an existing
  +   NEEDSWORK comment without doing anything else, with the commit log
  +   message describing a good argument why it does not make sense to do
  +   the thing the NEEDSWORK comment mentioned.

Make your code readable and sensible, and don't try to be clever.

Signature · 1 line
2.53.0-248-g282ed54c8f
#4 lore raw

Small nit:

Quoted 9 lines · Junio C Hamano

We often say things like /* NEEDSWORK: further _do_ _this_ */ in comments, but it is a short-hand to say "We might later want to do this. We might not. We do not have to decide it right now at this moment in the commit this comment was added. If somebody is inclined to work in this area further, the first thing they need to do is to figure out if it truly makes sense to do so, before blindly doing it.

Quoted 3 lines

This seems to have never been documented. Do so now.

The opening quote '"We might later…' doesn't appear to ever get closed.

#5 lore raw
Quoted 12 lines · D. Ben Knoble

Small nit:

Quoted 9 lines · Junio C Hamano

We often say things like /* NEEDSWORK: further _do_ _this_ */ in comments, but it is a short-hand to say "We might later want to do this. We might not. We do not have to decide it right now at this moment in the commit this comment was added. If somebody is inclined to work in this area further, the first thing they need to do is to figure out if it truly makes sense to do so, before blindly doing it.

Quoted 5 lines
Quoted 3 lines

This seems to have never been documented. Do so now.

The opening quote '"We might later…' doesn't appear to ever get closed.

Yikes. Thanks for spotting.

#7 lore raw
Quoted 4 lines · Oswald Buddenhagen
Quoted 2 lines · Junio C Hamano

+ - A label "NEEDSWORK:" followed by description of the things to be

by [a] description

Thanks.