source: trunk/base/HACKING @ 31669

Last change on this file since 31669 was 31669, checked in by jmpp@…, 13 years ago

Include hacking rules for commits to base with respect to the ChangeLog file

NOTE: Needless to say, I'm more than open to suggestions to improve the fluency of this policy.

File size: 3.0 KB
Line 
1# Project naming and copyright attribution:
2
3* "The MacPorts Project" is the string that shall be used whereever there's a need to reference our project name, such as in copyright notices.
4* A developer or contributor is advised to attribute himself a copyright notice if he/she is contributing a full new source file or a full new feature
5  to an already existing source file in the "base" component of our repository.
6* An exception to this rule is our Portfiles, since they are partly meant for human eyes consumption and the boilerplate header comments should be kept
7  down to a minimum
8* A copyright notice attributed to our group name, "The MacPorts Project", should also be added to these source files (if not already there) if they're
9  being uploaded to the "base" component of our repository, since as such they are being contributed to the project.
10
11
12# Commits to the "base" component of the repository:
13
14* Any commit made to the "base" component of the repository should be accompanied by a corresponding entry in the base/ChanegeLog file, full with information
15    of the svn revision information of the commit and Trac ticket number the commit references and/or fixes, if any.
16* Such entries to the ChangeLog need not be full duplications of their related commit logs if the latter are thorough explanations of what's involved in the commit.
17    In such cases it's perfectly acceptable to enter just a summary of the commit and point the reader to further information through the related svn revision
18    and Trac ticket number (if applicable).
19* Related commits to "base" may be grouped in a single ChangeLog entry, provided the full list of svn revisions and Trac ticket numbers referenced (if applicable)
20    is included.
21* Commits to "base" need not update the base/NEWS file, as such will be constructed with the relevant information at MacPorts release time by the release engineers.
22
23
24# Whitespace rules as discussed on the development list (macports-dev):
25
26* All source code files MUST use soft tabs at a tabstop of 4. No hard tabs are allowed.
27* All source code files SHOULD have the following as the first line of the file:
28    # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
29  This is a modeline that works for both emacs and vim.
30* Portfiles SHOULD use soft tabs at a tabstop of 4, but implementation of this is left up to the discretion of the maintainer.
31* Portfiles SHOULD use the given modeline
32* Makefiles MUST use tabs as it is required by the syntax. Makefiles SHOULD use a tab stop of 8.
33* Makefiles MAY use a modeline. The following works for emacs and vim:
34    # -*- coding: utf-8; mode: Makefile; tab-width: 8; indent-tabs-mode: t -*- vim:fenc=utf-8:filetype=Makefile:noet:sw=8:ts=8
35* All other files (documentation, etc) SHOULD use soft tabs at a tabstop of 4 if the document format allows.
36* All other files (documentation, etc) SHOULD NOT use a modeline as it is probably meant for human consumption.
Note: See TracBrowser for help on using the repository browser.