Thank you for your interest in contributing! π
Whether you're fixing a bug, adding a new feature, or improving documentation β all contributions are welcome.
- π° Before You Start
- π οΈ How to Run the App (Setup Guide)
- π§ͺ Running Tests
- π Translations
- π§βπ» Git Workflow (GitFlow)
- πΆ New Contributor Quick Guide (For Beginners)
- π Code Style & Commit Guidelines
- π How to Submit a Pull Request
- π¬ Community & Support
- Make sure you have Git and Android Studio installed.
- Familiarity with GitFlow is recommended (see below).
- If you're new to open/free source, check out our beginner section β
# Clone the repository
git clone https://github.com/labexp/osmtracker-android/
cd osmtracker-android- Install Android Studio. - Here is the official guide on how to install it on different operating systems
- Open the IDE and click
open an existing Android Studio project, then look for the folder where you cloned the repository - Build the project (
Ctrl + F9or the π οΈ hammer button)
This repository has an automated way to run the tests on branches but if you already have the project installed on you computer then you can also run them from a terminal. It's recommended to run the tests locally before making a new pull request to make sure the changes doesn't break any previous functionality. You can run the tests locally as follows:
- Make sure you are at the root directory of the project
$ cd YOUR_PATH/osmtracker-android
- For running instrumentation tests it's needed to previously start up an emulator (or real device), you can do it from Android Studio but also without it using the command line. For that, you need to move to the Android SDK installation directory and look for a folder called
emulatoronce there, start any already created emulator by typing:$ ./emulator -avd NAMEto start the emulator called NAME (run$ ./emulator -list-avdsfor a valid list of AVD names)- When it's up, go back to the root project folder and run the instrumentation tests with
$ ./gradlew connectedAndroidTest
- For running the unit tests no emulator or device is needed, just run
$ ./gradlew test
- Now just wait for gradle to run the tests for you, it'll show the results of which tests passed or failed when it's finished
OSMTracker is translated using Transifex (see the wiki). Once translations are complete, they will be updated via automated Transifex PR.
We use GitFlow branching model:
| Branch | Purpose |
|---|---|
master |
Stable production releases |
develop |
Main development branch |
feature/* |
New features |
hotfix/* |
Quick fixes for production |
- If you want more information, take a look here
β¨ If this is your first open-source contribution, start here!
-
β Fork the repository
After forking, make sure your fork includes all the required branches (especially
develop, not onlymaster).You can verify this by checking the branches tab in your fork on GitHub.
-
π₯ Clone your fork
git clone https://github.com/YOUR_USERNAME/osmtracker-android.git
-
π (Optional) Add upstream to stay updated
git remote add upstream https://github.com/labexp/osmtracker-android.git
-
π± Create a branch
git checkout develop git checkout -b feature/your-feature-name
-
βοΈ Make changes + commit (atomic commits)
-
π Push your branch
-
π Open a Pull Request (PR)
Use clear and descriptive commit messages.
β Good:
feat: add option to export GPX file
fix: resolve crash when no GPS signal
docs: update contributing guide
β Bad:
update stuff
fix bug
- Push your changes
- Go to GitHub β Open PR
- Fill the PR template fully
- Wait for review β
- Have questions? Open a Discussion or an Issue
- (Optional): Join the contributors chat/Telegram.
Let's build something awesome together! π