An AppBundleID is required for every AppBundle to ensure proper functionality, such as generating the mountDir and enabling tools like appstream-helper to figure out info about the AppBundle. It can be non-compliant (i.e., not follow Type I, II, or III) if distribution via AppBundleHUB or dbin is not intended.
Supported Formats
Type I: Legacy Format
- Structure:
name-versionString-maintainerorname-date-maintainer - Examples:
steam-v128.0.3-xplshn,steam-20250101-xplshn - Description: Consists of the application name, either a version or date, and the maintainer/repository identifier. Suitable for filenames on systems with restrictive character support (e.g., no
#,:). - Use Case: Legacy distribution; preferred only for filenames
Type II: Modern Format without Date
- Structure:
name#repo[:version] - Examples:
steam#xplshn:v128.0.3,steam#xplshn - Description: Includes the application name, repository/maintainer, and an optional version. Uses
#to separate name and repository, with:for version. - Use Case: Most preferred format, in its short-form version
Type III: Modern Format with Optional Date
- Structure:
name#repo[:version][@date] - Examples:
steam#xplshn:v128.0.3@20250101,steam#xplshn@20250101 - Description: The most flexible format, including application name, repository/maintainer, optional version, and optional date. Uses
#,:, and@as separators. - Use Case: Most preferred format, as it contains the most complete data for
appstream-helperto parse
Requirements and Usage
- AppBundleHUB Distribution: For inclusion in AppBundleHUB or
dbinrepositories, theAppBundleIDmust adhere to Type I, II, or III, as these formats allowappstream-helperto parse metadata (name/appstreamID, version, maintainer, date) for automated repository indexing. - Recommendation: Type III is encouraged for the AppBundleID, as it is the most complete while Type I is recommended for AppBundle filenames on systems that may not support special characters like
#,:, or@used in Type II and Type III.
NOTEs
- The program’s AppStreamID should be used as the Name in the AppBundleID if the AppBundle does not ship with an .xml appstream metainfo file in the top-level of its AppDir. This way
appstream-helpercan use scrapped Flathub data to automatically populate a .description, .icon, .screenshots, .rank & .version entry for thedbinrepository index file - Type I, II & III are all parsable by
appstream-helper