-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Build and Release
This page is for Biblio contributors and release maintainers. User-facing installation instructions are in Installation and Requirements.
| Path | Purpose |
|---|---|
manifest.json.gz.b64 |
Compressed base work manifest |
books/ |
Additional literature and author-specific source definitions |
tools/ |
Source acquisition, formatting, catalog, tag, runtime, and validation pipeline |
src/main/java/io/github/beeboee/biblio/ |
NeoForge commands, menu, saved settings, loot functions, and modifiers |
generated/Famous_Books_1.21.1_Full_Text/ |
Expanded generated inspection tree |
dist/ |
Built mod and retained legacy datapack artifacts |
CATALOG.md |
Generated human-readable catalog |
Source manifests and build tools are authoritative. Generated output is retained for inspection and release artifacts.
- Java 21
- Python with packages from
requirements.txt - Network access for public-domain source retrieval when content is not cached
Recreate the decoded base manifest, install dependencies, and run the complete build:
python - <<'PY'
import base64, gzip
from pathlib import Path
Path('manifest.json').write_bytes(
gzip.decompress(base64.b64decode(Path('manifest.json.gz.b64').read_text()))
)
PY
pip install -r requirements.txt
python tools/build_full.pyThe complete build regenerates the catalog, expanded data tree, compatibility ZIP, command index, work-tag metadata where enabled, and NeoForge JAR. Gradle targets Java 21 and NeoForge 21.1.211 for Minecraft 1.21.1.
Before a release artifact is considered publishable, the repository's build-and-smoke workflow must successfully complete its generated-data validation and NeoForge runtime smoke test. Tests cover loot tables, written-book payloads, command/catalog references, collection completeness, signed weighting, and feature-specific data such as work tags.
The data-driven integration build must also verify that:
- every work has valid, unique tags,
- the generated work-tag index agrees with the manifest,
- every physical variant inherits its work's tags,
- the runtime catalog contains matching work IDs and tags, and
- the generic tagged integration modifier is globally registered.
CurseForge publishing has a single authorized path:
.github/workflows/publish-curseforge.yml
The following are release invariants, not suggestions:
- No other workflow or script may publish to CurseForge. Build workflows only build, validate, smoke-test, and upload artifacts.
- The publish workflow must use exactly
Kir-Antipov/mc-publish@v3.3for the upload. - It must publish only the exact artifact named
biblio-releasedownloaded from a selected successful run of Build and smoke-test NeoForge mod. - It must verify that the selected run succeeded and belongs to this repository.
- It must verify the tested commit SHA; an approved/requested commit must equal the build run's
head_sha. - It must check out the tested source commit and resolve the expected version/JAR name from that commit.
- It must validate the downloaded JAR rather than rebuilding it in the publish job.
- It must verify the expected NeoForge metadata, version,
pack.mcmeta, and Biblio data before upload. - It must update the persistent Biblio Publish Status issue while publishing and again with the final success or failure, build/run links, tested commit, version/channel, and CurseForge result when available.
- CurseForge acceptance must be verified from the publishing action's returned file ID and URL.
The configured CurseForge project ID in the verified release workflow is 1637190.
If any other workflow contains a direct CurseForge upload, a publish_curseforge switch, a raw CurseForge API call, or a second publishing action, publishing is blocked until that alternate route is removed. Do not substitute a locally rebuilt JAR, an artifact from a different workflow, or an artifact from an unverified commit.
- Version metadata is consistent.
- Full build and validations pass.
- NeoForge smoke test passes in the same workflow run.
- The successful run uploaded exactly one intended
biblio-releaseartifact. - The approved tested commit matches the run's
head_sha. - Only
.github/workflows/publish-curseforge.ymlcan publish. - The workflow still pins
Kir-Antipov/mc-publish@v3.3. - The persistent publish-status issue is updated.
- The returned CurseForge file ID and URL are recorded.
The tag-driven loot integration API was verified on the agent/work-tags-loot-integrations feature branch at commit a9a63d0. Do not advertise it for a release until the release artifact contains the feature, generated work-tag index, tagged runtime catalog, and global integration modifier.
Home · Full Catalog · Troubleshooting · Support · License
Documentation verified from repository source; snapshot prepared 2026-08-18.