notes how to contribute

This commit is contained in:
Dominik Schürmann 2014-01-18 18:02:47 +01:00
parent 2c0a97ca99
commit 423dbbdc6a

View file

@ -5,23 +5,35 @@ The development began as a fork of Android Privacy Guard (APG).
see http://sufficientlysecure.org/keychain see http://sufficientlysecure.org/keychain
## Translations ## How to help the project?
### Translate the application
Translations are managed at Transifex, please contribute there at https://www.transifex.com/projects/p/openpgp-keychain/ Translations are managed at Transifex, please contribute there at https://www.transifex.com/projects/p/openpgp-keychain/
## Code Contributions ### Contribute Code
1. Join the development mailinglist at http://groups.google.com/d/forum/openpgp-keychain-dev
2. Lookout for interesting issues on our issue page at Github: https://github.com/dschuermann/openpgp-keychain/issues
3. Tell us about your plans on the mailinglist
4. Read this README, especially the notes about coding style
5. Fork OpenPGP Keychain and contribute code (the best part ;) )
6. Open a pull request on Github. I will help with occuring problems and merge your changes back into the main project.
Fork OpenPGP Keychain and create a pull request. I will help with occuring problems and merge your changes back into the main project.
I am happy about every code contribution and appreciate your effort to help us developing OpenPGP Keychain :) I am happy about every code contribution and appreciate your effort to help us developing OpenPGP Keychain :)
## Build with Gradle ## Development
Development mailinglist at http://groups.google.com/d/forum/openpgp-keychain-dev
### Build with Gradle
1. Have Android SDK "tools", "platform-tools", and "build-tools" directories in your PATH (http://developer.android.com/sdk/index.html) 1. Have Android SDK "tools", "platform-tools", and "build-tools" directories in your PATH (http://developer.android.com/sdk/index.html)
2. Open the Android SDK Manager (shell command: ``android``). Expand the Extras directory and install "Android Support Repository" 2. Open the Android SDK Manager (shell command: ``android``). Expand the Extras directory and install "Android Support Repository"
3. Export ANDROID_HOME pointing to your Android SDK 3. Export ANDROID_HOME pointing to your Android SDK
4. Execute ``./gradlew build`` 4. Execute ``./gradlew build``
## Development with Eclipse ### Development with Eclipse
Android Studio is currently not supported or recommended! Android Studio is currently not supported or recommended!
@ -29,9 +41,9 @@ Android Studio is currently not supported or recommended!
2. Repeat step 1 with "libraries/HtmlTextView", "libraries/StickyListHeaders/library", "libraries/AndroidBootstrap", "libraries/zxing", "libraries/zxing-android-integration", "OpenPGP-Keychain" 2. Repeat step 1 with "libraries/HtmlTextView", "libraries/StickyListHeaders/library", "libraries/AndroidBootstrap", "libraries/zxing", "libraries/zxing-android-integration", "OpenPGP-Keychain"
3. Now all required source files are available in Eclipse 3. Now all required source files are available in Eclipse
# Keychain API ## Keychain API
## Intent API ### Intent API
All Intents require user interaction, e.g. to finally encrypt the user needs to press the "Encrypt" button. All Intents require user interaction, e.g. to finally encrypt the user needs to press the "Encrypt" button.
To do automatic encryption/decryption/sign/verify use the OpenPGP Remote API. To do automatic encryption/decryption/sign/verify use the OpenPGP Remote API.
@ -55,7 +67,7 @@ To do automatic encryption/decryption/sign/verify use the OpenPGP Remote API.
* ``org.sufficientlysecure.keychain.action.IMPORT_KEY_FROM_QR_CODE`` * ``org.sufficientlysecure.keychain.action.IMPORT_KEY_FROM_QR_CODE``
* without extras, starts Barcode Scanner to get QR Code * without extras, starts Barcode Scanner to get QR Code
## OpenPGP Remote API ### OpenPGP Remote API
To do asyncronous fast encryption/decryption/sign/verify operations bind to the OpenPGP remote service. To do asyncronous fast encryption/decryption/sign/verify operations bind to the OpenPGP remote service.
The API Demo contains all required AIDL files and a demo activity. The API Demo contains all required AIDL files and a demo activity.
@ -103,24 +115,24 @@ for integration.
TODO TODO
# Libraries ## Libraries
## ZXing Barcode Scanner Android Integration ### ZXing Barcode Scanner Android Integration
Classes can be found under "libraries/zxing-android-integration/". Classes can be found under "libraries/zxing-android-integration/".
1. Checkout their SVN (see http://code.google.com/p/zxing/source/checkout) 1. Checkout their SVN (see http://code.google.com/p/zxing/source/checkout)
2. Copy all classes from their android-integration folder to our library folder 2. Copy all classes from their android-integration folder to our library folder
## ZXing ### ZXing
Classes can be found under "libraries/zxing/". Classes can be found under "libraries/zxing/".
ZXing classes were extracted from the ZXing library (http://code.google.com/p/zxing/). ZXing classes were extracted from the ZXing library (http://code.google.com/p/zxing/).
Only classes related to QR Code generation are utilized. Only classes related to QR Code generation are utilized.
## Bouncy Castle ### Bouncy Castle
#### Spongy Castle #### Spongy Castle
@ -141,14 +153,14 @@ see
* Mailinglist Archive at http://bouncy-castle.1462172.n4.nabble.com/Bouncy-Castle-Dev-f1462173.html * Mailinglist Archive at http://bouncy-castle.1462172.n4.nabble.com/Bouncy-Castle-Dev-f1462173.html
# Notes ## Notes
## Eclipse: "GC overhead limit exceeded" ### Eclipse: "GC overhead limit exceeded"
If you have problems starting OpenPGP Kechain from Eclipse, consider increasing the memory limits in eclipse.ini. If you have problems starting OpenPGP Kechain from Eclipse, consider increasing the memory limits in eclipse.ini.
See http://docs.oseems.com/general/application/eclipse/fix-gc-overhead-limit-exceeded for more information. See http://docs.oseems.com/general/application/eclipse/fix-gc-overhead-limit-exceeded for more information.
## Gradle Build System ### Gradle Build System
We try to make our builds as [reproducible/deterministic](https://blog.torproject.org/blog/deterministic-builds-part-one-cyberwar-and-global-compromise) as possible. We try to make our builds as [reproducible/deterministic](https://blog.torproject.org/blog/deterministic-builds-part-one-cyberwar-and-global-compromise) as possible.
This is also a key requirement to be part of F-Droid. This is also a key requirement to be part of F-Droid.
@ -163,9 +175,9 @@ TODO:
- include Spongy Castle as source - include Spongy Castle as source
- resolve lint errors (currently abortOnError is false in some build.gradle files of main project and libraries) - resolve lint errors (currently abortOnError is false in some build.gradle files of main project and libraries)
# Coding Style ## Coding Style
## Code ### Code
* Indentation: 4 spaces, no tabs * Indentation: 4 spaces, no tabs
* Maximum line width for code and comments: 100 * Maximum line width for code and comments: 100
* Opening braces don't go on their own line * Opening braces don't go on their own line
@ -174,14 +186,14 @@ TODO:
See http://source.android.com/source/code-style.html See http://source.android.com/source/code-style.html
## XML Eclipse Settings ### XML Eclipse Settings
* XML Maximum line width 999 * XML Maximum line width 999
* XML: Split multiple attributes each on a new line (Eclipse: Properties -> XML -> XML Files -> Editor) * XML: Split multiple attributes each on a new line (Eclipse: Properties -> XML -> XML Files -> Editor)
* XML: Indent using spaces with Indention size 4 (Eclipse: Properties -> XML -> XML Files -> Editor) * XML: Indent using spaces with Indention size 4 (Eclipse: Properties -> XML -> XML Files -> Editor)
See http://www.androidpolice.com/2009/11/04/auto-formatting-android-xml-files-with-eclipse/ See http://www.androidpolice.com/2009/11/04/auto-formatting-android-xml-files-with-eclipse/
# Licenses ## Licenses
OpenPGP Kechain is licensed under GPLv3+. OpenPGP Kechain is licensed under GPLv3+.
Some parts (older parts and some libraries are Apache License v2, MIT X11 License) Some parts (older parts and some libraries are Apache License v2, MIT X11 License)
@ -199,7 +211,7 @@ Some parts (older parts and some libraries are Apache License v2, MIT X11 Licens
> along with this program. If not, see <http://www.gnu.org/licenses/>. > along with this program. If not, see <http://www.gnu.org/licenses/>.
## Libraries ### Libraries
* SpongyCastle * SpongyCastle
https://github.com/rtyley/spongycastle https://github.com/rtyley/spongycastle
@ -226,7 +238,7 @@ Some parts (older parts and some libraries are Apache License v2, MIT X11 Licens
MIT License MIT License
## Images ### Images
* icon.svg * icon.svg
modified version of kgpg_key2_kopete.svgz modified version of kgpg_key2_kopete.svgz