42ITy Contributor guide

There are many ways you can help make 42ITy™ better!

This guide will help answer common questions you may have during your first and further contribution.

License

The project 42ITy™ uses the GNU General Public License v2+ license. Refer to the LICENSE file available in each 42ITy™ internal sub-projects.

Contribution Process

The project 42ITy™ adheres to the C4 (Collective Code Construction Contract) process for contributions.

Please read this document if you are unfamiliar with it.

Coding and documentation style guides

The project 42ITy™ uses:

Please read these documents if you are unfamiliar with them.

Developer Certification of Origin (DCO)

To make a good faith effort to ensure the criteria of the GPL License are met, 42ITy™ requires the Developer Certificate of Origin (DCO) process to be followed.

The DCO is an attestation attached to every contribution made by every developer. In the commit message of the contribution, the developer simply adds a Signed-off-by statement and thereby agrees to the DCO, which you can find below or at Developer Certificate of Origin.

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.
Important
42ITy™ does not merge any pull requests made against a 42ITy-managed repository until each commit has been signed for the DCO.

Practical example of commit with DCO

Applying the DCO is as simple as adding --signoff when doing a git commit:

git commit --signoff

This will add the Signed-off-by line at the end of the commit log message. For example:

commit af7daa6490a3b04ed1ae6921d5b701b9558feb2f
Author: John Doe <johndoe@some.org>
Date:   Thu Nov 17 13:45:21 2016 +0100

  Problem: there is a problem

  Solution: fix the problem

  Signed-off-by: John Doe <johndoe@some.org>

Submitting issue

Not every contribution comes in the form of code. Submitting, confirming, and triaging issues is an important task for any project.

42ITy™ project uses GitHub to track all except security issues.

If it’s possible please submit a minimal program that compiles and reproduces or show the issue.

Important
If you want to submit a security issue please contact the development team using Eaton IPC Opensource

Further Reading

The Documentation section of the 42ITy™ website provides some complementary technical information, such as:

Thanks and credits

A number of technical and documentation points in 42ITy™ are inspired from ZeroMQ ones, created and led by Pieter Hintjens. The 42ITy™ team wants to express its undying thanks to Pieter, for everything he did and his help to create the foundations of the 42ITy™ project!

The 42ITy™ team also wants to thank the various projects used in the 42ITy™ software stack, along with the Opensource Community in general. This project would never have been possible without these!