- A package consists of an archive
- There is one root directory named exactly like the package
- A file called "package.4th" is in the root directory, its syntax is explained below
forth-package start the definition of a package, should be in the first line
key-value <name> <value ...> set the value of name to the remaining content of the line
key-list <list> <value ...> create or append <value> to the <list>
name name of the package starting with a letter, and consisting of letters, numbers or minus
or more concise:
version version number consisting of 3 decimal numbers separated by '.'
Once a library has been publish, it MUST obey the following versioning scheme (subset from SemVer 2.0):
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build meta data are not available for reasons of simplicity.
license name of the license you publish the system with, i.e. "GPL", "GPLv3", "MIT", ...
use "CUSTOM" and provide a LICENSE file if you have a custom license.
main the main file to include
description a brief summary of what your package does
main the main file to include, otherwise "index.4th" will be assumed
tags a few tags to categorize your package, try to match existing tags
dependencies package-name package-version pairs of packages required by your package
key-value name my-package
key-value version 0.1.0
key-value description A brief summary of what your package does
key-value license GPL
key-value main my-package.4th
key-list tags GPL
key-list tags Some-other-tag
key-list dependencies stringstack 1.0.3
key-list dependencies some-other-package 0.1.x