[OpenPower-Firmware] CONTRIBUTING.md and process update
Stewart Smith
stewart at linux.vnet.ibm.com
Thu Mar 9 12:02:29 AEDT 2017
Hi all,
As been discussed in phone/private mails amongst a few of us (and has
been up on https://github.com/open-power/op-build/pull/850 for
discussion/review), we're writing down how the op-build development
process works, as well as making some changes to how it has been going.
The biggest? Ignore the master-next branch. Pull requests and active
development happens on the master branch. Releases are made out of the
'release' branch. The master-next branch will continue to exist for the
1.16 cycle so that any automated scripts can catch up.
The full (and new!) CONTRIBUTING.md is below. Feel it needs changes?
Pull Request away!
Contributing to op-build
========================
op-build is the open source build system for OpenPOWER firmware. It assembles
many individual components (only a few of which are OpenPOWER specific) into
a single firmware image. op-build is implemented as a buildroot overlay.
If you haven't already, join us on IRC (#openpower on Freenode) and on
the mailing list ( openpower-firmware at lists.ozlabs.org - subscribe by
going to https://lists.ozlabs.org/listinfo/openpower-firmware )
We use GitHub Issues and Pull Requests for tracking contributions. We
expect participants to adhere to the GitHub Community Guidelines (found
at https://help.github.com/articles/github-community-guidelines/ ).
If you are unable or unwilling to use GitHub, we can accept contributions
via the mailing list.
All contributions should have a Developer Certificate of Origin (see below).
Development Philosophy
----------------------
Our development philosophy is:
1. Don't re-invent the wheel
2. Upstream first
As such, we don't like to carry patches in op-build, we prefer to interact
with upstream projects and get patches accepted there. Where we do need
to patch things locally, we prefer to carry backports from upstream, which
can be removed when we move to more recent upstream.
Development Environment
-----------------------
For working on op-build you will need a reasonably recent Linux distribution.
We aim to have all current major distros be suitable development platforms
(focused on Ubuntu and Fedora, as that's what most developers currently use).
A host GCC of at least 4.9 is recommended (all modern Linux distributions
provide this).
You can build on x86-64, ppc64 or ppc64le, op-build will build appropriate
cross-compilers for you (thanks to the magic of buildroot).
You will need 8-15GB of disk space to do a full build of any one configuration.
Development Process
-------------------
The main source repository is on GitHub. We use GitHub issues and pull requests
as well as a mailing list (https://lists.ozlabs.org/listinfo/openpower-firmware).
We tag a new op-build release roughly every 6 weeks.
We use GitHub milestones: https://github.com/open-power/op-build/milestones
Starting with the v1.15 release, active development occurs against the master
branch. When we're nearing a release, we move the content of the master branch
over to a 'release' branch, ensuring development can continue while the release
is prepared.
Prior to v1.15, there was also a 'master-next' branch. In the 1.16 development
cycle, this is being phased out although continues to exist as a mirror of the
'master' branch so that automated tooling can catch up.
We accept pull requests on GitHub: https://github.com/open-power/op-build/pulls
Developer Certificate of Origin
-------------------------------
Contributions to this project should conform to the `Developer Certificate
of Origin` as defined at http://elinux.org/Developer_Certificate_Of_Origin.
Commits to this project need to contain the following line to indicate
the submitter accepts the DCO:
```
Signed-off-by: Your Name <your_email at domain.com>
```
By contributing in this way, you agree to the terms as follows:
```
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```
--
Stewart Smith
OPAL Architect, IBM.
More information about the OpenPower-Firmware
mailing list