1
0
Fork
You've already forked peertubesailor
0
Peertube client for SailfishOS
  • Python 31.7%
  • QML 29.3%
  • JavaScript 24.4%
  • Gherkin 9.6%
  • Shell 5%
Alessandro Molina 75d5182759
All checks were successful
CI / Build and test (push) Successful in 2m37s
fix: update changelog author to Alessandro Molina
2026年07月12日 16:40:40 +00:00
.forgejo/workflows refactor: replace custom QML checker with qmllint — Qt's standard validator 2026年07月11日 19:08:38 +00:00
features Add goal specifications and evolutions 2026年07月09日 20:43:37 +00:00
icons resolve EVO-020 2026年07月08日 17:35:45 +00:00
qml fix: move VideoOutput out of Column to SilicaFlickable root level 2026年07月12日 15:34:02 +00:00
rpm fix: update changelog author to Alessandro Molina 2026年07月12日 16:40:40 +00:00
scripts fix: correct sailfish-qml launch command in deploy message 2026年07月12日 16:35:51 +00:00
tests fix: layout overlap in video lists + MediaPlayer autoLoad 2026年07月11日 20:20:53 +00:00
.gitignore resolve EVO-050 2026年07月08日 17:12:55 +00:00
Evolutions.txt resolve EVO-140 2026年07月09日 20:55:53 +00:00
GOAL.md add GOAL 2026年07月08日 15:54:02 +00:00
harbour-peertubesailor.desktop fix: use correct sailfish-qml Exec in desktop file 2026年07月11日 19:38:25 +00:00
LICENSE LICENSE 2026年07月10日 19:57:53 +00:00
README.md resolve EVO-200 2026年07月09日 16:28:55 +00:00

PeerTube Sailor

Simple SailfishOS app for watching PeerTube content from one configured server.

Product behavior

Canonical product behavior is described in features/.

The .feature files are the source of truth for what the software does. They are product specifications first and executable BDD scenarios second.

Implementation and delivery tracking belongs outside this directory. Stable feature and scenario IDs let other workflows refer back to the product behavior without making the spec a status surface.

Contributor prerequisites

Install the smallest local toolchain needed for the workflow you are running:

  • Bash, Git, and tar.
  • RPM build tooling that provides rpmbuild.
  • Python test tools: pytest and gherkin-official on PATH.
  • Docker, only for scripts/docker-build.
  • Sailfish SDK command line tools (sfdk) configured with the Docker build engine, only for scripts/docker-build.
  • A SailfishOS emulator or device, only when installing and launching the RPM.

On Debian/Ubuntu-like hosts, the non-Sailfish local tools are typically:

sudo apt install git tar rpm python3-pytest
python3 -m pip install --user gherkin-official

One-command local workflow

Run the full local contributor check:

scripts/dev

This runs scripts/build and then scripts/test. If a required tool is missing, the scripts are expected to stop with a clear prerequisite message.

Build

Build the RPM locally:

scripts/build

Build output is written under:

.devloop/build/rpmbuild/RPMS/

The app is currently a pure QML package skeleton, so the build packages tracked QML, JavaScript, desktop, and icon assets into an RPM.

Test

Run available checks:

scripts/test

This checks feature-file syntax with gherkin and then runs pytest -q tests when the tests/ directory exists.

Docker-based Sailfish SDK build

Use the Sailfish SDK Docker build environment:

scripts/docker-build

This requires:

  1. Docker installed and accessible by your user.
  2. Sailfish SDK installed.
  3. sfdk configured to use the Docker build engine.

The wrapper enters sfdk build-shell and reuses the same scripts/build entrypoint as the local build.

Emulator install workflow

  1. Start a SailfishOS emulator from the Sailfish SDK.

  2. Build the RPM:

    scripts/build
    
  3. Copy the built RPM from .devloop/build/rpmbuild/RPMS/ to the emulator by using the Sailfish SDK tools or SSH access configured for your emulator.

  4. Install or upgrade it inside the emulator:

    devel-su pkcon install-local /path/to/harbour-peertubesailor-*.rpm
    
  5. Launch PeerTube Sailor from the app grid, or run the desktop command manually:

    sailfish-qml /usr/share/harbour-peertubesailor/qml/harbour-peertubesailor.qml
    

Device install workflow

  1. Enable developer mode and SSH on the SailfishOS device.

  2. Ensure the host can reach the device over USB networking or Wi-Fi.

  3. Build the RPM:

    scripts/build
    
  4. Copy the RPM to the device:

    scp .devloop/build/rpmbuild/RPMS/*/*.rpm nemo@DEVICE_IP:/home/nemo/
    
  5. SSH to the device and install or upgrade it:

    ssh nemo@DEVICE_IP
    devel-su pkcon install-local /home/nemo/harbour-peertubesailor-*.rpm
    

Replace DEVICE_IP with the address shown in the device developer-mode settings.

CI

GitHub Actions runs the documented test workflow from .github/workflows/ci.yml. Keep local changes passing with:

scripts/test