build: re-pin to qbit-build-parent 2.0.0 (QRun-IO/qqq#765) #8

Merged
KofTwentyTwo merged 5 commits from feature/GH-765-repin-build-parent-2-clean into develop 2026-09-26 01:44:35 +00:00
KofTwentyTwo commented 2026-09-26 01:43:00 +00:00 (Migrated from github.com)

Summary

Re-pins this qbit to com.kingsrook:qbit-build-parent:2.0.0 (qqq 4.0.0 GA) and adds an opt-in qqq-snapshot profile that checks it on qqq 4.1.0-SNAPSHOT, so qqq-all can include it. The first commit back-merges main into develop.

Supersedes #7 (same reviewed changes, clean commit history, plus the CircleCI needrestart workaround from QRun-IO/qqq-orb#11).

Merge this with a merge commit, not squash or rebase. The first commit is a merge of main, and a merge commit keeps main as an ancestor of develop.

Related Issues

Closes QRun-IO/qqq#765
Part of QRun-IO/qqq-all#1

Changes

Two commits:

  • 512defb chore: back-merge main into develop. A --no-ff merge of origin/main (523fd34). Its tree is exactly the tree of #7's merge commit debc4fd. It brings in the 3 main-only commits: the 0.4.0 release merge, Bump version to 0.4.0, and fix ot use revision property.
  • dbfbc59 build: re-pin to qbit-build-parent 2.0.0. This is the net diff of #7's remaining commits, plus the CircleCI change:
    • Parent 1.5.1 -> 2.0.0. Removed the child qqq-bom-pom:0.40.0-SNAPSHOT import that shadowed the parent (ADR-0007), so default builds take the qqq version only from the parent.
    • TableViewFieldCustomizer: getValueFromRecordOrOldRecord (removed in 4.0) is replaced by getValueFromRecordElseFromOldRecord, wrapped in ValueUtils.getValueAsString as the 4.0 javadoc recommends. The lookup logic is the same.
    • BaseTest: QInstance.setAuthentication (removed in 4.0) is replaced by withInstanceDefaultAuthentication.
    • New test TableViewFieldCustomizerTest.testSparseUpdateUsesOldRecordValues covers the old-record fallback the migrated call serves. In #7 it was shown to fail with the fallback disabled.
    • Opt-in qqq-snapshot profile. It imports qqq-bom-pom:${qqq.snapshot.version} (default 4.1.0-SNAPSHOT) and adds the Central snapshots repository. The top-level sonatype-snapshots repository, which only served the old snapshot BOM, moved into this profile.
    • CLAUDE.md: replaced the stale qqq-bom-pom:0.40.0-SNAPSHOT note with how the qqq version is now set and checked.
    • New since review: .circleci/config.yml gets the configure-package-install command and a pre-steps use on every job, copied from qbit-quick-search develop. It writes $nrconf{restart} = "l" to /etc/needrestart/conf.d, so the orb's apt install no longer stops at the interactive needrestart dialog that timed out jobs 49 and 50 on #7. The orb pin stays at 0.5.0.

As in #7, licensing is untouched, per the issue. The Apache-2.0 <licenses> change and the first qqq.version override profile that #7 later reverted or replaced are not in this branch at all.

Merge conflict resolution (from #7)

There was one conflict, in pom.xml <properties><revision>:

  • develop had 0.5.0-SNAPSHOT and main had 0.4.0. Kept develop's 0.5.0-SNAPSHOT. 0.4.0 is the release stamp CI writes on main. develop had already moved to the next development line (8f92567), and taking 0.4.0 would make develop snapshots publish as a released version.
  • main's fix (523fd34, <version>${revision}</version>) merged cleanly. develop already had the same line.
  • The only content main changed since the merge base (5323d4e) is those two pom lines. After the merge, the tree matches origin/develop exactly, so none of develop's features or main's fixes were lost.

Type of Change

  • Dependencies update
  • Breaking change: consumers of this qbit move from qqq 0.40.x to qqq 4.0.0

Testing

How the branch was built, and the checks that show it matches #7:

Command Result
git merge --no-ff --no-commit origin/main, then git read-tree -u --reset debc4fd Same pom.xml conflict as #7, replaced by #7's resolved tree
git diff debc4fd HEAD~1 Empty. HEAD~1^1 is origin/develop (b3ac14a) and HEAD~1^2 is origin/main (523fd34), the same parents as debc4fd
git diff debc4fd 971249b --binary | git apply --index Applied cleanly
git diff 971249b HEAD Only .circleci/config.yml (+20 lines)

Builds on this branch (no mvnw, so plain mvn; no mvn install):

Command Result
CI=true mvn -B clean verify BUILD SUCCESS, 19 tests, 0 failures, 0 errors, 0 skipped. Resolves qqq-backend-core:4.0.0
CI=true mvn -B -U clean verify -Pqqq-snapshot BUILD SUCCESS, 19 tests, 0 failures, 0 errors, 0 skipped. Resolves qqq-backend-core:4.1.0-SNAPSHOT, byte-identical to the published 4.1.0-20260926.003607-7

The CircleCI YAML parses and each of the 5 jobs lists the pre-step. circleci config validate cannot run locally: it cannot find kingsrook/qqq-orb@0.5.0 in the registry, and it fails the same way on the unchanged config. CircleCI on this PR is the real check.

  • Unit tests pass
  • mvn verify passes on qqq 4.0.0 and with -Pqqq-snapshot
  • Manual testing performed

Checklist

  • Code follows the project's style guidelines
  • Self-review performed
  • Tests added for the migrated behavior
  • New and existing unit tests pass locally
  • No new warnings (see the parent-pom warning below)

Additional Notes

  • Docker integration tests: not applicable. This repo has no Docker or Testcontainers tests. Under CI=true, 0 tests are skipped.
  • qbit-user-role-permissions: this qbit has no Maven dependency on it. It refers to the role possible-value source by name only, so there is no pin to change.
  • Parent-pom warning: Failed to build parent project ... qbit-build-parent:pom:${revision}. qbit-build-parent:2.0.0 was published with an unflattened <version>. The effective model still resolves correctly; the fix belongs in a future parent release.
  • Out of scope, left as is: the README is stale. It shows a Java 17 badge and documents a saved-views API that does not exist.
## Summary Re-pins this qbit to `com.kingsrook:qbit-build-parent:2.0.0` (qqq 4.0.0 GA) and adds an opt-in `qqq-snapshot` profile that checks it on qqq `4.1.0-SNAPSHOT`, so qqq-all can include it. The first commit back-merges `main` into `develop`. Supersedes #7 (same reviewed changes, clean commit history, plus the CircleCI needrestart workaround from QRun-IO/qqq-orb#11). **Merge this with a merge commit, not squash or rebase.** The first commit is a merge of `main`, and a merge commit keeps `main` as an ancestor of `develop`. ## Related Issues Closes QRun-IO/qqq#765 Part of QRun-IO/qqq-all#1 ## Changes Two commits: - `512defb` **chore: back-merge main into develop.** A `--no-ff` merge of `origin/main` (`523fd34`). Its tree is exactly the tree of #7's merge commit `debc4fd`. It brings in the 3 main-only commits: the 0.4.0 release merge, `Bump version to 0.4.0`, and `fix ot use revision property`. - `dbfbc59` **build: re-pin to qbit-build-parent 2.0.0.** This is the net diff of #7's remaining commits, plus the CircleCI change: - Parent 1.5.1 -> 2.0.0. Removed the child `qqq-bom-pom:0.40.0-SNAPSHOT` import that shadowed the parent (ADR-0007), so default builds take the qqq version only from the parent. - `TableViewFieldCustomizer`: `getValueFromRecordOrOldRecord` (removed in 4.0) is replaced by `getValueFromRecordElseFromOldRecord`, wrapped in `ValueUtils.getValueAsString` as the 4.0 javadoc recommends. The lookup logic is the same. - `BaseTest`: `QInstance.setAuthentication` (removed in 4.0) is replaced by `withInstanceDefaultAuthentication`. - New test `TableViewFieldCustomizerTest.testSparseUpdateUsesOldRecordValues` covers the old-record fallback the migrated call serves. In #7 it was shown to fail with the fallback disabled. - Opt-in `qqq-snapshot` profile. It imports `qqq-bom-pom:${qqq.snapshot.version}` (default `4.1.0-SNAPSHOT`) and adds the Central snapshots repository. The top-level `sonatype-snapshots` repository, which only served the old snapshot BOM, moved into this profile. - `CLAUDE.md`: replaced the stale `qqq-bom-pom:0.40.0-SNAPSHOT` note with how the qqq version is now set and checked. - **New since review:** `.circleci/config.yml` gets the `configure-package-install` command and a `pre-steps` use on every job, copied from `qbit-quick-search` develop. It writes `$nrconf{restart} = "l"` to `/etc/needrestart/conf.d`, so the orb's apt install no longer stops at the interactive needrestart dialog that timed out jobs 49 and 50 on #7. The orb pin stays at 0.5.0. As in #7, licensing is untouched, per the issue. The Apache-2.0 `<licenses>` change and the first `qqq.version` override profile that #7 later reverted or replaced are not in this branch at all. ### Merge conflict resolution (from #7) There was one conflict, in `pom.xml` `<properties><revision>`: - develop had `0.5.0-SNAPSHOT` and main had `0.4.0`. **Kept develop's `0.5.0-SNAPSHOT`.** `0.4.0` is the release stamp CI writes on `main`. develop had already moved to the next development line (`8f92567`), and taking `0.4.0` would make develop snapshots publish as a released version. - main's fix (`523fd34`, `<version>${revision}</version>`) merged cleanly. develop already had the same line. - The only content main changed since the merge base (`5323d4e`) is those two pom lines. After the merge, the tree matches `origin/develop` exactly, so none of develop's features or main's fixes were lost. ## Type of Change - [x] Dependencies update - [x] Breaking change: consumers of this qbit move from qqq 0.40.x to qqq 4.0.0 ## Testing How the branch was built, and the checks that show it matches #7: | Command | Result | |---|---| | `git merge --no-ff --no-commit origin/main`, then `git read-tree -u --reset debc4fd` | Same `pom.xml` conflict as #7, replaced by #7's resolved tree | | `git diff debc4fd HEAD~1` | Empty. `HEAD~1^1` is `origin/develop` (`b3ac14a`) and `HEAD~1^2` is `origin/main` (`523fd34`), the same parents as `debc4fd` | | `git diff debc4fd 971249b --binary \| git apply --index` | Applied cleanly | | `git diff 971249b HEAD` | Only `.circleci/config.yml` (+20 lines) | Builds on this branch (no `mvnw`, so plain `mvn`; no `mvn install`): | Command | Result | |---|---| | `CI=true mvn -B clean verify` | BUILD SUCCESS, 19 tests, 0 failures, 0 errors, 0 skipped. Resolves `qqq-backend-core:4.0.0` | | `CI=true mvn -B -U clean verify -Pqqq-snapshot` | BUILD SUCCESS, 19 tests, 0 failures, 0 errors, 0 skipped. Resolves `qqq-backend-core:4.1.0-SNAPSHOT`, byte-identical to the published `4.1.0-20260926.003607-7` | The CircleCI YAML parses and each of the 5 jobs lists the pre-step. `circleci config validate` cannot run locally: it cannot find `kingsrook/qqq-orb@0.5.0` in the registry, and it fails the same way on the unchanged config. CircleCI on this PR is the real check. - [x] Unit tests pass - [x] `mvn verify` passes on qqq 4.0.0 and with `-Pqqq-snapshot` - [ ] Manual testing performed ## Checklist - [x] Code follows the project's style guidelines - [x] Self-review performed - [x] Tests added for the migrated behavior - [x] New and existing unit tests pass locally - [ ] No new warnings (see the parent-pom warning below) ## Additional Notes - **Docker integration tests:** not applicable. This repo has no Docker or Testcontainers tests. Under `CI=true`, 0 tests are skipped. - **qbit-user-role-permissions:** this qbit has no Maven dependency on it. It refers to the `role` possible-value source by name only, so there is no pin to change. - **Parent-pom warning:** `Failed to build parent project ... qbit-build-parent:pom:${revision}`. `qbit-build-parent:2.0.0` was published with an unflattened `<version>`. The effective model still resolves correctly; the fix belongs in a future parent release. - **Out of scope, left as is:** the README is stale. It shows a Java 17 badge and documents a saved-views API that does not exist.
Sign in to join this conversation.