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
24 changes: 12 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
name: IronAgeFurniture 1.20.1 CI
name: IronAgeFurniture NeoForge 1.20.1 CI

on:
push:
branches:
- master-1.20.1
- master-1.20.1-neo
- 'feature/**'
pull_request:
branches:
- master-1.20.1
- master-1.20.1-neo

permissions:
contents: read

concurrency:
group: iron-age-furniture-1.19-${{ github.workflow }}-${{ github.ref }}
group: iron-age-furniture-1.20.1-neoforge-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
cold-forge-bootstrap:
name: Cold Forge bootstrap
name: Cold early-NeoForge bootstrap
runs-on: ubuntu-latest
timeout-minutes: 60

Expand All @@ -44,7 +44,7 @@ jobs:
distribution: temurin
java-version: '17.0.1+12'

- name: Bootstrap Forge from an empty cache
- name: Bootstrap early NeoForge from an empty cache
shell: bash
env:
GRADLE_USER_HOME: ${{ runner.temp }}/iron-age-furniture-cold-gradle
Expand All @@ -62,7 +62,7 @@ jobs:
| tee "$RUNNER_TEMP/cold-forge-bootstrap.log"
grep -F "OreSpawn Mavenizer compatibility runtime: Java 25.0.3" \
"$RUNNER_TEMP/cold-forge-bootstrap.log"
grep -F "OreSpawn Mavenizer compatibility: applied 8 rule(s) for net.minecraftforge:forge:1.20.1-47.4.10" \
grep -F "OreSpawn Mavenizer compatibility: applied 8 rule(s) for net.neoforged:forge:1.20.1-47.1.106" \
"$RUNNER_TEMP/cold-forge-bootstrap.log"
find "$GRADLE_USER_HOME" .gradle/mavenizer \
-name '*.orespawn-compatibility' -type f -print0 \
Expand Down Expand Up @@ -135,21 +135,21 @@ jobs:
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: iron-age-furniture-1.20.1-${{ github.sha }}
name: iron-age-furniture-1.20.1-neoforge-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/iron-age-furniture-0.3.0.120011.jar
build/libs/iron-age-furniture-0.3.0.120011-sources.jar
build/libs/iron-age-furniture-0.3.0.120011-javadoc.jar
build/libs/iron-age-furniture-0.3.0.120012.jar
build/libs/iron-age-furniture-0.3.0.120012-sources.jar
build/libs/iron-age-furniture-0.3.0.120012-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.md

- name: Upload diagnostics on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: iron-age-furniture-1.20.1-diagnostics-${{ github.sha }}
name: iron-age-furniture-1.20.1-neoforge-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: CodeQL
on:
push:
branches:
- master-1.20.1
- master-1.20.1-neo
- 'feature/**'
pull_request:
branches:
- master-1.20.1
- master-1.20.1-neo
schedule:
- cron: '43 7 * * 4'

Expand Down Expand Up @@ -69,7 +69,7 @@ jobs:
echo "CodeQL compilation failed after $attempt attempts." >&2
exit 1
fi
echo "::warning::CodeQL compilation attempt $attempt failed; retrying with the preserved Forge cache."
echo "::warning::CodeQL compilation attempt $attempt failed; retrying with the preserved early-NeoForge ForgeGradle cache."
done

- 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.20.1
- master-1.20.1-neo
- 'feature/**'
pull_request:
branches:
- master-1.20.1
- master-1.20.1-neo

permissions:
contents: read
Expand Down
22 changes: 14 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
# IronAgeFurniture 0.3.0.120011
# IronAgeFurniture 0.3.0.120012

First IronAgeFurniture release for Minecraft 1.20.1 and Forge 47.4.10.
First IronAgeFurniture release for Minecraft 1.20.1 and early NeoForge. It is
built against NeoForge 47.1.106 and supports the 47.1.99+ 47.x line.

## Player-visible changes

- Add furniture for the vanilla mangrove, cherry, and bamboo wood families.
- Support the Biomes O' Plenty wood set shared by its compatible 1.20.1
releases, and conditionally add Empyreal, Maple, and Pine furniture when BOP
19.0.0.96 or newer is installed, without imposing a minimum BOP version.
- Support the complete Biomes O' Plenty 18.0.0.598 wood set. BOP 19.0.0.96 and
its GlitchCore dependency require Forge 47.3+ and cannot start on early
NeoForge 47.1, so its extra Empyreal, Maple, and Pine tier is not advertised
for this branch.
- Replace the retired Oh The Biomes You'll Go integration with Oh The Biomes
We've Gone furniture, while retaining Immersive Engineering treated-wood
We've Gone furniture using BWG 1.5.11, the newest 1.20.1 build explicitly
published for NeoForge, while retaining Immersive Engineering treated-wood
furniture.
- Remap IronAgeFurniture's former Biomes O' Plenty cherry furniture to vanilla
cherry. On installations with BWG, remap supported BYG furniture names to
Expand Down Expand Up @@ -37,15 +40,18 @@ First IronAgeFurniture release for Minecraft 1.20.1 and Forge 47.4.10.
resource, configuration, entity, NBT, and saved-world identities.
- Keep the supported Java API namespace at
`zone.moddev.mc.ironagefurniture`. The Maven coordinate is
`zone.moddev.mc:iron-age-furniture:0.3.0.120011`.
`zone.moddev.mc:iron-age-furniture:0.3.0.120012`.
- Add a deterministic, checked-in furniture catalog covering registrations,
blockstates, models, recipes, advancements, and translations.
- Resolve each generated optional wood model to that wood's actual texture
layout, including BWG's nested texture paths and current Immersive Engineering
treated-wood paths.
- Verify the supported optional integrations with pinned positive-path runtime
probes while keeping their test fixtures out of release artifacts.
- Build with ForgeGradle 7.0.34, Gradle 9.6.1, and pinned Java toolchains.
- Build the early-NeoForge `net.neoforged:forge` artifact with ForgeGradle
7.0.34, Gradle 9.6.1, and pinned Java toolchains.
- Preserve the loader's Forge-era Java API, `mods.toml`, and `forge:*`
conditional-data contracts while publishing this target as NeoForge.
- Produce deterministic main, sources, and Javadoc jars with SHA-256 checksums.
- Provide reproducible Eclipse/Buildship setup and guarded CI, validation, and
release workflows.
Expand Down
31 changes: 20 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[![Discord](https://img.shields.io/badge/Discord-MMD-green.svg?style=flat&logo=Discord)](https://discord.moddev.zone)
[![CurseForge](https://img.shields.io/badge/CurseForge-Iron%20Age%20Furniture-orange.svg)](https://www.curseforge.com/minecraft/mc-mods/iron-age-furniture)
[![Build, test, and audit](https://github.com/MinecraftModDevelopmentMods/IronAgeFurniture/actions/workflows/ci.yml/badge.svg?branch=master-1.20.1)](https://github.com/MinecraftModDevelopmentMods/IronAgeFurniture/actions/workflows/ci.yml?query=branch%3Amaster-1.20.1)
[![Build, test, and audit](https://github.com/MinecraftModDevelopmentMods/IronAgeFurniture/actions/workflows/ci.yml/badge.svg?branch=master-1.20.1-neo)](https://github.com/MinecraftModDevelopmentMods/IronAgeFurniture/actions/workflows/ci.yml?query=branch%3Amaster-1.20.1-neo)

# IronAgeFurniture

Expand All @@ -9,9 +9,14 @@ olde-style furniture to Minecraft. Seating is functional, furniture supports
the appropriate vanilla and optional-mod materials, and lighting includes
falling and throwable lava lamps.

This branch provides IronAgeFurniture `0.3.0.120011` for Minecraft 1.20.1 and
Forge 47.4.10. It requires Java 17 and can be installed on both clients and
dedicated servers.
This branch provides IronAgeFurniture `0.3.0.120012` for Minecraft 1.20.1 and
early NeoForge 47.1.99 or newer in the 47.x line. It is built against NeoForge
47.1.106, requires Java 17, and can be installed on both clients and dedicated
servers.

NeoForge 1.20.1 retained the Forge-era Java API, `mods.toml`, `forge:*` data
conditions, and ForgeGradle user-development contract. Those names are
therefore intentional on this branch and do not indicate a Forge loader build.

## Optional integrations

Expand All @@ -25,11 +30,15 @@ installed:
They are optional. Their recipes and recipe advancements are conditionally
loaded, so a normal installation does not need any of them.

Biomes O' Plenty 18 and 19 both receive furniture for their shared wood set.
When BOP 19.0.0.96 or newer is detected, IronAgeFurniture additionally enables
Empyreal, Maple, and Pine furniture. This does not impose a minimum BOP version.
Back up a world before downgrading from BOP 19 to BOP 18: those three source
woods, and furniture made from them, are not available in BOP 18.
The positive-path compatibility set pins BWG 1.5.11, the newest published
1.20.1 build explicitly marked for NeoForge. Later Forge-only BWG releases
require Forge 47.4+ and are not compatible with this early NeoForge line.

The tested Biomes O' Plenty target is 18.0.0.598, which receives furniture for
its complete 1.20.1 wood set. BOP 19.0.0.96 was also inspected, but it and its
GlitchCore dependency require Forge 47.3+ and cannot start on the early
NeoForge 47.1 line. Its Empyreal, Maple, and Pine tier is therefore not
advertised as supported by this branch.

## Compatibility

Expand All @@ -42,7 +51,7 @@ migration.

The supported Java source namespace is
`zone.moddev.mc.ironagefurniture`. The Maven coordinate is
`zone.moddev.mc:iron-age-furniture:0.3.0.120011`.
`zone.moddev.mc:iron-age-furniture:0.3.0.120012`.

See [CHANGELOG.md](CHANGELOG.md) for the release notes and
[docs/VERSIONS.md](docs/VERSIONS.md) for the versioning scheme. Bugs can be
Expand All @@ -60,7 +69,7 @@ gradlew.bat clean check build javadoc verifyReleaseArtifacts verifyReleaseChecks
```

Before importing the nested project into its Eclipse workspace, generate the
reproducible Buildship metadata and Forge launch profiles with:
reproducible Buildship metadata and early-NeoForge launch profiles with:

```text
gradlew.bat prepareEclipse verifyEclipseProductionClasspath
Expand Down
Loading
Loading