Factor-packman:requirements
From Zen/-/ackers
The package manager has the following features/requirements:
The package manager must be isolated from the Factor implementation as much
as possible. This separation allows us to easily modify and update the
package manager without affecting the Factor implementation. It also keeps
all the package management data separate from the Factor implementation, so
the dependencies are kept as low as possible.
NAME:
o) FAZE
-> Factor Automatic zPackage Expediter
CORE COMMANDS:
o) Install / Add a package:
-> Add a package from a remote repository:
A package can be downloaded from a remote repository
-> Add a package from the local HDD:
A package can be downloaded manually and added to the package cache.
-> install a package from the local package cache
A package can be installed from the local package-cache.
-> Install / Add can be implemented with 1 command that accepts different
parameters, eliminating the need to have separate commands for each action
because they are basically the same.
:def: The difference between *add* and *install* is that add downloads the
package from the repository to the local HDD and adds it to the local cache OR
it adds a manually downloaded package to the local cache. Install actually
extracts the package and makes it available for use in Factor.
o) Update a package
-> Updates the locally installed version of a package to the specified / latest
version. This command can also be used to downgrade a package to a previous
release by giving an earlier version than the one installed locally.
o) Uninstall / Remove
-> Uninstall: makes the specified package(s) unavailable to the Factor environment.
-> Remove: makes the specified package(s) unavailable to Factor and removes the
package(s) from the local cache.
-> Uninstall / Remove can be done by passing different options to the same command,
so we don't need separate commands, we can use 1 command.
PACKAGE MAINTENANCE COMMANDS:
o) Pack / Unpack
-> creating a package can be automated using the *pack* command. You create
the Factor source files and the package spec file and use the *pack*
command to automatically create a archived package, which can be automatically
uploaded to a remote repository, everything in 1 step.
-> unpack: You can unpack a Factor package to be able to modify / hace access
to the contents of the package. This makes it easy to quickly update or
look at a package's source. The package can also be automatically downloaded
all in 1 step. This is basically the reverse of the *pack* command.
o) Digitally sign a package
o) Verify a package's integrity
o) clean unused packages from the cache
PACKAGE INFORMATION COMMANDS:
o) Display the files contained in an installed gem.
o) List all the dependencies for a local/remote package.
o) List all packages matching a search string locally/remotely.
o) Query a package for package information
o)
REPOSITORY MANAGEMENT COMMANDS:
o) Create a new repository
o) Update a repository's index file
o) Remove a repository

