Package loader specifications#
Release fields#
Here is an overview of the fields (+ internal version name + branch name) used by each package loader, after D6616:
| Loader | internal version | branch name | name | message | synthetic | author | date | Notes | 
|---|---|---|---|---|---|---|---|---|
| arch | 
 | 
 | =version | Synthetic release for Arch Linux source package {p_info.name} version {p_info.version} {description} | true | from intrinsic metadata | from extra_loader_arguments[‘arch_metadata’] | Intrinsic metadata extracted from .PKGINFO file of the package | 
| archive | passed as arg | 
 | =version | “Synthetic release for archive at {p_info.url}n” | true | “” | passed as arg | |
| aur | 
 | 
 | =version | Synthetic release for Aur source package {p_info.name} version {p_info.version} {description} | true | “” | from extra_loader_arguments[‘aur_metadata’] | Intrinsic metadata extracted from .SRCINFO file of the package | 
| cpan | 
 | 
 | =version | Synthetic release for Perl source package {name} version {version} {description} | true | from intrinsic metadata if any else from extrinsic | from extrinsic metadata | name, version and description from intrinsic metadata | 
| cran | 
 | 
 | =version | standard message | true | 
 | 
 | metadata is intrinsic | 
| conda | 
 | 
 | =version | Synthetic release for Conda source package {p_info.name} version {p_info.version} | true | from intrinsic metadata | from extrinsic metadata | “” | 
| crates | 
 | 
 | =version | Synthetic release for Crate source package {p_info.name} version {p_info.version} | true | from intrinsic metadata | from extrinsic metadata | “” | 
| debian | =``version`` | 
 | =``i_version`` | standard message (using  | true | 
 | 
 | metadata is intrinsic. Old revisions have  | 
| golang | 
 | 
 | =version | Synthetic release for Golang source package {p_info.name} version {p_info.version} | true | “” | from ext metadata | Golang offers basically no metadata outside of version and timestamp | 
| deposit | HEAD | only HEAD | HEAD | “{client}: Deposit {id} in collection {collection}n” | true | original author | 
 | revisions had parents | 
| hackage | 
 | 
 | =version | Synthetic release for Haskell source package {p_info.name} version {p_info.version} | true | intrinsic metadata if any else from extrinsic metadata | from extrinsic metadata | “” | 
| hex | 
 | 
 | =version | standard message | true | from extrinsic metadata | from extrinsic metadata | Source code is extracted from a nested tarball | 
| maven-loader | passed as arg | HEAD | 
 | “Synthetic release for archive at {p_info.url}n” | true | “” | passed as arg | Only one artefact per url (jar/zip src) | 
| npm | 
 | 
 | =version | standard message | true | from int metadata or “” | from ext metadata or None | |
| opam | as given by opam | “{opam_package}.{version}” | =version | standard message | true | from metadata | None | “{self.opam_package}.{version}” matches the version names used by opam’s backend. metadata is extrinsic | 
| pubdev | 
 | 
 | =version | Synthetic release for pub.dev source package {p_info.name} version {p_info.version} | true | from extrinsic metadata | from extrinsic metadata | name and version from extrinsic metadata | 
| puppet | 
 | 
 | =version | Synthetic release for Puppet source package {p_info.name} version {version} {description} | true | from intrinsic metadata | from extrinsic metadata | version and description from intrinsic metadata | 
| pypi | 
 | 
 | =version | 
 | true | from int metadata or “” | from ext metadata or None | metadata is intrinsic | 
| rubygems | 
 | 
 | =version | Synthetic release for RubyGems source package {p_info.name} version {p_info.version} | true | from ext metadata | from ext metadata | The source code is extracted from a tarball nested within the gem file | 
using this function:
def release_name(version: str, filename: Optional[str] = None) -> str:
    if filename:
        return "releases/%s/%s" % (version, filename)
    return "releases/%s" % version
and “standard message” being:
msg = (
    f"Synthetic release for {PACKAGE_MANAGER} source package {name} "
    f"version {version}\n"
)
The target_type field is always dir, and the target the id of a directory
loaded by unpacking a tarball/zip file/…