130 lines
5.5 KiB
Text
130 lines
5.5 KiB
Text
|
= NNG Contributing Guidelines
|
||
|
|
||
|
Legal stuff:
|
||
|
|
||
|
For any submission you make to us, either by filing an issue, or submitting a
|
||
|
defect, or sending us a message, you agree and certify that:
|
||
|
|
||
|
** You are the author or legal owner of the content submitted, or
|
||
|
you have authorization to submit the content by the owner
|
||
|
(such as your employer).
|
||
|
|
||
|
** Unless the submission is otherwise labeled, you or the owner
|
||
|
are granting the NNG Project, its contributors, and licensees,
|
||
|
a non-exclusive license to your use submission under the terms of
|
||
|
MIT License (as documented in the <<LICENSE#,LICENSE>> file in this
|
||
|
repository.) This grant shall include a right to use for any
|
||
|
patents covering content in the submission.
|
||
|
|
||
|
** You are not aware of any legal encumbrances to the use of the
|
||
|
submission (such as patents held by others) unless explicitly
|
||
|
stated otherwise.
|
||
|
|
||
|
** You have read, and agree to abide by, our
|
||
|
<<CODE_OF_CONDUCT#,Code of Conduct>>.
|
||
|
|
||
|
** You understand that participation in this project is voluntary,
|
||
|
and at no point shall any of the project members or leadership
|
||
|
be obligated to review, merge, or handle any submission.
|
||
|
|
||
|
== Filing Issues
|
||
|
|
||
|
We use github issues for NNG. We ask that you keep in mind the following
|
||
|
when filing issues:
|
||
|
|
||
|
* First look to see if your issue is already covered by an existing issue.
|
||
|
|
||
|
* Synopsis should be brief, but descriptive. (We may alter the synopsis
|
||
|
to correct its accuracy or improve its brevity.)
|
||
|
|
||
|
* Include details about the platform (operating system, language).
|
||
|
|
||
|
* Include CMake configuration used to build NNG.
|
||
|
|
||
|
* Include expected results or behavior, and observed results or behavior.
|
||
|
|
||
|
* If at all possible, a reproducible test case is helpful. We prefer test
|
||
|
cases as the minimal amount of C code to demonstrate the defect.
|
||
|
|
||
|
* Please file issues only when filing things that should be fixed by
|
||
|
changes to the source or documentation in the repository (such as bugs
|
||
|
or feature requests). For support questions and other discussion, please
|
||
|
instead use the mailing list
|
||
|
https://www.freelists.org/list/nanomsg
|
||
|
or Gitter chat
|
||
|
https://gitter.im/nanomsg/nanomsg .
|
||
|
|
||
|
== Pull Requests
|
||
|
|
||
|
* We use Github PRs
|
||
|
|
||
|
* Please follow the existing coding style.
|
||
|
|
||
|
** See the `.clang-format` for whitespace rules.
|
||
|
** Return values should be enclosed in parenthesis.
|
||
|
** Conditional clauses are always enclosed in braces, and thus
|
||
|
span multiple lines.
|
||
|
|
||
|
TIP: The `.clang-format` file and `clang-format` may be helpful, but
|
||
|
is not necessarily complete. Also you may need to use a recent version
|
||
|
of `clang-format` as older versions can differ in their output.
|
||
|
|
||
|
* If you submit a PR, we would appreciate it if you would respond to review
|
||
|
feedback, rather than just leaving your baby on our doorstep. Abandoned
|
||
|
PRs or issues may be closed without further action.
|
||
|
|
||
|
* Commits should have comments formatted like this:
|
||
|
|
||
|
----
|
||
|
fixes #<issue#1> <issue#1-synopsis>
|
||
|
fixes #<issue#2> <issue#2-synopsis>
|
||
|
|
||
|
<Comments describing the issues, or fix, that you want to have
|
||
|
in the commit history. Not every issue needs such comments.>
|
||
|
----
|
||
|
|
||
|
* We have an "always release ready" policy for our tree, meaning we should
|
||
|
be able to build a functional release at any commit boundary. This ensures
|
||
|
that others taking the work can use git bisect and similar approaches when
|
||
|
hunting down regressions, or when cherry-picking changes for their own
|
||
|
forked copies. This has a few consequences:
|
||
|
|
||
|
** PRs should be functionally complete (that is, don't submit a
|
||
|
PR with partial work in progress, unless you have reached a
|
||
|
milestone that can stand on its own merit.)
|
||
|
|
||
|
** Each commit in a PR should also be "complete", so that
|
||
|
a release could be cut in between your commits without
|
||
|
leaving the tree in a broken or dysfunctional state.
|
||
|
|
||
|
** Usually this means its best to address only one issue in a PR,
|
||
|
with just one commit (squashed).
|
||
|
|
||
|
** Please have already merged and tested your code against the
|
||
|
latest changes in master. (If your code has merge conflicts,
|
||
|
your PR will be rejected until you have fixed the conflicts.)
|
||
|
|
||
|
* As a special exception, you may submit a PR for handling by our test
|
||
|
infrastructure; in that case please clearly identify that the PR is
|
||
|
submitted for that purpose, and should not considered for integration
|
||
|
yet. When that testing is done, please close the PR, and submit a new
|
||
|
one when you are ready for final review and integration.
|
||
|
|
||
|
* Code submitted should contain updates to any copyright files to add
|
||
|
your copyright to the license. We prefer you follow the existing
|
||
|
style of copyright, `// Copyright <year> <owner> <email or url>`
|
||
|
|
||
|
NOTE: We only use the most recent year, and we do not use `\(C)` which has
|
||
|
no legal value when the word "`Copyright`" is already present. We also
|
||
|
do not use the old "`All rights reserved.`" statement, which is equally
|
||
|
meaningless under current international copyright law.
|
||
|
|
||
|
* When updating an existing file, any new Copyright notice should be
|
||
|
added immediately below the pre-existing one, just before the license
|
||
|
boilerplate.
|
||
|
|
||
|
* All new files should use the MIT license and the same boilerplate
|
||
|
from one of the other files. We do not normally approve submissions
|
||
|
with different license or boilerplates -- please contact us if you
|
||
|
have a compelling reason for wanting to do that.
|