Skip to content

Commit 3032f69

Browse files
authored
Merge pull request #323 from technosf/development
2.0.1 Beta 2
2 parents 48779eb + 84cd88e commit 3032f69

File tree

86 files changed

+1780
-702
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+1780
-702
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<!--
2+
Copyright © 2026 <https://github.com/technosf>
3+
SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
4+
5+
SPDX-License-Identifier: GPL-3.0-or-later
6+
-->
7+
18
---
29
name: Bug report
310
about: Create a report to help us improve

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<!--
2+
Copyright © 2026 <https://github.com/technosf>
3+
SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
4+
5+
SPDX-License-Identifier: GPL-3.0-or-later
6+
-->
7+
18
---
29
name: Feature request
310
about: Suggest an idea for this project

.github/workflows/dev.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# Copyright © 2026 <https://github.com/technosf>
2+
# SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
3+
#
4+
# SPDX-License-Identifier: GPL-3.0-or-later
5+
#
6+
17
name: Build and Test
28

39
on:

.github/workflows/main.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# Copyright © 2026 <https://github.com/technosf>
2+
# SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
3+
#
4+
# SPDX-License-Identifier: GPL-3.0-or-later
5+
#
6+
17
name: CI
28

39
# This workflow will run for any pull request or pushed commit

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# Copyright © 2026 <https://github.com/technosf>
2+
# SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
3+
#
4+
# SPDX-License-Identifier: GPL-3.0-or-later
5+
#
6+
17
build
28
builddir
39
build-dir
@@ -21,4 +27,4 @@ repo/*/*
2127
*.log
2228
*.tmp
2329
data/*.gresource
24-
TODO
30+
TODO

DEVELOP.md

Lines changed: 76 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,27 @@
1+
<!--
2+
Copyright © 2026 <https://github.com/technosf>
3+
SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
4+
5+
SPDX-License-Identifier: GPL-3.0-or-later
6+
-->
7+
18
# ![icon](docs/logo_01.png) Develop, Build and Contribute to Tuner [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0) <!-- omit in toc -->
29

310
Discover and Listen to your favourite internet radio stations, and add improve the code!
411

512
- [Overview](#overview)
6-
- [Tuner Development](#tuner-development)
13+
- [TL;DR](#tldr)
14+
- [Prerequisits](#prerequisits)
715
- [Naming Conventions](#naming-conventions)
816
- [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)
22+
- [Build Changes](#build-changes)
23+
- [Language Changes & Translations](#language-changes--translations)
24+
- [Code Changes](#code-changes)
1325
- [Debugging](#debugging)
1426
- [VSCode](#vscode)
1527
- [Bug Introduction Deduction](#bug-introduction-deduction)
@@ -19,9 +31,29 @@ Discover and Listen to your favourite internet radio stations, and add improve t
1931

2032
**_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.
2133

22-
## Tuner Development
34+
## TL;DR
2335

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.
36+
```bash
37+
gh repo clone yourusername/tuner
38+
cd tuner
39+
checkout development
40+
meson setup --buildtype=debug builddir
41+
meson compile -C builddir
42+
./builddir/com.github.louis77.tuner
43+
flatpak-builder --force-clean --user --sandbox --install build-dir com.github.louis77.tuner.yml
44+
flatpak --user run com.github.louis77.tuner
45+
```
46+
47+
## Prerequisits
48+
49+
### Licenses
50+
51+
_Tuner_ is licensed under **GPL-3.0-or-later**
52+
Compliance can be checked using [Reuse](https://reuse.software/) linter:
53+
54+
```bash
55+
reuse lint
56+
```
2557

2658
### Naming Conventions
2759

@@ -59,7 +91,34 @@ sudo apt install git valac meson
5991
sudo apt install libgtk-3-dev libgee-0.8-dev libgranite-dev libgstreamer1.0-dev libgstreamer-plugins-bad1.0-dev libsoup-3.0-dev libjson-glib-dev
6092
```
6193

62-
### Building the Tuner App From Source
94+
## Tuner Development Lifecycle
95+
96+
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+
```
63122

64123
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.
65124

@@ -113,10 +172,12 @@ flatpak install flathub org.freedesktop.Sdk//x86_64//25.08
113172
flatpak install flathub org.freedesktop.Sdk.Extension.vala/x86_64/25.08
114173
```
115174

116-
Build the flatpak in the _user_ scope:
175+
Build the flatpak in the _user_ scope with and without debug:
117176

118177
```bash
119178
flatpak-builder --force-clean --user --sandbox --install build-dir com.github.louis77.tuner.debug.yml
179+
180+
flatpak-builder --force-clean --user --sandbox --install build-dir com.github.louis77.tuner.yml
120181
```
121182

122183
Run the Tuner flatpack:
@@ -135,15 +196,18 @@ If the build has changed it may be required to update repository check-in **Acti
135196

136197
### Language Changes & Translations
137198

138-
Changes to strings that are internationalized require translation via [Weblate](https://hosted.weblate.org/projects/tuner/) and reintegration of the new translations into 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.
139200

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:
141202

142203
```bash
143-
meson compile -C builddir pot
204+
meson compile -C builddir countries-pot
205+
meson compile -C builddir application-pot
144206
meson compile -C builddir extra-pot
145207
```
146208

209+
If the _.po_ files change, the meson build setup should be rerun.
210+
147211
### Code Changes
148212

149213
Before a pull request can be accepted, the code must pass linting. This is done by running the following command:

I18N.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<!--
2+
Copyright © 2026 <https://github.com/technosf>
3+
SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
4+
5+
SPDX-License-Identifier: GPL-3.0-or-later
6+
-->
7+
18
# Internationalization
29

310
**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**.

PACKAGING.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<!--
2+
Copyright © 2026 <https://github.com/technosf>
3+
SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
4+
5+
SPDX-License-Identifier: GPL-3.0-or-later
6+
-->
7+
18
# Packaging Tuner for Various Platforms
29

310
The **flathub** packaging for **Tuner** is documented in <RELEASE.md>

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<!--
2+
Copyright © 2026 <https://github.com/technosf>
3+
SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
4+
5+
SPDX-License-Identifier: GPL-3.0-or-later
6+
-->
7+
18
# ![icon](docs/logo_01.png) Tuner [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0) [![Translation status](https://hosted.weblate.org/widget/tuner/language-badge.svg) ![Translation status](https://hosted.weblate.org/widgets/tuner/-/tuner-ui/svg-badge.svg)](https://hosted.weblate.org/engage/tuner/)
29

310
## Discover and Listen to your favourite internet radio stations

RELEASE.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<!--
2+
Copyright © 2026 <https://github.com/technosf>
3+
SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
4+
5+
SPDX-License-Identifier: GPL-3.0-or-later
6+
-->
7+
18
# Tuner Release Process
29

310
## Local Build

0 commit comments

Comments
 (0)