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
47 changes: 30 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Electric Advantage 1.15 CI
name: Electric 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: electricadvantage-1.15-${{ github.workflow }}-${{ github.ref }}
group: electricadvantage-1.16-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand All @@ -24,23 +24,36 @@ jobs:
- name: Use canonical LF dependency inputs
# Apply before every dependency checkout, including OreSpawn.
run: git config --global core.autocrlf false
- name: Require final PowerAdvantage pin
id: pins
shell: bash
run: |
set -euo pipefail
power_ref="$(sed -n 's/^poweradvantage_source_ref=//p' gradle.properties | tr -d '\r')"
power_sha="$(sed -n 's/^poweradvantage_deobf_sha256=//p' gradle.properties | tr -d '\r')"
if [[ "$power_ref" != "bcb75bfa91c14751ebf1e31865e1ec0ffa82c0b7" || "$power_sha" != "2FB923944A456B4F26AB2F9212C646469CE3F49BFD4DAE894C15559B48908386" ]]; then
echo "PowerAdvantage 1.16.5 source/deobf pin differs from the audited candidate" >&2
exit 1
fi
echo "power_ref=$power_ref" >> "$GITHUB_OUTPUT"
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 5613baf876747ed071cb7ad7e2aff4e0ce4f0a03
ref: a113e5d767169189f0e35ade1e173a12d550b00e
path: .ci-dependencies/OreSpawn
- name: Check out pinned Base Metals
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
# Local-only Power source; publish upstream before hosted builds.
ref: bcb75bfa91c14751ebf1e31865e1ec0ffa82c0b7
path: .ci-dependencies/PowerAdvantage
- name: Install pinned Java 25 Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
Expand All @@ -66,7 +79,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 +90,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 +113,20 @@ jobs:
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ElectricAdvantage-1.15.2-${{ github.sha }}
name: ElectricAdvantage-1.16.5-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/ElectricAdvantage-2.2.7.115021.jar
build/libs/ElectricAdvantage-2.2.7.115021-sources.jar
build/libs/ElectricAdvantage-2.2.7.115021-javadoc.jar
build/libs/ElectricAdvantage-2.2.8.116051.jar
build/libs/ElectricAdvantage-2.2.8.116051-sources.jar
build/libs/ElectricAdvantage-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: ElectricAdvantage-1.15.2-diagnostics-${{ github.sha }}
name: ElectricAdvantage-1.16.5-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
Expand Down
33 changes: 23 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: '59 7 * * 4'

Expand All @@ -24,23 +24,36 @@ jobs:
- name: Use canonical LF dependency inputs
# Apply before every dependency checkout, including OreSpawn.
run: git config --global core.autocrlf false
- name: Require final PowerAdvantage pin
id: pins
shell: bash
run: |
set -euo pipefail
power_ref="$(sed -n 's/^poweradvantage_source_ref=//p' gradle.properties | tr -d '\r')"
power_sha="$(sed -n 's/^poweradvantage_deobf_sha256=//p' gradle.properties | tr -d '\r')"
if [[ "$power_ref" != "bcb75bfa91c14751ebf1e31865e1ec0ffa82c0b7" || "$power_sha" != "2FB923944A456B4F26AB2F9212C646469CE3F49BFD4DAE894C15559B48908386" ]]; then
echo "PowerAdvantage 1.16.5 source/deobf pin differs from the audited candidate" >&2
exit 1
fi
echo "power_ref=$power_ref" >> "$GITHUB_OUTPUT"
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 5613baf876747ed071cb7ad7e2aff4e0ce4f0a03
ref: a113e5d767169189f0e35ade1e173a12d550b00e
path: .ci-dependencies/OreSpawn
- name: Check out pinned Base Metals
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
# Local-only Power source; publish upstream before hosted builds.
ref: bcb75bfa91c14751ebf1e31865e1ec0ffa82c0b7
path: .ci-dependencies/PowerAdvantage
- name: Install pinned Java 25 Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
Expand All @@ -66,7 +79,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 +90,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
22 changes: 22 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
Electric Advantage 2.2.8.116051 (local port candidate)

- Check generator redstone before the first power pulse so a disabled solar panel cannot produce a startup burst.
- Sample machine redstone on first use after loading so the interlock applies before the first eight-tick cache refresh.
- Use native bucket pickup in electric pumps so waterlogged blocks survive draining and non-pickup blocks remain untouched.
- Keep hydroturbines anchored so flowing water cannot accumulate unused linear motion that native loading discards.
- Send machine and generator sounds to existing nearby players without querying chunks; skip players without connections.
- Limit growth-controller electricity requests to available input capacity and account for energy already stored.
- Sample solar light above the solid panel and keep turret beams from colliding with their own mounting post.
- Preserve still input and electricity when the output tank cannot hold a complete distillation result.
- Keep progress and fluid indicators inside their GUI frames.
- Show the hydroelectric generator's output on the same 0-to-1 scale as the other generators, without changing its energy production.
- Fix restricted-JDK access errors in Eclipse test fixtures and include those restrictions in the independent compiler check; gameplay code is unchanged.
- Target Minecraft 1.16.5, Forge 36.2.34, official 1.16.5 mappings and MCP 20210115.111550.
- Retain Java 8 runtime/bytecode, Java 17 Gradle, Java 25 Mavenizer, ForgeGradle 7.0.34 and Gradle 9.6.1.
- Use native renderer buffers, state-aware tile persistence and world-only Power Advantage conduit callbacks.
- Retain lithium/sulfur mining levels through native correct-tool checks and serialize recipe-condition registration with enqueueWork.
- Preserve registry IDs, legacy aliases, NBT keys, balance constants, recipes, discoveries and asset bytes from the accepted 1.15 source.
- Pin Power Advantage's repair for old Forge swimming speed, name-tag distance, gravity and player reach; keep exact release audits and dependencies outside the jar.
- Check the current Java tests with both Gradle and the Eclipse compiler, alongside release and Eclipse audits against the pinned dependencies.
- Recheck connected-machine upgrades, recipes, mining, loot and full-restart operation through the shared Advantage Works rig; keep wider migration checks and manual acceptance separate.

Electric Advantage 2.2.7.115021

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