We appreciate any kind of contributions to AuthPass 😅️
- Visit the forum which lists many ways for contributing: https://forum.authpass.app/c/contributors/contribute/13
- Check out the article on helping support AuthPass on our website.
If you want to contribute documentation or code, never hesitate to get in contact.
💬 Also, join our discord channel. 💬
The actual translations are handled by the crowdin platform at: https://translate.authpass.app/authpass. Do not modify any translated
app_XX.arb
files manually.
If you want to contribute new translations:
- check if your lanuage already exists at: https://translate.authpass.app/authpass
- If not, join our discord channel and ping @hpoul
All new code should have translatable strings, even if the code base still does not 100% use externalized strings. See authpass#78 -- This might also be a good first PR ;-) Pick a few source files and externalize the strings.
- Add your string into
app_en.arb
- give a usefuldescription
(and/orcontext
). (do NOT translate it in any otherapp_XX.arb
file, as this is handled through crowdin). - In the code typically use a variable in the
build
method:final loc = AppLocalizations.of(context)
and access your string throughloc.xxxx
. - See the flutter i18n/l10n documentation.
AuthPass is based on Flutter, so you should get familiar with the Dart programming language as well as Flutter itself. You can checkout the Flutter website at https://flutter.dev/
If you have never used Flutter before you might want to walk through a few codelabs before getting into AuthPass.
AuthPass makes heavy use of submodules right now. If you fork the repository you might experience a few
permission denied errors when you clone using ssh. To work around those you might need to add the follwing to your ~/.gitconfig
:
[url "https://github.com/"]
insteadOf = git@github.com:
[url "git@github.com:"]
pushInsteadOf = "https://github.com/"
(If you don't want it for all github repositories, you might only configure it for github:hpoul/
and github:authpass/
).
-
Download Flutter and make sure
flutter doctor
shows no errors.- Latest Flutter dev channel should typically work, check out authpass/_tools/_flutter_version.sh for what's being used in the CI.
⚠️ no longer required: (this should be fixed, just leaving it in, in case people still see this error) Right now one extra step is required after installing flutter: in the flutter directory change toflutter/dev/tools
and run:flutter pub get
. See the (flutter issue #65023)[flutter/flutter#65023] for details. otherwise you will stumble on errors like:flutter/dev/tools/localization/bin/gen_l10n.dart:7:8: Error: Error when reading '/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.6.0/lib/args.dart': The system cannot find the path specified.
-
Clone the repository
git clone https://github.com/authpass/authpass.git
(or better yet, create your own fork to make later creating Pull Requests easier). -
Initialize submodules
git submodule update --init
-
Change to the
authpass/
subdirectory:git clone https://github.com/authpass/authpass.git cd authpass/authpass
-
Launch AuthPass
flutter run -t lib/env/development.dart
You are required to select a specific target file,
usually this will be lib/env/development.dart
.
For android you have to add an additional flavor:
flutter run --target=lib/env/development.dart --flavor=playstore
Make sure to follow common Dart coding conventions, and follow all lints provided
by analysis_options.yaml
and activate auto-formatting using dartfmt
.
When creating your first Pull Request you will be asked to sign the Contributor License Agreement. This ensures there is no (less?) ambiguity regarding copyright and licensing rights in case of any disputes. If you have any concerns just ping @hpoul.