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

[Feature/Fix]: Interface injections, and minor bugfixes #249

Merged
merged 12 commits into from
Nov 3, 2024

Conversation

marchermans
Copy link
Contributor

TLDR:

  • Implements interface injection
  • Adds tests for interface injection
  • Removes the ability for the gradle script to define ATs, as it never really worked and was a headache

Changes

  • Implement interface injection:
    • Implement a way to add additional source files
    • Remove the additional source file outputs from the compile result
    • Handle internal processing on the pipeline scope of additional processing files.
  • Implement preprocessing of the recompile step
  • Change the problem reporter to be logger based so that Gradle 8.10 does not fall on its face, there is now more then one kind of ProblemReporter implementation in the service stack, so it has no idea what to inject and I can't be bothered to figure that one out, so a simple logger with the same output will do for now.
    • This behaviour can be changed using a convention, and the legacy integrated reporter is still available if desired.

@neoforged-pr-publishing
Copy link

neoforged-pr-publishing bot commented Oct 20, 2024

  • Publish PR to GitHub Packages

Last commit published: ac144c3a43ff5443fb5c016da4d46411c5a7fe1a.

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 #249' // https://github.com/neoforged/NeoGradle/pull/249
        url 'https://prmaven.neoforged.net/NeoGradle/pr249'
        content {
            includeModule('net.neoforged.gradle.common', 'net.neoforged.gradle.common.gradle.plugin')
            includeModule('net.neoforged.gradle', 'common')
            includeModule('net.neoforged.gradle', 'test-utils')
            includeModule('net.neoforged.gradle', 'userdev')
            includeModule('net.neoforged.gradle.userdev', 'net.neoforged.gradle.userdev.gradle.plugin')
            includeModule('net.neoforged.gradle', 'utils')
            includeModule('net.neoforged.gradle', 'mixin')
            includeModule('net.neoforged.gradle', 'vanilla')
            includeModule('net.neoforged.gradle', 'platform')
            includeModule('net.neoforged.gradle.vanilla', 'net.neoforged.gradle.vanilla.gradle.plugin')
            includeModule('net.neoforged.gradle', 'dsl-mixin')
            includeModule('net.neoforged.gradle.mixin', 'net.neoforged.gradle.mixin.gradle.plugin')
            includeModule('net.neoforged.gradle', 'dsl-vanilla')
            includeModule('net.neoforged.gradle', 'neoform')
            includeModule('net.neoforged.gradle', 'dsl-common')
            includeModule('net.neoforged.gradle.neoform', 'net.neoforged.gradle.neoform.gradle.plugin')
            includeModule('net.neoforged.gradle', 'dsl-neoform')
            includeModule('net.neoforged.gradle', 'dsl-platform')
            includeModule('net.neoforged.gradle', 'dsl-userdev')
            includeModule('net.neoforged.gradle.platform', 'net.neoforged.gradle.platform.gradle.plugin')
        }
    }
}

@lukebemish
Copy link
Contributor

Nope, still not it -- should be fully lowercase, interfaceinjection.

This prevents a CME caused by the resolution of the dependent projects configurations triggering the creation of new configuration in its configuration container.
Creating detached configurations, and using them either as tool resolvers, or as carriers for dependency objects which are then attached to an outer configuration should prevent this.
Added tests that cover the new corver cases, and validate publishing logic
@marchermans marchermans merged commit 173aeb9 into NG_7.0 Nov 3, 2024
4 checks passed
@marchermans marchermans deleted the feature/interface-injection branch November 3, 2024 09:17
@neoforged-releases
Copy link

🚀 This PR has been released as NeoGradle version 7.0.166.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants