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 apackages
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
andSlicerCustom
are Girder items representing Application1.0
and2.0
are Girder folders representing ReleaseSlicer-linux.tar.gz
andSlicer-macos.dmg
are Girder items representing Package (application package)Extension1
andExtension2
are Girder items representing Extension (extension package)