-
-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gradle cleanup #645
base: 24w45a
Are you sure you want to change the base?
gradle cleanup #645
Conversation
|
afcb886
to
6391a20
Compare
🚨 Target branch is already set to 24w39a |
🚀 Target branch has been updated to 24w40a |
🚨 Please fix merge conflicts before this can be merged |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks pretty good! Unsure if the eventual aim is config cache here (and maybe it ought to be, as config cache will be on by default in gradle 9 which is on the horizon) -- regardless, if so there's a bit of work to do, since a lot of stuff is still kinda unidiomatic in that regard; all things told though a drastic improvement. Didn't comment on any remaining TODOs.
buildSrc/src/main/java/quilt/internal/tasks/EnigmaProfileConsumingTask.java
Outdated
Show resolved
Hide resolved
buildSrc/src/main/java/quilt/internal/tasks/EnigmaProfileConsumingTask.java
Outdated
Show resolved
Hide resolved
buildSrc/src/main/java/quilt/internal/tasks/decompile/DecompileTask.java
Outdated
Show resolved
Hide resolved
buildSrc/src/main/java/quilt/internal/tasks/setup/DownloadMinecraftLibrariesTask.java
Outdated
Show resolved
Hide resolved
buildSrc/src/main/java/quilt/internal/tasks/unpick/gen/OpenGlConstantUnpickGeneratorTask.java
Outdated
Show resolved
Hide resolved
buildSrc/src/main/java/quilt/internal/tasks/diff/CheckTargetVersionExistsTask.java
Outdated
Show resolved
Hide resolved
buildSrc/src/main/java/quilt/internal/tasks/diff/CheckUnpickVersionsMatchTask.java
Outdated
Show resolved
Hide resolved
buildSrc/src/main/java/quilt/internal/tasks/setup/CheckIntermediaryMappingsTask.java
Outdated
Show resolved
Hide resolved
f80e79a
to
243fa36
Compare
|
3e74240
to
c6f2f85
Compare
🚀 Target branch has been updated to 1.21.2-pre1 |
🚀 Target branch has been updated to 1.21.2-pre2 |
…wer ran out of memory
I tried running some tasks with
That's for idk how to fix these because idk where the 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? |
There are also a few unresolved questions above. |
…alening to TasksTest and TestUtil other minor cleanup
…ectPlugin with DefaultExtensionedMappingsProjectPlugin + Default/TaskedExtension access Tasks objects and MapIntermediaryPlugin's intermediaryFile via extension instances obtained via plugin instances instead of directly via plugin instances
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly too big to properly review now. From my previous looks its going great. I trust that you did it correctly
Ready for review to start, but still WIP because some questions remain
Remaining questions:
Tasks
QuiltMappingsPlugin
QuiltMappingsPlugin
(makes it easier to see dependencies and makes tasks more reusable)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
renames
MappingssExtension
/mappings
->QuiltMappingsExtension
/quiltMappings
splits
QuiltMappingsPlugin
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
(some
MappingsTask
methods are replaced with helper methods in more specific task interfaces and plugins)moves
Constants.MINECRAFT_VERSION
tolibs.versions.toml
and passes it toQuiltMappingsExtension
moves
Constants.MAPPINGS_VERSION
to directproject.version
assignment inbuild.gradle
and passes it toQuiltMappingsExtension
moves dictionary file url to
libs.versions.toml
and downloads it with an ivy repository hackeliminates
downloadDictionaryFile
and passes the dictionary file tomappingLint
inbuild.gradle
saves
unpickVersion
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
packagemoves all task names to their classes and renames all
TASK_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 any
configurEach
es listing what they do (these can be annoying to track down)adds javadocs to each class that's
configureEach
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/*
moves
combineUnpickDefinitions
's output tobuild/mappings/
eliminates custom
clean
task logic (everything is inbuild/
and gets cleaned)names
AbstractArchiveTask
outputs using its name composition methodsadds
ArtifactFileProducingTask
which mimicsAbstractArchiveTask
name composition (implemented byCompressTinyTask
)eliminates explicit classifiers for published artifacts in
build.gralde
mapped providers are the solution to every problem
moves
unpick.json
tounpick/
and unpick definitions tounpick/definitions/
moves
enimga_profile.json
andsimple_type_field_names.json5
toenigma/
eliminates
decompileClasspath
configuration -> passesdownloadMinecraftLibraries.librariesDir.fileTree
replaces
CheckStuffExists/Matches
tasks with mapped providerspopulates
unpickCli
configuration using included build:unpick-holders
splits
enigmaRuntime
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
)eliminates
de.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