LocalSend is an open-source project, and we welcome contributions from anyone who is interested in helping improve the app. Whether you're a developer, a translator, or a documentation writer, there are many ways to get involved.
If you're interested in contributing code to LocalSend, you'll need to follow these steps:
After you have installed Flutter, then you can start this app by typing the following commands:
flutter pub get
flutter pub run build_runner build -d
flutter run
You can help in translating this app to other languages!
- Fork this repository
- Choose one
- Add missing translations in existing languages: Only update
_missing_translations_<locale>.json
in assets/i18n - Fix existing translations: Update
strings_<locale>.i18n.json
in assets/i18n - Add new languages: Create a new file, see also: locale codes.
- Add missing translations in existing languages: Only update
- Optional: Re-run this app
- Make sure you have run this app once.
- Update translations via
flutter pub run slang
- Run the app via
flutter run
- Open a pull request
Take note: Fields decorated with @
are not meant to be translated, they are not used in the app in any way, being merely informative text about the file or to give context to the translator.
Thanks to all translators!
Before you submit a pull request to LocalSend, please ensure that you have followed these guidelines:
- Code should be well-documented and formatted according to the Dart Style Guide.
- All changes should be covered by tests.
- Commits should be well-written and descriptive, with a clear summary of the changes made and any relevant context.
- Pull requests should target the
main
branch and include a clear summary of the changes made.
If you encounter a bug in LocalSend or have a feature request, please submit an issue to the issue tracker. Please be sure to provide a clear description of the problem or feature request, along with any relevant context or steps to reproduce the issue.
If you discover a security issue in LocalSend, please do not submit an issue to the public issue tracker. Instead, please email us directly at support@localsend.org so that we can address the issue as quickly and effectively as possible.
Git based distribution:
Channel | Repository | Maintainer |
---|---|---|
Winget | Winget Repo | @sitiom, @Tienisto, Github Actions |
Scoop | Scoop Repo | @sitiom, @Tienisto, Github Actions |
Chocolatey | Chocolatey Repo | @brogers5 |
Homebrew | Homebrew Repo | @Tienisto, Github Actions |
Flathub | Flathub Repo | @proletarius101, @Tienisto, Github Actions |
AUR | AUR Repo | @Nixuge |
Nixpkgs | Nixpkgs Repo | @sikmir, @linsui |
F-Droid | F-Droid Repo | @linsui, @Tienisto, F-Droid CI |
Snap | Snap Repo | @thatLeaflet |
Manual distribution:
Channel | Maintainer |
---|---|
App Store | @Tienisto |
Play Store | @Tienisto |
Amazon | @Tienisto |
Binary distribution:
Type | Maintainer | Credits |
---|---|---|
Windows ZIP | @Tienisto | |
MSIX | @Tienisto | |
EXE | @Tienisto | |
APK | @Tienisto | |
TAR | @Tienisto | |
DEB | @Tienisto | |
AppImage | @Tienisto | @TheGB0077 |
DMG | @Tienisto |
TODO:
You can help in publishing LocalSend on more platforms. Please create an issue to notify us!
- Traditional Linux distributions (Debian, Fedora, etc.)
- (Your idea here)
Useful notes.
You will need the signing keys to generate an APK.
Either generate one or use the debug signing options:
// File: android/app/build.gradle
buildTypes {
release {
signingConfig signingConfigs.debug // using debug signing
}
}
Suppose we want to update flutter to 3.7.8
(see https://github.com/localsend/localsend/commit/7b95a7a5600db2742a9e05b956d0415d871239d5):
- Update flutter from fvm:
fvm use 3.7.8
- Update flutter from submodule:
git submodule update --init
cd submodules/flutter
git fetch
git checkout 3.7.8
cd ../..
git add submodules/flutter
- Update flutter constraints:
- In CI:
.github/workflows/ci.yml
- In pubspec:
pubspec.yaml
- In CI:
Make sure to set up the self-hosted runner to compile arm64 linux binaries.
To set up the runner, follow the following instructions:
Install Flutter
sudo apt install git
git clone https://github.com/flutter/flutter.git $HOME/flutter
nano $HOME/.bashrc
Add the following to the end of the file:
export PATH="$PATH:$HOME/flutter/bin"
Restart the terminal.
flutter doctor
Next, follow the instructions to set up the GitHub runner.
Start the "Release Draft" workflow from the "Actions" tab: https://github.com/localsend/localsend/actions/workflows/release.yml
Finally, compile binaries not yet supported by the pipeline.