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
45 changes: 28 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Steam Advantage 1.15 CI
name: Steam Advantage 1.16 CI

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

permissions:
contents: read

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

jobs:
Expand All @@ -21,11 +21,22 @@ jobs:
steps:
- name: Check out SteamAdvantage
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Validate final Power source pin
shell: bash
run: |
set -euo pipefail
power_ref=$(sed -n 's/^poweradvantage_source_ref=//p' gradle.properties | tr -d '\r')
power_hash=$(sed -n 's/^poweradvantage_deobf_sha256=//p' gradle.properties | tr -d '\r')
if [[ ! "$power_ref" =~ ^[a-f0-9]{40}$ || ! "$power_hash" =~ ^[A-F0-9]{64}$ ]]; then
echo "::error::Final Power 1.16 dependency pin is pending."
exit 1
fi
echo "POWERADVANTAGE_SOURCE_REF=$power_ref" >> "$GITHUB_ENV"
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 5613baf876747ed071cb7ad7e2aff4e0ce4f0a03
ref: a113e5d767169189f0e35ade1e173a12d550b00e
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Use the same source bytes on hosted and local dependency builds.
Expand All @@ -34,13 +45,13 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: ac1781e7cade15045ffe0135077087b4d1722603
ref: 995f6cc4dd2d5eecc628a42e5c43fa5390c24bca
path: .ci-dependencies/BaseMetals
- name: Check out PowerAdvantage 1.15.2
- name: Check out PowerAdvantage 1.16.5
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/PowerAdvantage
ref: 6666099a734eba16561d98c86f3f4bb1b7c742f7
ref: bcb75bfa91c14751ebf1e31865e1ec0ffa82c0b7
path: .ci-dependencies/PowerAdvantage
- name: Install pinned Java 25 Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
Expand All @@ -66,7 +77,7 @@ jobs:
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
- name: Build 1.15.2 dependency chain
- name: Build 1.16.5 dependency chain
id: dependencies
shell: bash
run: |
Expand All @@ -77,12 +88,12 @@ jobs:
chmod +x "$orespawn/gradlew" "$basemetals/gradlew" "$power/gradlew"
(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"
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.116051-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.1.116051-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar verifyReleaseDependencies \
-PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" \
--no-daemon --stacktrace)
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.6.115021-deobf.jar"
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.7.116051-deobf.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar"
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
Expand All @@ -100,20 +111,20 @@ jobs:
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: SteamAdvantage-1.15.2-${{ github.sha }}
name: SteamAdvantage-1.16.5-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/SteamAdvantage-2.2.7.115021.jar
build/libs/SteamAdvantage-2.2.7.115021-sources.jar
build/libs/SteamAdvantage-2.2.7.115021-javadoc.jar
build/libs/SteamAdvantage-2.2.8.116051.jar
build/libs/SteamAdvantage-2.2.8.116051-sources.jar
build/libs/SteamAdvantage-2.2.8.116051-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.txt
- name: Upload diagnostics on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: SteamAdvantage-1.15.2-diagnostics-${{ github.sha }}
name: SteamAdvantage-1.16.5-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
Expand Down
31 changes: 21 additions & 10 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.15.2, 'feature/**']
branches: [master-1.16.5, 'feature/**']
pull_request:
branches: [master-1.15.2]
branches: [master-1.16.5]
schedule:
- cron: '53 7 * * 4'

Expand All @@ -21,11 +21,22 @@ jobs:
steps:
- name: Check out SteamAdvantage
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Validate final Power source pin
shell: bash
run: |
set -euo pipefail
power_ref=$(sed -n 's/^poweradvantage_source_ref=//p' gradle.properties | tr -d '\r')
power_hash=$(sed -n 's/^poweradvantage_deobf_sha256=//p' gradle.properties | tr -d '\r')
if [[ ! "$power_ref" =~ ^[a-f0-9]{40}$ || ! "$power_hash" =~ ^[A-F0-9]{64}$ ]]; then
echo "::error::Final Power 1.16 dependency pin is pending."
exit 1
fi
echo "POWERADVANTAGE_SOURCE_REF=$power_ref" >> "$GITHUB_ENV"
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 5613baf876747ed071cb7ad7e2aff4e0ce4f0a03
ref: a113e5d767169189f0e35ade1e173a12d550b00e
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Use the same source bytes on hosted and local dependency builds.
Expand All @@ -34,13 +45,13 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: ac1781e7cade15045ffe0135077087b4d1722603
ref: 995f6cc4dd2d5eecc628a42e5c43fa5390c24bca
path: .ci-dependencies/BaseMetals
- name: Check out PowerAdvantage 1.15.2
- name: Check out PowerAdvantage 1.16.5
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/PowerAdvantage
ref: 6666099a734eba16561d98c86f3f4bb1b7c742f7
ref: bcb75bfa91c14751ebf1e31865e1ec0ffa82c0b7
path: .ci-dependencies/PowerAdvantage
- name: Install pinned Java 25 Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
Expand All @@ -66,7 +77,7 @@ jobs:
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
- name: Build 1.15.2 dependency chain
- name: Build 1.16.5 dependency chain
id: dependencies
shell: bash
run: |
Expand All @@ -77,12 +88,12 @@ jobs:
chmod +x "$orespawn/gradlew" "$basemetals/gradlew" "$power/gradlew"
(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"
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.116051-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.1.116051-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar verifyReleaseDependencies \
-PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" \
--no-daemon --stacktrace)
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.6.115021-deobf.jar"
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.7.116051-deobf.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar"
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
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.15.2
- master-1.16.5
- 'feature/**'
pull_request:
branches:
- master-1.15.2
- master-1.16.5

permissions:
contents: read
Expand Down
25 changes: 25 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,28 @@
Steam Advantage 2.2.8.116051 (local port candidate)

- Read live redstone before the crusher and furnace resume after loading, preserving saved work and the first-tick steam heat bonus without changing the normal polling interval.
- Save real coal-boiler tank changes immediately, leave simulations unchanged, and return an empty result for null, empty or mismatched drain requests.
- Honour the water-only input of coal, electric and geothermal boilers even when empty, and safely refuse null, empty or mismatched fluid requests.
- Save accepted external tank changes in electric and geothermal boilers immediately, with the same simulation and client-side safeguards as the coal boiler.
- Keep pressure needles, fluid levels, flames and progress arrows inside their GUI frames, including invalid or oversized readings.
- Preserve pump fluid when a full receiver rejects it, and stop distillation before output would overflow.
- Consume actual liquid source blocks before crediting pumped fluid; native block removal otherwise preserves the source.
- Use native bucket pickup to retain waterlogged hosts; leave unsupported source blocks untouched without an air fallback.
- Allow a loaded musket to fire after its last cartridge was consumed during reload.
- Send nearby sounds only to loaded server players, preserving 16/50-block bounding-box ranges without scanning chunks.
- Pick musket targets from loaded server entities and stop shots at nearer terrain instead of damaging entities through walls.
- Target Minecraft 1.16.5 / Forge 36.2.34 with official 1.16.5 mappings.
- Keep Java 8 compilation and runtime with ForgeGradle 7.0.34 / Gradle 9.6.1.
- Use world-only conduit callbacks and Power Advantage's native tile lifecycle.
- Adapt native NBT load/save, client model predicates, rendering and item attributes.
- Use queued setup and native Forge fuel calculation.
- Preserve registry identities, recipe and trade quantities, machine ratios and NBT.
- Retain exact track/platform opacity, collision and redstone behavior.
- Add exact native level, persistence and callback regressions.
- Pin the Power Advantage build that preserves legacy Forge swimming speed, nametag distance, gravity and reach values and modifiers during upgrades.
- Check the current Java tests with both Gradle and the Eclipse compiler, alongside release and Eclipse audits against the pinned Power dependency.
- Recheck connected-machine upgrades, recipes, mining and full-restart operation through the shared Advantage Works rig; keep wider migration checks and manual acceptance separate.

Steam Advantage 2.2.7.115021

- Target Minecraft 1.15.2 / Forge 31.2.57 with snapshot 20200514-1.15.1 mappings and MCP 20200515.085601.
Expand Down
Loading
Loading