-
Notifications
You must be signed in to change notification settings - Fork 24
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
[Tech-Debt] Reduce complexity on Dependency Replacement and fix Bugs #171
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Last commit published: 06b6427c2341c893a0fed5fccf0352bd97d1cbc6. PR PublishingThe artifacts published by this PR:
Repository DeclarationIn order to use the artifacts published by the PR, add the following repository to your buildscript: repositories {
maven {
name 'Maven for PR #171' // https://github.com/neoforged/NeoGradle/pull/171
url 'https://prmaven.neoforged.net/NeoGradle/pr171'
content {
includeModule('net.neoforged.gradle', 'dsl-vanilla')
includeModule('net.neoforged.gradle.common', 'net.neoforged.gradle.common.gradle.plugin')
includeModule('net.neoforged.gradle.userdev', 'net.neoforged.gradle.userdev.gradle.plugin')
includeModule('net.neoforged.gradle', 'dsl-platform')
includeModule('net.neoforged.gradle', 'dsl-userdev')
includeModule('net.neoforged.gradle', 'utils')
includeModule('net.neoforged.gradle', 'vanilla')
includeModule('net.neoforged.gradle.platform', 'net.neoforged.gradle.platform.gradle.plugin')
includeModule('net.neoforged.gradle', 'neoform')
includeModule('net.neoforged.gradle.neoform', 'net.neoforged.gradle.neoform.gradle.plugin')
includeModule('net.neoforged.gradle.mixin', 'net.neoforged.gradle.mixin.gradle.plugin')
includeModule('net.neoforged.gradle', 'dsl-mixin')
includeModule('net.neoforged.gradle', 'dsl-neoform')
includeModule('net.neoforged.gradle.vanilla', 'net.neoforged.gradle.vanilla.gradle.plugin')
includeModule('net.neoforged.gradle', 'userdev')
includeModule('net.neoforged.gradle', 'mixin')
includeModule('net.neoforged.gradle', 'common')
includeModule('net.neoforged.gradle', 'dsl-common')
includeModule('net.neoforged.gradle', 'platform')
}
}
} |
shartte
reviewed
May 16, 2024
common/src/main/java/net/neoforged/gradle/common/CommonProjectPlugin.java
Outdated
Show resolved
Hide resolved
shartte
reviewed
May 16, 2024
common/src/main/java/net/neoforged/gradle/common/CommonProjectPlugin.java
Show resolved
Hide resolved
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
TLDR:
Ivy Repository refactor
The core change here is to remove all callbacks and create the core management files directly, additionally due to changes in the way dynamic dependencies work we do not need the
ng_dummy_ng
prefix anymore.Dynamic dependency replacement
The core change here, is to switch to a pure direct mode. Due to changes in the Ivy Repository we can now create all tasks and systems immediately on request and don't need to bother with afterEvaluate or even afterBake.
The introduction of a dedicated
ReplacementAware
interface allows for better notifications to flow through our system. Other subsystems can get notified of a replaced dependency happening, and what the replacement tasks are going to be.Reduced complexity on runtimes.
This is a first pass to reduce the complexity on runtimes, most of the "onBake" procedures are gone, and what is left can likely be further condensed and moved in the future.
IDEA Sync
Using a new convention we can now run the IDEA sync immediately, no more post sync tasks, which should make switching between NG7 and NG6/FG6 a lot easier goting forward.
Fixes: