aboutsummaryrefslogtreecommitdiff
path: root/libbrep/package.hxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-03-29 21:13:23 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-04-01 17:45:55 +0300
commit6cb77d97d659441036fac18af6479eeac4127dcb (patch)
tree47e43d9919a0b90b45e76da1f46e0b736e1a3633 /libbrep/package.hxx
parent2b5bea3871d0ccc1b7da32929f195dc161bcc1ec (diff)
Stash build toolchain in tenant object
Diffstat (limited to 'libbrep/package.hxx')
-rw-r--r--libbrep/package.hxx23
1 files changed, 22 insertions, 1 deletions
diff --git a/libbrep/package.hxx b/libbrep/package.hxx
index 96e51a3..b8c3c33 100644
--- a/libbrep/package.hxx
+++ b/libbrep/package.hxx
@@ -20,7 +20,7 @@
//
#define LIBBREP_PACKAGE_SCHEMA_VERSION_BASE 27
-#pragma db model version(LIBBREP_PACKAGE_SCHEMA_VERSION_BASE, 31, closed)
+#pragma db model version(LIBBREP_PACKAGE_SCHEMA_VERSION_BASE, 32, closed)
namespace brep
{
@@ -286,6 +286,27 @@ namespace brep
//
optional<timestamp> queued_timestamp; // Note: foreign-mapped in build.
+ // Note that after the package tenant is created but before the first
+ // build object is created, there is no easy way to produce a list of
+ // unbuilt package configurations. That would require to know the build
+ // toolchain(s), which are normally extracted from the build objects.
+ // Thus, the empty unbuilt package configurations list is ambiguous and
+ // can either mean that no more package configurations can be built or
+ // that we have not enough information to produce the list. To
+ // disambiguate the empty list in the interface, in the latter case we
+ // want to display the question mark instead of 0 as an unbuilt package
+ // configurations count. To achieve this we will stash the build toolchain
+ // in the tenant when a package from this tenant is considered for a build
+ // for the first time but no configuration is picked for the build (the
+ // target configurations are excluded, an auxiliary machine is not
+ // available, etc). We will also use the stashed toolchain as a fallback
+ // until we are able to retrieve the toolchain(s) from the tenant builds
+ // to produce the unbuilt package configurations list.
+ //
+ // Note: foreign-mapped in build.
+ //
+ optional<brep::build_toolchain> build_toolchain;
+
// Database mapping.
//
#pragma db member(id) id