Develop for Open Outreach

Extending Open Outreach

If you're interested in extending Open Outreach, please consider doing so by either improving existing Debut features or creating new ones.

Building your own distribution

As well as using and extending Open Outreach, it's easy to build custom install profiles or distributions using the Debut features. To do so, the best approach likely will be to start with copying the Open Outreach install profile and then customizing it. Note in particular that the install profile includes a .make file that dynamically includes the .make files of the various Debut features. So including a Debut feature in your own install profile or distribution is as easy as:

  • Add a line to the .make file to include the Debut feature's .make file.
  • Edit the install profile's .info file to add the feature to its dependencies.
  • Build your install profile with Drush Make (see specific steps below).

Building Open Outreach

Developers, or other users, who wish to build Open Outreach themselves will need to have Drush, Drush make, and git installed.

Use a recent version of Drush Make to ensure it supports git-style patches.

To make a development version of Open Outreach:

drush make "http://drupalcode.org/project/openoutreach.git/blob_plain/refs/heads/7.x-1.x:/openoutreach_stub_dev.make" sitename

where sitename is the name of the directory to put your new site in.

To make a stable release version of Open Outreach:

drush make "http://drupalcode.org/project/openoutreach.git/blob_plain/refs/heads/7.x-1.x:/openoutreach_stub_stable.make" sitename

This will create the directory sitename and assemble a full Open Outreach build into that directory. From there, the new site can be installed as usual.

Updating a Git checkout of Open Outreach

Because drupal.org does not yet support packaging of install profiles that include external code, Open Outreach is hosted on github.

To update Open Outreach in git to include the latest changes:

  • Build the Open Outreach distribution by running Drush Make (see instructions above).
  • If you haven't already, check out openoutreach from github.
  • In your checkout, delete all non-git files (i.e., everything except the .git directory and its contained files).
  • Copy the full Open Outreach checkout (Drupal core plus the openoutreach profile in profiles/openoutreach) into your git checkout.
  • Remove the directories profiles/standard and profiles/minimal (since these won't be needed to install Open Outreach).
  • In the git checkout directory, run git add -A to remove deleted files and add new and changed ones.
  • Commit the result, e.g., git commit -m "Merge in fixes and additions from the latest openoutreach code."
  • If you have write access, git push origin master

To cut a new release:

  • First make sure you've updated openoutreach_stub_stable.make to include a new release version for the openoutreach install profile and then cut a new stable release for Open Outreach and updated the version on github to use this new stable release.
  • Add a new tag: git tag -m "Third beta release for Drupal 7. Includes major refactoring for new versions of Date, Calendar, Views, and Media." 7.x-1.0-beta3
  • If you have write access, push the tag: git push --tags origin master The tag will be available as a packaged download on github.
  • Create a new release node for the new release on openoutreach.org.

Updating Open Outreach on Pantheon

Open Outreach is included on Pantheon via a GitHub repository, https://github.com/nedjo/openoutreach-drops-7. With each new Open Outreach release, it's necessary to push changes to the Github repository so that sites on Pantheon may receive them. Doing so requires write access to the repository at https://github.com/nedjo/openoutreach-drops-7.

To do so:

  • Clone the https://github.com/nedjo/openoutreach-drops-7 repository.
  • Add the main Pantheon repository as a remote:
    git remote add pantheon https://github.com/pantheon-systems/drops-7.git
  • Pull any changes from the main Pantheon repoository:
    git pull --rebase pantheon master
  • Delete the directory profiles/openoutreach and replace it from the new Open Outreach release. If you've downloaded the full release, only copy over the profiles/openoutreach directory.
  • Add the changes:
    git add -A
  • Commit the result:
    git commit -m "Update to Open Outreach 1.3, including sample content on initial install and security release for entityreference."

    This message will be what site admins see in the Panopoly interface when they look at code that's available to pull.

  • Push the changes:
    git push origin master

Further Pantheon documentation (though note that we use a simplified approach):