-
Notifications
You must be signed in to change notification settings - Fork 12
Exporting and Packaging
This is intended for internal use. These are the notes for our plans regarding exporting pages, blocks, etc from Rock. This is for Trello card #34.
During the last step of an export, a manifest specification of what is being exported will be stored for later use/re-use in the form of a .nuspec file. (This is very useful when creating new versions of a package, etc.) The exported data (the virtual pages, block metadata, block content) is stored in an export.json data file.
The exported stuff will be (optionally?) stored under a App_Data/ExportedPackages/ folder, inside a folder named using the packageId + version as illustrated here:
App_Data
+---ExportedPackages
| \---MyExportedStuff.1.0.0
| export.json
| MyExportedStuff.1.0.0.nuspec
|
\---packages
AFakeLibrary.1.0.0.nupkg
ANeedyPackage.1.0.0.nupkg
The *.nuspec file retains ONLY references to source files which are relative file paths. Therefore it will not be useful for anyone to try to maintain actual package source code versioning using the .nuspec file. We believe attempting this is probably out of scope for the requirements of the export system. However, because the export.json data-file is also being stored under the ExportedPackages/<packageId>.<version>/ folder, it is basically version controlling the data.
This is an example of a .nuspec file which would be saved into a ExportedPackages/MyExportedStuff.1.0.0/ folder:
<?xml version="1.0" encoding="utf-16"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MyExportedStuff</id>
<version>1.0.0</version>
<title/>
<authors>NickA, JasonO</authors>
<owners />
<summary>This is the summary</summary>
</metadata>
<files>
<file src="export.json" target="App_Data\temp\export.json" />
<file src="..\..\Plugins\MyChurch.com\CoolPackage\BlockA.ascx" target="Plugins\MyChurch.com\CoolPackage\BlockA.ascx" />
<file src="..\..\Plugins\MyChurch.com\CoolPackage\BlockA.ascx.cs" target="Plugins\MyChurch.com\CoolPackage\BlockA.ascx.cs" />
<file src="..\..\Plugins\MyChurch.com\CoolPackage\Assets\Images\logo.gif" target="Plugins\MyChurch.com\CoolPackage\Assets\Images\logo.gif" />
<file src="..\..\Plugins\MyChurch.com\CoolPackage\Assets\Xslt\trans.xslt" target="Plugins\MyChurch.com\CoolPackage\Assets\Xslt\trans.xslt" />
<file src="..\..\Plugins\MyChurch.com\CoolPackage\Scripts\mylib.js" target="Plugins\MyChurch.com\CoolPackage\Scripts\mylib.js" />
</files>
</package>