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

Add the ability to install and run a production client and server as well as moddev for testing FML. #177

Merged
merged 4 commits into from
Aug 10, 2024

Conversation

shartte
Copy link
Contributor

@shartte shartte commented Jul 6, 2024

This adds the ability to:

  • Run :test:installNeoForgeServer to install a local copy of the NeoForge server into build/installs/server using the installers silent-install feature. This also produces several JVM argfiles that capture the required startup parameters to start it.
  • Run :test:installNeoForgeClient to install a local copy of the NeoForge client into build/installs/client using the installers silent-install feature. This also produces several JVM argfiles that capture the required startup parameters to start it.
  • Run :test:runProductionClient to start a NeoForge client from the local install using the current projects FML components.
  • Run :test:runProductionServer to start a NeoForge server from the local install using the current projects FML components.
  • Run :test:runClient to start a moddev client, using the local FML
  • Run :test:runServer to start a moddev server, using the local FML

@neoforged-pr-publishing
Copy link

neoforged-pr-publishing bot commented Jul 6, 2024

  • Publish PR to GitHub Packages

Last commit published: 53633e05ba7a958ce879ed5c46f2490cbd929d0d.

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 #177' // https://github.com/neoforged/FancyModLoader/pull/177
        url 'https://prmaven.neoforged.net/FancyModLoader/pr177'
        content {
            includeModule('net.neoforged.fancymodloader', 'junit-fml')
            includeModule('net.neoforged.fancymodloader', 'tests')
            includeModule('net.neoforged.fancymodloader', 'earlydisplay')
            includeModule('net.neoforged.fancymodloader', 'loader')
        }
    }
}

build.gradle Outdated Show resolved Hide resolved
buildSrc/build.gradle Outdated Show resolved Hide resolved
test/build.gradle Outdated Show resolved Hide resolved
gradle/wrapper/gradle-wrapper.properties Show resolved Hide resolved
tests/build.gradle Show resolved Hide resolved
tests/build.gradle Outdated Show resolved Hide resolved
@marchermans
Copy link
Contributor

What is the usecase for this?

You can just includeBuild FML in NeoForge and you get the same result. Is this for production jars or what?

@covers1624
Copy link
Member

I am not comfortable with FML having infrastructure to 'install' NeoForge, even for tests. What does this even help with? What is the expected use case of this?

Copy link
Contributor

@marchermans marchermans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can understand why this is needed.
But I don't think that using NFRT for just the asset download is a great idea.

I would really welcome it if we created an asset download library or something. I have been struggling with this in NG as well, and would welcome it for sure.

Alternatively I think that it should be build in into the installer if that is not wanted, potentially via installer utils.

Does that make sense?

@Matyrobbrt
Copy link
Member

Matyrobbrt commented Jul 10, 2024

But I don't think that using NFRT for just the asset download is a great idea.

Why is that?

NFRT is the NeoForm Runtime, it's as close as you get to an asset downloading library.

@shartte
Copy link
Contributor Author

shartte commented Jul 13, 2024

But I don't think that using NFRT for just the asset download is a great idea.

NFRT is the asset download library :-P

It's far more involved than just downloading some files. It interacts with the launcher installation detection, which itself is needed to speed up generating the desired asset state without re-downloading them for every tool individually. I think as a tool that aims to produce usable assets (both jar and art) for development, NFRT is just the right place for it.

You can also just invoke NFRT from NG exclusively for asset downloads if you want to benefit from the launcher install detection and asset reuse.

@shartte shartte force-pushed the runs branch 2 times, most recently from 26db85d to d22fbe8 Compare July 24, 2024 13:49
@Technici4n Technici4n dismissed marchermans’s stale review August 10, 2024 14:06

Removed request for changes.

@Technici4n Technici4n merged commit 2d3fba1 into neoforged:main Aug 10, 2024
3 checks passed
@neoforged-releases
Copy link

🚀 This PR has been released as FancyModLoader version 4.0.25.

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.

5 participants