Merging Mods, Collaborating
Posted: Wed Oct 21, 2015 10:49 pm
Starting from the next push, I will begin rolling some of the outstanding community enhancements into the core library. This includes work by Nystul, LypyL, and Uncanny_Valley.
What this means is we are all using the same code base. Changes to your code will be pulled into the work-in-progress branch, which in turn will eventually be rolled into the stable master branch.
I will add the latest versions I have of your work into the work-in-progress branch. These will be positioned in the Assets/Daggerfall Unity/Game/Addons folder. I will add enhancements one at a time and we can focus on any fixes needed for them as required.
Once your enhancement is checked in by myself, below will be the collaborative workflow moving forwards.
For new mod creators that aren't in the Game/Addons folder yet, please just send me a .assetpackage of your work to start with, keeping in mind the guidelines above. I'll do a review, let you know my comments, and hopefully can get you into the core code before long.
What this means is we are all using the same code base. Changes to your code will be pulled into the work-in-progress branch, which in turn will eventually be rolled into the stable master branch.
I will add the latest versions I have of your work into the work-in-progress branch. These will be positioned in the Assets/Daggerfall Unity/Game/Addons folder. I will add enhancements one at a time and we can focus on any fixes needed for them as required.
Once your enhancement is checked in by myself, below will be the collaborative workflow moving forwards.
- In your github account, fork my work-in-progress build.
- When you are ready to make changes to your code, create a new branch from your fork. This allows you to experiment without affecting anything else. You can switch between branches in your git client.
- Make any changes you need to your code. If changes are required to elsewhere in the library, make those as well. Don't forget to put your name in the // contributors comment line near the top.
- Once you're happy with the changes, merge them back into your fork of my work-in-progress branch.
- Send me a pull request of your changes. I will review and if no problems will accept pull request back into the work-in-progress branch.
- Your code must build from the Unity Editor with zero errors and zero warnings. Even warnings like "variable foo was assigned but never used" must be resolved.
- Don't change anything unrelated to your required code changes. If you need to experiment, that's OK, but do it in a safe branch or offline copy (or revert files back to how they were before checking in).
- Use the standard code header in each file, naming yourself as the original author for your files, or as a contributor if you change another person's code.
- It's OK to have your own code/formatting style, but when editing another person's code please try to keep the style consistent with theirs. This applies to me as well if I need to edit your code.
- If your enhancement requires input, do not use Input.KeyDown or similar. Please create an action in the InputManager and assign a default key to that action. The InputManager is our central point for all game input moving forward. For non-game input (e.g. a debug console), it's OK to use the usual Unity Input namespace directly.
For new mod creators that aren't in the Game/Addons folder yet, please just send me a .assetpackage of your work to start with, keeping in mind the guidelines above. I'll do a review, let you know my comments, and hopefully can get you into the core code before long.