From 5d7954dd8e0462c31ea18a0472153ce895c9d2e5 Mon Sep 17 00:00:00 2001 From: James Maes Date: Thu, 10 Sep 2026 07:09:37 -0500 Subject: [PATCH 1/2] chore(release): prepare build parent 2.0.0 --- .circleci/config.yml | 2 +- README.md | 99 ++++++++++---------------------------------- pom.xml | 4 +- 3 files changed, 24 insertions(+), 81 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cd634cf..2a832c7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,7 +11,7 @@ workflows: context: [ qqq-maven-registry-credentials ] filters: branches: - ignore: /(develop|main|release/.*|hotfix/.*|integration.*)/ + ignore: /(develop|release/.*|hotfix/.*|integration.*)/ tags: only: [] diff --git a/README.md b/README.md index f474580..e36cff2 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,37 @@ -# qbit-bom +# QBit Build Parent -Maven Bill of Materials for QBit dependencies. +This repository publishes the Maven parent **`com.kingsrook:qbit-build-parent`**. Version **2.0.0** imports **`com.kingsrook.qqq:qqq-bom-pom:4.0.0`**, sets Java 21 compilation defaults, and provides shared release plugin configuration. Use it to adopt QQQ 4.0 in a QBit project. -**For:** QQQ developers managing multiple QBit dependencies -**Status:** Stable - -## Why This Exists - -QBits have interdependencies and version requirements. Managing compatible versions across qbit-user-role-permissions, qbit-workflows, qbit-webhooks, and others becomes tedious. Version mismatches cause runtime errors. - -This BOM (Bill of Materials) declares compatible versions for all QBits. Import it once and omit version numbers from individual QBit dependencies. - -## Features - -- **Version Management** - Single source of truth for QBit versions -- **Compatibility Guarantee** - All declared versions tested together -- **Simplified POMs** - No version numbers on individual dependencies -- **Transitive Alignment** - Consistent versions for shared dependencies - -## Quick Start - -### Import the BOM - -Add to your `pom.xml` in the `` section: +## Use the parent ```xml - - - - io.qrun - qbit-bom - 1.5.0 - pom - import - - - -``` + + com.kingsrook + qbit-build-parent + 2.0.0 + + -### Add QBits Without Versions +com.example.qbits +my-qbit +1.0.0-SNAPSHOT -```xml - - io.qrun - qbit-user-role-permissions - - - - io.qrun - qbit-workflows - - - io.qrun - qbit-webhooks - + + com.kingsrook.qqq + qqq-backend-core + ``` -## Included QBits +Requires Java 21 and Maven 3.8 or later. Resolve releases from Maven Central. The imported QQQ BOM supplies framework dependency versions; **production QBit dependency versions are still chosen by each application**. This parent does not certify the production QBit fleet as compatible with QQQ 4.0. -| QBit | Current Version | -|------|-----------------| -| qbit-user-role-permissions | 0.3.0 | -| qbit-workflows | 0.2.0 | -| qbit-webhooks | 0.2.0 | -| qbit-sftp-data-integration | 0.2.0 | -| qbit-standard-process-trace | 0.1.0 | -| qbit-customizable-table-views | 0.2.0 | +The previous parent release, 1.6.0, imports QQQ 0.40.0. Moving to parent 2.0.0 therefore includes QQQ's breaking API changes; follow the [4.0 migration guide](https://github.com/QRun-IO/qqq/blob/main/docs/migration/4.0.adoc). -## Compatibility +## Release workflow -| BOM Version | QQQ Core Version | Java | -|-------------|------------------|------| -| 1.5.x | 0.35.0+ | 21 | -| 1.4.x | 0.27.0 - 0.34.x | 17 | -| 0.3.x | 0.25.0 - 0.26.x | 17 | -| 0.2.x | 0.22.0 - 0.24.x | 17 | -| 0.1.x | 0.20.0 - 0.21.x | 17 | - -## Project Status - -Stable. Updated with each QBit release. - -## Contributing - -1. Fork the repository -2. Update versions in `pom.xml` -3. Submit a pull request +The parent can be published only after its imported final QQQ BOM is available. Run `mvn clean verify` and test consumption from a separate child project before tagging. The existing CircleCI release workflow publishes a final version tag through the `release` Maven profile; a `release/*` branch produces a release candidate. ## License -Proprietary - QRun.IO +See [LICENSE](LICENSE) and [NOTICE](NOTICE). diff --git a/pom.xml b/pom.xml index b2b902e..a4b566c 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ UTF-8 - 1.6.0 + 2.0.0 @@ -52,7 +52,7 @@ com.kingsrook.qqq qqq-bom-pom - 0.40.0 + 4.0.0 pom import -- 2.54.0 From e9c9fa4188e1646247726de9f21bccba918be3ee Mon Sep 17 00:00:00 2001 From: James Maes Date: Thu, 10 Sep 2026 07:54:12 -0500 Subject: [PATCH 2/2] fix(ci): avoid interactive package restart prompts --- .circleci/config.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2a832c7..89ea8fb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,11 +3,23 @@ version: 2.1 orbs: qqq-orb: kingsrook/qqq-orb@0.5.0 +commands: + configure-package-install: + steps: + - run: + name: Keep package installation unattended + command: | + # These build machines are discarded after the job. + sudo install -d /etc/needrestart/conf.d + printf '%s\n' '$nrconf{restart} = "l";' | sudo tee /etc/needrestart/conf.d/99-qqq-ci.conf >/dev/null + workflows: test_only: jobs: - qqq-orb/mvn_test_only: + pre-steps: + - configure-package-install context: [ qqq-maven-registry-credentials ] filters: branches: @@ -18,6 +30,8 @@ workflows: publish_snapshot: jobs: - qqq-orb/mvn_publish: + pre-steps: + - configure-package-install context: [ qqq-maven-registry-credentials ] branch_type: snapshot filters: @@ -28,6 +42,8 @@ workflows: publish_release_candidate: jobs: - qqq-orb/mvn_publish: + pre-steps: + - configure-package-install context: [ qqq-maven-registry-credentials ] branch_type: release_candidate filters: @@ -38,6 +54,8 @@ workflows: publish_release: jobs: - qqq-orb/mvn_publish: + pre-steps: + - configure-package-install context: [ qqq-maven-registry-credentials ] branch_type: release filters: @@ -49,6 +67,8 @@ workflows: publish_hotfix_release: jobs: - qqq-orb/mvn_publish: + pre-steps: + - configure-package-install context: [ qqq-maven-registry-credentials ] branch_type: hotfix filters: -- 2.54.0