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
84 changes: 77 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,67 @@ concurrency:
cancel-in-progress: true

jobs:
cold-forge-bootstrap:
name: Cold Forge bootstrap
runs-on: ubuntu-latest
timeout-minutes: 60

steps:
- name: Check out source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install pinned Java 25 ForgeGradle Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'

- name: Install pinned Java 8 compilation toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'

- name: Install pinned Java 17 Gradle runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '17.0.1+12'

- name: Bootstrap Forge from an empty cache
shell: bash
env:
GRADLE_USER_HOME: ${{ runner.temp }}/orespawn-cold-gradle
run: |
set -euo pipefail
test ! -e .gradle
test ! -e "$GRADLE_USER_HOME"
mkdir -p "$GRADLE_USER_HOME"
chmod +x ./gradlew
gradle_args=(
classes verifyLegacyFixtures
--no-daemon --no-build-cache --stacktrace --max-workers=2
-Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64"
-Dorg.gradle.java.installations.auto-detect=false
-Dorg.gradle.java.installations.auto-download=false
)
./gradlew "${gradle_args[@]}"

- name: Verify same-cache bootstrap offline
shell: bash
env:
GRADLE_USER_HOME: ${{ runner.temp }}/orespawn-cold-gradle
run: |
set -euo pipefail
gradle_args=(
classes verifyLegacyFixtures
--rerun-tasks --offline --no-daemon --no-build-cache --stacktrace --max-workers=2
-Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64"
-Dorg.gradle.java.installations.auto-detect=false
-Dorg.gradle.java.installations.auto-download=false
)
./gradlew "${gradle_args[@]}"

build:
name: Build, test, and audit
runs-on: ubuntu-latest
Expand All @@ -26,17 +87,23 @@ jobs:
- name: Check out source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Java 8 toolchain
- name: Install pinned Java 25 ForgeGradle Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'

- name: Install pinned Java 8 compilation toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'

- name: Install Java 17 for Gradle
- name: Install pinned Java 17 Gradle runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: microsoft
java-version: '17'
distribution: temurin
java-version: '17.0.1+12'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
Expand All @@ -48,6 +115,9 @@ jobs:
run: >-
./gradlew clean check build javadoc verifyReleaseArtifacts writeReleaseChecksums
verifyEclipseProductionClasspath --no-daemon --stacktrace
-Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64"
-Dorg.gradle.java.installations.auto-detect=false
-Dorg.gradle.java.installations.auto-download=false

- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
Expand All @@ -56,9 +126,9 @@ jobs:
if-no-files-found: error
retention-days: 30
path: |
build/libs/OreSpawn-4.0.8.112021.jar
build/libs/OreSpawn-4.0.8.112021-sources.jar
build/libs/OreSpawn-4.0.8.112021-javadoc.jar
build/libs/OreSpawn-4.0.16.112021.jar
build/libs/OreSpawn-4.0.16.112021-sources.jar
build/libs/OreSpawn-4.0.16.112021-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.txt

Expand Down
23 changes: 18 additions & 5 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,23 @@ jobs:
- name: Check out source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Java 8 toolchain
- name: Install pinned Java 25 ForgeGradle Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'

- name: Install pinned Java 8 compilation toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'

- name: Install Java 17 for Gradle
- name: Install pinned Java 17 Gradle runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: microsoft
java-version: '17'
distribution: temurin
java-version: '17.0.1+12'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
Expand All @@ -49,7 +55,14 @@ jobs:
- name: Compile production code
run: |
chmod +x ./gradlew
./gradlew clean classes --no-daemon --stacktrace
gradle_args=(
clean classes
--no-daemon --stacktrace --max-workers=2
-Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64"
-Dorg.gradle.java.installations.auto-detect=false
-Dorg.gradle.java.installations.auto-download=false
)
./gradlew "${gradle_args[@]}"

- name: Analyze
uses: github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
44 changes: 44 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@
Version 4.0.16.112021

* Adopt the shared 4.0.16 release identity. Forge 1.12 has neither
three-dimensional biome-cell attribution nor a server-side GameTest harness,
so the 4.0.15 attribution and 4.0.16 GameTest lifecycle repairs are not
applicable on this target.
* Ordinary dedicated benchmark servers continue to stop automatically when
requested.

Version 4.0.14.112021

* Convert exposed one-layer vanilla Snow from the first free cell immediately
above Minecraft's motion-blocking surface when a dimension supplies a custom
snow material.
* Retain the existing surface Ice conversion and leave buried or authored Snow
and Ice unchanged.

Version 4.0.13.112021

* Give the public ore-dimension builder the exact biome include/exclude and
biome-dictionary filter support already available in provider JSON.
* Accept valid namespaced geome IDs in both creation-editor validation paths
while preserving legacy unnamespaced geome keys.
* API major 1, schemas, existing profiles, generated chunks, and worldgen
behaviour are unchanged.

Version 4.0.10.112021

* Evaluate Stable Layers rock min_y and max_y bounds against actual world Y
instead of the vertically shifted formation coordinate.
* Preserve shifted formation identity for layer, family, and rock choice while
preventing vanilla Stone fallback near the Y 0/255 dimension bounds.
* Apply the correction only while generating new chunks; existing chunks and
saved profiles remain unchanged.

Version 4.0.9.112021

* Replace provider-declared natural terrain hosts during the existing early
geology scan before structures and vegetation can author matching blocks.
* Keep air, liquids, bedrock, and block entities protected even when their
block IDs are mistakenly declared as terrain hosts.
* Apply the correction only while generating new chunks; existing chunks and
saved profiles remain unchanged.

Version 4.0.8.112021

* Preserve long host, tag, and biome-list values when OreSpawn editors load
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ It gives mods and modpacks one place to configure ores, deposit shapes, optional
rock strata and geomes, provider-owned underground fluid deposits, biome
palettes and world materials, flat bedrock, and bounded ore retrogen.

This branch builds target-qualified version `4.0.8.112021`: the OreSpawn 4.0.8
This branch builds target-qualified version `4.0.16.112021`: the OreSpawn 4.0.16
feature set for Minecraft 1.12.2 and Forge. See the
[versioning policy](docs/VERSIONS.md) for the encoding and release convention.

Expand Down Expand Up @@ -107,9 +107,12 @@ exported to `config/orespawn-guide/` without overwriting existing files.

## Building

Run Gradle with Java 17 from the repository root. Install the exact Temurin
`8.0.502+7` toolchain used to compile production code and test fixtures for
Minecraft 1.12.2; the build rejects a different Java 8 toolchain:
Run Gradle with exact Temurin `17.0.1+12` from the repository root. Install
exact Temurin `25.0.3+9` for ForgeGradle's Mavenizer and exact Temurin
`8.0.502+7` for Minecraft 1.12.2 production and fixture compilation. Java 17
remains the Gradle runtime and production bytecode remains Java 8; the build
rejects a different Java 8 toolchain. Hosted CI also proves an online bootstrap
from an empty Gradle home followed by an offline replay from that same cache:

```powershell
.\gradlew.bat clean check build javadoc verifyReleaseArtifacts writeReleaseChecksums --no-daemon
Expand Down
Loading
Loading