james.maes
e41534a47e
Merge pull request 'ci: use shared ci-workflows Maven workflow' ( #74 ) from ci/ci-workflows into develop
maven / build (push) Successful in 1m38s
build / maven (push) Successful in 1m38s
QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: native / fork-deny (push) Skipped
QRun-IO/ci-policy: native / dotnet-0 (push) Skipped
QRun-IO/ci-policy: ci / Scoped workflow [workflow 539bec410f7926fec3ef7fabe51934a91e0248be] (push) Successful in 11s
QRun-IO/ci-policy: ci / head-profile (push) Skipped
QRun-IO/ci-policy: ci / repository-policy (push) Skipped
QRun-IO/ci-policy: native / native-result (push) Successful in 8s
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-core-2-head (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (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-6 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (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-business (push) Skipped
QRun-IO/ci-policy: ci / original-mcp (push) Skipped
QRun-IO/ci-policy: ci / original-voyage (push) Skipped
QRun-IO/ci-policy: ci / original-cli (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (push) Skipped
QRun-IO/ci-policy: ci / ci-result (push) Successful in 8s
2026-11-06 18:02:24 +00:00
james.maes and Claude Opus 5.5
0a35966498
ci: use shared ci-workflows Maven workflow
...
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 6s
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / Scoped workflow [workflow 1e25bb5a243dfdcd95d4b9a4f780200ff8c8778a] (pull_request) Successful in 7s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (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-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (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 / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (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 / android-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: Shared Java Maven CI with Docker / secrets (pull_request) Successful in 16s
maven / build (push) Successful in 1m23s
build / maven (push) Successful in 1m23s
QRun-IO/ci-policy: Shared Java Maven CI with Docker / verify (pull_request) Successful in 1m29s
QRun-IO/ci-policy: Shared Java Maven CI with Docker / gate (pull_request) Successful in 11s
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Successful in 42m28s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
Replace the platform-ci release callers with one caller of
KofTwentyTwo/ci-workflows maven.yaml (qqq-orb port).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-06 15:51:51 +00:00
james.maes and Codex
6a27f3d9b4
ci: align canonical shared orb workers ( #69 )
...
Co-authored-by: Codex <noreply@openai.com >
2026-10-21 01:33:03 -05:00
james.maes and Codex
f80d1ac9f8
ci: delegate pipelines to shared QQQ orb
...
Co-Authored-By: Codex <noreply@openai.com >
2026-10-20 19:39:50 -05:00
James Maes and Claude Opus 4.8
e47cca4b81
docs: add CLAUDE.md pointer to QQQ knowledge-base dossier + hub
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-12 05:31:35 -05:00
james.maes
c7cf55a99e
chore: migrate license from AGPL-3.0 to Apache-2.0
2026-01-05 10:11:44 -06:00
james.maes
dd275cb9fe
chore: bump version to 0.2.1 for next development cycle
2026-01-04 19:34:13 -06:00
james.maes
8ac4fdf2e1
feat(core): add doctor command and dependency pre-flight checks
...
- Add `qctl doctor` command to check Java, Maven, Git, Docker
- Add pre-flight dependency checks before running post-gen hooks
- Cross-platform support (Windows/Linux/macOS)
2026-01-04 19:13:29 -06:00
james.maes
386e6caecf
fix: read version from properties file for native image compatibility
2026-01-04 18:09:38 -06:00
james.maes
04914eaf2d
docs: update documentation for E2E testing infrastructure
...
- Add testing section to CLAUDE.md and README.md
- Update architecture.md with Testing Architecture section
- Create docs/testing.md with fixture and harness documentation
- Document __VARNAME__ path syntax for CI compatibility
2026-01-04 17:30:24 -06:00
james.maes
73c271c201
feat(qqq): add structured error handling with suggestions
...
Add TemplateRenderException constructors for undefined variable errors
with suggestions. Refactor InitCommand/ListCommand to return Integer
exit codes. Fix TransformExecutor and TemplateManifest for schema v2.
2026-01-04 12:12:08 -06:00
james.maes
bc93243f6b
fix(template): use __VAR__ syntax in paths for CI compatibility
...
Rename fixture directories from $packagePath to __packagePath__ to
prevent shell/Maven interpretation. TemplateEngine now converts
__VARNAME__ to $VARNAME before Velocity rendering.
2026-01-04 12:07:10 -06:00
james.maes
a2ec447003
test(integration): add comprehensive E2E tests for init command
...
Add 35 tests covering variable substitution, computed variables,
directory transforms, merge mode, and edge cases. Includes test
harness and 8 fixture templates for offline testing.
2026-01-04 11:57:42 -06:00
james.maes
abc118dbe5
feat(qqq): add --merge mode for selective regeneration
...
Implements Story #26 with include/exclude patterns, interactive
conflict resolution, and file backups.
Closes #26
2026-01-03 21:21:40 -06:00
james.maes
5005b8e5fa
docs: update session state for story #25 completion
2026-01-03 21:11:42 -06:00
james.maes
30e124dde5
feat(qqq): add structured error handling with suggestions
...
- Add SuggestionEngine using Levenshtein distance for fuzzy matching
- Add TemplateError with categories mapped to exit codes
- Add ErrorFormatter for consistent ANSI-colored output
- Integrate did-you-mean suggestions in template commands
- Add --verbose flag for stack trace output
2026-01-03 21:10:32 -06:00
james.maes
daea5e66b3
docs: update session state for Story #24 completion
2026-01-03 21:01:54 -06:00
james.maes
a2e85f7f93
feat(qqq): add prompt validation with retry loop ( #24 )
...
- Add PromptValidation record for validation rules (pattern, length, range, enum)
- Add PromptValidator with support for required, pattern, length, range, and enum validation
- Update PromptRunner to validate and re-prompt on failure
- Validate --var CLI overrides, fallback to interactive prompt if invalid
- Add ConsoleUI methods for validation feedback (error, success, warning)
- Add 20 unit tests for PromptValidator
Closes #24
2026-01-03 21:00:41 -06:00
james.maes
e14565a277
feat(qqq): add TemplateRegistry abstraction for Voyage mock API
...
Story #23 - prepares for Voyage API integration:
- TemplateRegistry interface for template listing/download
- GitHubTemplateRegistry wraps existing TemplatesHub
- MockTemplateRegistry with embedded template data
- ListCommand/InitCommand refactored to use registry
- Added --refresh flag to bypass cache
2026-01-03 20:52:43 -06:00
james.maes
5a967f072f
feat(qqq): implement Velocity template engine with computed vars and transforms
...
Stories #18-21 complete:
- Apache Velocity replaces Handlebars for QQQ consistency
- StringTool with $str.camel(), pascal(), replace() helpers
- Computed variables ($str.replace($packageName, '.', '/'))
- Transform executor for rename/delete operations
- Manifest schema v2 with minimumQctlVersion check
2026-01-03 20:45:06 -06:00
james.maes
a71af51f47
feat: add native-image reflection for Velocity and verbatim file handling
2026-01-03 20:42:36 -06:00
james.maes
1380b18652
docs: update CLAUDE.md and add session state for continuity
2025-12-31 08:28:31 -06:00
james.maes
334133af71
fix: remove accidentally committed binary artifacts
2025-12-31 08:24:37 -06:00
KofTwentyTwo
a7abd429fe
chore(aur): update PKGBUILD to v0.0.2
2025-12-31 08:12:59 -06:00
KofTwentyTwo
932f4d8e34
chore(scoop): update manifest to v0.0.2
2025-12-31 08:12:42 -06:00
james.maes
674adedcba
fix(ci): use macos-15 for Intel builds
v0.0.2
2025-12-31 07:41:00 -06:00
james.maes
18a3377ea7
fix(ci): repair broken release workflow
...
- Move native build to profile (fixes -Pnative flag)
- Fix Docker artifact download paths
- Split package updates: Homebrew to tap, Scoop/AUR via PRs
- Fix SHA replacement to work on subsequent releases
- Skip native builds on PRs for faster CI
2025-12-31 07:25:06 -06:00
james.maes
5a42f7b41e
build: implement CI-friendly versioning with revision property
v0.0.1
2025-12-31 06:42:14 -06:00
james.maes
bdb5833be2
chore: bump version to 0.0.1 for initial release
2025-12-31 06:28:10 -06:00
james.maes
f751b2eb4e
refactor: reorganize repository structure
...
- Move design docs to docs/
- Move packaging files to packaging/
- Create GitHub issues and milestones for tracking
- Update workflow and README references
2025-12-31 06:23:24 -06:00
james.maes
b4adabecfe
docs: update CLAUDE.md and TODO.md with session progress
2025-12-30 20:55:35 -06:00
james.maes
418f09fea1
refactor(qqq): make init command interactive with ConsoleUI
...
- Add ConsoleUI for centralized console I/O
- InitCommand now prompts for template and directory
- Template defaults to new-qqq-application
- PromptRunner uses ConsoleUI for consistency
2025-12-30 20:50:42 -06:00
james.maes
759f40d61e
fix(cli): add version provider to qqq subcommand
2025-12-30 20:27:06 -06:00
james.maes
608e807704
feat(cli): implement version flag with build metadata
...
Add VersionProvider to display version, build time, and git commit.
2025-12-30 20:24:09 -06:00
james.maes
ec52f64c49
docs: update CLAUDE.md and TODO.md with distribution info
2025-12-30 20:15:56 -06:00
james.maes
c2f619798b
docs: add release workflow and distribution info to README
2025-12-30 20:13:59 -06:00
james.maes
fe4883c966
feat(dist): add Docker, Scoop, and AUR distribution
2025-12-30 20:10:50 -06:00
james.maes
fb10e15ef2
feat(brew): add Homebrew formula with auto-update on release
2025-12-30 20:05:08 -06:00
james.maes
98f4a470d3
fix(ci): use macos-15 runner (macos-13 deprecated)
2025-12-30 19:54:12 -06:00
james.maes
514cd3d5ae
docs: add TODO with project roadmap
2025-12-30 19:48:22 -06:00
james.maes
618f09e5f0
fix: remove unused import, add README
2025-12-30 19:47:22 -06:00
james.maes
a25309b75d
feat(qqq): add init and list commands for template scaffolding
...
- Add qqq init command with hub-based template discovery
- Add qqq list command to display available templates
- Add Handlebars templating with native image support
- Add GitHub Actions workflow for multi-platform builds
- Add ExitCodes constants, cleanup duplicate Javadoc
- Remove native profile from qctl-core (only qctl-cli builds)
2025-12-30 19:43:32 -06:00
james.maes
8028f9b101
build(ide): updated
2025-12-29 06:47:25 -06:00
james.maes
29e0e8c1f4
chore(license): update to AGPL-3.0 with QRun-IO copyright
2025-12-25 19:39:06 -06:00
james.maes
12e4a0355b
Build: add initial native build support and configuration setup
...
- Introduced `native-maven-plugin` configuration in `qctl-cli` for native image generation.
- Added reflection configuration files for native image requirements.
- Implemented GraalVM validation, build scripts, and environment checks in `scripts/`.
- Added tests for `TokenStore`, CLI authentication commands, and publish functionality.
- Registered SPI plugins for modules (`qbit`, `qqq`, `qrun`, `qstudio`).
- Documented native build process in `NATIVE-BUILD.md`.
2025-08-09 17:53:14 -05:00
james.maes
65c3883c45
Style: add canonical Javadoc flowerbox format example to design documents
2025-08-09 16:25:19 -05:00
james.maes
2afa12cb6c
Style: update Checkstyle scan scope and normalize formatting; add constants and Javadoc in tests
2025-08-09 16:22:17 -05:00
james.maes
ba1d5b19ea
Style: Removed files from target directories from git
2025-08-09 15:59:42 -05:00
james.maes
29118d637c
Style: add Javadoc, constants, and normalize formatting across modules
...
- Add Javadoc for public methods and classes in core and shared modules.
- Introduce reusable constants for calculations (e.g., BYTES_PER_KB).
- Normalize header spacing and brace placement.
- Update Cache, ConfigLoader, and ApiClient classes for readability and maintainability.
2025-08-09 15:55:38 -05:00
james.maes
5aae0a85fc
Style(core): add Javadoc, braces, and header spacing; partial cleanup; continue until verify is green
2025-08-09 12:54:11 -05:00