Rules of Universe Object Library - RandomCatGit/Universe-Object-Library GitHub Wiki
Rules!
-
Java version 8 shall be used. This is to maintain uniformity of code structure and to avoid conflict in "contemporary coding style".
-
Before creating a new pull request, issue has to be raised regarding your contribution of RWO name (Name of Java class), path (to avoid lingual ambiguity and other time eaters) and a few words about the depth of detail you are going to provide.
-
For example: RWO name: Dog, Class path proposed: uol/animals/mammals/Dog.java, Depth of RWO definition: Basic organism properties, human friendliness, breed name, waggly tail and so on (but this is optional as we can add in the properties later).
-
The label for issues requesting new RWO proposal is New RWO and for making changes is Changes. If you feel something is wrong/out of the ordinary in the existing code, raise an issue under the label I Object!. All these issues are to be raised under the project RWO Related Issues.
-
Merge shall be done in the branch "everything", which is the default branch of the project, from which you may create a new branch and do your modifications and raise a merge request. Master branch will get managed by owner/collaborator with stable code from the same.
-
All RWO class will extend UniverseObjectLibrary RWO, (which is technically not an RWO) but will have a common linkage to all the RWO in the project.
-
An RWP must be used for RWOs with common properties and functionalities to reduce code size. The RWP has the same documentation rules as an RWO but has the classes denoted as RWP instead of RWO.
-
All RWP class will extend UniverseObjectLibrary RWO, and all the classes extending the RWP will have transitive dependence on UniverseObjectLibrary RWO.
-
All RWO must contain a serialVersionUID which starts at 0L and gets incremented by 1 each time the RWO is modified.
-
All Java files must be properly documented, properly indented and easy to understand.
-
Project owners/collaborators reserve all rights to accept/reject/advice/comment/modify any and all codes present in the project.
-
Any material/appeal/suggestions made in a provocative/offensive/misuse/inhumane manner will get you banned from contributing to the project, causality including but not limited to removal of ownership of code without the contributed code itself.
-
Sample Object structure and guidelines will be provided in the "sample" gist and will be updated and notified if any urgent changes are made.