Skip to content

Commit 7482042

Browse files
authored
Merge pull request #300 from SkyBlade1978/master-1.10.2
Port OreSpawn 4.0.16 to Forge 1.10.2
2 parents 3af8b5f + a4c8c93 commit 7482042

32 files changed

Lines changed: 1089 additions & 69 deletions

.github/workflows/ci.yml

Lines changed: 77 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,67 @@ concurrency:
1717
cancel-in-progress: true
1818

1919
jobs:
20+
cold-forge-bootstrap:
21+
name: Cold Forge bootstrap
22+
runs-on: ubuntu-latest
23+
timeout-minutes: 60
24+
25+
steps:
26+
- name: Check out source
27+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
28+
29+
- name: Install pinned Java 25 ForgeGradle Mavenizer runtime
30+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
31+
with:
32+
distribution: temurin
33+
java-version: '25.0.3+9.0.LTS'
34+
35+
- name: Install pinned Java 8 compilation toolchain
36+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
37+
with:
38+
distribution: temurin
39+
java-version: '8.0.502+7'
40+
41+
- name: Install pinned Java 17 Gradle runtime
42+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
43+
with:
44+
distribution: temurin
45+
java-version: '17.0.1+12'
46+
47+
- name: Bootstrap Forge from an empty cache
48+
shell: bash
49+
env:
50+
GRADLE_USER_HOME: ${{ runner.temp }}/orespawn-cold-gradle
51+
run: |
52+
set -euo pipefail
53+
test ! -e .gradle
54+
test ! -e "$GRADLE_USER_HOME"
55+
mkdir -p "$GRADLE_USER_HOME"
56+
chmod +x ./gradlew
57+
gradle_args=(
58+
classes verifyLegacyFixtures
59+
--no-daemon --no-build-cache --stacktrace --max-workers=2
60+
-Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64"
61+
-Dorg.gradle.java.installations.auto-detect=false
62+
-Dorg.gradle.java.installations.auto-download=false
63+
)
64+
./gradlew "${gradle_args[@]}"
65+
66+
- name: Verify same-cache bootstrap offline
67+
shell: bash
68+
env:
69+
GRADLE_USER_HOME: ${{ runner.temp }}/orespawn-cold-gradle
70+
run: |
71+
set -euo pipefail
72+
gradle_args=(
73+
classes verifyLegacyFixtures
74+
--rerun-tasks --offline --no-daemon --no-build-cache --stacktrace --max-workers=2
75+
-Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64"
76+
-Dorg.gradle.java.installations.auto-detect=false
77+
-Dorg.gradle.java.installations.auto-download=false
78+
)
79+
./gradlew "${gradle_args[@]}"
80+
2081
build:
2182
name: Build, test, and audit
2283
runs-on: ubuntu-latest
@@ -26,17 +87,23 @@ jobs:
2687
- name: Check out source
2788
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
2889

29-
- name: Install Java 8 toolchain
90+
- name: Install pinned Java 25 ForgeGradle Mavenizer runtime
91+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
92+
with:
93+
distribution: temurin
94+
java-version: '25.0.3+9.0.LTS'
95+
96+
- name: Install pinned Java 8 compilation toolchain
3097
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
3198
with:
3299
distribution: temurin
33100
java-version: '8.0.502+7'
34101

35-
- name: Install Java 17 for Gradle
102+
- name: Install pinned Java 17 Gradle runtime
36103
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
37104
with:
38-
distribution: microsoft
39-
java-version: '17'
105+
distribution: temurin
106+
java-version: '17.0.1+12'
40107

41108
- name: Set up Gradle
42109
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
@@ -48,6 +115,9 @@ jobs:
48115
run: >-
49116
./gradlew clean check build javadoc verifyReleaseArtifacts writeReleaseChecksums
50117
verifyEclipseProductionClasspath --no-daemon --stacktrace
118+
-Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64"
119+
-Dorg.gradle.java.installations.auto-detect=false
120+
-Dorg.gradle.java.installations.auto-download=false
51121
52122
- name: Upload audited release candidate
53123
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
@@ -56,9 +126,9 @@ jobs:
56126
if-no-files-found: error
57127
retention-days: 30
58128
path: |
59-
build/libs/OreSpawn-4.0.8.110021.jar
60-
build/libs/OreSpawn-4.0.8.110021-sources.jar
61-
build/libs/OreSpawn-4.0.8.110021-javadoc.jar
129+
build/libs/OreSpawn-4.0.16.110021.jar
130+
build/libs/OreSpawn-4.0.16.110021-sources.jar
131+
build/libs/OreSpawn-4.0.16.110021-javadoc.jar
62132
build/release/SHA256SUMS
63133
CHANGELOG.txt
64134

.github/workflows/codeql-analysis.yml

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,23 @@ jobs:
2626
- name: Check out source
2727
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
2828

29-
- name: Install Java 8 toolchain
29+
- name: Install pinned Java 25 ForgeGradle Mavenizer runtime
30+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
31+
with:
32+
distribution: temurin
33+
java-version: '25.0.3+9.0.LTS'
34+
35+
- name: Install pinned Java 8 compilation toolchain
3036
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
3137
with:
3238
distribution: temurin
3339
java-version: '8.0.502+7'
3440

35-
- name: Install Java 17 for Gradle
41+
- name: Install pinned Java 17 Gradle runtime
3642
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
3743
with:
38-
distribution: microsoft
39-
java-version: '17'
44+
distribution: temurin
45+
java-version: '17.0.1+12'
4046

4147
- name: Set up Gradle
4248
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
@@ -49,7 +55,14 @@ jobs:
4955
- name: Compile production code
5056
run: |
5157
chmod +x ./gradlew
52-
./gradlew clean classes --no-daemon --stacktrace
58+
gradle_args=(
59+
clean classes
60+
--no-daemon --stacktrace --max-workers=2
61+
-Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64"
62+
-Dorg.gradle.java.installations.auto-detect=false
63+
-Dorg.gradle.java.installations.auto-download=false
64+
)
65+
./gradlew "${gradle_args[@]}"
5366
5467
- name: Analyze
5568
uses: github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4

CHANGELOG.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,47 @@
1+
Version 4.0.16.110021
2+
3+
* Adopt the shared 4.0.16 release identity. Forge 1.10 has neither
4+
three-dimensional biome-cell attribution nor a server-side GameTest harness,
5+
so the 4.0.15 attribution and 4.0.16 GameTest lifecycle repairs are not
6+
applicable on this target.
7+
* Ordinary dedicated benchmark servers continue to stop automatically when
8+
requested.
9+
10+
Version 4.0.14.110021
11+
12+
* Convert exposed one-layer Snow at the first free height (`top + 1`) while
13+
retaining full-Snow and Ice conversion at the surface and two blocks below.
14+
* Preserve buried or authored weather materials, unsafe source states and later
15+
structure or vegetation output.
16+
* Existing profiles, chunks, API major 1 and schemas remain unchanged.
17+
18+
Version 4.0.13.110021
19+
20+
* Give the public ore-dimension builder the exact biome include/exclude and
21+
biome-dictionary filter support already available in provider JSON.
22+
* Accept valid namespaced geome IDs in both creation-editor validation paths
23+
while preserving legacy unnamespaced geome keys.
24+
* API major 1, schemas, existing profiles, generated chunks, and world behaviour
25+
are unchanged.
26+
27+
Version 4.0.10.110021
28+
29+
* Evaluate Stable Layers rock min_y and max_y bounds against actual world Y
30+
instead of the vertically shifted formation coordinate.
31+
* Preserve shifted formation identity for layer, family, and rock choice while
32+
preventing vanilla Stone fallback near the Y 0/255 dimension bounds.
33+
* Apply the correction only while generating new chunks; existing chunks and
34+
saved profiles remain unchanged.
35+
36+
Version 4.0.9.110021
37+
38+
* Replace provider-declared natural terrain hosts during the existing early
39+
geology scan before structures and vegetation can author matching blocks.
40+
* Keep air, liquids, bedrock, and block entities protected even when their
41+
block IDs are mistakenly declared as terrain hosts.
42+
* Apply the correction only while generating new chunks; existing chunks and
43+
saved profiles remain unchanged.
44+
145
Version 4.0.8.110021
246

347
* Preserve all eight ore/fluid host, tag, and biome editor fields when saved values exceed Minecraft 1.10.2's default 32-character text limit.

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ It gives mods and modpacks one place to configure ores, deposit shapes, optional
1010
rock strata and geomes, provider-owned underground fluid deposits, biome
1111
palettes and world materials, flat bedrock, and bounded ore retrogen.
1212

13-
This branch builds target-qualified version `4.0.8.110021`: the OreSpawn 4.0.8
13+
This branch builds target-qualified version `4.0.16.110021`: the OreSpawn 4.0.16
1414
feature set for Minecraft 1.10.2 and Forge. See the
1515
[versioning policy](docs/VERSIONS.md) for the encoding and release convention.
1616

@@ -109,8 +109,12 @@ exported to `config/orespawn-guide/` without overwriting existing files.
109109

110110
## Building
111111

112-
Run Gradle with JDK 17 from the repository root. The build uses a Java 8
113-
toolchain for compilation and every executable Minecraft/Forge gate:
112+
Run Gradle with exact Temurin `17.0.1+12` from the repository root. Install
113+
exact Temurin `25.0.3+9` for ForgeGradle's Mavenizer and exact Temurin
114+
`8.0.502+7` for Minecraft 1.10.2 production and fixture compilation. Java 17
115+
remains the Gradle runtime and production bytecode remains Java 8; the build
116+
rejects a different Java 8 toolchain. Hosted CI also proves an online bootstrap
117+
from an empty Gradle home followed by an offline replay from that same cache:
114118

115119
```powershell
116120
.\gradlew.bat clean check build javadoc verifyReleaseArtifacts writeReleaseChecksums --no-daemon

0 commit comments

Comments
 (0)