Sitecore Courier aims to fill the gap between the development and production environments when building websites with Sitecore CMS.
It lets you build Sitecore Update packages automatically, by analyzing serialized Sitecore items and packaging only changed items.
The module can be installed as a Sitecore package, or used in build system with simple .exe runner.
Suggested usage workflow
After you deploy the initial version of your website, you should:
- Serialize all items you want to move between the servers (usually, all custom items in Core and Master DB). Get the latest Serialization Guide here.
- Create a TAG from it in a version control system
- Keep doing changes in TRUNK, serialize changed items, commit them, etc.
- And packages will be generated automatically, by comparing serialization from TAG (source) to the TRUNK (target). Incremental package will contain only changed items.
Additional information on the project is available in this blog post: Sitecore Courier - Effortless Packaging
Important
After you install the package add the following to the configSections section of web.config:
<section name="sitecorediff" type="Sitecore.Update.Configuration.ConfigReader, Sitecore.Update"/>
and the following to the <configuration> section (right above <sitecore database="SqlServer">)
<sitecorediff>
<commandfilters>
<filter id="changedFieldsFilter" mode="on" type="Sitecore.Update.Commands.Filters.ChangedFieldsFilter, Sitecore.Update">
<fields hint="list">
<field>__Created</field>
<field>{5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}</field>
<field>__Revision</field>
<field>__Updated</field>
<field>__Updated by</field>
</fields>
</filter>
</commandfilters>
<dataproviders>
<dataprovider id="filesystemmain" type="Sitecore.Update.Data.Providers.FileSystemProvider, Sitecore.Update">
<param>$(id)</param>
</dataprovider>
<dataprovider id="snapshotprovider" type="Sitecore.Update.Data.Providers.SnapShotProvider, Sitecore.Update">
<param>$(id)</param>
</dataprovider>
</dataproviders>
<source type="Sitecore.Update.Data.DataManager, Sitecore.Update">
<param>source</param>
</source>
<target type="Sitecore.Update.Data.DataManager, Sitecore.Update">
<param>target</param>
</target>
</sitecorediff>