This repository has been archived on 2023-02-07. You can view files and clone it, but cannot push or open issues or pull requests.
Files
blender-package-manager-addon/README.md
2017-07-02 18:47:15 -07:00

1.9 KiB

BlenderPackage, the Blender Package Manager (wip)

This is work-in-progress documentation for the work-in-progress package manager (the name is also a work-in-progress) As such, everything here is subject to change.

Package

A package consists of an archive containing files to be installed.

Note:
I think it would be good to always store bl_info metadata with the package, but how best to do this while being compatible with existing addons and future non-addons remains an open question (perhaps we can always include an __init__.py even in non-addon packages?)

Repository

A repository consists of a directory containing a "repo.json" file. This repo.json file contains metadata describing each package (bl_info) and where it may be retrieved from.

A repo.json file may currently be generated from a directory of addons by running blenderpack.py <path/to/addon/dir>.

Client

Clients "use" a repository by including its repo.json in packages listed in Clients can be configured to use multiple repositories at once.

In addition, the client maintains it's own "local repository", which is a repo.json containing installed packages.

Clients can take the following actions:

Install

Installing means downloading a single package, adding it to the local repository, and extracting/copying the package's file(s) to their destination(s).

Uninstall

Uninstalling means deleting a single package's files, then removing it from the local repository.

Note:
If some packages store user-created data (e.g. preferences), we may want to preserve that somehow.

Upgrade

Upgrading means looking for newer addons with the same names as installed addons from the same repository.

Refresh

Refreshing means checking for modifications to the repo.jsons of the enabled repositories. If there are modifications, then download them. This will be done automatically before an Update.