Difference between revisions of "Documentation/Labs/ExtensionsServer"
From Slicer Wiki
(Created page with "== Needs == We need to finalize the transition of slicer package manager server to Girder. Tasks include: * finalize design and implementation: ** frontend ([https://github...") |
Tag: 2017 source edit |
||
Line 1: | Line 1: | ||
− | |||
− | + | This document summarizes the plan to update the infrastructure used to organize the Slicer application and extension packages. | |
− | + | == Transition Plan == | |
− | * finalize design and implementation | + | * finalize design and implementation of new extension server (see details below) |
− | |||
− | |||
* update download.slicer.org to use updated API | * update download.slicer.org to use updated API | ||
* work with sysadmin to setup server instance | * work with sysadmin to setup server instance | ||
Line 13: | Line 10: | ||
* update integration with Slicer app | * update integration with Slicer app | ||
− | == | + | === Extension server === |
+ | |||
+ | ==== Frontend ==== | ||
+ | |||
+ | Requirements: | ||
+ | |||
+ | * display only extensions (it will <b>not</b> replace download.slicer.org) | ||
+ | * use standard web/js library ( | ||
+ | * no direct dependency on Girder | ||
+ | * readonly | ||
+ | * leverage the backend API | ||
+ | * deployed using netlify - this will allow anyone in the community to submit PR and look at preview | ||
+ | |||
+ | Preliminary work: | ||
+ | * [https://github.com/Pierre-Assemat/Vuejs-Project/issues/4#issue-428895494 draft design] | ||
+ | * [https://discourse.slicer.org/t/slicer-extension-manager-user-interface-feedback/2475 user-feedback]) | ||
+ | |||
+ | ==== backend ==== | ||
+ | |||
+ | Requirements: | ||
+ | * leverage the existing work. See https://slicer-package-manager.readthedocs.io/en/latest/user_guide.html | ||
+ | * deployed internally at Kitware | ||
+ | ** Also discussed the possibility of hosting this on Digital Ocean to allow maintenance with community. But this would likely make backup of the database and restoring of the system more complex. | ||
+ | * used to manage both application and extension packages | ||
+ | * extension download stats will be simple download count per Extension per release | ||
+ | * web server logs associated with the backend would be uploaded daily to a private Github project. This would allow the community to generate detailed stats. Similarly to what is done with mhalle/slicer4-download/slicer4-parselogs | ||
+ | |||
+ | Optional: | ||
+ | * ideally Slicer package will be uploaded as GitHub release assets by the build machine and only a URL would be uploaded to Girder. The backend would return a redirect code | ||
+ | |||
+ | == Current infrastructure == | ||
The current infrastructure is on "life-support": | The current infrastructure is on "life-support": | ||
Line 23: | Line 50: | ||
* more and more user are [https://discourse.slicer.org/t/multiple-issues-with-extension-builds/6160 reporting] problems with failed upload and download. | * more and more user are [https://discourse.slicer.org/t/multiple-issues-with-extension-builds/6160 reporting] problems with failed upload and download. | ||
+ | == Background == | ||
During the past two years, we have been working toward phasing out the aging Midas based server used to host, serve and manage Slicer application and extension packages. | During the past two years, we have been working toward phasing out the aging Midas based server used to host, serve and manage Slicer application and extension packages. |
Revision as of 22:54, 16 June 2020
Home < Documentation < Labs < ExtensionsServerThis document summarizes the plan to update the infrastructure used to organize the Slicer application and extension packages.
Contents
Transition Plan
- finalize design and implementation of new extension server (see details below)
- update download.slicer.org to use updated API
- work with sysadmin to setup server instance
- transition data from current system to new system
- update integration with Slicer app
Extension server
Frontend
Requirements:
- display only extensions (it will not replace download.slicer.org)
- use standard web/js library (
- no direct dependency on Girder
- readonly
- leverage the backend API
- deployed using netlify - this will allow anyone in the community to submit PR and look at preview
Preliminary work:
backend
Requirements:
- leverage the existing work. See https://slicer-package-manager.readthedocs.io/en/latest/user_guide.html
- deployed internally at Kitware
- Also discussed the possibility of hosting this on Digital Ocean to allow maintenance with community. But this would likely make backup of the database and restoring of the system more complex.
- used to manage both application and extension packages
- extension download stats will be simple download count per Extension per release
- web server logs associated with the backend would be uploaded daily to a private Github project. This would allow the community to generate detailed stats. Similarly to what is done with mhalle/slicer4-download/slicer4-parselogs
Optional:
- ideally Slicer package will be uploaded as GitHub release assets by the build machine and only a URL would be uploaded to Girder. The backend would return a redirect code
Current infrastructure
The current infrastructure is on "life-support":
- the operating system is out-dated, we are working with sysadmin to update it while keeping an older php version (which itself will go end-of-life by the end of the year)
- we are having more and more failed upload because the server require more and more memory.
- For the past 5 years, we kept increasing the memory. The root cause is a design flow in Midas. See https://github.com/midasplatform/Midas/issues/69
- Recent changes helped mitigate this. See Slicer/Midas@0d60946
- more and more user are reporting problems with failed upload and download.
Background
During the past two years, we have been working toward phasing out the aging Midas based server used to host, serve and manage Slicer application and extension packages.
- (1) We now have a Girder plugin for the backend (meaning API endpoints and database interaction). See https://slicer-package-manager.readthedocs.io
- (2) We also experimented with few prototype regarding the extension manager but have nothing production ready.
(1) and (2) were done by one of our former intern Pierre Assemat and was funded by the D&A group.