-
Notifications
You must be signed in to change notification settings - Fork 3
Pack infra
Anne Ogborn edited this page Dec 3, 2016
·
7 revisions
The pack system is not robust enough and is missing some features.
-
pack_upgrade/1
should recursively upgrade Pack dependencies. - Improved Pack validation through code analysis, assessing conflicts, security risks and conformance to standards. Low-hanging fruit may be to copy what the ClioPatria package manager currently does. Validation may include:
- Missing meta declarations.
- Non-module files.
- Undefined predicates (
list_undefined/1
).
- Intended workflow for local Pack development
- What does option
interactive/1
ofpack_install/2
do exactly? - Unify nomenclature in documentation and on Web site.
- The following nomenclature is currently used:
- "Packs" to denote community extensions.
- "Packages" for libraries that are included in the SWI sources but that can be left out during compilation from sources.
- "Add-ons" to denote community extensions.
- Suggestion:
- Replace all mentions of "Add-ons" with "Packs".
- Come up with a new term for "Packages".
- The following nomenclature is currently used:
- Describe best practices for Pack directory structure. Current Packs already use some de-facto patterns. Categories of files that may occur in a Pack and that may be treated specially:
- Documentation
- Examples
- Initialization scripts
- Legacy code
- Tests (e.g.,
pack_run_tests/1
may run these using plunit) - Web resources
- Pack infra should not depend on one single server but should try a list of fallback options
- MacOS-specific bug?
- currently nothing proves an author's identity. In the event of a name collision, last uploaded wins. Signing the pack could allow some assurance one was installing the 'real' pack. Sally makes pack foo. She publishes with a new pack_publish predicate that takes a secret key. Once a repository knows about foo, it won't update unless the same key was used to sign the pack, and pack_install won't reinstall known packs with mismatched keys.