You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#  Develop, Build and Contribute to Tuner [](http://www.gnu.org/licenses/gpl-3.0)<!-- omit in toc -->
2
9
3
10
Discover and Listen to your favourite internet radio stations, and add improve the code!
4
11
5
12
-[Overview](#overview)
6
-
-[Tuner Development](#tuner-development)
13
+
-[TL;DR](#tldr)
14
+
-[Prerequisits](#prerequisits)
7
15
-[Naming Conventions](#naming-conventions)
8
16
-[Dependencies](#dependencies)
9
-
-[Building the Tuner App From Source](#building-the-tuner-app-from-source)
10
-
-[Valadoc](#valadoc)
11
-
-[Building the Tuner Flatpak](#building-the-tuner-flatpak)
12
-
-[Readying code for a Pull Request](#readying-code-for-a-pull-request)
17
+
-[Tuner Development Lifecycle](#tuner-development-lifecycle)
18
+
-[Building Tuner From Source](#building-tuner-from-source)
19
+
-[Valadoc](#valadoc)
20
+
-[Building the Tuner Flatpak](#building-the-tuner-flatpak)
21
+
-[Readying code for a Pull Request](#readying-code-for-a-pull-request)
@@ -19,9 +31,29 @@ Discover and Listen to your favourite internet radio stations, and add improve t
19
31
20
32
**_Tuner_** is hosted on [Github](https://github.com/tuner-app/tuner), packaged as a Flatpak and distributed by Flathub. **_Tuner_** is writen in [Vala](https://vala.dev/), a C#/Java/JavaFX-like language with a self-hosting compiler that generates C code, uses the GObject type system and wrapping a number of GTK libraries, and utilizes GNOME internationalization and localization (_i18n_) for user-facing strings, which are translated via [Weblate](https://hosted.weblate.org/projects/tuner/). [Meson](https://mesonbuild.com/) is the build system.
21
33
22
-
## Tuner Development
34
+
## TL;DR
23
35
24
-
Hosted on Github, the _main_ branch reflects the current stable release. The _development_ branch is the development branch and where releases are staged. Pull Requests should be made against the _development_ branch.
Hosted on Github, the _main_ branch reflects captured the current release and tags. The _development_ branch is the destination for in progress code, translations and where releases are staged. Fork the project and develop on your forks' _development_ branch. All _Pull Requests_ should be made against the _development_ branch.
97
+
98
+
The development lifecycle is:
99
+
100
+
- Build Tuner from Source
101
+
- Checkout _development_ branch
102
+
- Setup the build
103
+
- Local build and confirm
104
+
- Update the Code
105
+
- Modify code
106
+
- Local build
107
+
- Test
108
+
- Flatpak Build
109
+
- Local Flatpak User build and test
110
+
- Github Flatpack build and test
111
+
- Pull Request
112
+
113
+
### Building Tuner From Source
114
+
115
+
After Forking your own copy of the Tuner project from [https://github.com/tuner-labs/tuner](https://github.com/tuner-labs/tuner), _clone_ your copy to your development machine then checkout the velopment branch:
116
+
117
+
```bash
118
+
gh repo clone yourusername/tuner
119
+
cd tuner
120
+
checkout development
121
+
```
63
122
64
123
There are two build configurations: _debug_ and _release_. The _debug_ build (manifest _com.github.louis77.tuner.debug.yml_) is recommended for development, while the _release_ build (manifest _com.github.louis77.tuner.yml_) is for distribution. Build instructions will focus on the _debug_ build. Copy the required manifest to _com.github.louis77.tuner.xml_ before building.
@@ -135,15 +196,18 @@ If the build has changed it may be required to update repository check-in **Acti
135
196
136
197
### Language Changes & Translations
137
198
138
-
Changes to strings that are internationalized require translation via [Weblate](https://hosted.weblate.org/projects/tuner/) and reintegration of the new translationsinto the build.
199
+
Changes to strings that are internationalized require translation via [Weblate](https://hosted.weblate.org/projects/tuner/) and reintegration of the new translations, the .po files, into the build via a Weblate pull request.
139
200
140
-
for translation by GNOME gettext require that the _.pot_ file be regenerated, checked in and pushed so
201
+
If translatable strings have been update for translation by GNOME gettext require that the _.pot_ file be regenerated, checked in and pushed to the development branch for Weblate to pick them up. If _Countries_ or _Languages_, or if other strings in the _Application_ have changed, or if the package _extra_ metadata has changed, the regenration commands are:
141
202
142
203
```bash
143
-
meson compile -C builddir pot
204
+
meson compile -C builddir countries-pot
205
+
meson compile -C builddir application-pot
144
206
meson compile -C builddir extra-pot
145
207
```
146
208
209
+
If the _.po_ files change, the meson build setup should be rerun.
210
+
147
211
### Code Changes
148
212
149
213
Before a pull request can be accepted, the code must pass linting. This is done by running the following command:
**Tuner** uses [Gnome *i18n*](https://developer.gnome.org/documentation/guidelines/localization.html) for internationalization. This system and library specifies source files (*POTFILES*) from which to extract identified strings for translation (the *.pot* file) and the target languages (*LINGUAS*). During the build process translated strings (*.po* files) are package and the included library uses the appropriate translated strings are then used by the host system when running **Tuner**.
0 commit comments