Details
-
Technical task
-
Resolution: Done
-
P2: Important
-
None
-
None
-
None
Description
Requirements from packaging/releasing perspective:
- Package pre-built binaries
- CI system produces binaries per Qt project (qtbase, qtsvg, ...)
- All the dependencies (Qt binaries) are available for packaging
- Possibility to further create packages per Qt module (not per .git repository)
- QtCore, QtGui, QtNetwork...
- CI system produces binaries per Qt project (qtbase, qtsvg, ...)
- Define dependencies between packages
- Per package name (e.g. qtsvg -> qtbase)
- Per package version (e.g. qtsvg 1.2.3 -> qtbase 1.2.3)
- Multiple build configurations (per-built binaries) per project/module
- RHEL_X_X, MSVC_XXXX, macOS_X_X, Android_X_X, ...
- Custom meta-data per package
- Possibility to annotate packages with free form text/meta-data. This is needed by CLI/Installer UI to further categorize available packages / improved user experience
- title, description, build_date, sha1, alpha1/rc2/final, ...
- product name / part of product
- platform name
- supported time stamp
- binary package host_os, host_os_version, host_arch, host_compiler, target_os, target_XYZ, features, ...
- Possibility to annotate packages with free form text/meta-data. This is needed by CLI/Installer UI to further categorize available packages / improved user experience
- Sign packages
- SDK creation
- Others should be able to create installer with the same system
- Easy conversion from open-source to commercial installation
- Cleaning old snapshots/revisions from online repositories
Good to have:
- Concept of "latest" package revision
- Releasing produces regular nightly snapshots, the version number or package revision increases every iteration
- Users should be able to install the "latest" version without specifying the exact revision number and pull updates similarly
- "flag" the selected packages as final
- When making rc1, rc2, ... the latest rc version will be selected as the final version. It should be enough to "flag" / edit the latest version as final without re-packaging the whole product