Closed supersaiyansubtlety closed 1 day ago
Early reviewers beware: I will probably be rewriting history so any review progress on github may be lost.
Ready -ish
🚨 Target branch is already set to 24w39a
🚀 Target branch has been updated to 24w40a
🚨 Please fix merge conflicts before this can be merged
Note: Rather than marking this PR as ready for review, when it's ready I'll be closing it and creating a new one.
That will clean up the messy history here on GitHub caused by rewriting history.
Never mind, it cleaned itself up, I underestimated GitHub.
🚀 Target branch has been updated to 1.21.2-pre1
🚀 Target branch has been updated to 1.21.2-pre2
🚨 Please fix merge conflicts before this can be merged
🚀 Target branch has been updated to 1.21.2-pre3
🚨 Please fix merge conflicts before this can be merged
🚀 Target branch has been updated to 1.21.2-pre5
🚨 Please fix merge conflicts before this can be merged
🚀 Target branch has been updated to 1.21.2-rc1
🚨 Please fix merge conflicts before this can be merged
🚀 Target branch has been updated to 1.21.2
🚨 Please fix merge conflicts before this can be merged
🚀 Target branch has been updated to 1.21.3
🚨 Please fix merge conflicts before this can be merged
resolved
Forgot one question:
These properties should be versions in the catalog, but gson
and netty
already have different, unused versions in the catalog:
Which versions of gson
and netty
do we want?
I tried running some tasks with --configuration-cache
and got:
Configuration cache state could not be cached: field
pendingMap
oforg.gradle.api.internal.DefaultNamedDomainObjectCollection$UnfilteredIndex
bean found in fielddelegate
oforg.gradle.api.internal.DefaultNamedDomainObjectCollection$FilteredIndex
bean found in fieldindex
oforg.gradle.api.internal.tasks.DefaultTaskCollection
bean found in fielddelegate
oforg.gradle.api.internal.tasks.DefaultRealizableTaskCollection
bean found in input property$1
of task:buildMappingsTiny
of typequilt.internal.task.build.BuildMappingsTinyTask
: error writing value of type 'java.util.LinkedHashMap' java.util.ConcurrentModificationException (no error message)
That's for buildMappingsTiny
, I got a similar error mentioning error writing value of type 'java.util.LinkedHashMap'
for findDuplicateMappingFiles
.
idk how to fix these because idk where the LinkedHashMap
comes from.
configuration caching will have to go in a followup PR
If it turns out it wouldn't take too many changes to fix config caching I'm ok with including it in this PR, otherwise it'll have to go in a followup PR.
🚀 Target branch has been updated to 24w44a
🚨 Please fix merge conflicts before this can be merged
🚀 Target branch has been updated to 24w45a
🚨 Please fix merge conflicts before this can be merged
is there anything that remains to be done on this now that #659 is merged?
is there anything that remains to be done on this now that #659 is merged?
It's not waiting on any other PRs, but I need to merge changes and make sure tests work. done
There are also a few unresolved questions above. resolved
🚀 Target branch has been updated to 24w46a
🚨 Please fix merge conflicts before this can be merged
🚀 Target branch has been updated to 1.21.4-pre1
🚨 Please fix merge conflicts before this can be merged
Ready!
Tasks
buildSrc
referencingbuild.gradle
thingsQuiltMappingsExtension
QuiltMappingsPlugin
's contents into several pluginsreplacemaybe in a followup PRTasksTest
and depend on gradle test kitapply a checkstyle tomaybe in a followup PRbuildSrc
?Summary
renames
MappingsPlugin
/mappings-logic
->QuiltMappingsPlugin
/quilt-mappings
renamesMappingssExtension
/mappings
->QuiltMappingsExtension
/quiltMappings
splitsQuiltMappingsPlugin
into:all implement
MappingsProjectPlugin
and are applied byQuiltMappingsPlugin
eliminates
FileConstants
:MappingsProjectPlugin
adds several extensions that expose objects created by their plugins extensions are accessed via plugin instances which ensures extension have been created
no use of
tasks.named(...)
to access custom tasks:tasks.register(...)
Tasks
objects obtained via extensions, obtained via plugin instancesensures all custom tasks have a group eliminates
MappingsTask
andDefaultMappingsTask
(someMappingsTask
methods are replaced with helper methods in more specific task interfaces and plugins)moves
Constants.MINECRAFT_VERSION
tolibs.versions.toml
and passes it toQuiltMappingsExtension
movesConstants.MAPPINGS_VERSION
to directproject.version
assignment inbuild.gradle
and passes it toQuiltMappingsExtension
moves dictionary file url tolibs.versions.toml
and downloads it with an ivy repository hack eliminatesdownloadDictionaryFile
and passes the dictionary file tomappingLint
inbuild.gradle
savesunpickVersion
in aQuiltMappingsEntension
field and passes it to the constructors of tasks that require it (it's required at configuration time for some tasks so it can't be a property)extracts a bunch of magic strings to interfaces in
constants
package moves all task names to their classes and renames allTASK_NAME
fields<ACTUAL_NAME>_TASK_NAME
adds javadocs to all task names that link the plugin that registers them adds javadocs to each plugin with anyconfigurEach
es listing what they do (these can be annoying to track down) adds javadocs to each class that'sconfigureEach
ed and to all their subclasses, linking the plugin that does the configuring (these can be really annoying to track down)moves almost all outputs to
build/*
movescombineUnpickDefinitions
's output tobuild/mappings/
eliminates customclean
task logic (everything is inbuild/
and gets cleaned)names
AbstractArchiveTask
outputs using its name composition methods addsArtifactFileProducingTask
which mimicsAbstractArchiveTask
name composition (implemented byCompressTinyTask
) eliminates explicit classifiers for published artifacts inbuild.gralde
mapped providers are the solution to every problem
moves
unpick.json
tounpick/
and unpick definitions tounpick/definitions/
movesenimga_profile.json
andsimple_type_field_names.json5
toenigma/
eliminates
decompileClasspath
configuration -> passesdownloadMinecraftLibraries.librariesDir.fileTree
replacesCheckStuffExists/Matches
tasks with mapped providerspopulates
unpickCli
configuration using included build:unpick-holders
splitsenigmaRuntime
configuration intoenigmaSwing
andenigmaServer
, populates them using:unpick-holders
replaces
de.undercouch.gradle.tasks.download.DownloadAction
usage withDownloadUtil
methods (which useorg.apache.commons.io.FileUtils::copyURLToFile
) eliminatesde.undercouch:gradle-download-task
dependencyadds
generateDiff
task (Windows users may have to putdiff
on their PATH)Future
generateDiff
ingerenate-diff.yml
(pass output path to avoid magic string)namedSource/
andnamedTargetSource/
oncegenerateDiff
is used ingerenate-diff.yml
@CachableTask
everything