Also known as the "Package Uploader Client".
Part of the Package Client Toolset (see "pkgu.eagle" and "pkgr_upload.eagle").
The Package Uploads Client is used to upload new packages.
It works in both Tcl/Tk and Eagle.
It has an interactive user interface (using Tk or WinForms).
It shares code with the Package Repository Client and Package Downloads Client.
Roughly, at a high level, it does the following:
- Accepts an API key, package name, package patch level, target language, target language version, target platform, and a list of file names, either via the command line or interactively.
- Makes sure that the command line executables are installed for both GPG2 and Fossil.
- Stages (adds and signs) the specified list of package files to the associated local checkout of the package file repository (see: "https://pkg.management/pkgd ").
- Attempts to commits the package files, always on a new branch.
- Creates a script block to download the files using the Package Downloads Client, locked to the specific checked-in version.
- Signs the created script block.
- Submits the package metadata to the package repository server (see: "https://pkg.management/pkgr ").
Prior to being able to make use of it, the following prerequisites must be met:
- API keys must be created by an administrator of the Package Repository Server.
- A Fossil login must be created by an administrator of the Package Downloads Server.
- GPG ("gpg2") must be installed somewhere along the executable search PATH.
- The Fossil binary must be installed somewhere along the executable search PATH.
- The Package Downloads Server repository must be cloned and opened.
Prior to being able to publish trusted packages, the following prerequisites must be met:
- The public key for the package maintainer must be added to the key ring trusted by the Package Client Toolset.
Other important things to note:
- The Package Uploads Client currently assumes that all files for a particular package will reside in the same directory.
- The directory immediately containing all the package files is the one that will end up being added to the Package File Server repository.
- Packages are (currently) always submitted to a new branch (branched off of "trunk" in production -OR- "testing" in the dedicated test instance).
- The script block submitted to the Package Repository Server always uses the check-in identifier; therefore, the branch does not matter.
This project is sponsored by Eyrie Solutions.
The list of administrators is currently: Joe Mistachkin
More details to follow.