chore: touch up README and contribution docs

This commit is contained in:
Harsh Shandilya 2022-10-30 08:58:42 +00:00
parent a3118c5476
commit 24d9e49289
2 changed files with 15 additions and 30 deletions

View file

@ -6,9 +6,15 @@ This document should be treated as suggestions, and not rules, on how to contrib
## Table of contents ## Table of contents
- [Things to do before you start writing code](#things-to-do-before-you-start-writing-code)
- [Navigating the source code](#navigating-the-source-code) - [Navigating the source code](#navigating-the-source-code)
- [Building the project](#building-the-project) - [Building the project](#building-the-project)
- [Things to do before you start writing code](#things-to-do-before-you-start-writing-code)
# Things to do before you start writing code
If you're trying to fix a bug that already has an open issue, it's a good idea to drop a comment mentioning that you're working on a fix. If no open issue exists, please file one with the full details of what the bug is and how you intend to resolve it, and only start implementation once a maintainer has triaged the issue and has signed off on your approach. This allows maintainers to be able to review your pull request faster when it arrives, and saves you redundant effort of having to make potentially large changes in response to code review.
If you want to add a new feature, please file an issue first to gauge maintainer and community interest. Sometimes the feature might need adjustments before it is accepted, or it might not be something we want to add to APS at all. Proposing the feature in detail before working on it ensures that you build exactly what is necessary and not waste time and effort on aspects that would get rejected during review.
## Navigating the source code ## Navigating the source code
@ -16,11 +22,12 @@ The source code is split across 12 modules and 1 subproject.
- `build-logic` and its modules host the Gradle build logic for the project. - `build-logic` and its modules host the Gradle build logic for the project.
- `autofill-parser` is the aptly named parser for Android's Autofill structures that also deals with trust and feature detection for browsers. - `autofill-parser` is the aptly named parser for Android's Autofill structures that also deals with trust and feature detection for browsers.
- `openpgp-ktx` contains the glue code that enables APS to interact with OpenKeychain. - `openpgp-ktx` contains the now defunct glue code that was used by APS to interact with OpenKeychain.
- `coroutine-utils` and `coroutine-utils-testing` are helper libraries that allow for effective usage and testing of [Kotlin Coroutines](https://kotlinlang.org/docs/coroutines-overview.html). - `coroutine-utils` and `coroutine-utils-testing` are helper libraries that allow for effective usage and testing of [Kotlin Coroutines](https://kotlinlang.org/docs/coroutines-overview.html).
- `crypto-common` is the foundation of our new, extensible cryptography APIs that adds the ability to introduce new cryptographic backends to APS with minimal effort. - `crypto-common` is the foundation of our new, extensible cryptography APIs that adds the ability to introduce new cryptographic backends to APS with minimal effort.
- `crypto-pgpainless` is the first of our new backends that utilises `crypto-common` to offer PGP cryptography through the [PGPainless](https://gh.pgpainless.org/) library. - `crypto-pgpainless` is the first of our new backends that utilises `crypto-common` to offer PGP cryptography through the [PGPainless](https://gh.pgpainless.org/) library.
- `format-common` handles parsing the `pass` file format. - `format-common` handles parsing the `pass` file format.
- `format-common-impl` contains the tests for `format-common` and some Android-specific functionality.
- `passgen/random` contains the default password generator. - `passgen/random` contains the default password generator.
- `passgen/diceware` is our new password generator that implements the [Diceware](https://theworld.com/~reinhold/diceware.html) algorithm. - `passgen/diceware` is our new password generator that implements the [Diceware](https://theworld.com/~reinhold/diceware.html) algorithm.
- `sentry-stub` contains no-op variants of [Sentry](https://sentry.io/) APIs that we use to ensure the FOSS-only, telemetry-free variant of APS continues to compile in absence of Sentry dependencies. - `sentry-stub` contains no-op variants of [Sentry](https://sentry.io/) APIs that we use to ensure the FOSS-only, telemetry-free variant of APS continues to compile in absence of Sentry dependencies.
@ -33,7 +40,7 @@ We bundle a [`ignore-revs-file`](https://git-scm.com/docs/git-blame#Documentatio
## Source code conventions ## Source code conventions
- Unless you're absolutely sure what you're doing, always prefer the `unsafeLazy` method over Kotlin's inbuilt `lazy` for lazily evaluated properties. - Unless you're absolutely sure what you're doing, always prefer the [`unsafeLazy`](https://github.com/android-password-store/Android-Password-Store/blob/f870dd49138d63d9803783458abf1356176851db/app/src/main/java/app/passwordstore/util/extensions/Extensions.kt#L68) method over Kotlin's inbuilt `lazy` for lazily evaluated properties.
- For inflating a Fragment or Activity view, always use the [`viewBinding`](https://github.com/android-password-store/Android-Password-Store/blob/3a16d77db24b6d79d9d27ce3207d72a7a879f38a/app/src/main/java/dev/msfjarvis/aps/util/extensions/FragmentViewBindingDelegate.kt) extension. - For inflating a Fragment or Activity view, always use the [`viewBinding`](https://github.com/android-password-store/Android-Password-Store/blob/3a16d77db24b6d79d9d27ce3207d72a7a879f38a/app/src/main/java/dev/msfjarvis/aps/util/extensions/FragmentViewBindingDelegate.kt) extension.
## Building the project ## Building the project
@ -54,9 +61,3 @@ You can find the generated APK at `app/outputs`.
## Pre-push checks ## Pre-push checks
The project enforces codestyle conventions and library API stability by virtue of a carefully curated Gradle build. To setup a Git pre-push hook to run them automatically, run `./gradlew installGitHooks`. The project enforces codestyle conventions and library API stability by virtue of a carefully curated Gradle build. To setup a Git pre-push hook to run them automatically, run `./gradlew installGitHooks`.
# Things to do before you start writing code
If you're trying to fix a bug that already has an open issue, it's a good idea to drop a comment mentioning that you're working on a fix. If no open issue exists, please file one with the full details of what the bug is and how you intend to resolve it, and only start implementation once a maintainer has triaged the issue and has signed off on your approach. This allows maintainers to be able to review your pull request faster when it arrives, and saves you redundant effort of having to make potentially large changes in response to code review.
If you want to add a new feature, please file an issue first to gauge maintainer and community interest. Sometimes the feature might need adjustments before it is accepted, or it might not be something we want to add to APS at all. Proposing the feature in detail before working on it ensures that you build exactly what is necessary and not waste time and effort on aspects that would get rejected during review.

View file

@ -22,14 +22,12 @@ We're in the process of rewriting our documentation from scratch, and the work-i
## Contributing ## Contributing
Want to contribute? See if you can [find an issue](https://github.com/android-password-store/Android-Password-Store/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) you wanna close, then send a PR! Want to contribute? See if you can [find an issue](https://github.com/android-password-store/Android-Password-Store/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) you are interested in, then send a PR. Consult the [contribution](CONTRIBUTING.md) docs
Interested in helping to translate Password Store? Contribute [here](https://crowdin.com/project/android-password-store)! Interested in helping to translate Password Store? Contribute [here](https://crowdin.com/project/android-password-store)!
Wanna test development builds to find bugs and offer feedback? Read the [release channels](https://docs.passwordstore.app/docs/Users/release-channels) documentation to get access! Wanna test development builds to find bugs and offer feedback? Read the [release channels](https://docs.passwordstore.app/docs/Users/release-channels) documentation to get access!
Code contributions? [Here](CONTRIBUTING.md) you are welcomed!
## Community ## Community
Ways to get in touch: Ways to get in touch:
@ -37,25 +35,11 @@ Ways to get in touch:
* [Github issues](https://github.com/android-password-store/Android-Password-Store/issues): Use it if you have a bug report, or you want to submit a feature request. * [Github issues](https://github.com/android-password-store/Android-Password-Store/issues): Use it if you have a bug report, or you want to submit a feature request.
* [GitHub Discussions](https://github.com/android-password-store/Android-Password-Store/discussions): Use it if you do not understand something, or want to discuss a feature request in more detail with all community members before pitching it to maintainers. * [GitHub Discussions](https://github.com/android-password-store/Android-Password-Store/discussions): Use it if you do not understand something, or want to discuss a feature request in more detail with all community members before pitching it to maintainers.
## Contributors ## Donations
This project exists thanks to all the people who contribute. The project accepts financial contributions through the following platforms
[![Opencollective](https://opencollective.com/Android-Password-Store/contributors.svg?width=890&button=false)](https://github.com/android-password-store/Android-Password-Store/graphs/contributors) - [GitHub Sponsors](https://github.com/sponsors/android-password-store)
- [OpenCollective](https://opencollective.com/android-password-store)
## Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/Android-Password-Store#backer)]
[![Backers](https://opencollective.com/Android-Password-Store/backers.svg?width=890)](https://opencollective.com/Android-Password-Store#backers)
## Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.[[Become a sponsor](https://opencollective.com/Android-Password-Store#sponsor)]
[![Triplebyte](https://opencollective.com/Android-Password-Store/sponsor/0/avatar.svg)](https://opencollective.com/Android-Password-Store/sponsor/0/website)
[![Applicative GmbH](https://opencollective.com/Android-Password-Store/sponsor/1/avatar.svg)](https://opencollective.com/Android-Password-Store/sponsor/1/website)
[![ScrapingBee](https://opencollective.com/Android-Password-Store/sponsor/2/avatar.svg)](https://opencollective.com/Android-Password-Store/sponsor/2/website)
[![Become a Sponsor](https://opencollective.com/Android-Password-Store/sponsor/3/avatar.svg)](https://opencollective.com/Android-Password-Store/sponsor/3/website)
<sub>Google Play and the Google Play logo are trademarks of Google LLC.</sub> <sub>Google Play and the Google Play logo are trademarks of Google LLC.</sub>