Guidlines
Basic rules
- 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
package.4th
Words
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>
Mandatory keys
name
name of the package starting with a letter, and consisting of letters, numbers or minus
or more concise:[a-z]+[-a-z0-9]*
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
Now mandatory
Optional keys
description
a brief summary of what your package does
main
the main file to include, otherwise "index.4th" will be assumed
Optional lists
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
Example package.4th
forth-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
end-forth-package