wiki:NewCommittersGuide

Version 24 (modified by jmroot (Joshua Root), 14 years ago) (diff)

specific advice for writing good commit messages

Requesting Commit Rights

Once you have a track record as a maintainer (achieved by all-around good works such as submitting new ports with yourself as a maintainer, submitting bug fixes for existing ports, etc), we encourage you to apply for commit status so that you can easily keep your ports up to date and participate in keeping MacPorts such a strong community. If you feel you are ready for commit rights, please read the relevant documentation that explains the membership application process.

Port Committer Responsibilities

  1. Do not touch PortIndex. It is updated automatically every hour
  2. A commit affects one port
  3. An exception to 2. would be several Portfiles making use of some feature which requires an update
    1. A new feature has been released which obsoletes previous hacks
    2. A command or option is found to be broken
    3. Combined updates for similar ports (py25-* and py26-*)
    4. Changing maintainer email address for your ports
    5. Other, similar reasons
  4. Make whitespace changes in a separate commit. To keep diffs readable for review whitespace changes should be done in a separate commit without any functional changes.
  5. New top-level categories (those which are represented by subdirectories directly beneath dports/) need to be approved prior to adding; secondary categories (the second and later ones listed on the categories Portfile key) can be added when it makes sense (since these really only show under the web interface, and do not necessarily have a filesystem representation)
  6. Port directory name has to match the name option in the Portfile
  7. Run port lint before committing to be sure not to violate one of the guidelines
  8. Commit messages should make clear what has been changed:
    1. Mention the names of the affected ports (or state what they have in common if there are too many to list individually), since this information is not visible in the revision log
    2. Be specific about what changes were made (for example, when updating to a new upstream version, mention the version number) and, if it's not completely obvious, why they were made
    3. Reference any tickets that are related to the change, preferably with a Trac link
  9. Under most circumstances, do not modify a port belonging to another maintainer; this is to be done either via a Trac ticket or by direct communication with the maintainer. Exceptions are:
    1. When a port is broken (and the update should be just to fix the port, no other updates "while you're there")
    2. When nomaintainer@… is the maintainer; this really means the port is unowned (feel free to take it over)
    3. When openmaintainer@… is co-maintainer; this signifies that the primary maintainer has no prior objections to others changing it
    4. When the maintainer says the update is okay and asks you to commit your update; in this case, be sure to note in the commit message that it was approved by the maintainer
    5. When a ticket was already filed and you're making use of the maintainer timeout, note this fact in your commit message and add the ticket id for reference.
  10. Set up automatic properties for Subversion, as described on the Committers Tips and Tricks wiki page.

Mailing Lists and Change Logs

Notification of change logging is either via the macports-changes list or by subscribing to the RSS feeds provided by trac (see the RSS feeds of the Timeline view and the Source Repository). Note that you may customize the Timeline prior to subscribing to it, in order to control which types of information you are fed. In addition to getting an RSS feed of general project events, you may also subscribe to changes to some portion of the source tree or to bug reports/tickets.

If you use a newsreader such as NetNewsWire, and if you subscribe to the https version of the feed, you must ensure that you trust the certificate svn.macosforge.org from the certificate authority opensource.apple.com. You can tell Safari to "trust" this certificate when it sees it; you may need to set the trust settings for the certificate and/or authority from within Keychain access. Without these trust settings, NetNewsWire will not receive the feed. A better solution is to make sure that you subscribe to the http version of the feed (change the scheme on the URL to http from https).

Checking out from subversion for committing

See the svn section of getting the source on the URL and proper options for svn.

Committer Addresses

We prefer that those with commit rights use their @macports.org handle when listing themselves as a maintainer. This helps other committers to distinguish maintainers who are committers from those who are not.

Several special maintainer addresses are used to distinguish additional meta-information about ports. Please see SpecialMaintainerAddresses.

Who are you?

Add yourself to our list of contributors at MacPortsDevelopers.