Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
0112964
Port Power Advantage to Minecraft 1.15.2
SkyBlade1978 Oct 26, 2026
7f46b41
Document the 1.15 build and validation checkpoints
SkyBlade1978 Oct 26, 2026
812d811
Pin the Mavenizer toolchain for cold builds
SkyBlade1978 Oct 26, 2026
b15e209
Preserve machine solidness with native Forge properties
SkyBlade1978 Oct 26, 2026
e3da24b
Check the resource pack format before building a release
SkyBlade1978 Oct 26, 2026
71ca986
Use pinned JDKs in every hosted Gradle build
SkyBlade1978 Oct 26, 2026
b00672a
Register recipe conditions after parallel mod setup
SkyBlade1978 Oct 26, 2026
75d24d2
Initialize the shared creative tab once
SkyBlade1978 Oct 26, 2026
a6466ea
Port the isolated Advantage Works harness to 1.15.2
SkyBlade1978 Oct 26, 2026
f2fe939
Check the 1.15 client and pin the tested Works inputs
SkyBlade1978 Oct 26, 2026
3237cc4
Keep world-generation sampling within normal server ticks
SkyBlade1978 Oct 26, 2026
6666099
Pin Base Metals 3.0.2 for native 1.15 builds
SkyBlade1978 Oct 26, 2026
b93768b
Use the corrected Base Metals jar in the test profiles
SkyBlade1978 Oct 26, 2026
59aeaa2
Record F client checks and retain strict harvest isolation
SkyBlade1978 Oct 26, 2026
a925bcd
Add native 1.15 migration and operating checks
SkyBlade1978 Oct 26, 2026
9f8cb7f
Record fresh F recipe and combined client passes
SkyBlade1978 Oct 26, 2026
b69b2bd
Record the 1.15 checks and prepare manual testing
SkyBlade1978 Oct 26, 2026
cb62e4b
Record the accepted 1.15 visuals and recipe unlocks
SkyBlade1978 Oct 27, 2026
ac0794f
Merge pull request #1 from SkyBlade1978/feature/poweradvantage-1.15.2…
SkyBlade1978 Oct 27, 2026
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
48 changes: 30 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Power Advantage 1.14 CI
name: Power Advantage 1.15 CI

on:
push:
branches: [master-1.14.4, 'feature/**']
branches: [master-1.15.2, 'feature/**']
pull_request:
branches: [master-1.14.4]
branches: [master-1.15.2]

permissions:
contents: read

concurrency:
group: poweradvantage-1.14-${{ github.workflow }}-${{ github.ref }}
group: poweradvantage-1.15-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand All @@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 9c2488cba02d317e3f31e24441dcc58273d8d0e6
ref: 5613baf876747ed071cb7ad7e2aff4e0ce4f0a03
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Use the same source bytes on hosted and local dependency builds.
Expand All @@ -34,8 +34,13 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 713802f93f2d1f650e1593fa35c487ea43add4a5
ref: ac1781e7cade15045ffe0135077087b4d1722603
path: .ci-dependencies/BaseMetals
- name: Install pinned Java 25 Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'
- name: Install Java 8 toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
Expand All @@ -44,8 +49,15 @@ jobs:
- name: Install Java 17 for Gradle
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: microsoft
java-version: '17'
distribution: temurin
java-version: '17.0.1+12'
- name: Use pinned build toolchains
# These are Gradle project properties, not JVM system properties.
shell: bash
run: >-
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64
-Porg.gradle.java.installations.auto-detect=false
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
- name: Build pinned development dependencies
Expand All @@ -56,37 +68,37 @@ jobs:
orespawn="$GITHUB_WORKSPACE/.ci-dependencies/OreSpawn"
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
chmod +x "$orespawn/gradlew" "$basemetals/gradlew"
(cd "$orespawn" && ./gradlew jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew jar --no-daemon --stacktrace)
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.1.114041-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.0.1.114041-deobf.jar"
(cd "$orespawn" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.1.115021-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.0.2.115021-deobf.jar"
test -f "$osjar" && test -f "$bmjar"
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
- name: Build and audit release artifacts
run: >-
./gradlew clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts
./gradlew $MMD_GRADLE_TOOLCHAINS clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts
writeReleaseChecksums verifyEclipseProductionClasspath
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }}
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }}
--no-daemon --stacktrace
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: PowerAdvantage-1.14.4-${{ github.sha }}
name: PowerAdvantage-1.15.2-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/PowerAdvantage-2.4.5.114041.jar
build/libs/PowerAdvantage-2.4.5.114041-sources.jar
build/libs/PowerAdvantage-2.4.5.114041-javadoc.jar
build/libs/PowerAdvantage-2.4.6.115021.jar
build/libs/PowerAdvantage-2.4.6.115021-sources.jar
build/libs/PowerAdvantage-2.4.6.115021-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.txt
- name: Upload diagnostics on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: PowerAdvantage-1.14.4-diagnostics-${{ github.sha }}
name: PowerAdvantage-1.15.2-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
Expand Down
34 changes: 23 additions & 11 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CodeQL

on:
push:
branches: [master-1.14.4, 'feature/**']
branches: [master-1.15.2, 'feature/**']
pull_request:
branches: [master-1.14.4]
branches: [master-1.15.2]
schedule:
- cron: '47 7 * * 4'

Expand All @@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 9c2488cba02d317e3f31e24441dcc58273d8d0e6
ref: 5613baf876747ed071cb7ad7e2aff4e0ce4f0a03
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Use the same source bytes on hosted and local dependency builds.
Expand All @@ -34,8 +34,13 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 713802f93f2d1f650e1593fa35c487ea43add4a5
ref: ac1781e7cade15045ffe0135077087b4d1722603
path: .ci-dependencies/BaseMetals
- name: Install pinned Java 25 Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'
- name: Install Java 8 toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
Expand All @@ -44,8 +49,15 @@ jobs:
- name: Install Java 17 for Gradle
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: microsoft
java-version: '17'
distribution: temurin
java-version: '17.0.1+12'
- name: Use pinned build toolchains
# These are Gradle project properties, not JVM system properties.
shell: bash
run: >-
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64
-Porg.gradle.java.installations.auto-detect=false
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
- name: Build pinned development dependencies
Expand All @@ -56,18 +68,18 @@ jobs:
orespawn="$GITHUB_WORKSPACE/.ci-dependencies/OreSpawn"
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
chmod +x "$orespawn/gradlew" "$basemetals/gradlew"
(cd "$orespawn" && ./gradlew jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew jar --no-daemon --stacktrace)
echo "orespawn=$orespawn/build/libs-dev/OreSpawn-4.1.1.114041-deobf.jar" >> "$GITHUB_OUTPUT"
echo "basemetals=$basemetals/build/libs-dev/BaseMetals-3.0.1.114041-deobf.jar" >> "$GITHUB_OUTPUT"
(cd "$orespawn" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
echo "orespawn=$orespawn/build/libs-dev/OreSpawn-4.1.1.115021-deobf.jar" >> "$GITHUB_OUTPUT"
echo "basemetals=$basemetals/build/libs-dev/BaseMetals-3.0.2.115021-deobf.jar" >> "$GITHUB_OUTPUT"
- name: Initialize CodeQL
uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
with:
languages: java-kotlin
- name: Compile production code
run: |
chmod +x ./gradlew
./gradlew clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace \
./gradlew $MMD_GRADLE_TOOLCHAINS clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace \
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }} \
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }}
- name: Analyze
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/validate-gradle-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: Validate Gradle Wrapper
on:
push:
branches:
- master-1.14.4
- master-1.15.2
- 'feature/**'
pull_request:
branches:
- master-1.14.4
- master-1.15.2

permissions:
contents: read
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
/test-rig/.gradle/
/test-rig/.cache/
/test-rig/build/
/test-rig/logs/
/test-rig/migration-probe/.gradle/
/test-rig/migration-probe/build/
/test-rig/migration/.venv/
Expand Down
13 changes: 13 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
Power Advantage 2.4.6.115021 (Minecraft 1.15.2)

- Move to Forge 31.2.57, snapshot mappings 20200514-1.15.1 and MCP 20200515.085601; retain ForgeGradle 7, Gradle 9.6.1 and Java 8 production bytecode.
- Use native interaction results and block properties, keeping solar panels solid and thin machinery non-solid.
- Allow conduit subclasses to supply native block properties without duplicating connection and lifecycle code.
- Use the native texture-atlas getters for GUI fluids and oil sprites; register frame cutout and oil translucent render layers during client setup.
- Update the still's light-query signature and retarget the shared legacy migration hook to 1.15 without renaming saved identities.
- Register recipe conditions on Forge's loading thread so parallel mod loading cannot intermittently remove recipes.
- Initialize the shared creative tab once when the three mods load together.
- Add 1.15-specific operating, migration, mining, recipe and client checks; the exact tested jars and remaining manual work are recorded in docs/1.15/CURRENT-QUALIFICATION.md.
- Record the accepted in-game visuals and recipe unlocks alongside the automated machine checks.
- Back up the entire world before upgrading and test only disposable copies. Earlier 1.14 acceptance does not qualify 1.15 upgrades.

Power Advantage 2.4.5.114041 (Minecraft 1.14.4)

- Move to Minecraft 1.14.4 and Forge 28.2.26, retaining existing registry names, saved-state keys and public API packages.
Expand Down
Loading
Loading