Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ jobs:
run: |
mvn -B --no-transfer-progress -DskipTests -Denforcer.skip=true compile
echo "=== internal package dependency graph (jdeps, bytecode) ==="
jdeps -verbose:package target/classes | grep 'net.ladenthin.maven.llamacpp.aiindex' || true
jdeps -verbose:package llamacpp-ai-index-maven-plugin/target/classes | grep 'net.ladenthin.maven.llamacpp.aiindex' || true

build:
name: Build
Expand All @@ -240,7 +240,7 @@ jobs:
- name: Build
run: mvn --batch-mode --no-transfer-progress -DskipTests package
- uses: actions/upload-artifact@v7
with: { name: plugin-jars, path: target/*.jar }
with: { name: plugin-jars, path: llamacpp-ai-index-maven-plugin/target/*.jar }

test:
name: Test
Expand All @@ -260,7 +260,7 @@ jobs:
- uses: actions/upload-artifact@v7
with:
name: jacoco-report
path: target/site/jacoco/jacoco.xml
path: llamacpp-ai-index-maven-plugin/target/site/jacoco/jacoco.xml
if-no-files-found: ignore
- name: Memory after tests
if: always()
Expand All @@ -271,20 +271,20 @@ jobs:
with:
name: crash-dumps-test
path: |
${{ github.workspace }}/hs_err_pid*.log
${{ github.workspace }}/*.hprof
${{ github.workspace }}/target/surefire-reports/*.dump
${{ github.workspace }}/target/surefire-reports/*.dumpstream
${{ github.workspace }}/target/surefire-reports/*.txt
${{ github.workspace }}/target/surefire-reports/TEST-*.xml
${{ github.workspace }}/llamacpp-ai-index-maven-plugin/hs_err_pid*.log
${{ github.workspace }}/llamacpp-ai-index-maven-plugin/*.hprof
${{ github.workspace }}/llamacpp-ai-index-maven-plugin/target/surefire-reports/*.dump
${{ github.workspace }}/llamacpp-ai-index-maven-plugin/target/surefire-reports/*.dumpstream
${{ github.workspace }}/llamacpp-ai-index-maven-plugin/target/surefire-reports/*.txt
${{ github.workspace }}/llamacpp-ai-index-maven-plugin/target/surefire-reports/TEST-*.xml
if-no-files-found: ignore
- name: Run PIT mutation tests
run: mvn --batch-mode --no-transfer-progress test-compile org.pitest:pitest-maven:mutationCoverage
- name: Extract PIT survivors
if: always()
run: |
echo "=== PIT Survived Mutations ==="
for html_file in $(find target/pit-reports -name "*.html" -type f 2>/dev/null | sort); do
for html_file in $(find llamacpp-ai-index-maven-plugin/target/pit-reports -name "*.html" -type f 2>/dev/null | sort); do
if grep -q "SURVIVED" "$html_file"; then
echo "Found survivors in $html_file:"
grep -B 2 -A 3 "SURVIVED" "$html_file"
Expand All @@ -293,7 +293,7 @@ jobs:
done
- uses: actions/upload-artifact@v7
if: always()
with: { name: pit-reports, path: target/pit-reports/ }
with: { name: pit-reports, path: llamacpp-ai-index-maven-plugin/target/pit-reports/ }

vmlens:
name: Test (vmlens interleavings)
Expand All @@ -311,7 +311,7 @@ jobs:
if: always()
with:
name: vmlens-report
path: target/vmlens-report/
path: llamacpp-ai-index-maven-plugin/target/vmlens-report/
if-no-files-found: ignore

report:
Expand All @@ -325,21 +325,21 @@ jobs:
- uses: actions/setup-java@v5
with: { java-version: '21', distribution: temurin }
- uses: actions/download-artifact@v8
with: { name: jacoco-report, path: target/site/jacoco/ }
with: { name: jacoco-report, path: llamacpp-ai-index-maven-plugin/target/site/jacoco/ }
continue-on-error: true
- uses: advanced-security/maven-dependency-submission-action@v5
- name: Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: target/site/jacoco/jacoco.xml
file: llamacpp-ai-index-maven-plugin/target/site/jacoco/jacoco.xml
format: jacoco
continue-on-error: true
- name: Codecov
uses: codecov/codecov-action@v7
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: target/site/jacoco/jacoco.xml
files: llamacpp-ai-index-maven-plugin/target/site/jacoco/jacoco.xml
continue-on-error: true

check-snapshot:
Expand Down Expand Up @@ -402,14 +402,14 @@ jobs:
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
# Runs even when the deploy step failed: a Central publish-poll timeout reds the
# job *after* the bundle was uploaded (and typically published server-side), while
# the signed jars + .asc files already exist in target/ (signing happens at
# the signed jars + .asc files already exist in llamacpp-ai-index-maven-plugin/target/ (signing happens at
# verify). Collecting on failure lets the github-snapshot job still attach them.
- name: Collect signed artifacts
if: ${{ !cancelled() }}
run: |
mkdir -p signed-snapshot-assets
cp target/*.jar signed-snapshot-assets/ 2>/dev/null || true
cp target/*.jar.asc signed-snapshot-assets/ 2>/dev/null || true
cp llamacpp-ai-index-maven-plugin/target/*.jar signed-snapshot-assets/ 2>/dev/null || true
cp llamacpp-ai-index-maven-plugin/target/*.jar.asc signed-snapshot-assets/ 2>/dev/null || true
- uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
Expand Down Expand Up @@ -478,14 +478,14 @@ jobs:
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
# Runs even when the deploy step failed: a Central publish-poll timeout reds the
# job *after* the bundle was uploaded (and typically published server-side), while
# the signed jars + .asc files already exist in target/ (signing happens at
# the signed jars + .asc files already exist in llamacpp-ai-index-maven-plugin/target/ (signing happens at
# verify). Collecting on failure lets the github-release job still attach them.
- name: Collect signed artifacts
if: ${{ !cancelled() }}
run: |
mkdir -p signed-release-assets
cp target/*.jar signed-release-assets/ 2>/dev/null || true
cp target/*.jar.asc signed-release-assets/ 2>/dev/null || true
cp llamacpp-ai-index-maven-plugin/target/*.jar signed-release-assets/ 2>/dev/null || true
cp llamacpp-ai-index-maven-plugin/target/*.jar.asc signed-release-assets/ 2>/dev/null || true
- uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
Expand Down
15 changes: 8 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,18 @@ replay_pid*
# heap dumps from OOM (e.g. -XX:+HeapDumpOnOutOfMemoryError on test/PIT forks)
*.hprof

# jcstress / jqwik test outputs (generated in repo root)
/.jqwik-database
# jcstress / jqwik test outputs (generated at the repo root pre-reactor; each module's own
# basedir post-reactor, e.g. llamacpp-ai-index-maven-plugin/.jqwik-database)
**/.jqwik-database

# Benchmark/experiment scratch output dirs (not part of the build)
src/siteGusto/
src/siteMistral3/
src/siteQwenBRUTAL/
llamacpp-ai-index-maven-plugin/src/siteGusto/
llamacpp-ai-index-maven-plugin/src/siteMistral3/
llamacpp-ai-index-maven-plugin/src/siteQwenBRUTAL/

# IDE config
.idea/

# Generated AI-index output from the self-index run (keep the tracked placeholder)
/src/site/ai/*
!/src/site/ai/empty.md
/llamacpp-ai-index-maven-plugin/src/site/ai/*
!/llamacpp-ai-index-maven-plugin/src/site/ai/empty.md
4 changes: 2 additions & 2 deletions REUSE.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ SPDX-PackageDownloadLocation = "https://github.com/bernardladenthin/llamacpp-ai-
path = [
"**.md",
"CITATION.cff",
"src/site/ai/empty.md",
"llamacpp-ai-index-maven-plugin/src/site/ai/empty.md",
"docs/RELEASE.md",
".github/ISSUE_TEMPLATE/bug_report.md",
".github/ISSUE_TEMPLATE/feature_request.md",
Expand All @@ -18,7 +18,7 @@ SPDX-FileCopyrightText = "2026 Bernard Ladenthin <bernard.ladenthin@gmail.com>"
SPDX-License-Identifier = "Apache-2.0"

[[annotations]]
path = "src/test/resources/SmolLM2-135M-Instruct-Q3_K_M.gguf"
path = "llamacpp-ai-index-maven-plugin/src/test/resources/SmolLM2-135M-Instruct-Q3_K_M.gguf"
precedence = "aggregate"
SPDX-FileCopyrightText = "HuggingFaceTB"
SPDX-License-Identifier = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ recorded in git history and `crossrepostatus.md`, not here.

- **Cross-repo code-quality TODOs** — see [`../workspace/policies/code-quality-todos.md`](../workspace/policies/code-quality-todos.md) for the canonical `@VisibleForTesting` design-fit review, package hierarchy review, and class/method naming review. This repo has no `@VisibleForTesting` usages today; the package and naming reviews are still open here.

- **No LogCaptor smoke test needed (note, not an action).** This module has no logging code (`org.slf4j.*` not used in `src/main/java/`); production uses Maven's `Log` interface. If SLF4J logging is ever introduced, add a LogCaptor smoke test at the same time so the binding/configuration is exercised in tests.
- **SLF4J gap CLOSED.** The four `indexer.*` classes (`SourceFileIndexer`, `PackageIndexer`, `ProjectIndexer`, `AiFieldGenerationSupport`) now log via `org.slf4j.Logger` instead of the constructor-injected Maven `Log`; only the 5 mojos (and the `PluginArchitectureTest` `mavenMojoAnnotationsConfinedToMojo`/`nonMojoIsMavenFree` rules) still touch the Maven Plugin API. Maven's `maven-slf4j-provider` binds `slf4j-api` inside plugin executions, so every `LOGGER.info(...)`/`.warn(...)`/`.debug(...)` call surfaces as a normal `[INFO]`/`[WARN]`/`[DEBUG]` line in `mvn` output with zero glue (verified end-to-end with the `generate` goal against a scratch project). `AiFieldGenerationSupportTest` exercises the binding/configuration directly via a logback `ListAppender` attached to the class logger (the LogCaptor-smoke-test role this note used to flag as future work).
Loading
Loading