protocol

pack_protocol

Pack specification protocol. Objects implementing this protocol should be named after the pack with a _pack suffix and saved in a file with the same name as the object.

Author: Paulo Moura
Version: 0:15:0
Date: 2022-06-28
Compilation flags:
static
Dependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)

Public predicates

name/1

Pack name.

Compilation flags:
static
Template:
name(Name)
Mode and number of proofs:
name(?atom) - zero_or_one

description/1

Pack one line description.

Compilation flags:
static
Template:
description(Description)
Mode and number of proofs:
description(?atom) - zero_or_one

license/1

Pack license. Specified using the identifier from the SPDX License List (https://spdx.org/licenses/) when possible.

Compilation flags:
static
Template:
license(License)
Mode and number of proofs:
license(?atom) - zero_or_one

home/1

Pack home HTTPS or file URL.

Compilation flags:
static
Template:
home(Home)
Mode and number of proofs:
home(?atom) - zero_or_one

version/6

Table of available versions.

Compilation flags:
static
Template:
version(Version,Status,URL,Checksum,Dependencies,Portability)
Mode and number of proofs:
version(?compound,?atom,-atom,-pair(atom,atom),-list(pair(atom,callable)),?atom) - zero_or_more
version(?compound,?atom,-atom,-pair(atom,atom),-list(pair(atom,callable)),-list(atom)) - zero_or_more
Remarks:
  • Version: This argument uses the same format as entity versions: Major:Minor:Pathch. Semantic versioning should be used.

  • Status: Version development status. E.g stable, rc, beta, alpha, or deprecated.

  • URL: File URL for a local directory, file URL for a local archive, or download HTTPS URL for the pack archive.

  • Checksum: A pair where the key is the hash algorithm and the value is the checksum. Currently, the hash algorithm must be sha256. For file:// URLs of local directories, use none instead of a pair.

  • Dependencies: A list of the pack dependencies. Each dependency is a compound term Registry::Pack Operator Version where Operator is a term comparison operator. The atom logtalk or a backend identifier atom can also be used in place of Registry::Pack.

  • Portability: Either the atom all or a list of the supported backend Prolog compilers (using the identifier atoms used by the prolog_dialect flag).

  • Clause order: Versions must be listed ordered from newest to oldest.


note/3

Table of notes per action and version.

Compilation flags:
static
Template:
note(Action,Version,Note)
Mode and number of proofs:
note(?atom,?term,-atom) - zero_or_more
Remarks:
  • Action: Possible values are install, update, and uninstall. When unbound, the note apply to all actions.

  • Version: Version acted on (i.e. version being installed, updated to, or uninstalled). When unbound, the note apply to all versions.

  • Note: Note to print when performing an action on a pack version.


Protected predicates

(none)

Private predicates

(none)

Operators

(none)