First, thank you for wanting to contribute to gulp-ssh-deploy. This should serve as a brief guide to contributing to the project. If you have any questions, please feel free to send a message to @jwir3 for more information.
In general, we use git-flow to complete our development. If you aren't a developer, don't worry too much about this. We can work with you to ensure that your contributions are accepted either over email or via another mechanism. @jwir3 (the founder of this project) is happy to mentor you in any way possible. If you are a developer, and aren't familiar with git-flow, we encourage you to read the aforementioned article, since it is used at a number of different development companies, and will likely be useful to you in your career.
We use Waffle.io to track progress toward a release. You can view our waffle board here.
We always have a set of milestones, but the number will vary. There is an ongoing "Backlog" milestone that we use to track issues that we'd like to do, but aren't currently planned for a release. Other milestones are planned releases. Once a ticket is placed into a release milestone (typically there will only be one of these active at a time, the next release), the ticket will be moved into the "Ready" column on Waffle. Any ticket in the "Ready" state is fair game to be taken.
As a ticket is completed, a pull request should be created. Once this happens, the ticket will be automatically moved to the code review state. Code review can be performed by any of our core developers, but most commonly it's done by @jwir3. Code review will more than likely consist of a series of comments asking for minor changes, after which the pull request will be merged into the develop
branch by one of our core developers. The ticket the pull request is associated with will then be closed.
When all tickets in a release milestone are closed, the develop
branch will be merged into master
, a tag will be created for the release, and release binaries will be generated.
The following is what you should do to start working on a ticket:
- Fork the gulp-ssh-deploy repository.
- Create a branch called
<type>/#XX-brief-description
where<type>
is the type of the ticket (e.g. "enhancement, documentation, task, bug, etc..."),XX
is the ticket number, andbrief description
is a brief description (no more than 4 or 5 words, separated by-
) of what you plan to fix in the ticket. - Make your changes to the code. Each commit should be as small as possible, self-contained, independently compilable, and related to the ticket. Commit messages should be in the imperative tense, have no more than 80 characters in their summary line, and include a reference to the ticket being fixed. See How to Write a Git Commit Message for more information.
- Submit a pull request from your branch to the
develop
branch ofjwir3/gulp-ssh-deploy
. Please fill in the relevant information to the best of your ability. If you aren't including something in the checklist (e.g. you didn't include tests for your new feature), explain why in the pull request body. Prior to submitting your pull request, please rebase your branch to the tip ofdevelop
branch ofjwir3/gulp-ssh-deploy
and resolve any merge conflicts. - The pull request will be assigned to one of our core developers, who will review it. Typically, there are minor changes that are requested, which can be addressed with follow-up commits. Once the review is passed, the developer reviewing your code will automatically merge your commit into
develop
.
The following is a list of tasks that can be performed by anyone with competency in specific areas. Please note that the flag help-wanted
typically indicates a great starting point for those of you who may be new to the gulp-ssh-deploy project.
Also, if you don't have competency in a specific area (e.g. development), but would like to learn competency in that area, please don't hesitate to contact us so we can mentor you.
Any ticket in the ready state can be picked up by a developer. If you're interested in a specific ticket, please comment on that ticket to indicate your interest, and it will be assigned to you. If you want to work on a ticket that isn't in the current release, please comment on it, and more than likely we'll add it to the current release. You can click the above badge to find all of the tickets in the ready state.
We need package maintainers for the npm package.
[](http://waffle.io/jwir3/gulp-ssh-deploy
Anything marked with the documentation
label typically requires some technical writing. It might include code comments, but this is somewhat rare. We are in desperate need of good user documentation, and will probably need a wiki at some point on how to use the gulp-ssh-deploy software tool.