-
Notifications
You must be signed in to change notification settings - Fork 183
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
add CONTRIBUTING.md #36
Comments
Great, I think we should decide on what to do with tests. The way I've done it is to have one or a couple of MSpec-specifications per feature, these are the ones I start with and have the failing. Once the feature is done the specs will succeed. Then I do normal unit testing while developing. Is this a workflow you are comfortable with? To me the specs are the ones we can not live without but I like to have unit tests as well. |
Agreed, for a framework such as this the feature tests are the most important. I'm also really keen on unit tests since they always end up improving the implementation ;-) whether written before, after or during the SUT. I'm quite happy with that workflow. But in the end, CONTRIBUTING.md really just forms rules for how a pull request should look when sent. The specific workflow a contributor uses to get to that point is ultimately up to the contributor. Fine to have this as a suggested workflow though. |
What is the opinion on autocrlf? Opinion in the community is very divided so it's difficult to know "what's best". Historically I've used autocrlf=true for most of my repos, but recently I've switched to autocrlf=false since I think it makes more sense.
Having said that, it looks like the FIE repo is currently being committed to using autocrlf=true so this would be a change for us. We would all need to switch to autocrlf=false and refresh our checkouts accordingly. Regardless of which option we choose, it needs to be reflected in CONTRIBUTING.md. Thoughts? |
Another one which bit me in my last pull request - tabs vs spaces (https://github.com/FakeItEasy/FakeItEasy/pull/40/files#r2952628). My vote is for spaces. It looks like the C# files are already using spaces and it's just some other files such as the build script which are currently using tabs. The nuspec has a mix of the two :-p |
It should be spaces, I think I was using Notepad++ for some xml-files and that was set to use tabs I guess. |
I have no real input on this, anyway is fine with me. You decide! |
Ok, I should be able to pick this up soon. @philippdolder do you have any views on the above? |
Some further points
We don't necessarily have to discuss all of these. |
That's all for now. I'm back after a hard week of Carnival in Lucerne :D |
@philippdolder thanks for the input! I think we're agreed on most points. I'll see if can get a pull request together soon with a CONTRIBUTING.md.
And that just leaves the old favourite, autocrlf. As long as we only work in Windows, true is fine. However, as soon as we start to work in Linux, this breaks. I can't have it set to true in Linux because it will break bash scripts which will be required for a Linux build. I guess we could just run our Mono build in Windows, but my preference would be to run it on Linux as well, to prove the cross platform capability. So I believe we need to answer the following questions:
If the answer to both these questions is yes, then I think we have no option but to insist that contributors use autocrlf = false. Otherwise, autocrlf = true is OK. |
To find out if it's worth officially supporting Mono I asked on Twitter (https://twitter.com/philippdolder/status/301967811557855232) |
I like the AAA-comments not for myself but for beginners. I think FIE should be a place that promotes TDD to beginners, that's the sole purpose of it really. Agree with not allowing Resharper suppressions. I don't use it either and no one should. ;-) |
In that case, let's include the AAA comment guideline. |
What tool are you guys using to support refactoring? |
I've always managed with the built in tools. I was of course not serious in that no one should use it though, I'm all for choice! The only thing I miss from R# is the navigation features. |
I couldn't live without R# anymore. All the smart templates, refactoring, test runners etc. |
I'm also happy with the built in stuff, plus some other bits that come from other free and lightweight add-ins, plus my own keyboard-fu. I've always had a love/hate relationship with Resharper. If it was free I might use it but I'm not going to pay for it for personal use. When I first stopped using it I felt a bit lost but I've got used to living without it now and I don't miss it. I don't like the test runner. I used to, but it's fundamentally flawed. The GUI is nice but it doesn't work properly with xUnit.net Theory tests which generate multiple test commands per method and for the same reason doesn't handle xBehave.net Scenario tests properly either. It also suppresses console output. These days I've fallen back to Testdriven.net inside the IDE and xunit.console outside. |
Wouldn't you all be eligible for the open source license since you're the maintainers of an open source project? |
Possibly, but as I said above, I don't really miss it and I always had a love/hate relationship with it anyway. It can be harmful as well as helpful. |
It's definitely so that we're eligible for the OS-license. I've had such a license earlier but I don't use it anymore. If anyone needs it it's easy to apply for it. The same goes for other products such as the profiler. |
@FakeItEasy/owners when time permits, can you please take a look at the first draft and add any comments https://github.com/adamralph/FakeItEasy/blob/36-contributing/CONTRIBUTING.md |
BTW - I had some thoughts about autocrlf and I think it's simpler if we have the guideline as autocrlf=true for now. This is the default setting in Windows and it appears to be what everyone has used to date for FIE since the repo seems to only contain LF and no CRLF. If we do choose to support Mono officially, I have some ideas which would hopefully remove the need to use bash scripts in Linux/OSX, in which case CRLF on those platforms should cause no issues. This would allow us to state autocrlf=true as the guideline for all contributors, regardless of OS. Another possibility is to state a guideline of autocrlf=input for Linux/OSX clones but hopefullly this won't be required. NOTE: should we ever wish to do so, I believe it is practical to change the guideline later from true to false, but not from false to true. The latter would cause too much disruption. |
sounds reasonable to me |
with guideline for contributors, e.g line endings, branching, etc.
This is a special file that GitHub knows about and the UI tells fork creators about it.
The text was updated successfully, but these errors were encountered: