8.4 KiB
Contributing to LocalSend
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.
Getting Started
If you're interested in contributing code to LocalSend, you'll need to follow these steps:
Run
After you have installed Flutter, then you can start this app by typing the following commands:
cd app
flutter pub get
flutter pub run build_runner build -d
flutter run
Translation
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>.jsonin assets/i18n - Fix existing translations: Update
strings_<locale>.i18n.jsonin 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
- Run
cd appto enter the app directory. - Make sure you have run this app once.
- Update translations via
flutter pub run slang - Run the app via
flutter run
- 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!
Contributing Guidelines
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
mainbranch and include a clear summary of the changes made.
Bug Reports and Feature Requests
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.
Security Issues
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.
Distribution
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)
Notes
Useful notes.
Compile production APK
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
}
}
Bump Flutter
Suppose we want to update flutter to 3.7.8 (see 7b95a7a560):
- Update flutter from fvm:
fvm use 3.7.8 - Update flutter from submodule:
git submodule update --initcd submodules/fluttergit fetchgit checkout 3.7.8cd ../..git add submodules/flutter
- Update flutter constraints:
- In CI:
.github/workflows/ci.yml - In pubspec:
pubspec.yaml
- In CI:
Release
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.