Compare commits

..
Author SHA1 Message Date
forge-recovery 220731137a ci: enroll shared Gitea lifecycle
QRun-IO/ci-policy: ci / ci-result (push) Successful in 6s
Shared QRun source version / version (push) Failing after 10m36s
qrun-release / postpublish (push) Failing after 10m36s
QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: ci / head-profile (push) Skipped
QRun-IO/ci-policy: ci / application-template-0 (push) Skipped
QRun-IO/ci-policy: ci / gradle-1 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (push) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (push) Skipped
QRun-IO/ci-policy: ci / node-8 (push) Skipped
QRun-IO/ci-policy: ci / node-9 (push) Skipped
QRun-IO/ci-policy: ci / node-10 (push) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (push) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (push) Skipped
QRun-IO/ci-policy: ci / source-config-13 (push) Skipped
QRun-IO/ci-policy: ci / source-config-14 (push) Skipped
QRun-IO/ci-policy: ci / android-0 (push) Skipped
QRun-IO/ci-policy: ci / original-mcp (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
QRun-IO/ci-policy: native / fork-deny (push) Skipped
QRun-IO/ci-policy: native / dotnet-0 (push) Skipped
QRun-IO/ci-policy: native / native-result (push) Successful in 6s
Shared Java Maven CI / secrets (push) Successful in 29s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (push) Successful in 21s
QRun-IO/ci-policy: ci / repository-policy (push) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (push) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / verify (push) Successful in 2m13s
Shared Java Maven CI / verify (push) Successful in 2m38s
QRun-IO/ci-policy: Shared Java Maven CI / gate (push) Successful in 16s
QRun-IO/ci-policy: ci / java-maven-6 (push) Successful in 24m3s
Shared Java Maven CI / gate (push) Successful in 18s
qrun-release / release (push) Successful in 24m27s
2026-11-02 22:13:54 +00:00
4472fa82e5 ci: add the isolated postpublish job to the QRun release caller
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
Shared Java Maven CI / secrets (push) Successful in 14s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 15s
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 5s
Shared Java Maven CI / gate (push) Canceled after 0s
Shared Java Maven CI / verify (push) Canceled after 0s
qrun-release / release (push) Canceled after 2h38m44s
qrun-release / postpublish (push) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 2m5s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Successful in 9s
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Successful in 2h46m50s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Codex <noreply@openai.com>
2026-11-02 15:48:36 +00:00
8912dfe49b ci: move the QRun release caller to the thin v2 contract
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-2 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 5s
Shared Java Maven CI / secrets (push) Successful in 16s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 16s
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 6s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 2m3s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Canceled after 0s
QRun-IO/ci-policy: ci / java-maven-4 (pull_request) Canceled after 1h9m41s
Shared Java Maven CI / gate (push) Canceled after 0s
Shared Java Maven CI / verify (push) Canceled after 0s
qrun-release / release (push) Canceled after 1h9m59s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Codex <noreply@openai.com>
2026-11-02 06:17:35 +00:00
forge-recoveryandCodex 52661a5a9e ci: add the identical QRun release caller
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-2 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 24s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Successful in 2m30s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 1s
QRun-IO/ci-policy: ci / java-maven-4 (pull_request) Failing after 13m56s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 0s
Co-Authored-By: Codex <noreply@openai.com>
2026-11-02 04:09:51 +00:00
james.maesandCodex 43bad706ec ci: enroll in the shared QQQ orb (#28)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 19:51:17 -05:00
james.maesandCodex 1232edaa61 ci: standardize main pipelines and scanning (#21)
* ci: use shared orb pipelines and source scanning

Co-Authored-By: Codex <noreply@openai.com>

* fix: use released QQQ BOM on main

Replace unavailable 0.40.0-SNAPSHOT with the matching 0.40.0 release. Validated with Maven 3.9.11 clean verify: 18 tests passed.

Co-Authored-By: Codex <noreply@openai.com>

---------

Co-authored-by: Codex <noreply@openai.com>
2026-10-21 11:28:11 -05:00
Darin Kelkhoff 523fd34095 chore: fix ot use revision property in <version> tag 2026-03-13 10:10:36 -05:00
CircleCI 9a6eca0189 Bump version to 0.4.0 [skip ci] 2026-03-13 15:05:08 +00:00
Darin Kelkhoff 67252ae1f3 Merge pull request #6 from QRun-IO/release/0.4
Release/0.4
2026-03-13 10:03:20 -05:00
CircleCI 5323d4ed25 Bump version to 0.4.0-RC.1 [skip ci] 2026-03-13 14:57:53 +00:00
9 changed files with 95 additions and 200 deletions

No files matched your search

+10 -53
View File
@@ -1,57 +1,14 @@
version: 2.1
setup: true
orbs:
qqq-orb: kingsrook/qqq-orb@0.5.0
qqq-orb: kingsrook/qqq-orb@0.8
workflows:
test_only:
setup:
jobs:
- qqq-orb/mvn_test_only:
context: [ qqq-maven-registry-credentials ]
filters:
branches:
ignore: /(develop|main|release/.*|hotfix/.*|integration.*)/
tags:
only: []
publish_snapshot:
jobs:
- qqq-orb/mvn_publish:
context: [ qqq-maven-registry-credentials ]
branch_type: snapshot
filters:
branches:
only:
- develop
publish_release_candidate:
jobs:
- qqq-orb/mvn_publish:
context: [ qqq-maven-registry-credentials ]
branch_type: release_candidate
filters:
branches:
only:
- /release\/.*/
publish_release:
jobs:
- qqq-orb/mvn_publish:
context: [ qqq-maven-registry-credentials ]
branch_type: release
filters:
branches:
only: [ main ]
tags:
only: [ /v.*/ ]
publish_hotfix_release:
jobs:
- qqq-orb/mvn_publish:
context: [ qqq-maven-registry-credentials ]
branch_type: hotfix
filters:
branches:
only:
- /hotfix\/.*/
- qqq-orb/generate_pipeline:
orb_version: '0.8'
filters:
branches:
ignore: automation/qbit-rc-pending
tags:
only: /v.*/
+24
View File
@@ -0,0 +1,24 @@
# 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:
uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/java-maven.yaml@qrun-release-v1
with:
runner: linux-small
browsers: true
browser-runner: browser-build
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
+23
View File
@@ -0,0 +1,23 @@
name: CodeQL
'on':
push:
branches:
- main
- develop
- release/**
- hotfix/**
pull_request: {}
schedule:
- cron: 41 16 * * 0
workflow_dispatch: {}
permissions:
contents: read
actions: read
security-events: write
packages: read
concurrency:
group: codeql-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
analyze:
uses: QRun-IO/qqq-orb/.github/workflows/qbit-codeql.yml@c288a8864fe9054f68410e1d78f5863aea4c4d22
-1
View File
@@ -18,4 +18,3 @@ hs_err_pid*
dependency-reduced-pom.xml
/.env.local
/.cache/
.claude/
+16
View File
@@ -0,0 +1,16 @@
profile: qbit
orb_version: '0.8'
default_branch: develop
java_version: '21'
browsers: true
api_checks: false
docs_only: false
release_on_main: true
release_tag_policy: v-prefix
test_branch_policy: feature-no-hotfix
publish:
snapshot: true
release_candidate: true
release: true
hotfix: true
asciidoc: false
+2 -4
View File
@@ -1,6 +1,4 @@
# Contributing
# Contributing to QBit User Role Permissions
See the QQQ project [Contributing Guide](https://github.com/Kingsrook/qqq/blob/develop/CONTRIBUTING.md) for code standards and PR workflow.
For release procedures, see [RELEASING.md](RELEASING.md).
* See Project [Contributing](https://github.com/Kingsrook/qqq/blob/develop/CONTRIBUTING.md)
-119
View File
@@ -1,119 +0,0 @@
# Releasing
This QBit uses the [qqq-orb](https://circleci.com/developer/orbs/orb/kingsrook/qqq-orb) CircleCI orb for automated builds, versioning, and publishing to Maven Central. Releases are triggered by branch conventions -- no manual version bumping or publishing is required.
## Prerequisites
- CircleCI project linked to this repository
- `qqq-maven-registry-credentials` context configured in CircleCI with:
- `MAVEN_USERNAME` / `MAVEN_PASSWORD` (Sonatype Central Portal)
- `GPG_PRIVATE_KEY_B64` / `GPG_KEYNAME` / `GPG_PASSPHRASE` (artifact signing)
- `GITHUB_TOKEN` (GitHub Release creation)
## Branch Workflow
```
feature/my-work --> develop --> release/X.Y --> main
\--> hotfix/X.Y.Z
```
### Development (develop branch)
Every commit to `develop` publishes a **SNAPSHOT** to Maven Central.
- Version format: `X.Y.Z-SNAPSHOT`
- Consumers use this for integration testing against the latest build
```bash
# Normal development workflow
git checkout develop
git pull
git checkout -b feature/my-feature
# ... make changes, commit, push ...
# Open PR targeting develop
# Merge PR -> SNAPSHOT auto-publishes
```
### Release Candidate (release/* branches)
When `develop` is ready for release, create a release branch. Every commit to a `release/*` branch publishes a **Release Candidate** to Maven Central.
- Version format: `X.Y.Z-RC.1`, `X.Y.Z-RC.2`, etc. (auto-incremented per commit)
- Use this for final QA and stabilization
```bash
# Create a release branch from develop
git checkout develop
git pull
git checkout -b release/0.4
git push -u origin release/0.4
# RC.1 auto-publishes
# If bug fixes are needed during QA:
git commit -m "fix: resolve edge case in view sharing"
git push
# RC.2 auto-publishes (incremented automatically)
```
### Production Release (main branch)
Merge the release branch into `main` to publish a **stable release**.
- Version format: `X.Y.Z`
- Automatically creates a git tag (`vX.Y.Z`) and a GitHub Release
- Published to Maven Central as a final release artifact
```bash
# Merge release branch to main (via PR recommended)
git checkout main
git merge release/0.4
git push
# CI auto-creates tag v0.4.0, GitHub Release, publishes to Maven Central
# After release, merge main back to develop and bump the revision
git checkout develop
git merge main
# Update <revision> in pom.xml to next development version
git commit -m "chore: bump revision to 0.5.0"
git push
```
### Hotfix (hotfix/* branches)
For critical production fixes that cannot wait for the next release cycle.
- Version format: `X.Y.(Z+1)` (patch bump from current release)
- Automatically creates a git tag and GitHub Release
```bash
# Create hotfix branch from main
git checkout main
git pull
git checkout -b hotfix/0.4.1
# ... apply fix ...
git commit -m "fix: critical null check in view loading"
git push -u origin hotfix/0.4.1
# Patch release auto-publishes
# Merge hotfix back to develop
git checkout develop
git merge hotfix/0.4.1
git push
```
## CI/CD Configuration
The release pipeline is defined in `.circleci/config.yml` and uses the `qqq-orb` to handle build, test, version calculation, and publishing. The workflows are:
| Workflow | Trigger | Branch Type | Publishes |
|----------|---------|-------------|-----------|
| `test_only` | Push to feature/* | -- | Nothing (test only) |
| `publish_snapshot` | Push to develop | snapshot | SNAPSHOT to Maven Central |
| `publish_release_candidate` | Push to release/* | release_candidate | RC to Maven Central |
| `publish_release` | Push to main | release | Stable to Maven Central + GitHub Release |
| `publish_hotfix_release` | Push to hotfix/* | hotfix | Patch to Maven Central + GitHub Release |
## Version Management
The project version is controlled by the `<revision>` property in `pom.xml`. The CI pipeline reads and manipulates this value automatically based on branch type. You should only manually update `<revision>` when bumping the development version on `develop` after a release.
+17 -16
View File
@@ -1,22 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ QQQ - Low-code Application Framework for Engineers.
~ Copyright (C) 2021-2025. QRunIO, LLC
~ Copyright (C) 2021-2022. Kingsrook, LLC
~ 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
~ contact@kingsrook.com
~ https://github.com/QRun-IO/
~ https://github.com/Kingsrook/
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as
~ published by the Free Software Foundation, either version 3 of the
~ License, or (at your option) any later version.
~
~ http://www.apache.org/licenses/LICENSE-2.0
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -29,7 +30,7 @@
<groupId>com.kingsrook.qbits</groupId>
<artifactId>qbit-customizable-table-views</artifactId>
<version>0.4.0-SNAPSHOT</version>
<version>${revision}</version>
<packaging>jar</packaging>
<name>QBit Customizable Table Views</name>
@@ -40,8 +41,8 @@
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<name>GNU Affero General Public License v3.0</name>
<url>https://www.gnu.org/licenses/agpl-3.0.html</url>
<distribution>repo</distribution>
</license>
</licenses>
@@ -64,7 +65,7 @@
</scm>
<properties>
<revision>0.4.0-SNAPSHOT</revision>
<revision>0.4.0</revision>
</properties>
<dependencyManagement>
@@ -72,7 +73,7 @@
<dependency>
<groupId>com.kingsrook.qqq</groupId>
<artifactId>qqq-bom-pom</artifactId>
<version>0.40.0-SNAPSHOT</version>
<version>0.40.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -41,10 +41,6 @@ import com.kingsrook.qqq.backend.core.model.metadata.qbits.QBitMetaDataProducer;
*******************************************************************************/
public class CustomizableTableViewsQBitProducer implements QBitMetaDataProducer<CustomizableTableViewsQBitConfig>
{
public static final String GROUP_ID = "com.kingsrook.qbits";
public static final String ARTIFACT_ID = "customizable-table-views";
public static final String VERSION = "0.4.0";
private CustomizableTableViewsQBitConfig customizableTableViewsQBitConfig;
@@ -56,9 +52,9 @@ public class CustomizableTableViewsQBitProducer implements QBitMetaDataProducer<
public QBitMetaData getQBitMetaData()
{
QBitMetaData qBitMetaData = new QBitMetaData()
.withGroupId(GROUP_ID)
.withArtifactId(ARTIFACT_ID)
.withVersion(VERSION)
.withGroupId("com.kingsrook.qbits")
.withArtifactId("customizable-table-views")
.withVersion("0.1.0")
.withNamespace(getNamespace())
.withConfig(getQBitConfig());