diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 907816de..ab2de7e0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -10,7 +10,7 @@ tl;dr: * a single issue per topic * reduce screenshot size - + **Describe the bug** diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index e3fbb2eb..8a6c702c 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -10,7 +10,7 @@ tl;dr: * a single issue per topic * reduce screenshot size - + **Is your feature request related to a problem? Please describe.** diff --git a/.github/ISSUE_TEMPLATE/other.md b/.github/ISSUE_TEMPLATE/other.md index 0b93d0d5..3956154a 100644 --- a/.github/ISSUE_TEMPLATE/other.md +++ b/.github/ISSUE_TEMPLATE/other.md @@ -8,3 +8,5 @@ tl;dr: * search for duplicates, also in closed issues * a single issue per topic * reduce screenshot size + + diff --git a/.github/ISSUE_TEMPLATE/spell_checker.md b/.github/ISSUE_TEMPLATE/spell_checker.md index 39706e3d..629a6974 100644 --- a/.github/ISSUE_TEMPLATE/spell_checker.md +++ b/.github/ISSUE_TEMPLATE/spell_checker.md @@ -12,3 +12,5 @@ tl;dr: Make sure you actually enabled HeliBoard spell checker. Usually it can be found in System Settings -> System -> Languages -> Advanced -> Spell Checker, but this may depend on Android version. Note that the menu when tapping a word underlined in red is coming form the Android system and is not under control of HeliBoard. + + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 77066084..8756a053 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,4 @@ -See the contributing section in the readme for more detailed guideline: https://github.com/Helium314/HeliBoard?tab=readme-ov-file#guidelines +See the contributing readme for more detailed guideline: https://github.com/Helium314/HeliBoard/blob/main/CONTRIBUTING.md tl;dr (you should still read the full list though): * make sure it's wanted * a single thing only @@ -12,3 +12,5 @@ Further * When the PR contains "fixes" , the related issue will be linked and automatically closed if the PR is merged (also works for other words like "fix", "resolve", "resolves", "closes", ...) * If you add a keyboard layout, make sure you have read https://github.com/Helium314/HeliBoard/blob/main/layouts.md#adding-new-layouts--languages * Please avoid force-pushing when doing changes. This way it's not possible which parts have changed since the previous state. + +(please remove the template text before submitting the PR) \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..71ebd725 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,39 @@ +# Getting Started + +HeliBoard project is based on Gradle and Android Gradle Plugin. To get started, you can install [Android Studio](https://developer.android.com/studio), and import project 'from Version Control / Git / Github' by providing this git repository [URL](https://github.com/Helium314/HeliBoard) (or git SSH [URL](git@github.com:Helium314/heliboard.git)). +Of course you can also use any other compatible IDE, or work with text editor and command line. + +Once everything is up correctly, you're ready to go! + +# Guidelines + +HeliBoard is a complex application, when contributing, you must take a step back and make sure your contribution: +- **Is actually wanted**. Best check related open issues before you start working on a PR. Issues with "PR" and "contributor needed" labels are accepted, but still it would be good if you announced that you are working on it. + If there is no issue related to your intended contribution, it's a good idea to open a new one to avoid disappointment of the contribution not being accepted. For small changes or fixing obvious bugs this step is not necessary. +- **Is only about a single thing**. Mixing unrelated contributions into a single PR is hard to review and can get messy. +- **Is finished or a draft**. When you keep changing the PR without reviewer's feedback, any attempt to review it is doomed and a waste of time. Better mark it as a draft in this case. +- **Has a proper description**. What your contribution does is usually less obvious to reviewers than for yourself. A good description helps _a lot_ for understanding what is going on, and for separating wanted from unintended changes in behavior. +- **Uses already in-place mechanism and take advantage of them**. In other terms, does not reinvent the wheel or uses shortcuts that could alter the consistency of the existing code. The contribution should only add as little complexity as necessary, the code is overly complicated already 😶. +- **Has a low footprint**. Some parts of the code are executed very frequently, and the keyboard should stay responsive even on older devices. +- **Does not bring any non-free code or proprietary binary blobs**. This also applies to code/binaries with unknown licenses. Make sure you do not introduce any closed-source library from Google. + If your contribution contains code that is not your own, provide a link to the source. +- **Complies with the user privacy principle HeliBoard follows**. + +(and please leave dependency upgrades to the maintainers, unless it's an actual security issue) +In addition to previous elements, HeliBoard must stick to [F-Droid inclusion guidelines](https://f-droid.org/docs/Inclusion_Policy/). + +# Adding Layouts + +See [layouts.md](layouts.md#adding-new-layouts--languages) for how to add new layouts to the app. + +# Update Emojis + +See make-emoji-keys tool [README](tools/make-emoji-keys/README.md). + +# Update List of Existing Dictionaries + +See make-dict-list tool [README](tools/make-dict-list/README.md). + +# Translations +Translations can be added using [Weblate](https://translate.codeberg.org/projects/heliboard/). You will need an account to update translations and add languages. Add the language you want to translate to in Languages -> Manage translated languages in the top menu bar. +Updating translations in a PR will not be accepted, as it may cause conflicts with Weblate translations. diff --git a/README.md b/README.md index 669a0a87..bedcddbf 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ Does not use internet permission, and thus is 100% offline. * [Hidden Functionality](#hidden-functionality) - [Contributing](#contributing-) * [Reporting Issues](#reporting-issues) - * [Translation](#translation) + * [Translations](#translations) * [Dictionary Creation](#dictionary-creation) - * [Code Contribution](#code-contribution) + * [Code Contribution](CONTRIBUTING.md) - [To-do](#to-do) - [License](#license) - [Credits](#credits) @@ -38,7 +38,7 @@ Does not use internet permission, and thus is 100% offline.
  • Glide typing (only with closed source library ☹️)
  • Clipboard history
  • One-handed mode
  • @@ -110,7 +110,7 @@ Note that issues that that ignore part of the issue template will likely get tre If you're interested, you can read the following useful text about effective bug reporting (a bit longer read): https://www.chiark.greenend.org.uk/~sgtatham/bugs.html -## Translation +## Translations Translations can be added using [Weblate](https://translate.codeberg.org/projects/heliboard/). You will need an account to update translations and add languages. Add the language you want to translate to in Languages -> Manage translated languages in the top menu bar. Updating translations in a PR will not be accepted, as it may cause conflicts with Weblate translations. @@ -119,41 +119,7 @@ There will not be any further dictionaries bundled in this app. However, you can To create or update a dictionary for your language, you can use [this tool](https://github.com/remi0s/aosp-dictionary-tools). You will need a wordlist, as described [here](https://codeberg.org/Helium314/aosp-dictionaries/src/branch/main/wordlists/sample.combined) and in the repository readme. ## Code Contribution - -### Getting Started - -HeliBoard project is based on Gradle and Android Gradle Plugin. To get started, you can install [Android Studio](https://developer.android.com/studio), and import project 'from Version Control / Git / Github' by providing this git repository [URL](https://github.com/Helium314/HeliBoard) (or git SSH [URL](git@github.com:Helium314/heliboard.git)). -Of course you can also use any other compatible IDE, or work with text editor and command line. - -Once everything is up correctly, you're ready to go! - -### Guidelines - -HeliBoard is a complex application, when contributing, you must take a step back and make sure your contribution: -- **Is actually wanted**. Best check related open issues before you start working on a PR. Issues with "PR" and "contributor needed" labels are accepted, but still it would be good if you announced that you are working on it. -If there is no issue related to your intended contribution, it's a good idea to open a new one to avoid disappointment of the contribution not being accepted. For small changes or fixing obvious bugs this step is not necessary. -- **Is only about a single thing**. Mixing unrelated contributions into a single PR is hard to review and can get messy. -- **Is finished or a draft**. When you keep changing the PR without reviewer's feedback, any attempt to review it is doomed and a waste of time. Better mark it as a draft in this case. -- **Has a proper description**. What your contribution does is usually less obvious to reviewers than for yourself. A good description helps _a lot_ for understanding what is going on, and for separating wanted from unintended changes in behavior. -- **Uses already in-place mechanism and take advantage of them**. In other terms, does not reinvent the wheel or uses shortcuts that could alter the consistency of the existing code. -- **Has a low footprint**. Some parts of the code are executed very frequently, and the keyboard should stay responsive even on older devices. -- **Does not bring any non-free code or proprietary binary blobs**. This also applies to code/binaries with unknown licenses. Make sure you do not introduce any closed-source library from Google. -If your contribution contains code that is not your own, provide a link to the source. -- **Complies with the user privacy principle HeliBoard follows**. - -In addition to previous elements, HeliBoard must stick to [F-Droid inclusion guidelines](https://f-droid.org/docs/Inclusion_Policy/). - -### Adding Layouts - -See [layouts.md](layouts.md#adding-new-layouts--languages) for how to add new layouts to the app. - -### Update Emojis - -See make-emoji-keys tool [README](tools/make-emoji-keys/README.md). - -### Update List of Existing Dictionaries - -See make-dict-list tool [README](tools/make-dict-list/README.md). +See [Contribution Guidelines](CONTRIBUTING.md) # To-do __Planned features and improvements:__