Skip to content

Zim package manager

With this, we can manage optional "packages" on an Ideascube server.

There's a command line tool (the catalog Django management command), which uses an API inside Ideascube, preparing the way for having that in the web user interface.

The current status:

  • Manage remote sources
    • Add a remote source
    • Remove a remote source
    • List configured remote sources
  • Manage the cache
    • Update the local cache (like apt-get update, to know the packages offered by each source)
    • Clear the local cache
    • Allow "incremental" cache updates (right now we just always download the entire catalog for each remote source)
  • Download packages
    • Keep a copy in cache
    • Resume incomplete downloads
    • Support additional package caches (e.g on a USB stick)
  • Manage packages
    • List installed packages
    • List available packages
    • Support multiple package types, as content for multiple apps
    • Install specified packages (e.g install wikipedia.fr wikipedia.en)
    • Remove specified packages (e.g remove wikipedia.fr wikipedia.en)
    • Upgrade specified packages (e.g update wikipedia.fr wikipedia.en)
    • Upgrade all installed packages if none is specified (i.e update)
    • Support globs for list, install, remove and upgrade (e.g list wikipedia.*)
    • Allow listing packages in need of an update (i.e list --upgradable)
    • Unit tests for list, install, remove and upgrade

There is also absolutely no testing for the command line tool, only the API is tested. Not sure how to properly test the command line though, I guess I'll have to look at other command lines in Ideascube.

Merge request reports