Bootstrap Warium NeoForge port scaffold
Some checks failed
Build / build (push) Failing after 13m38s
Release Dry Run / release-dry-run (push) Successful in 5s
Codex Template Compliance / template-compliance (push) Successful in 5s

This commit is contained in:
Codex
2026-05-09 20:59:05 +02:00
commit 6ef5fdd378
36 changed files with 3073 additions and 0 deletions

43
docs/agent-handoff.md Normal file
View File

@@ -0,0 +1,43 @@
# Agent Handoff
Use this file when a task spans multiple sessions, has unresolved follow-up work, or changes release behavior.
## Current State
```text
Private NeoForge 21.1.225 port scaffold is implemented. It generates registry stubs and extracted resources from the verified Warium 1.2.7 jar in CI, but original behavior systems still need manual porting from the decompiled output.
```
## Changes Made
- Bootstrapped repository from `codex-agent-repository-kit`.
- Added NeoForge/Gradle Java 21 project files.
- Added scripts for Warium jar download, SHA1 verification, inventory extraction, source/resource generation, decompilation, runtime dependency download, and registry parity checks.
- Added Gitea build workflow with artifact upload, private package publishing, and server smoke-test step.
## Verification
| Check | Result |
| --- | --- |
| `python tools/generate_port_sources.py` | Passed locally with bundled Python |
| `python tools/registry_parity.py` | Passed locally: 448 blocks, 326 standalone items |
| `python tools/prepare_runtime_mods.py` | Passed locally for GeckoLib and RPL |
| `./gradlew --no-daemon build` | Pending Gitea runner; local Java is not installed |
| `./gradlew --no-daemon runData` | Pending Gitea runner; local Java is not installed |
## Open Questions
- Warium license conflict remains unresolved: Modrinth shows ARR, jar metadata shows AFL-3.0.
- Real NeoForge 1.21.1 WariumAPI/WariumVS artifacts were not found during planning; the repo currently declares compatibility shim mod metadata.
## Next Steps
- Push to `MrSphay/Warium-NeoForge-1.21.1` and poll Gitea Actions.
- Fix any Gradle/NeoForge compile errors found by the runner.
- Port original MCreator behavior systems from `build/decompiled/warium-1.2.7`.
- Replace WariumAPI/WariumVS shims with real dependencies when available.
## Risks
- Current jar is not a complete gameplay port; it preserves many registry/resource IDs but not the original machine, weapon, projectile, AI, GUI, networking, or nuclear behavior.
- Public release must wait for rights clearance.

View File

@@ -0,0 +1,793 @@
{
"blocks_from_blockstates": [
"active_robot_chute",
"advanced_alloy_block",
"after_burner",
"ai_mine",
"aimer_node",
"aluminum_ac_barrel",
"aluminum_ac_barrel_black",
"aluminum_ac_barrel_blue",
"aluminum_ac_barrel_brown",
"aluminum_ac_barrel_cyan",
"aluminum_ac_barrel_dark_gray",
"aluminum_ac_barrel_gray",
"aluminum_ac_barrel_green",
"aluminum_ac_barrel_light_blue",
"aluminum_ac_barrel_light_gray",
"aluminum_ac_barrel_lime",
"aluminum_ac_barrel_magenta",
"aluminum_ac_barrel_orange",
"aluminum_ac_barrel_pink",
"aluminum_ac_barrel_purple",
"aluminum_ac_barrel_red",
"aluminum_ac_barrel_white",
"aluminum_ac_barrel_yellow",
"aluminum_block",
"aluminum_plating",
"aluminum_plating_black",
"aluminum_plating_blue",
"aluminum_plating_brown",
"aluminum_plating_cyan",
"aluminum_plating_dark_gray",
"aluminum_plating_gray",
"aluminum_plating_green",
"aluminum_plating_light_blue",
"aluminum_plating_light_gray",
"aluminum_plating_lime",
"aluminum_plating_magenta",
"aluminum_plating_orange",
"aluminum_plating_pink",
"aluminum_plating_purple",
"aluminum_plating_red",
"aluminum_plating_slab",
"aluminum_plating_slab_black",
"aluminum_plating_slab_blue",
"aluminum_plating_slab_brown",
"aluminum_plating_slab_cyan",
"aluminum_plating_slab_dark_gray",
"aluminum_plating_slab_gray",
"aluminum_plating_slab_green",
"aluminum_plating_slab_light_blue",
"aluminum_plating_slab_light_gray",
"aluminum_plating_slab_lime",
"aluminum_plating_slab_magenta",
"aluminum_plating_slab_orange",
"aluminum_plating_slab_pink",
"aluminum_plating_slab_purple",
"aluminum_plating_slab_red",
"aluminum_plating_slab_white",
"aluminum_plating_slab_yellow",
"aluminum_plating_stairs",
"aluminum_plating_stairs_black",
"aluminum_plating_stairs_blue",
"aluminum_plating_stairs_brown",
"aluminum_plating_stairs_cyan",
"aluminum_plating_stairs_dark_gray",
"aluminum_plating_stairs_gray",
"aluminum_plating_stairs_green",
"aluminum_plating_stairs_light_blue",
"aluminum_plating_stairs_light_gray",
"aluminum_plating_stairs_lime",
"aluminum_plating_stairs_magenta",
"aluminum_plating_stairs_orange",
"aluminum_plating_stairs_pink",
"aluminum_plating_stairs_purple",
"aluminum_plating_stairs_red",
"aluminum_plating_stairs_white",
"aluminum_plating_stairs_yellow",
"aluminum_plating_trapdoor",
"aluminum_plating_trapdoor_black",
"aluminum_plating_trapdoor_blue",
"aluminum_plating_trapdoor_brown",
"aluminum_plating_trapdoor_cyan",
"aluminum_plating_trapdoor_dark_gray",
"aluminum_plating_trapdoor_gray",
"aluminum_plating_trapdoor_green",
"aluminum_plating_trapdoor_light_blue",
"aluminum_plating_trapdoor_light_gray",
"aluminum_plating_trapdoor_lime",
"aluminum_plating_trapdoor_magenta",
"aluminum_plating_trapdoor_orange",
"aluminum_plating_trapdoor_pink",
"aluminum_plating_trapdoor_purple",
"aluminum_plating_trapdoor_red",
"aluminum_plating_trapdoor_white",
"aluminum_plating_trapdoor_yellow",
"aluminum_plating_white",
"aluminum_plating_yellow",
"aluminum_side_panel",
"aluminum_side_panel_black",
"aluminum_side_panel_blue",
"aluminum_side_panel_brown",
"aluminum_side_panel_cyan",
"aluminum_side_panel_dark_gray",
"aluminum_side_panel_gray",
"aluminum_side_panel_green",
"aluminum_side_panel_light_blue",
"aluminum_side_panel_light_gray",
"aluminum_side_panel_lime",
"aluminum_side_panel_magenta",
"aluminum_side_panel_orange",
"aluminum_side_panel_pink",
"aluminum_side_panel_purple",
"aluminum_side_panel_red",
"aluminum_side_panel_white",
"aluminum_side_panel_yellow",
"ancient_light",
"ancient_well",
"artillery_autoloader",
"artillery_barrel",
"artillery_charge_loader",
"artillerybreech",
"asphalt",
"asphalt_slab",
"assembly_centrifuge_bottom",
"assembly_centrifuge_middle",
"assembly_centrifuge_top",
"assembly_circuit_fabricator",
"assembly_crusher",
"assembly_depot",
"assembly_furnace",
"assembly_machine",
"assembly_mechanical_fabricator",
"autocannon",
"autocannon_barrel",
"autocannon_drum",
"autoloader",
"battle_cannon_barrel",
"battle_cannon_breech",
"battle_cannon_mantlet",
"bauxite",
"bauxite_digester",
"beryllium_block",
"beryllium_ore",
"black_armor",
"black_armor_optic",
"black_armor_slab",
"black_armor_stairs",
"black_armor_trapdoor",
"blast_funnel",
"blast_furnace",
"blast_furnace_bricks",
"blue_armor",
"blue_armor_optic",
"blue_armor_slab",
"blue_armor_stairs",
"blue_armor_trapdoor",
"brass_block",
"breeder_reactor_core",
"breeder_reactor_interface",
"breeder_reactor_port",
"brown_armor",
"brown_armor_optic",
"brown_armor_slab",
"brown_armor_stairs",
"brown_armor_trapdoor",
"burntgrass",
"charred_block",
"chlorine_gas",
"cluster_of_bombs",
"compressed_air",
"concrete_wall",
"control_rod",
"conveyor",
"conveyor_splitter",
"countermeasure_dispenser",
"covered_flame_thrower_barrel",
"covered_machine_gun_barrel",
"cracked_concrete",
"cracked_concrete_wall",
"crude_oil",
"cyan_armor",
"cyan_armor_optic",
"cyan_armor_slab",
"cyan_armor_stairs",
"cyan_armor_trapdoor",
"damaged_concrete",
"damaged_concrete_wall",
"damagedfueltank",
"deepslate_lead_ore",
"defense_core",
"destroyed_concrete",
"destroyed_concrete_wall",
"diesel",
"drive_shaft",
"electric_firebox",
"empty_fuel_rods",
"empty_missile_hardpoint",
"energy_battery",
"energy_distribution_node",
"energy_node",
"engine_cyllinder",
"era_1",
"era_2",
"era_3",
"era_4",
"explosive_barrel",
"extension_shaft",
"fire_spear_missile_hardpoint",
"firebox",
"fission_bomb",
"flame_thrower",
"flame_thrower_barrel",
"foundry",
"fractured_concrete",
"fractured_concrete_wall",
"fuel_rods_1",
"fuel_rods_2",
"fuel_rods_3",
"fuel_rods_4",
"fuel_tank",
"fuel_tank_input",
"fuel_tank_module",
"fusion_bomb",
"gas_bomb",
"gas_dispenser",
"generator",
"giant_coil",
"glass_trapdoor",
"gray_armor",
"gray_armor_optic",
"gray_armor_slab",
"gray_armor_stairs",
"gray_armor_trapdoor",
"green_armor",
"green_armor_optic",
"green_armor_slab",
"green_armor_stairs",
"green_armor_trapdoor",
"harddirt",
"heavy_machine_gun",
"hydrazine",
"item_incinerator",
"jet_compressor",
"jet_exhaust",
"jet_gearbox",
"jet_turbine",
"kerosene",
"land_mine",
"large_electric_motor",
"large_engine_smokestack",
"large_rocket_pod",
"large_rocket_pod_chamber",
"lead_block",
"lead_ore",
"light_autocannon",
"light_blue_armor",
"light_blue_armor_optic",
"light_blue_armor_slab",
"light_blue_armor_stairs",
"light_blue_armor_trapdoor",
"light_gray_armor",
"light_gray_armor_optic",
"light_gray_armor_slab",
"light_gray_armor_stairs",
"light_gray_armor_trapdoor",
"light_machine_gun",
"light_wood_block",
"light_wood_frame",
"light_wood_side_panel",
"light_wood_slab",
"light_wood_stairs",
"light_wood_trapdoor",
"lime_armor",
"lime_armor_optic",
"lime_armor_slab",
"lime_armor_stairs",
"lime_armor_trapdoor",
"liquid_hydrogen",
"liquid_oxygen",
"lithium_block",
"lithium_ore",
"loot_box",
"machine_gun",
"machine_gun_barrel",
"magenta_armor",
"magenta_armor_optic",
"magenta_armor_slab",
"magenta_armor_stairs",
"magenta_armor_trapdoor",
"manual_aimer",
"manual_crank",
"medium_diesel_engine",
"medium_petrol_engine",
"mineral_grinder",
"mini_gun_barrel",
"minigun",
"mortar",
"nickel_block",
"nickel_ore",
"niobium_block",
"nitrate_block",
"node_trigger",
"node_trigger_on",
"offset_era_1",
"offset_era_2",
"offset_era_3",
"offset_era_4",
"oil",
"oil_firebox",
"open_summonation",
"orange_armor",
"orange_armor_optic",
"orange_armor_slab",
"orange_armor_stairs",
"orange_armor_trapdoor",
"ordinance_cluster_warhead",
"ordinance_controller",
"ordinance_core",
"ordinance_fins",
"ordinance_fission_initiator_head",
"ordinance_heavy_warhead",
"ordinance_incendiary_warhead",
"ordinance_inline_fission_warhead",
"ordinance_inline_fusion_warhead_stage_1",
"ordinance_inline_fusion_warhead_stage_2",
"ordinance_inline_warhead",
"ordinance_ir_seeker_head",
"ordinance_kinetic_head",
"ordinance_relocator",
"ordinance_sarh_seeker",
"ordinance_thruster",
"overgrown_reenforced_concrete",
"passenger_seat",
"petrolium",
"phosphate_block",
"pink_armor",
"pink_armor_optic",
"pink_armor_slab",
"pink_armor_stairs",
"pink_armor_trapdoor",
"plutonium_block",
"polished_bauxite",
"polished_trinitite",
"power_reactor_interface",
"power_reactor_port",
"production_input",
"production_output",
"purple_armor",
"purple_armor_optic",
"purple_armor_slab",
"purple_armor_stairs",
"purple_armor_trapdoor",
"pyrochlore_block",
"pyrochlore_ore",
"rac_barrel",
"radar_spear_missile_hardpoint",
"radioactive_ash",
"radioactive_ash_full_block",
"raw_beryllium_block",
"raw_lead_block",
"raw_lithium_block",
"raw_nickel_block",
"raw_uranium_block",
"raw_zinc_block",
"razor_wire",
"reaction_chamber",
"reactor_casing",
"rebar",
"red_armor",
"red_armor_optic",
"red_armor_slab",
"red_armor_stairs",
"red_armor_trapdoor",
"redirector_shaft",
"redstone_tnt",
"reenforced_concrete",
"refinery",
"refinery_tower",
"reinforced_glass",
"reinforced_glass_stairs",
"reinforced_glass_trapdoor",
"robot_chute",
"rocket_pod",
"rocket_pod_chamber",
"rotary_auto_cannon",
"rusty_block",
"rusty_slab",
"rusty_stairs",
"rusty_trapdoor",
"sand_bags",
"scorch_dirt",
"seeker_spear_missile_hardpoint",
"sheet_metal",
"sheet_metal_pane",
"sheet_metal_slab",
"sheet_metal_stairs",
"siren",
"small_bomb",
"small_diesel_engine",
"small_petrol_engine",
"smoke_bomb",
"smoke_launcher",
"solar_generator",
"steel_block",
"steel_door",
"steel_optic",
"steel_plating",
"steel_plating_slab",
"steel_plating_stairs",
"steel_trapdoor",
"steel_truss",
"strike_spear_missile_hardpoint",
"structural_concrete",
"sulfur_block",
"sulfur_ore",
"sulfuric_acid",
"summonation",
"summonator",
"summonator_active",
"summonator_module",
"tar",
"thermal_furnace",
"thick_battle_cannon_barrel",
"tinted_glass_stairs",
"tinted_glass_trapdoor",
"torpedo_thruster",
"trinitite",
"trinitite_glass",
"trinitite_glass_stairs",
"trinitite_glass_trapdoor",
"type_1_bc_muzzle_brake",
"type_2_bc_muzzle_brake",
"uranium_depleted_block",
"uranium_enriched_block",
"uranium_neutral_block",
"uranium_ore",
"white_armor",
"white_armor_optic",
"white_armor_slab",
"white_armor_stairs",
"white_armor_trapdoor",
"wire_fence",
"yellow_armor",
"yellow_armor_optic",
"yellow_armor_slab",
"yellow_armor_stairs",
"yellow_armor_trapdoor",
"zinc_block",
"zinc_ore"
],
"counts": {
"blockstates": 448,
"classes": 4703,
"entities": 167,
"item_models": 763,
"loot_tables": 435,
"procedures": 3063,
"recipes": 505,
"standalone_items": 326
},
"modid": "crusty_chunks",
"source": "Warium 1.2.7",
"source_sha1": "528d81630a23fb4004e3abdd99b16bd225cd1e92",
"standalone_items_from_item_models": [
"advanced_alloy_component",
"advanced_alloy_ingot",
"advanced_alloy_mixture",
"advanced_automatic_rifle_receiver",
"advanced_component",
"advanced_pistol_receiver",
"aimer",
"aluminate_dust",
"aluminum_dust",
"aluminum_ingot",
"aluminum_plate",
"aluminum_tiny_dust",
"ap_large_bullet",
"ap_shell",
"apfsds_projectile",
"armor_peeler_animated",
"armor_peeler_rocket",
"armor_peeler_unloaded",
"artillery_shell",
"artillery_solid_shell",
"assassin_spawn_egg",
"auto_pistol",
"automatic_rifle",
"automatic_rifle_receiver",
"basic_receiver",
"battle_rifle",
"bauxite_dust",
"bent_component",
"beryllium_dust",
"beryllium_ingot",
"bird_shot",
"blast_armor_boots",
"blast_armor_chestplate",
"blast_armor_helmet",
"blast_armor_leggings",
"blast_clay",
"blast_furnace_brick",
"body_armor_chestplate",
"bolt_action_receiver",
"bolt_action_rifle_animated",
"bored_component",
"brass_dust",
"brass_fitting",
"brass_ingot",
"brass_plate",
"breacher_spawn_egg",
"break_action_shotgun_animated",
"breech_rifle",
"bullet",
"bullet_resistant_helmet_2_helmet",
"bullet_resistant_helmet_3_helmet",
"bullet_resistant_helmet_4_helmet",
"bullet_resistant_helmet_helmet",
"burst_rifle",
"cable",
"cast_component",
"chaff_charge",
"chisel",
"chlorine_dust",
"chlorine_gas_bucket",
"ciws_spawn_egg",
"combustion_cylinder",
"commander_spawn_egg",
"component_foundry_template",
"compressed_advanced_mixture",
"compressed_air_bucket",
"copper_coil",
"copper_dust",
"copper_plate",
"copper_wire",
"crude_oil_bucket",
"cut_component",
"cutters",
"cylinder_foundry_template",
"decimator_spawn_egg",
"diesel_bucket",
"electric_motor",
"ember_particle",
"energy_meter",
"engine_component",
"enriched_lithium_ingot",
"enriched_lithium_nugget",
"era_tile",
"eradication",
"eradicator_spawn_egg",
"extra_large_bullet",
"extra_large_casing",
"extra_large_projectile",
"extra_large_projectile_template",
"filtered_aluminate_dust",
"filtered_pyrochlore_dust",
"fire_agent",
"fire_artillery_shell",
"fire_spear_rocket",
"firing_mechanism",
"firing_pin",
"fission_core",
"flak_projectile",
"flak_shell",
"flame_thrower_animated",
"flame_thrower_tank_chestplate",
"flamer_spawn_egg",
"flare_charge",
"flare_pistol",
"foundry_template",
"fuel_hose",
"fuel_rod",
"fusion_core",
"gas_artillery_shell",
"gas_canister",
"gas_mask_helmet",
"gas_mask_helmet_helmet",
"geiger_counter",
"gold_dust",
"grenade",
"grenade_launcher",
"grenade_shell",
"hammer",
"hand_drill",
"he_projectile",
"heat_projectile",
"heat_shell",
"hollowed_extra_large_projectile",
"hollowed_huge_projectile",
"hollowed_large_projectile",
"huge_barrel_foundry_template",
"huge_bored_barrel",
"huge_bullet",
"huge_cannon_foundry_template",
"huge_casing",
"huge_he_bullet",
"huge_projectile",
"huge_projectile_foundry_template",
"huge_unbored_barrel",
"huge_unbored_cannon_barrel",
"hunter_spawn_egg",
"hydrazine_bucket",
"impact_fuze",
"implosion_lens",
"implosion_module",
"incendiary_bottle",
"incendiary_grenade",
"invisibleitem",
"ir_component",
"iron_dust",
"irongear",
"kerosene_bucket",
"large_barrel_template",
"large_bored_barrel",
"large_bullet",
"large_cannon_foundry_template",
"large_casing",
"large_foundry_template",
"large_magazine",
"large_magazine_0",
"large_projectile",
"large_projectile_foundry_template",
"large_shell",
"large_unbored_barrel",
"large_unbored_cannon_barrel",
"large_volatile_pile",
"lead_dust",
"lead_ingot",
"lead_nugget",
"lever_rifle",
"liquid_hydrogen_bucket",
"liquid_oxygen_bucket",
"lithium_deuteride",
"lithium_dust",
"lithium_ingot",
"lithium_nugget",
"lmg_animated",
"lmg_magazine",
"lmg_magazine_0",
"machine_carbine",
"machine_gun_box",
"machine_gun_box_0",
"mechanical_bore",
"mechanical_extruder",
"mechanical_press",
"mechanical_shear",
"medium_ap_bullet",
"medium_barrel_template",
"medium_bored_barrel",
"medium_cannon_foundry_template",
"medium_casing",
"medium_magazine",
"medium_magazine_0",
"medium_projectile",
"medium_projectile_foundry_template",
"medium_stealth_bullet",
"medium_unbored_barrel",
"medium_unbored_cannon_barrel",
"mg_receiver",
"mortar_shell",
"mortarer_spawn_egg",
"musket_ball",
"neutron_reflector",
"nickel_dust",
"nickel_ingot",
"niobium_dust",
"niobium_ingot",
"niobium_tiny_dust",
"nitrate",
"nvd_helmet_helmet",
"oil_bucket",
"paint_tool",
"particle",
"particle_2",
"petrolium_bucket",
"phosphorus_dust",
"pistol_receiver",
"plutonium_core",
"plutonium_ingot",
"plutonium_nugget",
"powder_charge",
"power_cell",
"precision_component",
"propellent",
"prototype_eradicator_spawn_egg",
"pump_action_shotgun_animated",
"pyrochlore",
"pyrochlore_dust",
"radar_component",
"radar_spear_missile",
"raidscout_spawn_egg",
"raw_beryllium",
"raw_lead",
"raw_lithium",
"raw_nickel",
"raw_uranium",
"raw_zinc",
"reactioncomponent",
"reaper_spawn_egg",
"revolver_animated",
"revolver_receiver",
"rifle_stock",
"rifler_spawn_egg",
"scoped_bolt_action_rifle_animated",
"scoped_breech_rifle",
"scout_spawn_egg",
"seeker_spear_rocket",
"semi_automatic_pistol_animated",
"semi_automatic_rifle_animated",
"shale_oil",
"shaped_charge_fuze",
"shielding_component",
"shotgun_casing",
"shotgun_shell",
"single_shot_rifle",
"slug_shell",
"small_ap_shell",
"small_barrel_template",
"small_bored_barrel",
"small_cannon_foundry_template",
"small_casing",
"small_engine",
"small_flak_projectile",
"small_flak_shell",
"small_he_projectile",
"small_hollow_point_bullet",
"small_projectile",
"small_projectile_foundry_template",
"small_shell",
"small_stealth_bullet",
"small_unbored_barrel",
"small_unbored_cannon_barrel",
"smallbullet",
"smallmagazine",
"smallmagazine_0",
"smg_animated",
"smg_magazine",
"smg_magazine_0",
"smg_receiver",
"smoke_agent",
"smoke_grenade",
"smoke_grenade_shell",
"smoke_mortar_shell",
"smoke_projectile",
"smoke_shell",
"solid_rocket_fuel_pack",
"solid_shell",
"stealth_large_bullet",
"stealth_pistol",
"steel_component",
"steel_crushing_wheel",
"steel_cylinder",
"steel_gear",
"steel_ingot",
"steel_spring",
"steel_tube",
"steel_wire",
"steelplate",
"strike_spear_missile",
"striker_spawn_egg",
"sulfur",
"sulfuric_acid_bucket",
"tech_component",
"thermal_shell",
"thermo_nuclear_fuel",
"thermometer",
"timed_fuze",
"tiny_lithium_deuteride",
"tinyprojectile_item",
"toxic_agent",
"transparent_item",
"trinitite_shard",
"turbine_rotor",
"unfabricated_tech_component",
"uranium_depleted_dust",
"uranium_depleted_ingot",
"uranium_depleted_tiny_dust",
"uranium_enriched_dust",
"uranium_enriched_ingot",
"uranium_enriched_tiny_dust",
"uranium_neural_ingot",
"uranium_neutral_dust",
"uranium_neutraltiny_dust",
"volatile_dust",
"weapon_bolt",
"weapon_supressor",
"welder",
"wood_component",
"worker_spawn_egg",
"zinc_dust",
"zinc_ingot"
]
}

39
docs/release-checklist.md Normal file
View File

@@ -0,0 +1,39 @@
# Release Checklist
## Version
- [ ] Private/internal release scope confirmed.
- [ ] Warium rights clarified before any public release.
- [ ] Version number updated.
- [ ] Changelog updated.
- [ ] README updated.
## Quality
- [ ] `python tools/generate_port_sources.py` passes.
- [ ] `python tools/registry_parity.py` passes.
- [ ] `./gradlew --no-daemon build` passes.
- [ ] `./gradlew --no-daemon runData` passes.
- [ ] Dedicated server smoke test passes in Gitea Actions.
## Security
- [ ] Security review is current.
- [ ] No secrets are committed.
- [ ] Original Warium jar is not committed.
- [ ] Decompiled source dumps are not committed.
- [ ] Generated extracted assets are not committed.
- [ ] Private dependency jars are not committed.
## Artifacts
- [ ] `build/libs/warium-neoforge-1.21.1-1.2.7+neo.21.1.225.jar` exists.
- [ ] Gitea Actions artifact is uploaded.
- [ ] Private generic package is uploaded when `REGISTRY_TOKEN` is configured.
- [ ] Private latest package URL works.
## Release
- [ ] Release notes written.
- [ ] Public tag skipped unless explicitly requested after rights clearance.
- [ ] Public release skipped unless explicitly requested after rights clearance.

33
docs/release-notes.md Normal file
View File

@@ -0,0 +1,33 @@
# Warium NeoForge 1.21.1 1.2.7+neo.21.1.225
## Downloads
| Variant | Download |
| --- | --- |
| Latest private artifact | `https://git.wilkensxl.de/api/packages/MrSphay/generic/warium-neoforge-1.21.1/latest/warium-neoforge-1.21.1-latest.jar` |
## Highlights
- Private NeoForge `21.1.225` scaffold for Minecraft `1.21.1`.
- Reproducible Warium `1.2.7` source artifact verification against SHA1 `528d81630a23fb4004e3abdd99b16bd225cd1e92`.
- Generated registry stubs for original blockstates and standalone item models.
- CI decompile artifact for behavior-port follow-up work.
## Security
- Dependency audit: handled by Gitea dependency-check workflow.
- Secret handling: package publishing uses `REGISTRY_TOKEN`; no token is tracked.
- External network calls: Modrinth, NeoForge Maven, Maven Central.
## Verification
| Check | Result |
| --- | --- |
| `python tools/generate_port_sources.py` | Passed locally |
| `python tools/registry_parity.py` | Passed locally |
| `./gradlew --no-daemon build` | Pending Gitea runner |
| Artifact download | Pending Gitea runner and `REGISTRY_TOKEN` secret |
## Notes
This is not a public release. Keep the repository and packages private until rights are clarified.

53
docs/security-review.md Normal file
View File

@@ -0,0 +1,53 @@
# Security Review
## Scope
Project:
```text
Warium NeoForge 1.21.1 Port
```
Reviewed version or commit:
```text
Unreleased scaffold
```
## Code Patterns Checked
- [x] No secrets committed.
- [x] Generated original assets are ignored.
- [x] Decompiled source output is ignored.
- [x] Original jar artifacts are ignored.
- [x] Private integration jars are ignored.
- [x] External network calls are documented.
## Dependency Review
Command:
```bash
./gradlew --no-daemon build
```
Result:
```text
Pending runner execution.
```
## Runtime Review
- [x] Gitea publishing uses `REGISTRY_TOKEN` secret only.
- [x] Package download is private/internal pending rights clearance.
- [x] Source Warium jar is downloaded from Modrinth and verified by SHA1.
- [x] Required private integrations are shimmed until real NeoForge 1.21.1 jars exist.
## Release Notes
Known residual risks:
```text
The current scaffold preserves registry IDs and resources but does not yet fully port the original MCreator behavior procedures, block entities, GUI logic, entities, AI, weapons, ordnance, nuclear effects, or external integration APIs.
```