The NodeStream example profile

In order to ease the process of creating a profile that uses NodeStream, we have created an example installation profile. The profile is available in this development sandbox. The example profile covers a lot of the concepts described here and is well-documented.

Technical overview

NodeStream 2 does not use anything like profiler to be extendable. This is because currently it is very hard to do properly, the concept of a subprofile does not have any support in core, and creating too much functionality in an installation is unwise, because it is hard to move to another completely different setup. To alleviate this problem, NodeStream takes the approach of having a module, NodeStream core contain useful functionality related to NodeStream and all it's features, so that the module can potentially be enabled in any Drupal site to provide NodeStream functionality within it. This makes NodeStream core very portable and easy to integrate in any existing architecture. Here is a recipe for creating a profile that utilizes NodeStream functionality:

Setting up the profile directory

Create a directory “example” in the profiles folder and add the following files:

example.profile
This profile file should include the profiler library. look in nodestream/nodestream.profile for an example.

example.info
Define all dependencies you have for your distribution here. For an example of how it looks, check nodestream/nodestream.info. Specify all NodeStream features and the custom modules and features you want to install here.

example.make
Specify the modules not included in the nodestream package here. That way you can easily track what modules you are using.

libraries => ../nodestream/libraries
Create a symlink to the nodestream libraries folder. That way, you will gain access to all libraries included in NodeStream.

modules
Put your custom modules here.

modules/nodestream => ../../nodestream/modules
Create a symlink to the nodestream modules folder. That way, you will gain access to all modules included in NodeStream.

themes
Put the themes you want to have here.

themes/nodestream => ../../nodestream/themes
Create a symlink to the nodestream modules folder. That way, you will gain access to all themes included in NodeStream.

We recommend that you specify your profile as it's own repository, and then have a site make file that fetches both NodeStream and the profile. That way both make files will be run and extensions will be placed in the correct folders.

Make files

Make files are described more in depth in the Drush make section. Here is a few tips that applies to NodeStream.

Add NodeStream

A good way of adding NodeStream is to add it to you platform make file. It can be done like this:

projects[nodestream][version] = 2.0-alpha3

If you want to track the NodeStream development cycle (chase core) you can specify this instead:

projects[nodestream][type] = module
projects[nodestream][download][type] = git
projects[nodestream][download][url] = http://git.drupal.org/project/nodestream.git
projects[nodestream][download][branch] = 7.x-2.x

This will ensure that you have the latest version of NodeStream and contributed modules each time you rebuild. It is currently recommended for development environments where you want to make sure you are always in sync with NodeStream.

Add NodeStream projects

There is a number of sandbox and full projects that extends NodeStream in various ways. You can find a number of active projects here

All of these projects can be added to the make file of your installation profile, just as any other module. Here is an example where we add the Enterprise product sandbox to our make file:

; Parallel development
projects[ns_entrpr][type] = module
projects[ns_entrpr][download][type] = git
projects[ns_entrpr][download][url] = http://git.drupal.org/sandbox/Haugen/1263004.git
projects[ns_entrpr][download][branch] = 7.x-2.x

We recommend that you specify the branch you want to track for sandboxes, since it’s easier to keep track of development and pitch in that way. When you release your profile, change this to point to the latest working revision.

It is recommended to use the stable release for full projects that have them, like usual:

projects[ns_entrpr][version] = 2.0

Add contributed modules

Specify all contributed modules that are not part of the NodeStream project in the make file as well. You don’t have to specify anything that is in the NodeStream profile, it will be downloaded automatically by drush make.