Skip to content

Instantly share code, notes, and snippets.

@JTK222
Last active June 19, 2020 22:24
Show Gist options
  • Save JTK222/363a43ad680b9450017cff9f2e06bf09 to your computer and use it in GitHub Desktop.
Save JTK222/363a43ad680b9450017cff9f2e06bf09 to your computer and use it in GitHub Desktop.

FAP 2020

(Original Document by FinnT730 https://docs.google.com/document/d/10NTvlmXGI8CsRLR58GmL0AP8vc99NYy7g7650AP6A7I/edit#)

LTS

  • Would forge consider a rolling style LTS? Say supporting one extra LTS version for critical bugs/security fixes only (no new features, no discord/forums support for users) while servers are in the process of updating to a fully supported version?

The Idea was that each LTS version got support for 2 versions at least (12 months). They might turn 1.15 into the next LTS and then go with every 2 versions cycle, or deciding

  • Regarding LTS, if one wanted to support only one major MC version, which one is it recommended to support - LTS, or latest? Is it not determined (yet?)?

The purpose of the LTS was to give modpack creators a larger time frame to make modpacks. Also the LTS does also get Features backported to it.

  • Given how MC modding actually seems to work in reality (RE: 1.7.10, 1.12.2), is there thought into whether a longer LTS time might be better?
  • What current plans/thoughts are there in regards to supporting custom dimensions in 1.16, now that MC has neutered the dimension class(s)?

There will definitly be an API for it.

MCPConfig

  • Status on the new mapping frontend? Did it die?

No, it just needs more time.

  • How will the new mappings project affect modders and people who contribute mappings?If it's dead, what can we expect to see - differently from MCPConfig in the coming months/years?
  • Is it possible to reasonably fix those annoying edge cases where MCP can't name things? Like blit and its parameters, or lambda parameters.

Hopefully yes

  • Will there be a possibility to rename variables in a method for better readability. (For instance, world gen and similar stuff where it’s just d0 to d20 and you waste hours just to name & understand them)

That won't happen, to much work for to little payoff (tiny changes in mojangs code could break all the names)

  • There seems to be limits with how new an MCP mapping can be for a Minecraft version. Is there a way to bypass the limit and use more modern MCP mappings with Forgegradle versions that drop support for them or not?
  • What is the update on the official mappings from Mojang? Is it still reference only?

Yes, cpw recommends to stay far away from them

  • Will the new Mapping system allow local overrides? (e.g. Would I be able to rename Block -> Cube locally)

Mixins / Java agent

  • Not wanting to use a mixin/trait system for Forge's patches is understandable, as it makes viewing the source harder and has its own issues, but Forge's current source file patch system is debatably showing its flaws and age. As Mojang keeps its pace of updating more frequently, is there a risk that the patches are going to become a bigger burden? If so, are there any plans on improving this? Perhaps using JavaParser and/or Javassist to read, edit and patch dynamically?
  • Mixin support? There are situations where a hook is too niche to be added to forge, but many people feel the JS ASM is clunky and error prone.

The JS ASM Library is open source, feel free to make PRs that improve it if you don't like it.

  • It's been stated many times that Mumfrey can merge mixins into FML/Forge when they believe it is ready. Has anybody mentioned any kind of progress update on this?

Fabric / Yarn

  • Would forge ever consider switching to an open mapping set like yarn? Some people believe MCP names have had quality issues/low contribution rates and feel that they're legally encumbered.

Mojang

  • Mojang appears to be maintaining its increased pace. What is forge doing to handle this? Should there be at least intermittent experimental/incremental updating to snapshots so changes can at least be scouted out? Right now many people are relying on fabric's live-updates channel to get news on technical changes in the game as they happen each week as they feel it's better to know what's coming rather than get all the changes dumped on you once the full release happens.

Docs

  • On the note of Forges RTD, has there been a list compiled of systems that should be documented or is it just based around "whatever system people feel to pr"?
  • Current official Forge docs are almost always outdated, which is not helpful for beginners or professionals. Does the Forge team plan to rewrite documentation or to add links to McJty tutorials in the docs?
  • Has any thought gone into the possibility of requiring new feature PRs to include a documentation PR into the documentation repository?

Forge updating

  • With what seems like the ramping speed of Mojang updates, does the forge team foresee any changes that might need to be done to facilitate a more efficient and easy porting process for forge and its subsystems?
  • Forge seems to be accumulating problems trying to "keep up" with minecraft versions (e.g. IShearable or DeferredWorkQueue deprecated with no alternatives, HarvestDropsEvent alternatives took many months to arrive, there's still no config gui, looking at 1.16 dimension stuff may fall into this list). Is forge aware of this / thinks it's an issue? Are there things the community (or aspiring forge contributors) should do to help?
  • Will forge consider making alpha releases for release candidates in the future where features are known not to change, only bug fixes?

Tutorials

  • Any plans to make official tutorials for forge?

Custom Launcher

  • Will Forge be making its own launcher?

Custom things

  • If some people started an attempt on unofficially supporting 1.12.2 again, would they be able to use the existing MCP mappings and Forgegradle environment, or would they need to work from scratch?

Policy / strategy changes

  • Has there been any changes in terms of policy/strategy towards forge development since fap19?

Changes

  • Will there be a more mod friendly alternative to registry replacement in forge?
  • What are the thoughts on the current system of registry sorting? (blocks -> items -> everything else in alphabetical order) Would a more advanced / dependency based system be considered or what are the reasons for keeping the current system?
  • Is there a definitive list of features forge should/would like to have but nobody has gotten around to submitting a PR for?
  • Would the Forge team consider providing some kind of official Kotlin support?
  • How are coremods going to work when the nashorn javascript engine is removed from the jdk?
  • How much effort will it be for mods to update from 1.15 to 1.16? What are the main challenges?

Github / PR

  • Speaking of features, there seems to be a consensus in the community related to the fact that PRs to Forge need a long time to get reviewed. What is the stance of Forge on the topic? Is there something that should/could be done on the community side to streamline the process more, if so is needed? On the other hand, is the community feeling wrong and stuff gets done between the Forge team?
  • On a follow up note to that, people sometimes feel like there is often a lack of feedback on PRs.There have been quite a few times where changes Lex wanted made are told directly to his triage team, and then the PR is unassigned. Would it be possible for those requested changes to be more transparent? (Whether it is Lex mentioning them in the PR himself, or someone on the triage team making a comment on the PR to let the author know what things they need to change after Lex tells them what he wants done)
  • There have now been multiple cases where PR's have been kind of lost due to the author no longer working on them and no one else can pick them because the requests for changes aren't discussed in public / not linked. Is there anything that can be done to address that?
  • Many PRs and issues on Forge GH go stale with no feedback from the team beyond labels. What should these people do to prevent this? Is a GH ping to a maintainer appropriate when conversation is sufficiently dead?
  • What is the state/retrospective of omnibus PRs? Can things like tag suggestions now be done as individual PRs?

Data fix Upper

  • What is the opinion on the DFU?

ForgeGradle

  • What is the state of ForgeGradle? Is there anything concrete in fixing source attachment issues or pom.xml dependency pollution?
  • Any chance that we will get something similar to jar embedding like in the past?
  • Many people feel ForgeGradle is still not robust enough, especially when downloading the assets and libraries on bad internet connections.. Are there any plans to continue to update ForgeGradle for more recent Gradle versions?

License stuff

  • Is ForgeSPI (the Coremods repo as well) LGPL licensed, since the repo is missing a LICENSE file - but the Maven metadata does specify LGPL

Configs / TOML stuff

  • Are there any thoughts on moving synced server configs to the normal config folder in 1.16+ and possibly creating an additional Type.WORLD instead to cover the current case?
  • Is there a reason why the TOML doesn't have a required side value for the mod itself similar to how the @Mod worked in the past?
  • Will supporting other config formats other than toml be considered? NightConfig itself has support for others, but forge only includes the binaries for toml.

Server Backend

Optifine / Shaders

  • Does the Forge team think that an open- or visible-source version of Optifine could be community developed on top of Forge? If so, would it be possible to do that without having to resort to bytecode manipulation, possibly with a discussion with the team on how to approach certain changes?

API

  • Is there any current reason for the split between net.minecraftforge and net.minecraftforge.fml? There is a bunch of stuff in FML that seems like it would belong in the main minecraftforge package (RegistryObject, IEntityAdditionalSpawnData, networking hooks) for example. Also, I'm curious what the distinction between net.minecraftforge and net.minecraftforge.common is, because they both seem to contain things that are shared between the client and server.
  • Would Forge be more open to making a more clear demarcation between internal and external APIs? Something like making .api and .impl subpackages, for example. Some classes like GameData have comments at the top saying that they are internal, but they're still in the same place as external API meaning that some mods like Quark end up using them anyways. Access modifiers can also be misleading because things need to be made public to be accessed from patches, even if they are internal.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment