Bring release/0.5 up to develop (CI caller, QQQ RC.22 pin) #34

Merged
james.maes merged 9 commits from develop into release/0.5 2026-11-06 23:46:09 +00:00
7 changed files with 34 additions and 188 deletions

No files matched your search

-55
View File
@@ -1,55 +0,0 @@
schema: 1
scoped_delegation: true
verification:
push:
branches: [main, master, dev, rc, "release/**", "hotfix/**", "qualification/**"]
components:
library:
directory: .
platforms: [linux-amd64]
toolchains:
java: "21"
build:
tool: maven
# Shared verification uses the release version property so unchanged tested outputs can be reused.
commands:
- ["--batch-mode", "--update-snapshots", "-T4", "--no-transfer-progress", "verify"]
- ["--batch-mode", "--no-transfer-progress", "org.codehaus.mojo:flatten-maven-plugin:1.7.3:flatten", "-Dflatten.mode=resolveCiFriendliesOnly", "-DupdatePomFile=true"]
reports:
junit: "**/target/surefire-reports/*.xml"
artifacts:
packages:
format: maven
# Retain the generated consumer POM alongside the tested JAR; both are required for publication.
paths: [".flattened-pom.xml", "target/*.jar"]
release:
channels:
snapshot:
trigger:
push_branches: [develop]
versioning: maven-snapshot
effective_version:
rule: develop-next-minor
central_completion: true
version_write_back: {}
# Release candidates: a push to release/X.Y derives X.Y.0-RC.n with the existing rc-from-branch rule (the first RC of a branch that declares
# X.Y.Z-SNAPSHOT is RC.1); maven-release refuses a SNAPSHOT effective version. Published to the same destination as the snapshot, with the same
# Central completion and source write-back policy.
release-candidate:
trigger:
push_branches: ["release/*"]
versioning: maven-release
effective_version:
rule: rc-from-branch
central_completion: true
version_write_back: {}
publications:
qbit-sftp-packages:
component: library
artifact: packages
destination: qrun-maven
channels: [snapshot, release-candidate]
+7
View File
@@ -0,0 +1,7 @@
name: build
on:
push:
jobs:
maven:
uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/maven.yaml@main
secrets: inherit
-24
View File
@@ -1,24 +0,0 @@
# Standard QRun release caller (v2, thin contract): every push and manual dispatch delegates to the protected qrun-release-v1 channel. Do not edit per repository.
name: qrun-release
on:
push: {}
workflow_dispatch: {}
permissions:
contents: read
actions: read
jobs:
release:
# Develop and release candidates use the repository-owned shared pipeline configuration.
if: ${{ github.ref != 'refs/heads/develop' && !startsWith(github.ref, 'refs/heads/release/') }}
uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/java-maven.yaml@qrun-release-v1
with:
runner: linux-small
postpublish:
if: ${{ needs.release.outputs.capture == 'true' }}
needs: release
permissions:
contents: write
actions: write
uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/qrun-source-version.yaml@qrun-release-v1
with:
runner: linux-small
-72
View File
@@ -1,72 +0,0 @@
name: Release candidate
'on':
workflow_dispatch:
inputs:
dry_run:
description: Plan a cut without changing release state
type: boolean
default: false
finalize:
description: Retry finalization of an existing cut; do not cut another RC
type: boolean
default: false
recover:
description: Recover the same published RC after a deployment timeout; never
reupload
type: boolean
default: false
circle_build:
description: Original release run id (recovery only)
type: string
default: ''
merge_sha:
description: Existing cut merge_sha (finalize retry only)
type: string
default: ''
bump_sha:
description: Existing cut bump_sha (finalize retry only)
type: string
default: ''
branch:
description: Existing cut branch (finalize retry only)
type: string
default: ''
version:
description: Existing cut version (finalize retry only)
type: string
default: ''
pull_request:
types:
- closed
branches:
- develop
permissions:
contents: read
jobs:
release-rc:
# The old qbit-rc-published repository_dispatch is replaced by the already-proven workflow_dispatch
# completion: the publisher's own ActionsWRITE job dispatches this workflow with finalize=true plus
# merge_sha/bump_sha/branch/version (same inputs as the manual finalize retry).
permissions:
contents: write
actions: read
pull-requests: write
if: github.event_name == 'workflow_dispatch'
|| (github.event_name == 'pull_request' && github.event.pull_request.merged
== true && github.event.pull_request.base.ref == 'develop' && contains(github.event.pull_request.labels.*.name,
'release:rc'))
uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/qbit-release-rc.yaml@qrun-release-v1
with:
dry_run: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run || false
}}
finalize: ${{ github.event_name == 'workflow_dispatch' && inputs.finalize }}
recover: ${{ github.event_name == 'workflow_dispatch' && inputs.recover || false
}}
circle_build: ${{ github.event_name == 'workflow_dispatch' && inputs.circle_build
|| '' }}
merge_sha: ${{ inputs.merge_sha || '' }}
bump_sha: ${{ inputs.bump_sha || '' }}
branch: ${{ inputs.branch || '' }}
version: ${{ inputs.version || '' }}
secrets:
QRUN_TAG_SIGNING_KEY: ${{ secrets.QRUN_TAG_SIGNING_KEY }}
+1 -1
View File
@@ -135,7 +135,7 @@ new QSftpImportMetaData()
## Project Status
Stable and production-ready.
Release candidate. Builds against QQQ `4.1.0-RC.22`; release candidates (`0.5.0-RC.N`) are published to the Gitea Maven registry at `https://git.kof22.com/api/packages/QRun-IO/maven`.
### Roadmap
+9 -35
View File
@@ -23,6 +23,7 @@
<properties>
<revision>0.5.0-SNAPSHOT</revision>
<qqq.version>4.1.0-RC.22</qqq.version>
</properties>
<parent>
@@ -70,10 +71,17 @@
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.kingsrook.qqq</groupId>
<artifactId>qqq-bom-pom</artifactId>
<version>${qqq.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>5.10.0</version>
<version>6.0.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -102,39 +110,5 @@
</dependency>
</dependencies>
<profiles>
<!-- Opt-in check against the next qqq line: mvn -B verify -Pqqq-snapshot -->
<!-- (override the version with -Dqqq.snapshot.version=...). Default builds -->
<!-- take the qqq version only from qbit-build-parent. -->
<profile>
<id>qqq-snapshot</id>
<properties>
<qqq.snapshot.version>4.1.0-SNAPSHOT</qqq.snapshot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.kingsrook.qqq</groupId>
<artifactId>qqq-bom-pom</artifactId>
<version>${qqq.snapshot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>sonatype-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
</project>
@@ -43,7 +43,9 @@ import com.kingsrook.qqq.backend.core.model.session.QSession;
import com.kingsrook.qqq.backend.core.modules.backend.implementations.memory.MemoryBackendModule;
import com.kingsrook.qqq.backend.core.modules.backend.implementations.memory.MemoryRecordStore;
import com.kingsrook.qqq.backend.core.processes.tracing.LoggingProcessTracer;
import com.kingsrook.qqq.backend.module.filesystem.base.model.metadata.Cardinality;
import com.kingsrook.qqq.backend.module.filesystem.local.model.metadata.FilesystemBackendMetaData;
import com.kingsrook.qqq.backend.module.filesystem.local.model.metadata.FilesystemTableBackendDetails;
import org.apache.commons.io.FileUtils;
import org.junit.jupiter.api.BeforeEach;
@@ -110,7 +112,21 @@ public class BaseTest
/////////////////////////////////////
new SavedBulkLoadProfileMetaDataProvider().defineAll(qInstance, MEMORY_BACKEND_NAME, null);
qInstance.addPossibleValueSource(TablesPossibleValueSourceMetaDataProvider.defineTablesPossibleValueSource(qInstance));
new SavedReportsMetaDataProvider().defineAll(qInstance, MEMORY_BACKEND_NAME, DESTINATION_FILESYSTEM_BACKEND_NAME, null);
new SavedReportsMetaDataProvider().defineAll(qInstance, MEMORY_BACKEND_NAME, DESTINATION_FILESYSTEM_BACKEND_NAME, table ->
{
if(!SavedReportsMetaDataProvider.REPORT_STORAGE_TABLE_NAME.equals(table.getName()))
{
return;
}
FilesystemTableBackendDetails details = new FilesystemTableBackendDetails();
details.withCardinality(Cardinality.ONE);
details.withBasePath("reports");
details.withGlob("*");
details.withContentsFieldName("contents");
details.withFileNameFieldName("reference");
table.setBackendDetails(details);
});
////////////////////////
// configure the qbit //