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

1.14 Update, and future protocol. #819

Open
LexManos opened this issue May 9, 2019 · 2 comments

Comments

@LexManos
Copy link
Member

@LexManos LexManos commented May 9, 2019

Hello everyone,

I know the 1.14 has taken a bit of time to come out. This is due to many factors. Not the least of which was my decision to try and experiment and include a large part of the community into the update process. This was a bit chaotic while people learned the process, I still did quite large chunks of the process myself and will be exposing more and more to the community as time progresses and tasks get finished. My goal was have some people gain a better understanding and appreciation for the work I have been doing, and build a better system for moving forward.

The first major pass was the creation of new class names for all of the new classes added in 1.14. This was done as a completely open process. Everyone had access to submit and discuss new names. This was done through Google docs, and the MCPConfig channel on the Forge discord. Overall, this was a good process. We had a few trolls. Some greifing, and some really good debate. So thank yo to everyone who helped in that.

We also introduced some coding standards in an attempt to unify and cleanup the Minecraft code base.
The three major changes were left up to the community:

  • #815 Drop "Enum" prefixes for enumerations: Favor.
    Enumerations will no longer be prefixed. ("EnumFoobar" -> "Foobar")
    Enum Changes TSRG

  • #816 Drop "I" prefixes for interfaces: Opposed.
    Interfaces will continue to be prefixed. ("IFoobar")
    Interface Changes TSRG

  • #817 Migrate from prefixes to suffixes: Favor.
    Everything will now use suffixes. ("BlockFoo" -> "FooBlock")
    Suffix Changes TSRG

This second pass was a bit more controlled, The general public could still comment in Discord and see what we were doing. But the actual changes were limited to a select group of people, @kashike @gabizou @Aaron1011 @Zidane and @jamierocks. Others were invited, but for one reason or another declined to join. You can see the document we used to do this pass here

You can see a full TSRG for the changes here. There are some tools out there to help this migration process. Most major IDE's have refactoring tools that can be scripts. As well as https://github.com/MinecraftForge/Srg2Source being a tool Forge has used for years for similar process. I know this will not be a 100% fool proof process, but my hope is to mitigate a majority of things, and have the community help build tools to make it as painless as possible.

After that, we moved on to updating MCPConfig itself. @JDLogic, @quadraxis, @williewillus, and a bunch of others were a big help in this. So thank you.

What does this mean going forward?

Firstly, we have to address the timeframe, This update took quite a while longer then I expected due to many factors. Not the least of which was bringing everyone on board and getting them up to speed. My hope is that in the future this process will get faster and faster, while still having more people's inputs.

Secondly, this has proven to be a great success when it comes to finding a way to fairly decide things that effect the entire community such as class names. So moving forward we will be holding a standardized voting system on class names. The first pass will still be done internally by myself, and others who are helping the update process. However, after that this repo's issue section will be the forum and voting system for changing changes.

A few rules:

  • Class names can only change on MAJOR Minecraft versions. Such as 1.12.2 -> 1.13. Not 1.13 -> 1.13.1.
    This is to keep the modding scene sane during minor versions.

  • Votes for class names must have been open for at least a week, to give people ample time to discuss and vote.

  • Votes need to be tagged with the 'classname' and 'vote' labels to make them easy to find.

  • Votes must be kept to single changes only to prevent 'all or nothing', an example being us splitting the above mentioned votes into three separate issues.

  • Lastly, the MCP team reserves the right to veto any changes, just in case things like 'Block' -> 'Dohicky' get suggested and somehow the troll votes win.

However, due to this being a new process, and a large amount of changes being done. I will be breaking the rules just once and allowing community votes on class names during a minor version. 1.14.1 is due to be released here shortly. But to give the community a chance to have their input heard. Any vote open before/on Monday (05/13/19) will be counted on Friday (05/17/19) and applied to the 1.14.1 MCP update.

For now, MCPConfig 1.14 has been deployed to the Forge maven. Forge will begin it's update process shortly, and hopefully this will breed a better community!

@williewillus

This comment has been minimized.

Copy link
Contributor

@williewillus williewillus commented May 9, 2019

Here is an intellij migration mapping from 1.13 -> 1.14 class names. It should automate all of the renamings described here within several clicks and is generated from lex's TSRG. See the comment below the gist for usage instructions: https://gist.github.com/williewillus/2dfc945b7b7fdb69cc3ff830072d22fe

@Sana36

This comment has been minimized.

Copy link

@Sana36 Sana36 commented May 16, 2019

So many different places for information - I am still offering to help with documentation.

Also where is the best place to offer help? and what is needed the most?

@tterrag1098 tterrag1098 pinned this issue May 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.