github.com/q2/git-lfs@v0.5.1-0.20150410234700-03a0d4cec40e/CONTRIBUTING.md (about)

     1  ## Contributing to Git Large File Storage
     2  
     3  Hi there! We're thrilled that you'd like to contribute to this project. Your
     4  help is essential for keeping it great.
     5  
     6  ## Submitting a pull request
     7  
     8  0. [Fork][] and clone the repository
     9  0. Configure and install the dependencies: `script/bootstrap`
    10  0. Make sure the tests pass on your machine: `script/test`
    11  0. Create a new branch: `git checkout -b my-branch-name`
    12  0. Make your change, add tests, and make sure the tests still pass
    13  0. Push to your fork and [submit a pull request][pr]
    14  0. Pat your self on the back and wait for your pull request to be reviewed.
    15  
    16  Here are a few things you can do that will increase the likelihood of your pull request being accepted:
    17  
    18  - Follow the [style guide][style] where possible.
    19  - Write tests.
    20  - Update documentation as necessary.  Commands have [man pages](./docs/man).
    21  - Keep your change as focused as possible. If there are multiple changes you
    22  would like to make that are not dependent upon each other, consider submitting
    23  them as separate pull requests.
    24  - Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
    25  
    26  ## Updating 3rd party packages
    27  
    28  0. Update `Godeps`.
    29  0. Run `script/vendor` to update the code in the `.vendor/src` directory.
    30  0. Commit the change.  Git LFS vendors the full source code in the repository.
    31  0. Submit a pull request.
    32  
    33  ## Releasing
    34  
    35  If you are the current maintainer:
    36  
    37  * Create a [new draft Release](https://github.com/github/git-lfs/releases/new).
    38  List any changes with links to related PRs.
    39  * Make sure your local dependencies are up to date: `script/bootstrap`
    40  * Ensure that tests are green: `script/test`
    41  * Bump the version in `lfs/lfs.go`, [like this](https://github.com/github/git-lfs/commit/dd17828e4a6f2394cbba8621037199dc28f046e8).
    42  * Build for all platforms with `script/bootstrap -all` (you need Go setup for
    43  cross compiling with Mac, Linux, FreeBSD, and Windows support).
    44  * Test the command locally.  The compiled version will be in `bin/releases/{os}-{arch}/git-lfs-{version}/git-lfs`
    45  * Get the draft Release ID from the GitHub API: `curl -in https://api.github.com/repos/github/git-lfs/releases`
    46  * Run `script/release -id {id}` to upload all of the compiled binaries to the
    47  release.
    48  * Publish the Release on GitHub.
    49  
    50  ## Resources
    51  
    52  - [Contributing to Open Source on GitHub](https://guides.github.com/activities/contributing-to-open-source/)
    53  - [Using Pull Requests](https://help.github.com/articles/using-pull-requests/)
    54  - [GitHub Help](https://help.github.com)
    55  
    56  [fork]: https://github.com/github/git-lfs/fork
    57  [pr]: https://github.com/github/git-lfs/compare
    58  [style]: https://github.com/golang/go/wiki/CodeReviewComments