From 84fd23510e19366a4459e5399e28a72618112f98 Mon Sep 17 00:00:00 2001 From: James Maes Date: Mon, 12 Oct 2026 14:43:33 -0500 Subject: [PATCH] chore: adopt the QRun qbit repository standard Add the standard repository files (CircleCI qqq-orb pipeline where missing, .editorconfig, .gitattributes, CODEOWNERS, Dependabot, community pointer files, CHANGELOG, CLAUDE.md/AGENTS.md, docs/DESIGN.md), make the Maven wrapper executable, and add the README Build/License sections. Co-Authored-By: Claude Opus 5.5 --- .editorconfig | 20 ++++++++++++++++++ .gitattributes | 3 +++ .github/CODEOWNERS | 1 + .github/dependabot.yml | 25 +++++++++++++++++++++++ AGENTS.md | 46 ++++++++++++++++++++++++++++++++++++++++++ CHANGELOG.md | 8 ++++++++ CLAUDE.md | 46 ++++++++++++++++++++++++++++++++++++++++++ CODE_OF_CONDUCT.md | 3 +++ CODE_STYLE.md | 3 +++ CONTRIBUTING.md | 6 ++++++ README.md | 4 +++- SECURITY.md | 4 ++++ docs/DESIGN.md | 3 +++ mvnw | 0 14 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .github/CODEOWNERS create mode 100644 .github/dependabot.yml create mode 100644 AGENTS.md create mode 100644 CHANGELOG.md create mode 100644 CLAUDE.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CODE_STYLE.md create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md create mode 100644 docs/DESIGN.md mode change 100644 => 100755 mvnw diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8db2889 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +# QRun-IO qbit .editorconfig: the Kingsrook layout (3-space indentation, never tabs). +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 3 +tab_width = 3 + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[*.{cmd,bat}] +end_of_line = crlf diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..ddf5f61 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +* text=auto eol=lf +*.cmd text eol=crlf +mvnw text eol=lf diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..e7d84f9 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @KofTwentyTwo diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..9878878 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,25 @@ +# Weekly, grouped dependency updates. Minor and patch updates arrive as one PR per ecosystem; +# major updates stay separate so each gets its own review. At most three version-update PRs per +# ecosystem are open at once. Security updates are enabled in the repository settings and are +# not limited by this schedule. +version: 2 +updates: + - package-ecosystem: maven + directory: / + target-branch: develop + schedule: + interval: weekly + open-pull-requests-limit: 3 + groups: + maven-minor-and-patch: + update-types: [minor, patch] + + - package-ecosystem: github-actions + directory: / + target-branch: develop + schedule: + interval: weekly + open-pull-requests-limit: 3 + groups: + github-actions: + patterns: ['*'] diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..b4f0ba5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,46 @@ +# AGENTS.md + +This file provides guidance to Codex when working with code in this repository. + +## Project Overview + +**QBit Web Performance**: QQQ QBit: PageSpeed-style web performance for QQQ sites (Lighthouse lab runs, CrUX field data, real-user Core Web Vitals, budgets and regressions). Design: [QRun-IO/qqq#1088](https://github.com/QRun-IO/qqq/pull/1088) (`docs/specs/2026-10-12-web-performance-design.md`). Implementation in progress. + +## Build Commands + +```bash +./mvnw compile # Compile (always use the wrapper: Maven 3.10 cannot read the parent POM) +./mvnw test # Unit tests +./mvnw verify # Unit tests + JaCoCo gate (thresholds in pom.xml) +``` + +## Architecture + +**Entry point:** `WebPerfQBitProducer implements QBitMetaDataProducer` in `com.kingsrook.qbits.webperf`. Component producers in this package (and below) are found by package scanning. + +## Naming (owner rule) + +- Tables are lowercase snake_case prefixed with the full qbit name: `web_performance_`. The QQQ table name and the backend (SQL) name are identical; possible-value sources take the table name. +- Permissions use the full qbit name: `web_performance.` (for example `web_performance.view`, `web_performance.admin`). +- Qbit data lives in standard, visible QQQ tables, secured by permissions and record security locks, never hidden. +- Processes run as table or record actions, never in the nav. + +## Code Style + +- 3-space indentation, opening braces on the next line, `return (x);`. +- Javadoc flower-box comments (`/*****` with `**` lines) on every class and method. +- Fluent setters (`withX()`). +- Wrapper types (`Integer`, `Boolean`) in config and entities. + +## Dependencies + +- Java 21. +- Parent `com.kingsrook:qbit-build-parent:2.0.0` (qqq 4.0.0). The default-active `qqq-snapshot` profile imports `qqq-bom-pom:4.1.0-RC.4` ahead of it, as in qbit-quick-search (ADR-0007). Remove that activation when the parent moves to 4.1. +- Tests: see pom.xml. + +## Release + +- CircleCI qqq-orb 0.6.8. +- `develop` publishes SNAPSHOTs. +- A `release/*` branch publishes RCs (the orb bumps the version). +- A `v*` tag publishes the release. diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9d8b84d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +All notable changes to this project are documented here. The format follows Keep a Changelog; versions follow semantic versioning. + +## [0.1.0] - Unreleased + +### Added +- First implementation; see README.md for the tables, permissions and configuration. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..9ef4e10 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,46 @@ +# CLAUDE.md + +This file provides guidance to Claude Code when working with code in this repository. + +## Project Overview + +**QBit Web Performance**: QQQ QBit: PageSpeed-style web performance for QQQ sites (Lighthouse lab runs, CrUX field data, real-user Core Web Vitals, budgets and regressions). Design: [QRun-IO/qqq#1088](https://github.com/QRun-IO/qqq/pull/1088) (`docs/specs/2026-10-12-web-performance-design.md`). Implementation in progress. + +## Build Commands + +```bash +./mvnw compile # Compile (always use the wrapper: Maven 3.10 cannot read the parent POM) +./mvnw test # Unit tests +./mvnw verify # Unit tests + JaCoCo gate (thresholds in pom.xml) +``` + +## Architecture + +**Entry point:** `WebPerfQBitProducer implements QBitMetaDataProducer` in `com.kingsrook.qbits.webperf`. Component producers in this package (and below) are found by package scanning. + +## Naming (owner rule) + +- Tables are lowercase snake_case prefixed with the full qbit name: `web_performance_`. The QQQ table name and the backend (SQL) name are identical; possible-value sources take the table name. +- Permissions use the full qbit name: `web_performance.` (for example `web_performance.view`, `web_performance.admin`). +- Qbit data lives in standard, visible QQQ tables, secured by permissions and record security locks, never hidden. +- Processes run as table or record actions, never in the nav. + +## Code Style + +- 3-space indentation, opening braces on the next line, `return (x);`. +- Javadoc flower-box comments (`/*****` with `**` lines) on every class and method. +- Fluent setters (`withX()`). +- Wrapper types (`Integer`, `Boolean`) in config and entities. + +## Dependencies + +- Java 21. +- Parent `com.kingsrook:qbit-build-parent:2.0.0` (qqq 4.0.0). The default-active `qqq-snapshot` profile imports `qqq-bom-pom:4.1.0-RC.4` ahead of it, as in qbit-quick-search (ADR-0007). Remove that activation when the parent moves to 4.1. +- Tests: see pom.xml. + +## Release + +- CircleCI qqq-orb 0.6.8. +- `develop` publishes SNAPSHOTs. +- A `release/*` branch publishes RCs (the orb bumps the version). +- A `v*` tag publishes the release. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..29084f7 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,3 @@ +# Code of Conduct + +See Project level [Code of Conduct](https://github.com/QRun-IO/qqq/blob/develop/CODE_OF_CONDUCT.md) diff --git a/CODE_STYLE.md b/CODE_STYLE.md new file mode 100644 index 0000000..0e6fef2 --- /dev/null +++ b/CODE_STYLE.md @@ -0,0 +1,3 @@ +# Code Style Guide + +* See Project [Code Style Guide](https://github.com/QRun-IO/qqq/blob/develop/CODE_STYLE.md) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..a39979e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,6 @@ +# Contributing to QBit Web Performance + +* See Project [Contributing](https://github.com/QRun-IO/qqq/blob/develop/CONTRIBUTING.md) +* Branches follow GitFlow: `feature/*` from `develop`, pull requests to `develop`, `release/*` for release candidates, `v*` tags for releases. +* Commits are signed and follow Conventional Commits. +* Build and test locally with `./mvnw verify` (Java 21). diff --git a/README.md b/README.md index 929ba5c..f981f6a 100644 --- a/README.md +++ b/README.md @@ -68,4 +68,6 @@ Tables and the app use `READ_WRITE_PERMISSIONS` with the base name `web_performa ./mvnw verify ``` -License: Apache-2.0. +## License + +Apache License 2.0. See [LICENSE](LICENSE) and [NOTICE](NOTICE). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..089e0f4 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,4 @@ +# Security Policy + + * See Project [Security Policy](https://github.com/QRun-IO/qqq/blob/develop/SECURITY.md) + * Report a vulnerability privately through this repository's **Security** tab ("Report a vulnerability"). diff --git a/docs/DESIGN.md b/docs/DESIGN.md new file mode 100644 index 0000000..dd02ac7 --- /dev/null +++ b/docs/DESIGN.md @@ -0,0 +1,3 @@ +# QBit Web Performance: design + +The design for this qbit is tracked in [QRun-IO/qqq#1088](https://github.com/QRun-IO/qqq/pull/1088) (`docs/specs/2026-10-12-web-performance-design.md`). This repository implements it; the implementation is in progress. diff --git a/mvnw b/mvnw old mode 100644 new mode 100755 -- 2.54.0