From 295a9e41f948791a7abc9d0a49f94a7d6aed5a22 Mon Sep 17 00:00:00 2001 From: FTCTechNH Date: Fri, 11 Nov 2016 20:33:04 -0500 Subject: [PATCH] Added guidelines for contributing to the repository and issuing pull requests. --- .github/CONTRIBUTING.md | 68 +++++++++++++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 1 + doc/media/PullRequest.PNG | Bin 0 -> 19655 bytes 3 files changed, 69 insertions(+) create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 doc/media/PullRequest.PNG diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000000..bfd93bc78c5 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,68 @@ +# Contributing to the FTC SDK + +The following is a set of guidelines for contributing the FIRST FTC SDK. The FTC Technology Team welcomes suggestions for improvements to core software, ideas for new features, requests for built-in support of new sensors, and well written bug reports. + +## How can I contribute? + +### Pull requests + +__STOP!__ If you are new to git, do not understand the mechanics of forks, branches, and pulls, if what you just read is confusing, __do not__ push this button. Most likely it won't do what you think it will. + +![Pull Button](../doc/media/PullRequest.PNG) + +If you are looking at this button then you've pushed some changes to your team's fork of ftctechnh/ftc_app. Congratulations! You are almost certainly finished. + +The vast majority of pull requests seen on the ftctechnh/ftc_app repository are not intended to be merged into the official SDK. Team software is just that, your team's. It's specific to the tasks you are trying to accomplish, the testing you are doing, and goals your team has. You don't want that pushed into the official SDK. + +If what you've read so far makes little sense, there are some very good git learning resources online. +[Git Book](https://git-scm.com/book/en/v2) +[Interactive Git Tutorial](https://try.github.io) + +##### Guidlines for experienced GIT users. + +If you are absolutely certain that you want to push the big green button above, read on. Otherwise back _slowly away from keyboard_. + +The real intent for advanced users is often to issue a pull request from the [branch](https://www.atlassian.com/git/tutorials/using-branches/git-branch) on a local fork back to master on either the same local fork or a child of the team fork and not on the parent ftctechnh/ftc_app. See [Creating a Pull Request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/). + +If that is indeed the intent, then you can merge your [topic branch](https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows#Topic-Branches) into master locally by hand before pushing it up to github, or if you want a pull request for pulls between branches on the same repository because, say, you want team members to look at your software before merging into master, you can select the base fork from the dropdown on the "Open a pull request" page and select your team repo instead of ftctechnh's. + +Alternatively, if you have a team repository forked from ftctechnh/ftc_app, and then team members individually fork from your team repository, then pull requests from the individual team member's forks will have the main team repository automatically selected as the base fork for the pull. And you won't inadvertently request to pull your team software into ftctechnh's repository. + +The latter would be the "best" way to manage software among a large team. But as with all things git there are many options. + +Pull requests that do not fall into the category above are evaluated by the FTC Technology Team on a case-by-case basis. Please note however that the deployment model of the SDK does not support direct pulls into ftctechnh/ftc_app. + +### Report bugs + +This section guides you through filing a bug report. The better the report the more likely it is to be root caused and fixed. Please refrain from feature requests or software enhancements when opening new issues. See Suggesting Enhancements below. + +#### Before submitting a bug report + +- Check the [forums](http://ftcforum.usfirst.org/forum.php) to see if someone else has run into the problem and whether there is an official solution that doesn't require a new SDK. + +- Perform a search of current [issues](https://github.com/ftctechnh/ftc_app/issues) to see if the problem has already been reported. If so, add a comment to the existing issue instead of creating a new one. + +#### How Do I Submit A (Good) Bug Report? + +Bugs are tracked as GitHub issues. Create an issue on ftctechnh/ftc_app and provide the following information. +Explain the problem and include additional details to help maintainers reproduce the problem: + +- Use a clear and descriptive title for the issue to identify the problem. + +- Describe the exact steps which reproduce the problem in as many details as possible. + +- Provide specific examples to demonstrate the steps. + +- Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior. Explain which behavior you expected to see instead and why. If applicable, include screenshots which show you following the described steps and clearly demonstrate the problem. + +- If you're reporting that the RobotController crashed, include the logfile with a stack trace of the crash. [Example of good bug report with stack trace](https://github.com/ftctechnh/ftc_app/issues/224) + +- If the problem wasn't triggered by a specific action, describe what you were doing before the problem happened and share more information using the guidelines below. + +### Suggesting Enhancements + +FIRST volunteers are awesome. You all have great ideas and we want to hear them. + +Enhancements should be broadly applicable to a large majority of teams, should not force teams to change their workflow, and should provide real value to the mission of FIRST as it relates to engaging youth in engineering activities. + +The best way to get momentum behind new features is to post a description of your idea in the forums. Build community support for it. The FTC Technology Team monitors the forums. We'll hear you and if there's a large enough call for the feature it's very likely to get put on the list for a future release. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000000..665369bbc93 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1 @@ +Before issuing a pull request, please see the contributing page. diff --git a/doc/media/PullRequest.PNG b/doc/media/PullRequest.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8cba3a987b6ddc4ac59cd8128291f8caed43ff84 GIT binary patch literal 19655 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 QlVhh4X4WvG$sO!}02-HC^Z)<= literal 0 HcmV?d00001