Skip to content
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
merged 3 commits into from
May 16, 2024

Conversation

marchermans
Copy link
Contributor

TLDR:

  • Reduces complexity on Ivy Repository construction
  • Reduces complexity on Dependency Replacement
  • Reduced complexity on Runtime.
  • Fixes several bugs related to how core components are registered
  • IDEA Sync now happens immediately, eclipse sync will follow, once feedback is gathered
  • Fixes to source based ATs and Parchment
  • Reintroduce binary AT apply for Vanilla

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:

  • The raw jar for Userdev now is constructed properly again after it broke due to source ATs.
  • Vanilla can now do ATs again, due to the reintroduction of binary AT application
  • Registration order has been relaxed

@neoforged-pr-publishing
Copy link

neoforged-pr-publishing bot commented May 16, 2024

  • Publish PR to GitHub Packages

Last commit published: 06b6427c2341c893a0fed5fccf0352bd97d1cbc6.

PR Publishing

The artifacts published by this PR:

Repository Declaration

In 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')
        }
    }
}

@sciwhiz12 sciwhiz12 added the enhancement New feature or request label May 16, 2024
@marchermans marchermans merged commit e7230de into NG_7.0 May 16, 2024
34 checks passed
@Matyrobbrt Matyrobbrt deleted the feature/tech-debt-payoff branch May 17, 2024 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants