Browse Source

[Doc-update] Added the bulk of text for CONTRIBUTING.md.

This file needs serveral big proof reading and editing sessions at some point. Please note, a lot of links are in this version missing.
merge-requests/1/head
Craig Oates 7 years ago
parent
commit
eb499af9f5
  1. 126
      CONTRIBUTING.md

126
CONTRIBUTING.md

@ -1,2 +1,126 @@
# Contributing to Console.Waterworks - Incomplete
More to follow...
Let me begin by saying thank you for stopping by and checking out Console.Waterworks.
The following is a set of guidelines for contributing to Console.Waterworks. I must stress, though, these are guidelines and nothing more. They are not set in stone. Please feel free to use your own judgement when contributing.
## Code of Conduct
The Console.Wateworks Code of Conduct governs every participant of this project. If you decide to take part in developing in cultivating the project, the expectation is for you to adhere to it.
Please report any unacceptable behaviour to craig@craigoates.net.
## The Creator's Expectations for Console.Waterworks
To those who do not know, Console.Waterworks is the creation of Craig Oates (A.K.A. me [GitHub Profile link]). I am a person, like you, and I argue it is important you know a bit about me. The reason why this is important is because it will help you gauge if this project is for you. I do not want you to feel frustrated when working on Console.Waterwork due to people problems. I know I cannot foresee every problem and counteract it. But, I can let you know the type of person I am and what I expect from the project. This will help you gauge the likelihood of us having conflicting personalities. And, it will highlight any differences in perspectives sooner -- if all goes as intended.
If it does look like we have a miss-match at the person level, I would like to take a moment and say one thing. It is okay -- we do not all think alike. You will face no hard feelings from me and I have no problem with you forking the code. If you do, I wish you the best of luck. And, do not feel like you cannot contact me and show me you weird and wonderful concoction.
Now back to the project stuff...
From my point-of-view, I am not in a rush to turn Console.Waterworks into a jack-of-trades thing. I would like to keep the scope of it as a simple "plumbing code" Nuget package. That does not mean I am against adding any new features, though. Because of this, I ask you to expect a conservative mind-set.
Before moving on, I would like to reiterate a point from above. You will not receive any ill-will from me if our goals do not align. It is okay to disagree. I am well aware one persons "done" is another person’s starting point.
## "I Don't want to Read this, I want to Ask a Quick Question"
The easiest and faster way to contact me is via email. Which is craig@craigoates.net. I do not recommend filling an issue because of this.
## "What Should I Know Before I Get Started?"
Before you jump in, I recommend you read The Complete Guide to Console.Waterworks. Console.Waterworks is not the most expansive or complex piece of code on the planet. But, it does have its own quirks and behaviours. That does not mean I have created a monster, though. I have tried to make it as modular and as easy to read as possible. But, it still has a reasonable amount of complexity to it. So, please read the guide.
## "How Can I Contribute?"
You can contribute to the project in several ways. The obvious two ways are filing issues and sending pull requests. You can, also, contribute by sending me an email. Although, the last one is not as open as the previous two. It is still an effective route to take if you want to discuss something at length. My email address is craig@craigoates.net.
### Reporting Bugs
I track bugs using GitHub Issues. If you find one, fill out the template provided and file an issue.
- Bug Report Template
When you file a bug report, do not hold back with the details. The more information I have, the chance of me fixing it increases.
### Suggesting Enhancements
You might have read "The Creator's Expectations" above... If you have, you will know I hold a conservative attitude for adding features. With that said, I am not against adding new features -- stated above as well. If you believe your suggestion has some merit, please feel free to submit it. I am more than happy to discuss your plan. Please, do not feel offended if your suggestion does not get added to the project, though. That is not my intension.
### "How do I Submit an Enhancement Suggestion?"
You can submit an enhancement suggestion via GitHub Issues. Before you do, here is a list of things to consider when submitting an enhancement suggestion.
- Use a clear and descriptive title for the issue to help identify the suggestion.
- Describe your enhancement in a brief summery. Aim to be as clear as possible.
- Highlight the area where this enhancement will improve Console.Waterworks.
- Provide a summary of how you intend to add your suggestion.
- If you have any step-by-step instructions, include them.
- Include any code snippets you think will help explain your points better. You can provide either links to an external source or include them as markdown blocks.
- Include screenshots and animated GIFs. They will help me understand your proposal better. It will, also, help explain where it will fit into Console.Waterworks.
- You can use Licecap to help you record GIFs. It is available on Windows and MacOS. If you are on Linux, you can use Silentcast or Byzanz. They are, also, GIF recording programs.
- Explain why this suggestion will be useful for most consumers of Console.Waterworks. I ask you to do this because it is one thing to work on Console.Waterworks and another to use it as a Nuget package.
- List any other examples of your suggestion in a working context. Also, highlight the benefit it has brought to that codebase.
I have decided not to include a template here because writing proposals can be a messy and tricky affair. They can be the rally call to the great unknown or a meticulous path to paradise. Each one has its place in this world and I aim to keep it that way. With that said, try to keep your suggestion as clear and concise as possible. I ask this because -- to be frank -- if I do not understand your suggestion how can I agree to include it?
### Pull Requests
Before submitting a pull request, I must stress the importance of talking to me first. I do not want you spending hours of your time writing code for Console.Waterworks to then face rejection. Your time is not my time and I would like to avoid wasting either of ours if I can help it. If there is something you would like to add to Console.Waterworks, you can do two things. The first is email me and talk about your plans. This is the quickest way for you to find out if your idea is worth pursuing. The second thing you can do is send an enhancement suggestion and hold the discussion there. This will result in a slower response but the conversation will be in the open. If you decide to file a suggestion, make sure you have read Suggesting Enhancements, above. Otherwise, my address is craig@craigoates.net
Now back to the pull requests...
Here is a list of things to consider when submitting a pull request:
- Fill in the Pull Requests Template.
- Do not include issue numbers in the pull request title.
- Include screenshots and animated GIFs in your pull request whenever possible.
- Follow the C# and Code Comments style guides.
- Describe how you intend to include the code into the projects documentation.
## Style Guides
As the title of this section implies, the following pertains to a collection of guides and not rules. With that said, I ask you to adhere to them as best as you can. Doing so, you will make my life easier. It will, also, mean you will have a faster response from me -- less work for me to work through. If you feel like you need to break away from these guides, please do so with care and caution.
### Git Commit Messages
- Limit the first line to 72 charters or less.
- Reference issues and pull requests after the first line.
- When changing documentation and nothing else, include "[Doc-update]" in the pull request title.
- I am not against the inclusion of the odd emoji but go easy on the amount you use.
- Use past tense (E.G. "Added feature X" not "Add feature X" or "Adding feature X").
- Aim to keep the message list-like until the end. From there, include any extra information in standard prose.
- Try to keep everything as clear and concise as possible.
### C# (C-Sharp)
Aim to adhere to the C# Standard Style. If you are working in Visual Studio, the automatic formatting should suffice. Here are a few examples.
- Brackets
- private class level variable names
- private method level variable names
- Class names
- Interface derived class names
- Casing
- Code Comments
I have tried to reduce the inclusion of comments to public facing "messy" code. This is due -- for the most part -- to intelliSense. It provides the user of Console.Waterworks with help when wiring it up to their console program. With that said, what makes sense to mean does not mean it does for you. So, if you feel like something needs further explanation, please add a comment. I would prefer it is comments aimed to explain the "why" and not the "how" or "what". But, this preference is a starting point and not an absolute. If you add a comment, please use XML-Comments for public code and standard comments for private code. I am not fussed when it comes to one multi-line comment or several inline ones.
Here are a few examples:
- XML-COMMENTS
- Inline comments
- Multi-line comments
## And even more Notes
If you would like to contribute to the project, thank you. Before you do, though, please make sure no one has already beaten you to saying or adding it first. I am yet to come across someone whom likes dealing with repeated issues, points or mistakes and I doubt I ever will. I appreciate all efforts by those checking to see if what they are saying is something new. On top of that, rejecting fifty individual issues is better than rejecting fifty of the same one. Well... that is my position of that anyway.
Do not feel put-off if I am slow to respond. I will read what you have to say but I am not at my desk all the time. On top of that, I encourage you to refrain from instant replies if you can help it. This allows me to consider what you have said without feeling pressured. I do not want to waste your time by retracting a hasty and ill-thought response.
And with that...
Do not feel like you need to reply back as fast as possible. If you feel the need to ponder something, do so. I am under the impression a good answer is better than a quick one. If you still feel bad for not replying as fast as possible, I have a piece of advice. Let me know you have received the communication (email, issue comment Etc.) and state you are thinking about it -- job's a goodun.
Last but not least...
I will not tolerate anyone acting like an "arsehole". I put Console.Waterworks on GitHub to help others. It is a nice thing to do. I owe you nothing and you owe me nothing. The same applies to everyone participating here. There is no need for any heated behaviour. So, with that said, welcome to Console.Waterworks and thanks again for contributing.
Loading…
Cancel
Save