{extends "idf/base-simple.html"} {block docclass}yui-t3{/block} {block body}

At the moment, this documentation is only available in English.

Motivation

Adding multiple, individual downloads to a project for a release can be a tedious task if one has to select each file manually, and then has to fill in the summary and correct labels for each of these downloads individually.

InDefero therefore supports the upload of "archives" that contain multiple downloadable files. These archives are standard PKZIP files with only one special property - they contain an additional manifest file which describes the files that should be published.

Once such an archive has been uploaded and validated by InDefero, its files are extracted and individual downloads are created for each of them. If the archive contains files that should replace existing downloads, then InDefero takes care of this as well - automatically. Files that exist in the archive but are not listed in the manifest are not extracted.

An archive file and its manifest file can easily be compiled, either by hand with the help of a text editor, or through an automated build system with the help of your build tool of choice, such as Apache Ant.

The manifest format

The manifest is an XML file that follows a simple syntax. As it is always easier to look at an example, here you have one:

<?xml version="1.0" encoding="UTF-8" ?>
<manifest>
  <file>
    <name>foo-1.2.tar.gz</name>
    <summary>Tarball</summary>
    <replaces>foo-1.1.tar.gz</replaces>
    <labels>
       <label>Type:Archive</label>
    </labels>
  </file>
  <file>
    <name>foo-1.2-installer.exe</name>
    <summary>Windows MSI Installer</summary>
    <description>This installer needs Windows XP SP2 or later.</description>
    <labels>
       <label>Type:Installer</label>
       <label>OpSys:Windows</label>
    </labels>
  </file>
</manifest>

This is the DTD for the format:

<!DOCTYPE manifest [
<!ELEMENT manifest (file+)>
<!ELEMENT file (name,summary,replaces?,description?,tags?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT summary (#PCDATA)>
<!ELEMENT replaces (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT labels (label+)>
<!ELEMENT label (#PCDATA)>
]>

The format is more or less self-explaining, all fields map to properties of a single download. Note that there is a limit of six labels that you can attach to a download, similar to what the regular file upload functionality allows.

One special element has been introduced and this is named replaces. If this optional element is given, InDefero looks for a file with that name in the project and acts in one of the following two ways:

If no existing file is found for the replaces tag, then this is completely ignored.

Final notes

Any file in the archive that is not enlisted in the manifest is ignored during the upload process, so ensure that your manifest.xml contains all the file names (case sensitive) you want to be processed.

{/block} {block context}

{trans 'Here we are, just to help you.'}

{trans 'Projects'}

{/block}