Skip to content

Commit

Permalink
gradle cleanup (#645)
Browse files Browse the repository at this point in the history
* make simple_type_field_names an input of insertAutoGeneratedMappings bettererly
move EnigmaProfile to MappingsExtension

* replace MappingTask::getTaskByType with MappingsTask::getTaskNamed; tasks should not be retreived by type alone, adding a new task with the same type would break things
(most calls to MappingsTask::getTaskNamed will probably be eliminated when configuration is moved to MappingsPlugin)
the thisening
the abstractening
the finalening
the line wrappening

* the registerening
add missing get() to extractServerJar

* move downloadVersionsManifest and downloadWantedVersionManifest configuration to MappingsPlugin
refine downloadWantedVersionManifest inputs/outputs

* move downloadMinecraftJars, extractServerJar, and mergeJars configuration to MappingsExtension
refine their properties and dependencies
make ExtractServerJarTask's getServerBootstrapJar() an input instead of an output
make downloadMinecraftJars not finalizedBy extractServerJar as input/output handling is preferable

* move downloadMinecraftLibraries and openGlConstantUnpickGenerator configuration to MappingsPlugin
rework both tasks' inputs and outputs significantly
downloadMinecraftLibraries is still screwy though: it accesses and modifies project in its task action
add Task suffix to OpenGlConstantUnpickGenerator class
rename PropertyUtil -> ProviderUtil and add projectDirProviderOf

* AbstractDownloadMappingsTask -> DownloadMappingsTask, reworked its properties, and separated ExtractTinyMappingsTask
added ExtractTinyMappingsTasks for hashed and intermediary
removed DownloadIntermediaryMappingsTask class, it's just a DownloadMappingsTask now
added Constants.INTERMEDIARY_MAPPINGS_NAME, but haven't replaced duplicates yet
made some convensions in MappingsPlugin to use flatMap instead of lambdas
move MappingsExtension's getEnigmaProfileFile convension to MappingsPlugin

* move conventions for MergeTinyTask, MergeTinyV2Task, and MergeIntermediaryTask to MappingsPlugin
refine their and their superclass' properties

* update MapJarTask and subclasses
update CheckTargetVersionExistsTask (will convert to BuildServerice later)
add TargetVersionConsumingTask interface for CheckTargetVersionExistsTask consumers
update CheckUnpickVersionsMatchTask (will convert to BuildServerice later)
add UnpickVersionsMatchConsumingTask for CheckUnpickVersionsMatchTask consumers
separate ExtractTargetMappingJarTask from DownloadTargetMappingJarTask and remove output files that just pointed to individual extracted files
clean up the rest of the diff tasks (still WIP)
move unpickTargetJar from build.gradle to buildSrc and give add a type for it: UnpickTargetJarTask
move remapTargetUnpickDefinitions from build.gradle to buildSrc and add a type for it: RemapTargetUnpickDefinitionsTask
move decompileTargetVineflower from build.gradle to buildSrc and add a type for it: DecompileTargetTask
add more TODOs based on @lukebemish's early review

* add missing .get().getAsFile()s to fix genFakeSource and decompileVineflower
temporarily make remapTargetMinecraftJar directly depend on unpickTargetJar, shouldn't be necessary once CheckTargetVersionExists and CheckUnpickVersionsMatchTask are converted to BuildService's
add more TODOs to build.gradle

* move combineUnpickDefinitions and remapUnpickDefinitions configuration from constructor/build.gradle to MappingsPlugin
move constantsJar from build.gradle to MappingsPlugin
move unpickHashedJar from build.gradle to MappingsPlugin
move v2UnmergedMappingsJar, v2MergedMappingsJar, intermediaryV2MappingsJar, and intermediaryV2MergedMappingsJar to MappingsPlugin
reorder some tasks in MappingsPlugin to accomodate new tasks

* move generated unpick definition outputs to fileConstants.buildDir
move unpick.json to unpick/ and unpick definitions to unpick/definitions/
add UnpickGenTask::getGeneratedUnpickDefinitions
refine CombineUnpickDefinitionsTask and its configuration
add unpick/definitions/ to CombineUnpickDefinitionsTask's input in build.gradle
rename OpenGlConstantUnpickGeneratorTask -> OpenGlConstantUnpickGenTask
make unpick.json's location configurable via MappingsExtension and configure it in build.gradle
remove all unpick-related files from FileConstants (obsolete, or only used once in which case inlined)

* rename MappingsPlugin -> QuiltMappingsPlugin and its id mappings-logic -> quilt-mappings
rename MappingsExtension -> QuiltMappingsExtension and its name mappings -> quiltMappings
move enimga_profile.json and simple_type_field_names.json5 to enigma/
rename some things in MappingsExtension
refine MappingsV2JarTask's properties, extract some magic constants, and move some configuration to a configureEach in QuiltMappingsPlugin

* move mappings, mappingsUnpicked, mappingsServer, and mappingsUnpickedServer to QuiltMappingsPlugin (and fix for new enigma profile location)
extract AbstractEnigmaMappingsTask as a superclass of EnigmaMappingsTask and EnigmaMappingsServerTask
allow specifying EnigmaMappingsServerTask optional properties on task invocation
move AbstractEnigmaMappingsTasks' configuration to QuiltMappingsPlugin (except getMainClass configuration)
expose QuiltMappingsExtension::getEnigmaProfileConfig so it can be passed to AbstractEnigmaMappingsTasks
add enigma-server dependency to buildSrc (as part of bundles.enigma.full)
convert EnigmaProfileConsumingTask to an interface
clean up MappingsTask a little

* improve unpickVersion handling
eliminate VersionCatalog methods from MappingsTask and add TODOs

* move the following tasks' configuration to QuiltMappingsPlugin and refine their properties:
- buildMappingsTiny
- invertPerVersionMappings
- removeIntermediary
- dropInvalidMappings
- generatePackageInfoMappings

move downloadDictionaryFile configuration to build.gradle (because it's prone to change) and refine its input
move decompileVineflower to QuiltMappingsPlugin
move eraseByteCode and genFakeSource to QuiltMappingsPlugin and give them custom classes

add MappingsDirConsumingTask
add MappingsDirOutputtingTask and implement it on GeneratePackageInfoMappingsTask

eliminate all FileConstants except tempDir which needs more investigation
eliminate RegularFile implementers in QuiltMappingsPlugin
rework JavadocProvider consumption
simplify UnpickGenTask and javadoc it saying they should only output unpick files
remove _GROUP suffix from Constants.Groups fields

* move tinyJar configuration to QuiltMappingsPlugin
move compressTiny configuration to QuiltMappingsPlugin and use try-with-resources in task action

* remove CheckIntermediaryMappingsTask and DownloadIntermediaryMappingsTask
extractTinyIntermediaryMappings gets input directly from the intermediary configuration and dependant tasks check if their inputs exist
extract IntermediaryMappingsV2JarTask and check if input exists

* remove downloadPerVersionMappings and DownloadMappingsTask
extractTinyPerVersionMappings gets input directly from the hashed configuration

* refine TransformJarClassesTask properties
misc minor cleanup

* move tempDir to build/ and its definition to QuiltMappingsPlugin
rename cacheFilesMinecraft minecraftDir and move it to build/
eliminate FileConstants
eliminate custom clean task logic
revise insertAutoGeneratedMappings/AddProposedMappingsTask outputs and file names
revise TargetVersionConsumingTask convension providers

* rework CheckTargetVersionExistsTask -> DownloadTargetMetaFileTask
the target version is obtained via provideTargetVersion

* rework CheckUnpickVersionsMatchTask -> UnpickVersionsMatchSource

* make MapJarTask::getAdditionalMappings an input
cleanup remapTargetMinecraftJar
cleanup completed TODOs and commented code in QuiltMappingsPlugin

* remove @optional from TargetVersionConsumingTask's inputs since only getTargetVesion's presence is checked
other misc cleanup

* replace intermediary task input exists checks with IntermediaryDependantTask interface
they only run if intermediary resolves
this ensures intermediary tasks don't run if intermediary doesn't exist but old input files exist
add ExtractTinyIntermediaryMappingsTask for extractTinyIntermediaryMappings
fix AddProposedMappingsTask accidentally creating directories with output file names instead of their parent directories

* replace AbstractDecompiler's Project with a Logger
the logger was all the project was used for and the decompiler shouldn't access the project
rename DecompilerProvider -> Decompilers.Factory and encapsulate it more

* extract MappingsTask::startDownload into DownloadTask
replace usage of MappingsTask::outputsNeverUpToDate with @DisableCachingByDefault

* update CombineUnpickDefinitionsTask's and UnpickGenTask's javadocs
make UnpickGenTask extend MappingsTask

* rename DownloadImmediate.Builder -> Downloader and eliminate DownloadImmediate
make Downloader#src a URL and eliminate use of deprecated URL constructor
add TODO to consider eliminating dependence on DownloadAction because of project access

* extract 'diff' group to Constants.Groups.DIFF

* extract common logic of ExtractServerJarTask, ExtractTinyMappingsTask, and ExtractTargetMappingJarTask
into AbstractExtractZipTask, ExtractSingleZippedFileTask, and ExtractZippedFilesTask

* add custom task classes for QuiltMappingsPlugin tasks that lack them
move all task names to their classes and rename all 'TASK_NAME' fields '<ACTUAL_NAME>_TASK_NAME'
ensure all QuiltMappingsPlugin tasks implement MappingsTask and have a group
move unpick configuration creation to QuiltMappingsPlugin, extract Constants.UNPICK_NAME
use unpick Main class name instead of string in UnpickJarTask
implement MappingsDirConsumingTask on FindDuplicateMappingFilesTask and use task's logger instead of static logger instance

* add DownloadUtils which uses FileUtils::copyURLToFile
rewrite download tasks to use DownloadUtils instead of DownloadAction
extract SimpleDownloadTask from tasks that download a single file from a url
move DownloadDictionaryFileTask's configuration to build.gradle (depends on remote that's prone to change)
remove de.undercouch:gradle-download-task dependency
eliminate decompileClasspath configuration and its screwiness in DownloadMinecraftLibrariesTask
cache version info parsed from wanted version manifest in VersionDownloadInfo property and pass that to VersionDownloadInfoConsumingTasks
add SerializableVersionEntry so it can be provided to downloadWantedVersionManifest and carry dependency info
move constants source set definition back to build.gradle
move constantsJar source set input configuration back to build.gradle
move sourcesJar task registration to QuiltMappingsPlugin and give it its own class but keep its source set configuration in build.gradle
move javadocJar task registration to QuiltMappingsPlugin and give it its own class
move some of javadoc's configuration to QuiltMappingsPlugin
extract Constants.Groups.JAVADOC_GENERATION
@Inject an ObjectFactory into MappingsTasks
fix DecompileTask's output being a RegularFileProperty instead of a DirectoryProperty

* @Inject and use ArchiveOperations in AbstractExtractZipTask

* move licenser plugin info to libs.versions.toml
eliminate project access in javadoc task doLast
extract IntermediaryMappingsV2JarTask classifiers
move check and jar task configuration from build.gradle to QuiltMappingsPlugin

* make simple_type_field_names an input of insertAutoGeneratedMappings bestly

* extract "net/minecraft/unused/packageinfo/" constant
bring the finalening, the thisening, and the line wrappening to the lint package
slightly refactor SpellingChecker::checkPlural

* replace MappingsJavadocProvider.Source with mapped providers so they carry dependency info

* extract mappings namespace constants
import Constants.Groups

* add generateDiff task (not yet used in generate-diff.yml)

* add quilt/internal/plugin package
extract MappingsProjectPlugin interface
extract MinecraftJarsPlugin and QuiltMappingsBasePlugin

* extract the following plugins:
- MapMinecraftJarsPlugin
- MapV2Plugin
- MapIntermediaryPlugin
- ProcessMappingsPlugin
- MappingsVerificationPlugin

move unpickVersion to QuiltMappingsExtension

to minimize spaghetti and ensure required plugins are applied:
- access QuiltMappingsExtension via QuiltMappingsBasePlugin's getExt()
- access tasks registered by other plugins via TaskedMappingsProjectPlugin::getTasks

move some file naming methods to new FileUtil class

update and add javadocs

* extract magic classifier constants

* improve DiffDirectoriesTask

* use 'all' gradle distribution

* add ArtifactFileProducingTask and implement it on CompressTinyTask

* name AbstractArchiveTask subclass tasks using its archive name composition methods
make the default ArtifactFileTask destination build/libs
eliminate MappingsProjectPlugin#getLibsDir (its already the default for all tasks it was used for)
add QuiltMappingsArtifactTask, implement it on all tasks that used ARCHIVE_FILE_NAME_PREFIX, and configure implementing tasks' baseName and version in QuiltMappingsBasePlugin
improve some javadocs

* rename package tasks -> task

* improve javadocs, esp. for configurEach

* extract EnigmaMappingsPlugin and TargetDiffPlugin
QuiltMappingsPlugin now applies all other MappingsProjectPlugins and does nothing else
replace UnpickVersionsMatchSource with a mapped provider so dependency info is carried
more javadoc adjustments

* use JavaExec::getArgumentProviders instead of overriding task action in AbstractEnigmaMappingsTask, EnigmaMappingsServerTask, and UnpickJarTask

* replace VersionDownloadInfo with VersionParser

* add artifact helper methods to ArtifactFileTask
remove explicit classifiers from artifact configuration in build.gradle (classifiers are extracted from the input)
fix intermediary publishing (broken since the removal of checkIntermediaryMappings)
cleaned up some TODOs

* replace Constants.MINECRAFT_VERSION with libs version and pass it to QuiltMappingsExtension
replace Constants.MAPPINGS_VERSION with direct assignment to project.version and pass it to QuiltMappingsExtension
add minecraftVersion input to DownloadTargetMetaFileTask
remove provideVersionEntry from DownloadVersionsManifestTask and instead provide it directly in MinecraftJarsPlugin
add minecraftVersion param to SerializableVersionEntry::of
replace MappingsProjectPlugin::provideMappingsDest with provideBuildMappingsDirFile

* move hashed/hashed-unpicked/named jars to build/minecraft/mapped/
move merged jar to build/minecraft/
add more helper methods to MappingsProjectPlugin

* move .gradle/targets -> build/targets
extract more magic strings
add more helper methods for common file naming schemes

* convert Constants to an interface and move it to new constants package
promote all inner Constants classes to the constants package
extract more classifiers and move all classifier constants to constants.Classifiers
extract more extensions and move all extension constants to constants.Extensions

* rename configuration unpick -> unpickCli
split configuration enigmaRuntime -> enigmaSwign + enigmaServer
add :classpath-holders project and includeBuild it in buildSrc
populate enigmaSwing, enigmaServer and unpickCli with :classpath-holders capabilites so :quilt-mappings build.gradle doesn't have to (thanks to @lukebembish)

* add convenient hack to ArtifactFileTask

* provide default dictionary file name in MappingsVerificationPlugin instead of naming it after the revision in build.gradle

* remove @DisableCachingByDefault from MappingsV2JarTask because it's already on its superclass

* categorize TODOs

* DownloadMinecraftLibrariesTask:
- enable caching
- delete old libraries and try downloading new libraries

* DownloadVersionsManifestTask: replace @DisableCachingByDefault with UntrackedTask so it always re-downloads

* DownloadWantedVersionManifestTask: remove release time input; obsoleted by other inputs

* OpenGlConstantUnpickGenTask:
- only take lwjgl file as input instead of all artifacts by name
- remove onlyIf: if the inputs change, the outputs may change

* remove DownloadMinecraftJarsTask's outsputs upToDateWhen checksum check: it was unecessary and caused outputs to never be up to date

* recategorize TODO for javadoc

* replace DownloadVersionsManifestTask with SerializableVersionEntry.Source because output can't be cached

* replace DownloadDictionaryFileTask with ivy repository hack in build.gradle

* merge MappingsVerificationPlugin into MapMinecraftJarsPlugin

* remove cache limitation on javadoc task

* enable caching in gradle.properties

* add quilt.mappings.debug.javadoc property

* clean DecompileVineflowerTask's output dir instead of deleting it

* remove TODO QUESTION about mergeTinyV2's old dependency on v2UnmergedMappingsJar

* rename getSimpleTypeFieldNamesFiles -> getProfileFileDependencies

* make Namespaces PER_VERSION and INTERMEDIARY the sources of truth for their strings, eliminate them from Constants

* rename all constants containing PER_VERSION -> INTERMEDIATE
rename tasks:
- mapPerVersionMappingsJar -> mapIntermediateMappingsJar
- invertPerVersionMappings -> invertIntermediateMappings
- extractTinyPerVersionMappings -> extractTinyIntermediateMappings

* increase gradle memory from 3Gb to 4Gb because decompileTargetVineflower ran out of memory

* add libs.enigma.plugin dependency back to enigmaSwing and enigmaServer classpaths

* bring the thisening, the bracketing, the line wrappening, and the finalening to TasksTest and TestUtil
other minor cleanup

* eliminate MappingsTask

* eliminate DefaultMappingsTask

* utilize streams better in UnpickJarTask

* replace Default/TaskedMappingsProjectPlugin/DefaultTaskedMappingsProjectPlugin with DefaultExtensionedMappingsProjectPlugin + Default/TaskedExtension
access Tasks objects and MapIntermediaryPlugin's intermediaryFile via extension instances obtained via plugin instances instead of directly via plugin instances

* make QuiltMappingsExtension local variable names clearer and consistent

* ArtifactFileTask:
- remove #getArtifact method as the classifier got stripped when publishing
- make #artifact method add the classifier

* obtain gson, commons-codec, and commons-compress versions for javadoc from DownloadWantedVersionManifestTask#provideVersionParser
use netty version from libs.version.toml because minecraft's netty version doesn't have javadocs

* clean up resolved TODOs

* re-remove asm snapshot repo which snuck back in during a merge

* use task logger instead of project logger in Javadoc

* put CacheableTask on DownloadWantedVersionManifestTask, DownloadMinecraftJarsTask, and DownloadMinecraftLibrariesTask
closes #492
  • Loading branch information
supersaiyansubtlety authored Nov 27, 2024
1 parent 19d56f8 commit 1e16cc6
Show file tree
Hide file tree
Showing 194 changed files with 6,920 additions and 3,641 deletions.
588 changes: 216 additions & 372 deletions build.gradle

Large diffs are not rendered by default.

59 changes: 48 additions & 11 deletions buildSrc/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ plugins {
repositories {
mavenCentral()
maven {
name "Quilt Repositiory"
name "Quilt Repository"
url "https://maven.quiltmc.org/repository/release"
}
maven {
name "Quilt Snapshot Repositiory"
name "Quilt Snapshot Repository"
url "https://maven.quiltmc.org/repository/snapshot"
}
maven {
Expand All @@ -21,10 +21,6 @@ repositories {
name "Mojang"
url 'https://libraries.minecraft.net/'
}
// remove when ASM fix is released
maven {
url = "https://repository.ow2.org/nexus/content/repositories/snapshots/"
}
mavenLocal()
}

Expand All @@ -34,7 +30,6 @@ configurations {

dependencies {
implementation(libs.commons.io)
implementation(libs.download.task)
implementation(libs.guava)
implementation(libs.jackson.xml)
implementation(libs.launchermeta.parser)
Expand Down Expand Up @@ -86,9 +81,51 @@ test {

gradlePlugin {
plugins {
mappingsLogic {
id = 'mappings-logic'
implementationClass = 'quilt.internal.MappingsPlugin'
final pluginPackage = 'quilt.internal.plugin.'

quiltMappingsBase {
id = 'quilt-mappings-base'
implementationClass = pluginPackage + 'QuiltMappingsBasePlugin'
}

minecraftJars {
id = 'minecraft-jars'
implementationClass = pluginPackage + 'MinecraftJarsPlugin'
}

mapMinecraftJars {
id = 'map-minecraft-jars'
implementationClass = pluginPackage + 'MapMinecraftJarsPlugin'
}

mapV2 {
id = 'map-v2'
implementationClass = pluginPackage + 'MapV2Plugin'
}

mapIntermediary {
id = 'map-intermediary'
implementationClass = pluginPackage + 'MapIntermediaryPlugin'
}

processMappings {
id = 'process-mappings'
implementationClass = pluginPackage + 'ProcessMappingsPlugin'
}

enigmaMappings {
id = 'enigma-mappings'
implementationClass = pluginPackage + 'EnigmaMappingsPlugin'
}

targetDiff {
id = 'target-diff'
implementationClass = pluginPackage + 'TargetDiffPlugin'
}

quiltMappings {
id = 'quilt-mappings'
implementationClass = pluginPackage + 'QuiltMappingsPlugin'
}
}
}
}
1 change: 1 addition & 0 deletions buildSrc/classpath-holders/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build/
56 changes: 56 additions & 0 deletions buildSrc/classpath-holders/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
plugins {
id 'java'
}

// these contain the classpath contents necessary for JavaExec tasks registered by buildSrc plugins
configurations {
configurations.ext.classpathHolder = { String configName, String capabilityName ->
configurations.create(configName) {
canBeResolved = false

attributes.attribute Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME)

components.java.addVariantsFromConfiguration(it) { }

outgoing.capability "$group:$capabilityName:$version"
}
}

// for UnpickJarTask
classpathHolder 'unpickCli', "$name-unpick-cli"

// for EnigmaMappingsTask
classpathHolder 'enigmaSwing', "$name-enigma-swing"

// for EnigmaMappingsServerTask
classpathHolder 'enigmaServer', "$name-enigma-server"
}

repositories {
mavenCentral()

maven {
name "Quilt Repository"
url "https://maven.quiltmc.org/repository/release"
}

maven {
name "Fabric Repository"
url 'https://maven.fabricmc.net'
}

// TODO remove when ASM fix is released
maven {
url = "https://repository.ow2.org/nexus/content/repositories/snapshots/"
}
}

dependencies {
unpickCli libs.unpick.cli

enigmaSwing libs.enigma.swing
enigmaSwing libs.enigma.plugin

enigmaServer libs.enigma.server
enigmaServer libs.enigma.plugin
}
3 changes: 3 additions & 0 deletions buildSrc/classpath-holders/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
group = quilt.internal
# version is irrelevant
version = 1.0
7 changes: 7 additions & 0 deletions buildSrc/classpath-holders/settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
dependencyResolutionManagement {
versionCatalogs {
libs {
from(files("../../gradle/libs.versions.toml"))
}
}
}
2 changes: 2 additions & 0 deletions buildSrc/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ dependencyResolutionManagement {
}
}
}

includeBuild 'classpath-holders'
22 changes: 0 additions & 22 deletions buildSrc/src/main/java/quilt/internal/Constants.java

This file was deleted.

43 changes: 0 additions & 43 deletions buildSrc/src/main/java/quilt/internal/FileConstants.java

This file was deleted.

15 changes: 0 additions & 15 deletions buildSrc/src/main/java/quilt/internal/MappingsExtension.java

This file was deleted.

89 changes: 0 additions & 89 deletions buildSrc/src/main/java/quilt/internal/MappingsPlugin.java

This file was deleted.

21 changes: 21 additions & 0 deletions buildSrc/src/main/java/quilt/internal/constants/Classifiers.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package quilt.internal.constants;

public interface Classifiers {
String INTERMEDIATE = Namespaces.INTERMEDIATE;
String NAMED = Namespaces.NAMED;
String INTERMEDIARY = Namespaces.INTERMEDIARY;

String V2 = "v2";
String MERGED_V2 = "merged" + V2;
String INTERMEDIARY_V2 = INTERMEDIARY + "-" + V2;
String INTERMEDIARY_V2_MERGED = INTERMEDIARY + "-" + MERGED_V2;

String UNPICKED = "unpicked";
String INTERMEDIATE_UNPICKED = INTERMEDIATE + "-" + UNPICKED;

String TINY = Constants.TINY_NAME;

String CONSTANTS = "constants";
String JAVADOC = "javadoc";
String SOURCES = "sources";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package quilt.internal.constants;

public interface Constants {
String MAPPINGS_NAME = "quilt-mappings";

String UNPICK_NAME = "unpick";

String TINY_NAME = "tiny";
}
11 changes: 11 additions & 0 deletions buildSrc/src/main/java/quilt/internal/constants/Extensions.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package quilt.internal.constants;

import org.gradle.jvm.tasks.Jar;

public interface Extensions {
String JAR = Jar.DEFAULT_EXTENSION;
String TINY = Constants.TINY_NAME;
String UNPICK = Constants.UNPICK_NAME;
String GZ = "gz";
String JSON = "json";
}
Loading

1 comment on commit 1e16cc6

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No difference between head and target.

Please sign in to comment.