|
1 | 1 | --- |
2 | 2 | layout: post |
3 | | -title: "Welcome to Jekyll!" |
4 | | -date: 2015-11-14 16:19:02 -0500 |
5 | | -categories: jekyll update |
| 3 | +title: "Contributing to HTBox projects" |
| 4 | +date: 2015-11-15 16:19:02 -0500 |
| 5 | +categories: general contributing |
6 | 6 | --- |
7 | | -You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. |
| 7 | +Introduction |
| 8 | +All of our projects are Open Source, and released under the MIT license. Before you do anything, |
| 9 | +ensure that working on our projects does not conflict with any of your employee agreements. |
8 | 10 |
|
9 | | -To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works. |
| 11 | +We manage project workflow using a form of 'volunteer scrum' process. It's essentially scrum, |
| 12 | +but because we know everyone is a volunteer, we expect large flucuations in velocity. We |
| 13 | +also know that our volunteers have other committments, and may need to pull away from an |
| 14 | +assigned task before it's completed. Later |
10 | 15 |
|
11 | | -Jekyll also offers powerful support for code snippets: |
| 16 | +The remainder of this document explains how our projects are organized, how to assign |
| 17 | +yourself work, and how to sumbit that work for review. We'll also explain how to submit ideas |
| 18 | +for work that you want to do to enhnce our projects. |
12 | 19 |
|
13 | | -{% highlight ruby %} |
14 | | -def print_hi(name) |
15 | | - puts "Hi, #{name}" |
16 | | -end |
17 | | -print_hi('Tom') |
18 | | -#=> prints 'Hi, Tom' to STDOUT. |
19 | | -{% endhighlight %} |
| 20 | +Finding A Task |
20 | 21 |
|
21 | | -Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. |
| 22 | +TL;DR version: |
| 23 | + |
| 24 | +Look at the issues page for a project, select the Milestones tabl, and select the current |
| 25 | +milestone. Those are the items for the current sprint. If this is your first time helping us, |
| 26 | +look for issues tagged with the 'JumpIn' label. When you find one you like, write a comment saying |
| 27 | +"I'll work on this". One of the team will reach out to you, and see if you have any questions. |
| 28 | + |
| 29 | +More details: |
| 30 | + |
| 31 | +We use Github issues to manage work. This could be proposed features, tasks under a feature, bugs, |
| 32 | +and suggestions. We manage the backlog by using Milestones. Every project has a current milestone, and a |
| 33 | +backlog milestone. Issues assigned to the current milestone represent priority items in the current |
| 34 | +sprint. Issues assigned to the backlog milestone have been triaged and accepted, but have not been assigned any |
| 35 | +specific milestone. |
| 36 | + |
| 37 | +Some projects have other upcoming milestones, based on customer needs, upcoming pilots, or upcoming |
| 38 | +releases. |
| 39 | + |
| 40 | +In addition, we label issues to provide some additional guidance. Withing a milestone, we will use the 'P1', |
| 41 | +'P2' and 'P3' milestones to mark the priority of a task or feature. (P1 is the highest, P3 is the lowest.) |
| 42 | +In addition, we use the 'JumpIn' label (which is always green on our projects) to denote issues that would |
| 43 | +be suitable for someone not yet familiar with the project. The 'JumpIn' issues may not always represent |
| 44 | +simple fixes, but they do represent work that does not require a deep knowlege of the code base, or a deep |
| 45 | +knowledge of the business workflow for a project. |
| 46 | + |
| 47 | +Other labels are project-specific and will be documented for that project. |
| 48 | + |
| 49 | +Tag yourself in a comment saying that you're working on an issue, and we'll start the converation. |
| 50 | + |
| 51 | +You may notice that you can't assign yourself to work on an issue. That privilege is limited to the |
| 52 | +core team. Also, we can only assign issues to registered team members. If you enjoy |
| 53 | +working on our projects, we'll add you to the team, and we will assign tasks when you tag yourself. |
| 54 | + |
| 55 | +Getting the Code |
| 56 | + |
| 57 | +TL;DR version |
| 58 | + |
| 59 | +Fork the repository. Clone your fork using your favorite Git client tool |
| 60 | + |
| 61 | +Long version: |
| 62 | + |
| 63 | +We use the Github Flow process on all our projects (link). That means you are not commiting your |
| 64 | +changes directly to our repositories. Instead, you will submit a Pull Request for one of the |
| 65 | +lead committers to pull your changes into our repository. That enables us to review your |
| 66 | +changes, and discuss them with you. We even use this process ourselves: other core team members |
| 67 | +review our changes and pull them into the repository. |
| 68 | + |
| 69 | +The first step in this process is to get the code onto your machine, configured with a |
| 70 | +github repository where you can commit your changes. You do that by creating a fork of |
| 71 | +the project repository in your account. You (and only you) have write access to your fork. |
| 72 | + |
| 73 | +Now, you can clone your fork onto your desktop. You'll commit your changes locally, and |
| 74 | +then push them to your fork on github. |
| 75 | + |
| 76 | +Building the project |
| 77 | + |
| 78 | +TL;DR version |
| 79 | + |
| 80 | +It's likely a Visual Studio based .NET project. Load the appropriate .sln and buld. |
| 81 | + |
| 82 | +Longer version: |
| 83 | + |
| 84 | +Some of our projects have both web and mobile components. Those will have a master solution, |
| 85 | +that builds everything. They will also have a -web solution that only builds the web based |
| 86 | +application. They may also have a -mobile solution that builds only the mobile applications. |
| 87 | + |
| 88 | +Load the appropriate solution, and build it. |
| 89 | + |
| 90 | +All our projects have some unit tests. The amount of coverage varies with the origins |
| 91 | +of the projects. In all cases, we encourage contributors to help add to the unit test coverage.at whatever adfadf |
| 92 | +For those projects where we do have good coverage, we may even reject pull requests without |
| 93 | +the addition of new tests that exercise the code being developed. |
| 94 | + |
| 95 | +Doing the work |
| 96 | + |
| 97 | +TL;DR version |
| 98 | + |
| 99 | +Work as you normally would, commit and push your changes at the cadence that works for you. |
| 100 | +Please make one Pull Request for one Issue, rather than fixing several issues in on PR. It's much |
| 101 | +easier for us to review and merge when a PR is focused on one issue. |
| 102 | + |
| 103 | +Long Version: |
| 104 | + |
| 105 | +There are a few steps here that can help us review your pull request and ensure a smooth process |
| 106 | +when we take your code. All the tips described here make it easier for us to merge your changes |
| 107 | +with changes being made by other developers. |
| 108 | + |
| 109 | +On at least a daily basis, rebase the changes you are making on the master branch <link>. This |
| 110 | +ensures that when you have completed your work, it merges easily into the master branch. |
| 111 | + |
| 112 | +We recommending rebasing instead of merging the master branch into your fork because thaA creates a |
| 113 | +cleaner pull request. |
| 114 | + |
| 115 | +Consider squash commits. A squash commit combines several original commit actions into one commit. |
| 116 | +The result is a single commit that shows all your changes. This isn't necessary, but if you are |
| 117 | +comfortable doing it, please do. |
| 118 | + |
| 119 | +Submitting a Pull Request |
| 120 | + |
| 121 | +TL;DR; |
| 122 | + |
| 123 | +When you're doing with an issue, submit a pull request and we'll take a look. |
| 124 | + |
| 125 | +Long Version; |
| 126 | + |
| 127 | +You don't have to wait until all your work is done in order to send us a pull request. If you want |
| 128 | +the core team to look at your code, but not accept the changes yet, open a pull request, and prefix the |
| 129 | +title with 'WIP'. That tells us to review the code, but that it is not done, and is not yet ready to merge. |
| 130 | +When you are finished, and the PR is ready to merge, simply remove 'WIP' from the PR tktle, and we'll |
| 131 | +give it a final look, and merge it. |
| 132 | + |
| 133 | +When you submit a pull request, an automated build (using AppVeyor) will merge your changes onto |
| 134 | +a copy of the master repository, build that configuration, and run all automated tests. |
| 135 | + |
| 136 | +If any of those steps fail, we will ask you to fix them before we accept the pull request. (We don't |
| 137 | +comment on this if you've labelled the PR 'WIP'.) |
| 138 | + |
| 139 | +We ask you to resolve any merge conflicts because you know your code the best. This article <link> |
| 140 | +shows how to update your fork from master. |
| 141 | + |
| 142 | +Ideally, you can rebase your changes on the lastest version of mster. Here's a quick video that |
| 143 | +shows how to do that. |
| 144 | + |
| 145 | +Responding to Reviews |
| 146 | + |
| 147 | +TL;DR; |
| 148 | + |
| 149 | +If you update your code, and push to your fork, github automatically updates the PR. We'll see the |
| 150 | +changes. If you disagree with the review, please comment on the code, and tell us why your |
| 151 | +approach is better. We may or may not approve it, but we will listen. |
| 152 | + |
| 153 | +Long Version |
| 154 | + |
| 155 | +Reviews are especially important when you are making your first PR for us. It's a way to have |
| 156 | +a conversation about the code as you make it. We appreciate the volunteer contributions we receive, and |
| 157 | +we value your time. We'd rather help comment early then reject work. |
| 158 | + |
| 159 | +We review PRs (even WIP PRs) once a day, and we will give actionable feedback. Please respond in the |
| 160 | +same tone we use. We want great projects, and we respect your time and contribution. The people reviewing |
| 161 | +code are also volunteers and expect to receive the same respect. |
22 | 162 |
|
23 | | -[jekyll-docs]: http://jekyllrb.com/docs/home |
24 | | -[jekyll-gh]: https://github.com/jekyll/jekyll |
25 | | -[jekyll-talk]: https://talk.jekyllrb.com/ |
|
0 commit comments