Archived
1
0
This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
keybrd/CONTRIBUTING.md
2016-11-06 12:43:09 -07:00

143 lines
6.6 KiB
Markdown

Contributing to keybrd
======================
We'd love for you to contribute to the keybrd project.
Improvement suggestions
-----------------------
We need to know what keybrd library improvements would help you create keyboard designs.
Before requesting an improvement, please check the [planned_features list](doc/planned_features.md).
Submit improvement suggestions to [GitHub issues](https://github.com/wolfv6/Keybrd/issues)
or [geekhack thread](https://geekhack.org/index.php?topic=83599.0).
<!-- * The issue title should start with "suggestion:" followed by a descriptive title -->
* Provide a use case
* Explain why the improvement is useful
* Site other product examples where this improvement exists
Bug reports
-----------
Submitting a bug report is the first step in fixing a bug.
Once it is found, correcting a bug is usually relatively easy.
Please submit bug reports to [GitHub issues](https://github.com/wolfv6/Keybrd/issues)
or [geekhack thread](https://geekhack.org/index.php?topic=83599.0).
Provide enough information so we can reproduce the buggy behaviour!
* Complete sketch (copy & paste, attachment, or a link to the code)
* Screenshot or the exact text of error messages
* Describe the observed behavior and explain which behavior you expected
* Which controller your using
* Wiring details - how exactly have you connected the hardware (a photo's worth 1000 words)
* Arduino IDE version number
* keybrd library version number
* Any other information needed to reproduce the problem...
Code contributions
------------------
Unsure of where to begin contributing to keybrd code?
You can start by looking through the improvement suggestions, bug reports, and [planned_features](doc/planned_features.md).
Scratch your own itch. Code for your own need. Then share it with the keybrd community.
* [Tutorial 8b - sharing your keybrd extension library](tutorials/tutorial_8b_sharing_your_keybrd_extension_library.md)
* [Tutorial 8c - sharing your keybrd sketch](tutorials/tutorial_8c_sharing_your_keybrd_sketch.md)
Git commit message style guide:
* Limit the first line to 72 characters summary
* Second line should be empty, followed by body of the commit message
* Use the imperative present tense (use "Add feature", not "Added feature", not "Adds feature")
* Reference an improvement suggestion, bug report, or planned_features
* Sometimes a bulleted list is a good format to convey the changes of a commit
User contributions
------------------
Any project requires various kinds of contributions to succeed.
A thriving project is more than a pile of code.
It's the packaging, explanation, outreach, and empathy of maintainers that make a good project great.
### keybrd tutorials usability survey
We want feedback on keybrd tutorial usability from real users (feedback from noobs is especially valuable).
Please take the survey after completing a tutorial.
Answer the questions you feel like answering, or make up your own questions.
* How easy was it to find the relevant tutorial?
* Which tutorial did you read?
* Did the tutorial provide complete information?
* What other tutorial topics would be useful?
* Are you satisfied with the tutorial?
* Other comments or suggestions.
Post the completed Q & A on [geekhack thread](https://geekhack.org/index.php?topic=83599.0) with the heading "Tutorial usability survey".
If you prefer your answers remain confidential, pm the completed Q & A to [wolfv](https://geekhack.org/index.php?action=pm;sa=send;u=25471).
Usability survey results will be used to make improvements to the tutorials.
### keybrd library usability survey
We want feedback on keybrd library usability from real users.
Please fill the survey after using the keybrd library to implement a keyboard design.
Answer the questions you feel like answering, or make up your own questions.
* How easy was it to find relevant information?
* Did the User guide provide complete information?
* What other keyboard firmware have you used?
* What pros and cons did you find compared to other keyboard firmware?
* Did you publish your keyboard firmware? If so, please provide a link.
* Are you satisfied with the keybrd library?
* Other comments or suggestions.
Post the completed Q & A on [geekhack thread](https://geekhack.org/index.php?topic=83599.0) with the heading "keybrd library usability survey".
If you prefer your answers remain confidential, pm the completed Q & A to [wolfv](https://geekhack.org/index.php?action=pm;sa=send;u=25471).
Usability survey results will be used to make improvements to the keybrd library.
### Documentation
Suggest a clarification, simplification, correction, or other improvement.
We need the perspective of people new to the project to see these things.
Sometimes just changing a word or two makes a big difference.
Please submit improvement and errata to [GitHub issues](https://github.com/wolfv6/Keybrd/issues)
or [geekhack thread](https://geekhack.org/index.php?topic=83599.0).
Text file documentation style guide:
* Use Markdown with a .md suffix.
* "Underline" first-level (=) and second-level (-) headings (because easier to read in plain text).
* Capitalize first letter of headings (no extra capitalization in headings).
### Write a sketch for a keyboard that is popular with Arduino-compatible controllers
Write a keybrd sketch for a keyboard that is popular with Arduino-compatible controllers.
* You should own the keyboard so you can test the firmware
* The keyboard should have an Arduino compatible controller (e.g. ErgoDox and Phantom use Teensy 2.0)
* The layout should be a plain baseline layout (QWERTY)
Other owners of that model keyboard can then easily modify and compile the sketch on Arduino IDE.
The README should have:
* brief description of the electronics
* link to a hardware page
* list any firmware deficiencies
Follow the "Publish" instructions in tutorial_8c_sharing_your_keybrd_sketch.md
### Blog
You have a fresh perspective of how the keybrd library works.
This makes you the perfect person to write an introductory blog explaining the project.
A healthy project needs the perspective of many people.
Submitting a pull request
-------------------------
Pull request is the preferred way to contribute code and documentation.
[How to contribute to an open source project on GitHub](http://blog.davidecoppola.com/2016/11/howto-contribute-to-open-source-project-on-github/)
If you want to contribute some other way, please make a request in
[GitHub issues](https://github.com/wolfv6/Keybrd/issues)
or [geekhack thread](https://geekhack.org/index.php?topic=83599.0).