[p-dev] [PATCH] Add CONTRIBUTING.md file
paul at plasmalang.org
paul at plasmalang.org
Thu Feb 11 00:18:53 AEDT 2016
From: Paul Bone <paul at bone.id.au>
For review by Gert,
Gert could you take a look at this and let me know if you agree / have any
feedback. I want to make contributing easy for people, especially new
contributors, and still point people at things like the style guides.
Cheers.
---
Add CONTRIBUTING.md file
CONTRIBUTING.md:
As above
docs/todo.txt:
Remove TODO item.
---
CONTRIBUTING.md | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/todo.txt | 2 -
2 files changed, 132 insertions(+), 2 deletions(-)
create mode 100644 CONTRIBUTING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..47f3ab9
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,132 @@
+
+# Plasma Contributors' Information
+
+Contributions are valuable and we want to make contributing as easy as
+possible. We can do this by providing support to contributors, especially
+new contributors. This can include providing feedback on your patches among
+other things. However by following the guidelines below contributors can
+decrease the amount of support required, which gives everyone more time to
+write code and contribute.
+
+
+## Summary (TL;DR)
+
+* The license of your contribution must match the project's licenses:
+ * Code: MIT
+ * Docs: CC BY-SA 4.0
+ * Build scripts, tests, and sample code: Unlicense
+* No contributor agreement is required, you retain the copyright for your
+ contribution.
+* Add your name to the AUTHORS file.
+* Please follow the style guides as much as possible (see below)
+* Please format your log messages following the log message style (see
+ below)
+
+
+## Before beginning
+
+It is usually best to start each piece of work on a new git branch. Create
+a branch off of master and commit your changes there as you go.
+
+For complex changes, especially those that require some design decisions we
+recommend discussing them with the other developers before beginning work.
+For small changes this isn't necessary. However large changes, especially
+those that require design decisions, are important to discuss to avoid
+wasted work. We want you to enjoy working with Plasma and that means making
+the most of your development time. Discussion also helps avoid several
+developers stepping on each-others toes when working on the same or related
+code. The best way to get in contact for these discussions is on the
+[dev](https://www.plasmalang.org/lists/listinfo/dev).
+For realtime conversation you may find us online in the IRC channel
+(#plasmalang on [Freenode](http://freenode.org)).
+If we're not online please be patient, we may not be in your timezone or
+busy with other aspects of our lives.
+
+
+## Making your changes
+
+If making a series of patches, try to organise the patches so that each
+patch makes sense on its own. Git has many features for doing this
+including cherry picking and rebasing.
+
+Code contributions should follow the style guides as much as possible.
+Deviations that make code more readable are permitted.
+The guides are
+[Mercury style guide](http://www.plasmalang.org/docs/Mercury_style.html) and
+[C style guide](http://www.plasmalang.org/docs/C_style.html).
+
+TODO: Provide information about project structure.
+
+Spell check and test your work, use ```make test``` for the latter. Each patch
+should, when applied in series, pass the test suite.
+
+
+## Submitting your changes
+
+All contributions must be made under the MIT license. No transfer of
+copyright or other rights or permissions is required. All contributors
+should be listed in the AUTHORS file, and all contributors with copyrights
+_must_ be listed.
+
+Log messages should follow the style:
+
+ [component(s)] Title
+
+ Description
+
+ path/file1:
+ Specific changes in file1.
+
+ path/file2:
+ Specific changes in file2.
+
+```components``` is one or more parts of the system. This helps people
+identify (in mailing lists, change logs etc) what kind of change has been
+made at a glace. It also helps people and software search for changes.
+Current components are:
+
+* pz: the PZ file format,
+* pzrun: the runtime,
+* pzasm: the PZ assembler,
+* plasmac: the compiler,
+* docs: documentation,
+* refactor: refactoring change only.
+
+Each file should be listed with more detailed information. Take a look at
+previous changes for examples.
+
+We accept contributions via pull request on either github or bitbucket,
+or via e-mailed patches. If you choose to use e-mailed patches then the
+```git format-patch``` and/or ```git send-email``` tools can be used to
+generate nice e-mails, however this is not required, ```diff -uNr``` is
+sufficient.
+E-mailed patches should be sent to the
+[dev](https://www.plasmalang.org/lists/listinfo/dev) mailing list.
+
+TODO: Provide suitable step-by-step instructions.
+
+We aim to act on your changes reasonbly quickly. However this is something
+people do in their spare time, they may be busy with other aspects of their
+lives and not reply for several days. We will provide feedback and guidance
+where appliable.
+
+## Other ways to help.
+
+We keep a list of TODO items in docs/todo.txt and online at
+[TODO items](http://www.plasmalang.org/docs/todo.html).
+This is intended to be a list of small-ish tasks that should not be
+forgotten. Larger scale items like "Write a compiler" are shown in the
+[Roadmap](http://www.plasmalang.org/roadmap.html).
+
+Search the source code for the strings "XXX" or "TODO" for things that must
+be handled. Keep in mind that there may be good reasons why these are not
+yet handled, eg: other work needs doing first.
+
+If you find something undocumented whose behaviour is unlikely to change,
+consider filling in that part of the documentation.
+
+When reading code if something isn't clear, please
+[ask](https://www.plasmalang.org/lists/listinfo/dev). us about it, this is
+also a good hint that we should have written (better) code comments.
+
+
diff --git a/docs/todo.txt b/docs/todo.txt
index e16a036..1c692ba 100644
--- a/docs/todo.txt
+++ b/docs/todo.txt
@@ -11,5 +11,3 @@ memory.
TODO: Add TODO items from Google Tasks
-TODO: Add contributing information
-
--
2.7.0
More information about the dev
mailing list