Patches that we write for drupal.org modules are submitted to the issue queue, and we refer to the patch’s location on drupal.org in the make file. This has made us much better contributors to other people projects as it makes being involved in the issue queue a normal part of development, and it encourages us to only patch contrib modules where it’s likely that the patch will be accepted. When a patch gets a review, we make changes, upload a newer version of the patch to drupal.org, and update our make file.
This is actually a quote from Jeff in the comments on the article Drush Make Files for Production Drupal sites, but I thought it was definitely worth highlighting on its own.
In this particular case, using make files actually codifies the decision to integrate closely with contrib modules and actively improve them / add features as needed for a particular project.
I've followed this practice for years, albeit without make files. Patches go in a "patches" directory in version control, with the patch file named with both the name of the module and the node number of the issue on Drupal.org.
An additional process is that if a patch is needed, you run it in the issue queue on Drupal.org, but you also have an internal ticket that links to that issue. You don't close the issue until the patch has been accepted into the mainline of the module. Then you can remove the patch, update the version of the module you're using, and your clients' website is one step closer to easier long term maintenance and updates.
And yes, being involved in the issue queue SHOULD be a normal part of developing Drupal websites.
Comments
Tracking patches on-site
http://drupal.org/project/journal module also allows to actively track changes, patches, and hacks applied to a Drupal site. Manually, still.
Definitely improves on-site documentation. If those records were exportable, I wonder whether Journal could additionally read in the site's .make file. ;)
Journal good for site builders
I think Journal is a good solution pre-exportables / Features -- where you documented what you did, what settings you pushed, etc. Today, you can stick that in a feature and never have to worry about it.
Patches are code, and should be in version control.
Journal is good for people who are primarily site builders, who don't use version control. I would love to see ALL site builders become "web professionals" and adopt version control, but it just isn't the case.
I'm still struggling with what to tell people that don't use version control (other than LEARN IT!).
I do this as well.
Same here. Using Drush Make these days, but I used to have my roll my own solution.
Since I started using php 5.3, i've got a bunch of patches for a bunch of modules...but since I complain/fix in the issue queues many of them have already been accepted/resolved.