ForgeEssentials

ForgeEssentials

339k Downloads

[Project Overhaul] Fixes and improvements

PolarianDev opened this issue ยท 14 comments

commented

Hello,

I would like to suggest a lot of improvements which can be made to better aid in the development and contributions and the usability of the project.

  1. Rewrite of the Github Wiki to a static wiki site. This is for a few reasons, it is very hard to contribute to a github wiki as its very closed off and limited access, Pull Requests and other useful features are lacking. I suggest creating a new git repository for the documentation and use mkdocs or docusaurus for better documentation standards, which is bound to stop people asking so many questions in the discord. This will allow for better documentation maintainability considering the current docs are rotting. (I am happy to take this task on myself)
  2. Fix the licencing, ForgeEssentials repository contains both the server and client, licensed under GPLv3 but yet on curseforge the client licence is "All rights reserved", wihch is misleading, no rights here have been reserved and no exemption to this licence has been publicly stated. See https://www.curseforge.com/minecraft/mc-mods/forge-essentials-client
  3. Name your formatting, there seems to be no standardised formatting, nor any formatter been ran over this codebase ever. I recommend google's format, they have a tool to run the format over a java codebase.
  4. Document every method, attribute and class using Javadocs, now all Java Devs hate writing javadocs, but where you want others to contribute, we got to read every single method, instead of having a clear precise javadoc statement saying its return values and how to handle them. This is vital and should be employed with every new PR, and slowly move the codebase over. A CI/CD job can be used to build the javadocs and deploy it to aid for development (this might need more server resources, maybe I can provide some)

I think that is good for now, let me know what you think about these suggestions :)

commented

Code format is C based convention. We just haven't run a formatter in a long time.

commented

C doesn't really have conventions, and even then it is highly disputed.

C mostly uses snake case, but both brace syntax is used within C code.

commented

It just hasn't been run in a while

commented

And let me make a correction, is mostly Java convention with C based bracket convention. (second line for bracket). There are some places where this isn't set up and that is just an oversight.

commented

The issue with this is that it is intellij specific.

Even if you do port it to eclipse not everyone uses them two IDEs, something IDE specific prevents CI/CD or any other methods of formatting. This should be reviewed.

commented

And let me make a correction, is mostly Java convention with C based bracket convention. (second line for bracket). There are some places where this isn't set up and that is just an oversight.

Again this is also highly controversial, a lot of C code also does same line braces. C# however is the one which differs because microsoft specifically stated the new line brace convention in the coding conventions.

commented

Formatter is set rather clear in https://github.com/ForgeEssentials/ForgeEssentials/blob/1.12.2/develop/misc/intellijformat.xml

Never knew you could speak serialised data, not designed to be read :P

commented

Keep in mind that it has been this way for a long time. The inteliJ formatter is mostly the same as the Eclipse one with a small enforcement that if statements, including single statements are enclosed in brackets and that imports are set to explicitly import every class.

commented

As for documentation, I agree that is a good idea, however, currently there is not time to investigate a new documentation solution. Same with Java Docs, looks good on paper but requires many man hours to perform. I am leaving this as low priority for now.

commented

As for documentation, I agree that is a good idea, however, currently there is not time to investigate a new documentation solution. Same with Java Docs, looks good on paper but requires many man hours to perform. I am leaving this as low priority for now.

Give me the go ahead and I will write up a draft reimplementation of everything in the github wiki into the documentation site of your choosing (mkdocs, docusaurus) and if it is a success you can pull it into ForgeEssentials org

commented

Hm, but the project existed well before that.

A major change in format would cause a major issue, I wonder if there is a formatter which can load the xml and use it, might be useful to execute a CI/CD run on a PR to ensure its all nice and formatted before merging.

Again that would take more time xD

commented

66fc8f0

Seems Lucas was the one who defined the format for the codebase.

commented

Yes, correct! I just modified it!