Skip to content

feat(artifacts): --artifacts generation in INDEX + ARTIFACT stages#2262

Open
pirhoo wants to merge 19 commits into
mainfrom
feat/artifacts-index-stage
Open

feat(artifacts): --artifacts generation in INDEX + ARTIFACT stages#2262
pirhoo wants to merge 19 commits into
mainfrom
feat/artifacts-index-stage

Conversation

@pirhoo

@pirhoo pirhoo commented Jul 13, 2026

Copy link
Copy Markdown
Member

Opt-in per-document artifact generation (raw), gated by --artifacts, on both CLI surfaces and both the INDEX and ARTIFACT stages. Closes #2225.

  • feat: --artifacts / --artifactsForce on the JOpt and picocli CLI surfaces
  • feat: INDEX-stage inline manifest recording via ManifestRecorder, wired from ElasticsearchSpewer
  • feat: fail-fast guard, --artifacts requires --artifactDir
  • refactor: shared RawArtifact.entryFor, ArtifactProducer.entryIsCurrent, ArtifactRegistry.withDefaults, and ArtifactStages project/force resolution so INDEX and ARTIFACT stay in parity
  • chore: bump extract-lib to 9.15.4 (unified embedded-artifact write layout)

pirhoo added 19 commits July 13, 2026 10:06
…ctor (avoid requeue poison-loop)

Move --artifacts validation and the ManifestRecorder/embedOutput wiring
out of IndexTask's constructor and into call(). Reflectively-constructed
tasks that throw from their constructor become a requeue-forever
NackException; deferring the check to call() turns a bad --artifacts
config into a clean task error instead.

Introduce ArtifactStages.artifactProjectRoot as the shared entry point
for this resolution, used from IndexTask.call().
…ages (INDEX+ARTIFACT parity)

ArtifactTask now resolves its project name and force flag through the
same ArtifactStages helper as IndexTask, instead of its own
defaultProject-only lookup and separate force parse. Keeps the two
stages from drifting on how they resolve a project name or the force
flag.
…d types are not silent

Make ManifestRecorder's RAW-only scope explicit: the class javadoc now
states that INDEX-time recording only records the artifact types
extract-lib materializes during the streaming parse (RAW today), and
the constructor logs once when a selection includes other types so
that it's clear they are deferred to the ARTIFACT stage rather than
silently dropped.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(artifacts): --artifacts flag in INDEX + ARTIFACT stages

1 participant