Move deprecated modules, create own maven BOM for the deprecated modules. (#2171)
* Move deprecated modules to a sub directory. Remove deprecated modules from the default maven pom Create a new "fabric-api-legacy" bom with the deprecated modules. * Fix main "fabric" project not beign a dep for the legacy bom. * rename artifact to fabric-api-deprecated * Spotless * Use the latest version of spotless.
1
.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
* text eol=lf
|
2
.github/workflows/build.yml
vendored
|
@ -4,7 +4,7 @@ jobs:
|
|||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
java: [17-jdk]
|
||||
java: [17-jdk, 18-jdk]
|
||||
runs-on: ubuntu-20.04
|
||||
container:
|
||||
image: eclipse-temurin:${{ matrix.java }}
|
||||
|
|
2
.github/workflows/release.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
|||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
container:
|
||||
image: eclipse-temurin:17-jdk
|
||||
image: eclipse-temurin:18-jdk
|
||||
options: --user root
|
||||
steps:
|
||||
- run: apt update && apt install git -y && git --version
|
||||
|
|
27
HEADER
|
@ -1,13 +1,16 @@
|
|||
Copyright (c) 2016, 2017, 2018, 2019 FabricMC
|
||||
/*
|
||||
* Copyright (c) 2016, 2017, 2018, 2019 FabricMC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
|
84
build.gradle
|
@ -9,8 +9,8 @@ plugins {
|
|||
id "eclipse"
|
||||
id "idea"
|
||||
id "maven-publish"
|
||||
id "fabric-loom" version "0.11.33" apply false
|
||||
id "org.cadixdev.licenser" version "0.6.1"
|
||||
id "fabric-loom" version "0.12.19" apply false
|
||||
id "com.diffplug.spotless" version "6.5.1"
|
||||
id "org.ajoberstar.grgit" version "3.1.0"
|
||||
id "com.matthewprenger.cursegradle" version "1.4.0"
|
||||
id "com.modrinth.minotaur" version "1.1.0"
|
||||
|
@ -89,19 +89,42 @@ def moduleDependencies(project, List<String> depNames) {
|
|||
}
|
||||
|
||||
allprojects {
|
||||
group = "net.fabricmc.fabric-api"
|
||||
|
||||
tasks.withType(GenerateModuleMetadata) {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
if (signingEnabled) {
|
||||
remoteSign {
|
||||
requestUrl = ENV.SIGNING_SERVER
|
||||
pgpAuthKey = ENV.SIGNING_PGP_KEY
|
||||
jarAuthKey = ENV.SIGNING_JAR_KEY
|
||||
|
||||
afterEvaluate {
|
||||
// PGP sign all maven publications.
|
||||
sign publishing.publications.mavenJava
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
publishing {
|
||||
setupRepositories(repositories)
|
||||
}
|
||||
|
||||
if (it.name == "deprecated") return
|
||||
|
||||
apply plugin: "java-library"
|
||||
apply plugin: "checkstyle"
|
||||
apply plugin: "maven-publish"
|
||||
apply plugin: "fabric-loom"
|
||||
apply plugin: "org.cadixdev.licenser"
|
||||
apply plugin: "com.diffplug.spotless"
|
||||
apply plugin: "me.modmuss50.remotesign"
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
it.options.release = 17
|
||||
}
|
||||
|
||||
group = "net.fabricmc.fabric-api"
|
||||
|
||||
sourceSets {
|
||||
testmod {
|
||||
compileClasspath += main.compileClasspath
|
||||
|
@ -138,10 +161,6 @@ allprojects {
|
|||
shareRemapCaches = true
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
}
|
||||
|
||||
processResources {
|
||||
inputs.property "version", project.version
|
||||
|
||||
|
@ -150,9 +169,10 @@ allprojects {
|
|||
}
|
||||
}
|
||||
|
||||
license {
|
||||
header rootProject.file("HEADER")
|
||||
include "**/*.java"
|
||||
spotless {
|
||||
java {
|
||||
licenseHeaderFile(rootProject.file("HEADER"))
|
||||
}
|
||||
}
|
||||
|
||||
java {
|
||||
|
@ -169,22 +189,9 @@ allprojects {
|
|||
reproducibleFileOrder = true
|
||||
}
|
||||
|
||||
tasks.withType(GenerateModuleMetadata) {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
if (signingEnabled) {
|
||||
remoteSign {
|
||||
requestUrl = ENV.SIGNING_SERVER
|
||||
pgpAuthKey = ENV.SIGNING_PGP_KEY
|
||||
jarAuthKey = ENV.SIGNING_JAR_KEY
|
||||
|
||||
sign remapJar
|
||||
|
||||
afterEvaluate {
|
||||
// PGP sign all maven publications.
|
||||
sign publishing.publications.mavenJava
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -259,6 +266,8 @@ loom {
|
|||
test.dependsOn runGametest
|
||||
|
||||
subprojects {
|
||||
if (it.name == "deprecated") return
|
||||
|
||||
dependencies {
|
||||
testmodImplementation sourceSets.main.output
|
||||
|
||||
|
@ -286,8 +295,6 @@ subprojects {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
setupRepositories(repositories)
|
||||
}
|
||||
|
||||
// We manually handle the pom generation
|
||||
|
@ -332,6 +339,9 @@ publishing {
|
|||
pom.withXml {
|
||||
def depsNode = asNode().appendNode("dependencies")
|
||||
subprojects.each {
|
||||
// Dont depend on the deprecated modules in the main artifact.
|
||||
if (it.path.startsWith(":deprecated")) return
|
||||
|
||||
def depNode = depsNode.appendNode("dependency")
|
||||
depNode.appendNode("groupId", it.group)
|
||||
depNode.appendNode("artifactId", it.name)
|
||||
|
@ -341,8 +351,6 @@ publishing {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
setupRepositories(repositories)
|
||||
}
|
||||
|
||||
// Required until the deprecation is removed. Fabric API's main jar that is published to maven does not contain sub modules.
|
||||
|
@ -364,9 +372,11 @@ void setupRepositories(RepositoryHandler repositories) {
|
|||
}
|
||||
}
|
||||
|
||||
task licenseFormatAll
|
||||
subprojects { p -> licenseFormatAll.dependsOn("${p.path}:licenseFormat") }
|
||||
subprojects.each { remapJar.dependsOn("${it.path}:remapJar") }
|
||||
subprojects.each {
|
||||
if (it.name == "deprecated") return
|
||||
|
||||
remapJar.dependsOn("${it.path}:remapJar")
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
testmod
|
||||
|
@ -381,9 +391,11 @@ def devOnlyModules = [
|
|||
dependencies {
|
||||
afterEvaluate {
|
||||
subprojects.each {
|
||||
api project(path: ":${it.name}", configuration: "namedElements")
|
||||
if (it.name == "deprecated") return
|
||||
|
||||
testmodImplementation project("${it.name}:").sourceSets.testmod.output
|
||||
api project(path: "${it.path}", configuration: "namedElements")
|
||||
|
||||
testmodImplementation project("${it.path}:").sourceSets.testmod.output
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -391,10 +403,10 @@ dependencies {
|
|||
remapJar {
|
||||
afterEvaluate {
|
||||
subprojects.each {
|
||||
if (it.name in devOnlyModules) return
|
||||
if (it.name in devOnlyModules || it.name == "deprecated") return
|
||||
|
||||
// Include the signed or none signed jar from the sub project.
|
||||
nestedJars.from project("${it.name}:").tasks.getByName(signingEnabled ? "signRemapJar" : "remapJar")
|
||||
nestedJars.from project("${it.path}").tasks.getByName(signingEnabled ? "signRemapJar" : "remapJar")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
38
deprecated/build.gradle
Normal file
|
@ -0,0 +1,38 @@
|
|||
/**
|
||||
* This project generates a maven bill of materials (BOM) that includes the deprecated modules, alongside the main project.
|
||||
*/
|
||||
|
||||
apply plugin: "maven-publish"
|
||||
|
||||
version = rootProject.version
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
artifactId = 'fabric-api-deprecated'
|
||||
|
||||
pom.withXml {
|
||||
def depsNode = asNode().appendNode("dependencies")
|
||||
allprojects.each {
|
||||
if (it.name == "deprecated") return // Dont depend on yourself :)
|
||||
|
||||
// Depend on all of the deprecated projects
|
||||
if (!it.path.startsWith(":deprecated")) return
|
||||
|
||||
def depNode = depsNode.appendNode("dependency")
|
||||
depNode.appendNode("groupId", it.group)
|
||||
depNode.appendNode("artifactId", it.name)
|
||||
depNode.appendNode("version", it.version)
|
||||
depNode.appendNode("scope", "compile")
|
||||
}
|
||||
|
||||
// Depend on the main project.
|
||||
def depNode = depsNode.appendNode("dependency")
|
||||
depNode.appendNode("groupId", group)
|
||||
depNode.appendNode("artifactId", "fabric-api")
|
||||
depNode.appendNode("version", version)
|
||||
depNode.appendNode("scope", "compile")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
@ -6,6 +6,6 @@ moduleDependencies(project, [
|
|||
])
|
||||
|
||||
dependencies {
|
||||
testmodImplementation project(path: ':fabric-renderer-registries-v1', configuration: 'namedElements')
|
||||
testmodImplementation project(path: ':fabric-rendering-v1', configuration: 'namedElements')
|
||||
testmodImplementation project(path: ':fabric-resource-loader-v0', configuration: 'namedElements')
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ import net.minecraft.util.Identifier;
|
|||
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
|
||||
import net.fabricmc.fabric.api.client.rendereregistry.v1.LivingEntityFeatureRendererRegistrationCallback;
|
||||
import net.fabricmc.fabric.api.client.rendering.v1.LivingEntityFeatureRendererRegistrationCallback;
|
||||
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
|
||||
|
||||
public class ModelTestModClient implements ClientModInitializer {
|
||||
|
|
|
@ -8,6 +8,8 @@ import groovy.json.JsonSlurper
|
|||
*/
|
||||
|
||||
subprojects {
|
||||
if (it.name == "deprecated") return
|
||||
|
||||
// Create the task
|
||||
task validateModules(type: ValidateModuleTask)
|
||||
}
|
||||
|
@ -52,10 +54,14 @@ class ValidateModuleTask extends DefaultTask {
|
|||
switch (moduleLifecycle) {
|
||||
case "stable":
|
||||
case "experimental":
|
||||
break
|
||||
case "deprecated":
|
||||
break;
|
||||
if (!project.path.startsWith(":deprecated")) {
|
||||
throw new GradleException("Deprecated module ${project} must be in the deprecated sub directory.")
|
||||
}
|
||||
break
|
||||
default:
|
||||
throw new GradleException("Module ${project} has an invalid module lifecycle ${json.custom.get('fabric-api:module-lifecycle')}");
|
||||
throw new GradleException("Module ${project} has an invalid module lifecycle ${json.custom.get('fabric-api:module-lifecycle')}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,5 +1,5 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
|
@ -16,35 +16,29 @@ include 'fabric-api-base'
|
|||
include 'fabric-api-lookup-api-v1'
|
||||
include 'fabric-biome-api-v1'
|
||||
include 'fabric-blockrenderlayer-v1'
|
||||
include 'fabric-commands-v0'
|
||||
include 'fabric-command-api-v1'
|
||||
include 'fabric-containers-v0'
|
||||
include 'fabric-content-registries-v0'
|
||||
include 'fabric-crash-report-info-v1'
|
||||
include 'fabric-data-generation-api-v1'
|
||||
include 'fabric-dimensions-v1'
|
||||
include 'fabric-entity-events-v1'
|
||||
include 'fabric-events-interaction-v0'
|
||||
include 'fabric-events-lifecycle-v0'
|
||||
include 'fabric-game-rule-api-v1'
|
||||
include 'fabric-gametest-api-v1'
|
||||
include 'fabric-item-api-v1'
|
||||
include 'fabric-item-groups-v0'
|
||||
include 'fabric-keybindings-v0'
|
||||
include 'fabric-key-binding-api-v1'
|
||||
include 'fabric-lifecycle-events-v1'
|
||||
include 'fabric-loot-tables-v1'
|
||||
include 'fabric-mining-level-api-v1'
|
||||
include 'fabric-models-v0'
|
||||
include 'fabric-networking-v0'
|
||||
include 'fabric-networking-api-v1'
|
||||
include 'fabric-object-builder-api-v1'
|
||||
include 'fabric-particles-v1'
|
||||
include 'fabric-registry-sync-v0'
|
||||
include 'fabric-renderer-api-v1'
|
||||
include 'fabric-renderer-indigo'
|
||||
include 'fabric-renderer-registries-v1'
|
||||
include 'fabric-rendering-v0'
|
||||
|
||||
include 'fabric-rendering-v1'
|
||||
include 'fabric-rendering-data-attachment-v1'
|
||||
include 'fabric-rendering-fluids-v1'
|
||||
|
@ -56,3 +50,12 @@ include 'fabric-textures-v0'
|
|||
include 'fabric-transfer-api-v1'
|
||||
include 'fabric-convention-tags-v1'
|
||||
include 'fabric-transitive-access-wideners-v1'
|
||||
|
||||
include 'deprecated'
|
||||
include 'deprecated:fabric-commands-v0'
|
||||
include 'deprecated:fabric-containers-v0'
|
||||
include 'deprecated:fabric-events-lifecycle-v0'
|
||||
include 'deprecated:fabric-keybindings-v0'
|
||||
include 'deprecated:fabric-networking-v0'
|
||||
include 'deprecated:fabric-renderer-registries-v1'
|
||||
include 'deprecated:fabric-rendering-v0'
|
||||
|
|