Overview — Slicer Package Manager 0.1.0 documentation

# Overview

The Slicer Package Manager includes a REST API service and CLI built on Girder for downloading, uploading and organizing application and extension packages for both 3D Slicer and 3D Slicer-based applications.

This software is licensed under the terms of the Apache Licence Version 2.0 and the source code is available at https://github.com/girder/slicer_package_manager.

In a nutshell:

- Data model specific to this project is implemented by organizing data using standard Girder constructs (collection, folder and item) and by associating metadata.

- By default, a top-level collection named `Applications` is created with a `packages` folder organizing the different application.

- Each application folder contain a `draft` folder where unreleased packages are uploaded and one or multiple release folders (e.g 1.0, 2.0, …).

- Each release folder contain application packages (installers for the different platforms), and an `extensions` folder containing a flat list of extension packages.

- Each extension packages is associated with metadata like application revision, extension revision, operating system and architecture…

The diagram below represents the organization:

    Applications
       |--- packages
       |        |----- Slicer
       |        |         |----- 1.0
       |        |         |        |---- Slicer-linux.tar.gz
       |        |         |        |---- Slicer-macos.dmg
       |        |         |        |---- Slicer-win.exe
       |        |         |        |---- extensions
       |        |         |        |         |---- Extension1
       |        |         |        |         |---- Extension2
       |        |         |        |         |---- Extension3
       |        |         |        |         |---- Extension4
       .        .         .        .         .
       .        .         .
       |        |         |----- 2.0
       .        .         .        |
       .        .         .
       |        |         |----- draft
       |        |         |        |--- r100
       |        |         |        |      |---- Slicer-linux.tar.gz
       |        |         |        |      |---- Slicer-macos.dmg
       |        |         |        |      |---- Slicer-win.exe
       |        |         |        |      |---- extensions
       |        |         |        |      |          |---- Extension1
       .        .         .        .      .          .
       .        .         .        .
       |        |         |        |--- r101
       .        .         .        .      |
       .        .
       |        |
       |        |------SlicerCustom

where

- `Slicer` and `SlicerCustom` are Girder items representing Application

- `1.0` and `2.0` are Girder folders representing Release

- `Slicer-linux.tar.gz` and `Slicer-macos.dmg` are Girder items representing Package (application package)

- `Extension1` and `Extension2` are Girder items representing Extension (extension package)