CodingGuidelines: a handful of error message guidelines
It is more efficient to have something in the coding guidelines document to point at, when we want to review and comment on a new message in the codebase to make sure it "fits" in the set of existing messages. Let's write down established best practice we are aware of. Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									92999a42db
								
							
						
					
					
						commit
						168ebb7159
					
				| 
						 | 
				
			
			@ -689,16 +689,30 @@ Program Output
 | 
			
		|||
 | 
			
		||||
Error Messages
 | 
			
		||||
 | 
			
		||||
 - Do not end error messages with a full stop.
 | 
			
		||||
 - Do not end a single-sentence error message with a full stop.
 | 
			
		||||
 | 
			
		||||
 - Do not capitalize the first word, only because it is the first word
 | 
			
		||||
   in the message ("unable to open %s", not "Unable to open %s").  But
 | 
			
		||||
   in the message ("unable to open '%s'", not "Unable to open '%s'").  But
 | 
			
		||||
   "SHA-3 not supported" is fine, because the reason the first word is
 | 
			
		||||
   capitalized is not because it is at the beginning of the sentence,
 | 
			
		||||
   but because the word would be spelled in capital letters even when
 | 
			
		||||
   it appeared in the middle of the sentence.
 | 
			
		||||
 | 
			
		||||
 - Say what the error is first ("cannot open %s", not "%s: cannot open")
 | 
			
		||||
 - Say what the error is first ("cannot open '%s'", not "%s: cannot open").
 | 
			
		||||
 | 
			
		||||
 - Enclose the subject of an error inside a pair of single quotes,
 | 
			
		||||
   e.g. `die(_("unable to open '%s'"), path)`.
 | 
			
		||||
 | 
			
		||||
 - Unless there is a compelling reason not to, error messages from
 | 
			
		||||
   porcelain commands should be marked for translation, e.g.
 | 
			
		||||
   `die(_("bad revision %s"), revision)`.
 | 
			
		||||
 | 
			
		||||
 - Error messages from the plumbing commands are sometimes meant for
 | 
			
		||||
   machine consumption and should not be marked for translation,
 | 
			
		||||
   e.g., `die("bad revision %s", revision)`.
 | 
			
		||||
 | 
			
		||||
 - BUG("message") are for communicating the specific error to developers,
 | 
			
		||||
   thus should not be translated.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Externally Visible Names
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue