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
14 changes: 8 additions & 6 deletions .github/test-base-metals-pin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ chmod +x "$scratch/bin/gh"
export PATH="$scratch/bin:$PATH"
commit=1111111111111111111111111111111111111111
cd "$scratch/project"
for minecraft in 1.20.6 1.21.1 1.21.11; do
for minecraft in 1.20.6 1.21.1 1.21.11 26.1.2; do
printf 'minecraft_version=%s\nbasemetals_source_commit=%s\n' "$minecraft" "$commit" > gradle.properties
export EXPECTED_COMPARE="repos/MinecraftModDevelopmentMods/BaseMetals/compare/$commit...master-$minecraft"
export GITHUB_OUTPUT="$scratch/output"
Expand All @@ -44,9 +44,11 @@ for minecraft in 1.20.6 1.21.1 1.21.11; do
test ! -s "$GITHUB_OUTPUT"
done
done
printf 'minecraft_version=invalid\nbasemetals_source_commit=%s\n' "$commit" > gradle.properties
if bash "$verify" > "$scratch/invalid.log" 2>&1; then
echo 'Incorrectly accepted an invalid target' >&2
exit 1
fi
for minecraft in invalid 26.1 26.1.2/evil master-26.1.2 0.1.2; do
printf 'minecraft_version=%s\nbasemetals_source_commit=%s\n' "$minecraft" "$commit" > gradle.properties
if bash "$verify" > "$scratch/invalid.log" 2>&1; then
echo "Incorrectly accepted an invalid target: $minecraft" >&2
exit 1
fi
done
echo 'PASS: target-derived Base Metals ancestry guards and rejection controls'
2 changes: 1 addition & 1 deletion .github/verify-base-metals-pin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ if [[ ! "$commit" =~ ^[0-9a-f]{40}$ ]]; then
fi

minecraft="$(sed -n 's/^minecraft_version=//p' gradle.properties)"
if [[ ! "$minecraft" =~ ^1\.[0-9]+\.[0-9]+$ ]]; then
if [[ ! "$minecraft" =~ ^(1|[2-9][0-9])\.[0-9]+\.[0-9]+$ ]]; then
echo "::error::Expected a complete Minecraft target version in gradle.properties"
exit 1
fi
Expand Down
38 changes: 14 additions & 24 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: basePower 1.21.11 CI
name: basePower 26.1.2 CI

on:
push:
branches: [master-1.21.11, 'feature/**']
branches: [master-26.1.2, 'feature/**']
pull_request:
branches: [master-1.21.11]
branches: [master-26.1.2]

permissions:
contents: read

concurrency:
group: basepower-1.21.11-${{ github.workflow }}-${{ github.ref }}
group: basepower-26.1.2-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand All @@ -23,7 +23,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Test target-derived dependency guards
run: bash .github/test-base-metals-pin.sh
- name: Require the Base Metals pin on upstream master-1.21.11
- name: Require the Base Metals pin on upstream master-26.1.2
id: base-metals-pin
env:
GH_TOKEN: ${{ github.token }}
Expand All @@ -34,34 +34,24 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: ecad75b24309a344f712d898d717c6a8823fc9f2
ref: 101fd12b598934c353e417c57edc5c2bbefd5f53
path: .ci-dependencies/OreSpawn
- name: Check out pinned Base Metals
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 616d527e50e4bf0137eeb9c44fa586e34a0452a0
ref: 331fa46914f854db71a8c33500cc559a8878b7d3
path: .ci-dependencies/BaseMetals
- name: Install pinned Java 25 Mavenizer runtime
- name: Install Java 25 for Gradle, tools and Minecraft
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'
- name: Install Java 8 launcher helper
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'
- name: Install Java 21 for Gradle and production
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '21.0.7+6.0.LTS'
- 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
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME
-Porg.gradle.java.installations.auto-detect=false
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
Expand All @@ -78,8 +68,8 @@ jobs:
(cd "$basemetals" && bash gradle/stage-orespawn-release.sh "$mirror")
(cd "$orespawn" && bash gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
(cd "$basemetals" && bash gradlew $MMD_GRADLE_TOOLCHAINS jar -PorespawnVerificationRepository="$mirror" --no-daemon --stacktrace)
osjar="$orespawn/build/libs/OreSpawn-4.1.0.121111.jar"
bmjar="$basemetals/build/libs/BaseMetals-3.1.2.121111.jar"
osjar="$orespawn/build/libs/OreSpawn-4.1.1.2601021.jar"
bmjar="$basemetals/build/libs/BaseMetals-3.1.2.2601021.jar"
test -f "$osjar" && test -f "$bmjar"
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
Expand All @@ -90,12 +80,12 @@ jobs:
writeReleaseChecksums verifyEclipseProductionClasspath
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }}
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }}
-Pforge61MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}
-Pforge64MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}
--no-daemon --stacktrace
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: basePower-1.21.11-${{ github.sha }}
name: basePower-26.1.2-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
Expand All @@ -106,7 +96,7 @@ jobs:
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: basePower-1.21.11-diagnostics-${{ github.sha }}
name: basePower-26.1.2-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
Expand Down
30 changes: 10 additions & 20 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.21.11, 'feature/**']
branches: [master-26.1.2, 'feature/**']
pull_request:
branches: [master-1.21.11]
branches: [master-26.1.2]
schedule:
- cron: '47 7 * * 4'

Expand All @@ -23,7 +23,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Test target-derived dependency guards
run: bash .github/test-base-metals-pin.sh
- name: Require the Base Metals pin on upstream master-1.21.11
- name: Require the Base Metals pin on upstream master-26.1.2
id: base-metals-pin
env:
GH_TOKEN: ${{ github.token }}
Expand All @@ -34,34 +34,24 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: ecad75b24309a344f712d898d717c6a8823fc9f2
ref: 101fd12b598934c353e417c57edc5c2bbefd5f53
path: .ci-dependencies/OreSpawn
- name: Check out pinned Base Metals
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 616d527e50e4bf0137eeb9c44fa586e34a0452a0
ref: 331fa46914f854db71a8c33500cc559a8878b7d3
path: .ci-dependencies/BaseMetals
- name: Install pinned Java 25 Mavenizer runtime
- name: Install Java 25 for Gradle, tools and Minecraft
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'
- name: Install Java 8 launcher helper
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'
- name: Install Java 21 for Gradle and production
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '21.0.7+6.0.LTS'
- 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
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME
-Porg.gradle.java.installations.auto-detect=false
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
Expand All @@ -79,8 +69,8 @@ jobs:
chmod +x "$orespawn/gradlew" "$basemetals/gradlew"
(cd "$orespawn" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar -PorespawnVerificationRepository="$mirror" --no-daemon --stacktrace)
echo "orespawn=$orespawn/build/libs/OreSpawn-4.1.0.121111.jar" >> "$GITHUB_OUTPUT"
echo "basemetals=$basemetals/build/libs/BaseMetals-3.1.2.121111.jar" >> "$GITHUB_OUTPUT"
echo "orespawn=$orespawn/build/libs/OreSpawn-4.1.1.2601021.jar" >> "$GITHUB_OUTPUT"
echo "basemetals=$basemetals/build/libs/BaseMetals-3.1.2.2601021.jar" >> "$GITHUB_OUTPUT"
echo "mavenizer=$mavenizer" >> "$GITHUB_OUTPUT"
- name: Initialize CodeQL
uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
Expand All @@ -93,6 +83,6 @@ jobs:
./gradlew $MMD_GRADLE_TOOLCHAINS clean classes verifyReleaseDependencies --rerun-tasks --no-build-cache --no-daemon --stacktrace \
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }} \
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }} \
-Pforge61MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}
-Pforge64MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}
- name: Analyze
uses: github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
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.21.11
- master-26.1.2
- 'feature/**'
pull_request:
branches:
- master-1.21.11
- master-26.1.2

permissions:
contents: read
Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
basePower 2.4.16.2601021 (Minecraft 26.1.2)

- Require OreSpawn 4.1.1 so old generation rules keep their saved settings without enabling duplicate modern ore rules.
- Bring basePower to Forge 64 and Java 25 without renaming machines, items or saved data.
- Use the new screen extraction API and native sprite clipping for fluid gauges.
- Keep oil models tied to the current animated atlas, including after resource reloads.
- Register only our own block textures in the atlas, so another mod's small entity textures cannot break client startup.
- Use Minecraft's native container lock check and keep conveyors out of either locked half of a double chest.
- Keep the returned container when the fuel helper consumes the last item in a stack.
- Keep the saved enchantments on old dropped items and chest-minecart contents when Base Metals upgrades the world first.
- Update old OreSpawn output block names without replacing saved generation settings. Keep backups and reports, and stop for review rather than guess when saved rules conflict.
- Finish imported generation settings before opening the first world, including the old vanilla quartz name.
- Move the existing farmer and toolsmith trades to Minecraft's native trade data and tags, keeping their prices and quantities.
- Prepare selected, locked worlds before Minecraft relocates old world and player files. Keep world previews and fallback files read-only.
- Keep the shared Base Metals migration hook and add new test evidence for this target. Machine, upgrade, restart, graphical and two-world endurance checks pass, and manual testing is accepted.

basePower 2.4.15.121111 (Minecraft 1.21.11)

- Bring basePower to Forge 61 and Java 21, keeping the existing machine and world identities.
Expand Down
Loading
Loading