github.com/opencontainers/umoci@v0.4.8-0.20240508124516-656e4836fb0d/CONTRIBUTING.md (about)

     1  <!--
     2  +++
     3  # Hugo Front-matter
     4  title = "Contribution Guidelines"
     5  aliases = ["/CONTRIBUTING.md"]
     6  +++
     7  -->
     8  
     9  ## Contribution Guidelines ##
    10  
    11  If you're reading this, you're likely interested in contributing to this
    12  project. That's great! The intention of this document is to describe the basic
    13  requirements and rules-of-thumb for contributions.
    14  
    15  ### Security Issues ###
    16  
    17  If you are reporting a security issue, please do not create an issue or file a
    18  pull request on GitHub. Instead, disclose the issue by sending an email to
    19  <mailto:security@opencontainers.org>. If you feel it is necessary you may also
    20  encrypt your email with [Pretty Good Privacy (PGP)][pgp] using the set of PGP
    21  keys listed in the [umoci keyring][umoci-keyring].
    22  <!-- TODO: We really shouldn't be using the release keys for encryption. -->
    23  
    24  [pgp]: https://en.wikipedia.org/wiki/Pretty_Good_Privacy
    25  [umoci-keyring]: /umoci.keyring
    26  
    27  ### Issues ###
    28  
    29  If you have found a bug in this project or have a question, first make sure
    30  that the issue you are facing has not already been reported by another user. If
    31  the issue you are facing has already been reported and you have more
    32  information to provide, feel free to add a follow-up comment (but avoid adding
    33  "me too" style comments as it distracts from discussion). If you couldn't find
    34  an existing report for your issue, feel free to [open a new issue][issue-new].
    35  If you do not wish to use proprietary software to submit an issue, you may send
    36  an email to <mailto:cyphar@cyphar.com> and I will submit an issue on your
    37  behalf.
    38  
    39  When reporting an issue, please provide the following information (to the best
    40  of your ability) so we can debug your issue far more easily:
    41  
    42  * The version of this project you are using. If you are not using the latest
    43    version of this project, please try to reproduce your issue on the latest
    44    version.
    45  
    46  * A (short) description of what you are trying to accomplish so as to avoid the
    47    [XY problem][xy-problem].
    48  
    49  * A minimal example of the bug with a contrast between what you expect to
    50    happen versus what actually happened.
    51  
    52  [issue-new]: https://github.com/opencontainers/umoci/issues/new
    53  [xy-problem]: http://xyproblem.info/
    54  
    55  ### Submitting Changes ###
    56  
    57  In order to submit a change, you may [create a pull request][pr-new]. If you do
    58  not wish to use proprietary software to submit an pull request, you may send an
    59  email to <mailto:cyphar@cyphar.com> and I will submit a pull request on your
    60  behalf.
    61  
    62  All changes should be based off the latest commit of the `master` branch of
    63  this project. In order for a change to be merged into this project, it must
    64  fulfil all of the following requirements (note that many of these only apply
    65  for major changes):
    66  
    67  * All changes must pass the automated testing and continuous integration. This
    68    means they must build successfully without errors, must not produce errors
    69    from static analysis and must not break existing functionality. You can run
    70    all of these tests on your local machine if you wish by reading through
    71    `.travis.yml` and running the listed commands.
    72  
    73  * All changes must be formatted using the Go style conventions, which ensures
    74    that code remains consistent. You can automatically format your code in any
    75    given `file.go` using `go fmt -s -w file.go`.
    76  
    77  * Any significant changes (such as those that implement a feature or fix a bug)
    78    must include an entry in the top-level [`CHANGELOG.md`][changelog] (see the
    79    file for more details) that describes the change and links to the pull
    80    request that implemented it (as well as issues that are being resolved).
    81  
    82  * Any feature change or bug fix should include one or more corresponding test
    83    cases to ensure that the code is operating as intended. Significant features
    84    warrant the addition of significant numbers of both integration and unit
    85    tests.
    86  
    87  * Any feature change should include a corresponding change to the project
    88    documentation describing the feature and how it should be used.
    89  
    90  If you miss any of the above things, don't worry we'll remind you and provide
    91  help if you need any. In addition to the above requirements, your code will be
    92  reviewed by the maintainer(s) of this project, using the looks-good-to-me
    93  system (LGTM). All patches must have the approval of at least two maintainers
    94  before they are merged (the only exception to this is related to the approval
    95  of security patches -- which must be approved in private instead).
    96  
    97  Each commit should be self-contained and minimal (and should build and pass the
    98  tests individually), and commit messages should follow the Linux kernel style
    99  of commit messages. For more information see [&sect; 2 and 3 of
   100  `submitting-patches.rst` from the Linux kernel source][lk-commit].
   101  
   102  In addition, all commits must include a `Signed-off-by:` line in their
   103  description. This indicates that you certify [the following statement, known as
   104  the Developer Certificate of Origin][dco]). You can automatically add this line
   105  to your commits by using `git commit -s --amend`.
   106  
   107  ```
   108  Developer Certificate of Origin
   109  Version 1.1
   110  
   111  Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
   112  1 Letterman Drive
   113  Suite D4700
   114  San Francisco, CA, 94129
   115  
   116  Everyone is permitted to copy and distribute verbatim copies of this
   117  license document, but changing it is not allowed.
   118  
   119  
   120  Developer's Certificate of Origin 1.1
   121  
   122  By making a contribution to this project, I certify that:
   123  
   124  (a) The contribution was created in whole or in part by me and I
   125      have the right to submit it under the open source license
   126      indicated in the file; or
   127  
   128  (b) The contribution is based upon previous work that, to the best
   129      of my knowledge, is covered under an appropriate open source
   130      license and I have the right under that license to submit that
   131      work with modifications, whether created in whole or in part
   132      by me, under the same open source license (unless I am
   133      permitted to submit under a different license), as indicated
   134      in the file; or
   135  
   136  (c) The contribution was provided directly to me by some other
   137      person who certified (a), (b) or (c) and I have not modified
   138      it.
   139  
   140  (d) I understand and agree that this project and the contribution
   141      are public and that a record of the contribution (including all
   142      personal information I submit with it, including my sign-off) is
   143      maintained indefinitely and may be redistributed consistent with
   144      this project or the open source license(s) involved.
   145  ```
   146  
   147  [pr-new]: https://github.com/opencontainers/umoci/compare
   148  [changelog]: /CHANGELOG.md
   149  [lk-commit]: https://www.kernel.org/doc/Documentation/process/submitting-patches.rst
   150  [dco]: https://developercertificate.org/