Skip to content

Respositories

9vult edited this page Jan 9, 2026 · 3 revisions

Repositories form the building blocks of Ameko's package manager. A repository contains basic information about the repository itself along with details about the scripts, libraries, and scriptlets it contains.

{
    Name: string,
    Description: string,
    Maintainer: string,
    IsBetaChannel: boolean,
    Packages: Package[],
    Repositories: Url[]
}

The repository structure should be pretty self-explanatory. The IsBetaChannel field is intended to be used to mark entire repositories as being beta-channel, but this feature has not been implemented. Additionally, repositories are currently recursively-discovered, so you can link to more repositories in your repository and they will automatically be pulled in. This behavior is subject to change. Do note, however, that users can directly add your repository from within the Package Manager - your repository does not need to be added to the base tree to be available to users.

Packages

Now, let's take a look at a package entry:

{
    Type: "Script" | "Library" | "Scriptlet",
    DisplayName: string,
    QualifiedName: string,
    Description: string,
    Author: string,
    Version: number,
    IsBetaChannel: boolean,
    License: string,
    Dependencies: string[],
    Tags: string[],
    Url: Url,
    HelpUrl: Url?,
    Changelog: Changelog[]
}

Again. most of these should be self-explanatory. DisplayName and QualifiedName need to match the names set in the script's Info block. Version is a decimal, so 1, 0.1, and 12.34 are all valid versions. The version will be used to determine if an update is available.

License should be an SPDX license identifier. For example, MPL-2.0 for the Mozilla Public License 2.0. This will be displayed in the package manager, and is especially important for Libraries.

Tags is a list of tags, they may be used in the future for searching purposes. Dependencies is a list of library QualifiedNames. Ameko Package Manager will try to resolve and install the listed dependencies when installing the package.

Url is the path to the raw script file, and HelpUrl is an (optional) path to the package's markdown help file. Help files, if provided, can be viewed in Ameko's help window, and are strongly recommended.

Finally, the Changelog is a list of changelog objects. Users can view the changelog to see what's changed in each version of your script or library:

{
    Version: number,
    Added: string[]?,
    Fixed: string[]?,
    Changed: string[]?,
    Removed: string[]?,
    Deprecated: string[]?
}

Version should correspond with the package version it represents. The rest of the fields are optional, depending on which actions apply. For example, if your package only added features for version 1.6, you might have something like:

{
    "Name": "CoolScript",
    "Version": 1.6,
    ...,
    "Changelog": [
        {
            "Version": 1.6,
            "Added": [
                "Feature 1",
                "Feature 2 (thanks Joe)",
                "Feature 3"
            ]
        },
        {
            "Version": 1.5,
            ...
        }
    ]
}

Example

You can use the base repository as a guide for your own repositories.

Clone this wiki locally