github.com/linuxboot/fiano@v1.2.0/CONTRIBUTING.md (about)

     1  # Contributing to fiano
     2  
     3  Contributions are very welcome. See [issues](https://github.com/linuxboot/fiano/issues), and join us in [Slack](CONTRIBUTING.md#communication) to talk about your cool ideas for the project.
     4  
     5  ## Developer Sign-Off
     6  
     7  For purposes of tracking code-origination, we follow a simple sign-off
     8  process.  If you can attest to the [Developer Certificate of
     9  Origin](https://developercertificate.org/) then you append in each git
    10  commit text a line such as:
    11  ```
    12  Signed-off-by: Your Name <username@youremail.com>
    13  ```
    14  ## Code of Conduct
    15  
    16  Conduct your collaboration around the u-root [Code of
    17  Conduct](https://github.com/u-root/u-root/wiki/Code-of-Conduct).
    18  
    19  ## Communication
    20  
    21  - [Slack](https://u-root.slack.com), sign up
    22  [here](http://slack.u-root.com/)
    23  - [Join the mailing list](https://groups.google.com/forum/#!forum/u-root)
    24  
    25  ## Bugs
    26  
    27  - Please submit issues to https://github.com/linuxboot/fiano/issues
    28  
    29  ## Coding Style
    30  
    31  This project aims to follow the standard formatting recommendations
    32  and language idioms set out in the [Effective Go](https://golang.org/doc/effective_go.html)
    33  guide, for example [formatting](https://golang.org/doc/effective_go.html#formatting)
    34  and [names](https://golang.org/doc/effective_go.html#names).
    35  
    36  We have a few rules not covered by these tools:
    37  
    38  - Standard imports are separated from other imports. Example:
    39      ```
    40      import (
    41        "regexp"
    42        "time"
    43  
    44        dhcp "github.com/krolaw/dhcp4"
    45      )
    46      ```
    47  
    48  ## Patch Format
    49  
    50  Well formatted patches aid code review pre-merge and code archaeology in
    51  the future.  The abstract form should be:
    52  ```
    53  <component>: Change summary
    54  
    55  More detailed explanation of your changes: Why and how.
    56  Wrap it to 72 characters.
    57  See [here] (http://chris.beams.io/posts/git-commit/)
    58  for some more good advices.
    59  
    60  Signed-off-by: <contributor@foo.com>
    61  ```
    62  
    63  An example from this repo:
    64  ```
    65  tcz: quiet it down
    66  
    67  It had a spurious print that was both annoying and making
    68  boot just a tad slower.
    69  
    70  Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
    71  ```
    72  
    73  ## General Guidelines
    74  
    75  ## Pull Requests
    76  
    77  We accept GitHub pull requests.
    78  
    79  Fork the project on GitHub, work in your fork and in branches, push
    80  these to your GitHub fork, and when ready, do a GitHub pull requests
    81  against https://github.com/linuxboot/fiano.
    82  
    83  `fiano` uses [dep](https://github.com/golang/dep)
    84  for its dependency management. Please run `dep ensure`, `dep prune`, and commit Gopkg.toml, Gopkg.lock and vendor/ changes before opening a pull request.
    85  
    86  Every commit in your pull request needs to be able to build and pass the CI tests.
    87  
    88  If the pull request closes an issue please note it as: `"Fixes #NNN"`.
    89  
    90  ## Code Reviews
    91  
    92  Look at the area of code you're modifying, its history, and consider
    93  tagging some of the [maintainers](https://u-root.tk/#contributors) when doing a
    94  pull request in order to instigate some code review.
    95  
    96  ## Quality Controls
    97  
    98  [CircleCI](https://circleci.com/gh/linuxboot/fiano) is used to test and build commits in a pull request.
    99  
   100  See [.circleci/config.yml](.circleci/config.yml) for the CI commands run. [test.sh](test.sh) is maintained as an easy way to run the commands locally. Additionally you can use [CircleCI's CLI tool](https://circleci.com/docs/2.0/local-jobs/) to run individual jobs from `.circlecl/config.yml` via Docker, eg. `circleci build --jobs dep`.