aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2024-03-06 16:47:19 +0100
committerGuido Günther <agx@sigxcpu.org>2024-03-07 20:07:14 +0100
commit5c59eeda5c0d7666ea6855b83133bc99ec5744c1 (patch)
tree1b9facb63178c7dc7e14c1b99701a203d7fe1c07
parent3ea8651b8dc3d6ce8323abdb4f848de51881e4fa (diff)
Add phosh nightly post
-rw-r--r--content/posts/phosh-nightly/index.md209
-rw-r--r--content/posts/phosh-nightly/pipeline-nightly.pngbin0 -> 16278 bytes
2 files changed, 209 insertions, 0 deletions
diff --git a/content/posts/phosh-nightly/index.md b/content/posts/phosh-nightly/index.md
new file mode 100644
index 0000000..720175e
--- /dev/null
+++ b/content/posts/phosh-nightly/index.md
@@ -0,0 +1,209 @@
++++
+authors = ["Guido Günther"]
+title = "Phosh Nightly Package Builds"
+date = "2024-03-07T15:19:30+01:00"
+tags = [ "phosh", "development", "debian", "planetdebian" ]
+images = ["posts/phosh-nightly/pipeline-nightly.png"]
++++
+
+# Tightening the feedback loop
+
+One thing we notice ever so often is that although Phosh's source code
+is [publicly available][1] and upcoming changes are [open for review][2] the
+feedback loop between changes being made to the development branch and
+users noticing the change can still be quiet long.
+
+This can be problematic as we ideally want to catch a regression or
+broken use case triggered by a change on the development branch (aka
+`main`) *before* the general availability of a new version.
+
+Not doing so can then lead to extra churn for both users and developers
+because at the point in time the issue is spotted/reported the developer's
+focus is usually somewhere else entirely already and hence the issue
+might get less immediate attention than it should have.
+
+To mitigate that we already
+
+- Use GNOME gitlab's CI (thanks a lot [GNOME](https://gitlab.gnome.org)!)
+ to catch things upfront
+- Release [on a monthly basis][5] to shorten the time between a feature getting
+ merged and "general availability".
+- Make it simple to [run Phosh nested][0] so changes can be validated
+ without installing anything
+
+But even with the above it's a bit tricky to do a "real live" test of a
+certain component at it's current development version as it usually
+requires to invoke a package build or manual download of a package or
+tarball.
+
+# Nightly Builds
+
+So to improve on this we aim to provide nightly Debian package builds of
+several of Phosh's components built against [Debian Trixie][3].
+[These jobs](https://source.puri.sm/guido.gunther/phosh-debs)
+fetch the projects `main` branches and after applying possible packaging tweaks
+and building packages for amd64 and arm64 upload the packages into a
+common *[phosh-nightly][]* repository. Thus if a change gets applied
+to a projects `main` branch it should be available in a packaged form
+a couple of hours later.
+
+{{< image name="pipeline-nightly.png" title="Gitlab CI Pipeline for nightly builds" >}}
+
+This makes it easier for you to:
+
+- Verify if a bug you filed and that was closed as fixed is really fixed
+ in the way you expect it
+- Help test the next release before it's getting tagged
+- Test a newer version before filing an issue to make sure that
+ version is still affected
+- Help out by continuously testing development versions
+
+We picked Debian Trixie as a base since it's Debian's current testing
+distribution and builds the base for other, mobile focused distributions
+like [Mobian][] Trixie, an upcoming [PureOS][] version based on
+Trixie, etc. so packages can be tested there too. Once Debian releases
+Trixie and it becomes stable we'll switch the nightly builds to
+Debian's new testing (codenamed Forky).
+
+As initial set we build the Shell phosh, the compositor phoc, the
+mobile settings application, the tour, phosh-osk-stub, calls and
+chatty for amd64 and arm64. We don't provide builds for software that
+is available as [nightly flatpak](https://wiki.gnome.org/Apps/Nightly)
+builds as that would be duplication.
+
+# Setup
+
+In order to use the nightly packages you need to add a new apt source.
+This is achieved via by the following commands:
+
+```
+cat <<EOF >/etc/apt/sources.list.d/phosh-nightly.sources
+Types: deb
+URIs: http://deb.phosh.mobi/nightly/
+Suites: trixie-nightly
+Components: main
+Signed-By:
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ mQINBGXoHOYBEAC/893ifemxPCa3l+46Vtpjiew4Eu+c3kXEj6sEOQZS8+ZvJ93O
+ So3cEe7tqPM8AjqPjO6GsBjqr86swk5bbZ70GIqo1H2p9JdBaiQWqTDXxXRDvel5
+ 0SaxbUQvLm880pjS/gcsBezRv8vb9dxDsPMzap6GuJnF5QqagfOX8B1aQKCywJNo
+ QoFc3RL7c3j2hLRpI4kdfcjo2j3GtjKb+ojWja9dng/gsMlrHYEqS+aWg+eVFnLM
+ XkwJXS/4AQjooH9qC+swtVNYYzt7wQdCm1mNFfrXDHSLse0ugyESqZ8AN5d9bUlB
+ fAae7xv/lV3QfozSolFODvXlBjNaCDYb1r8Rag01eM83b1Wv/R23enFO18p/UW9k
+ +/wk+kOqUfEd+0NBkXdRQiCrvwxHs51IqMFH5aAhM9lHmaHYmdPjETdeYPeKlA22
+ CYLCkApEazGNPZGt6Kv7XeBwiI+6DScbHxr+j9S/j9+7BuMs6MItE4J9EtavkFtr
+ aw/ijGsifCKJWpkD28uZ3h83qi8diUwRde0zrX4SJAUi/T2UXPywep1z6bQ70Vaf
+ YrciSOndw5zWiTYMUDl6q7iZR6vloiZMoGf7psLx1y0Vg4Sq8DPldXAMpaNPh8+Z
+ UhqD94pBGg+iVaYII8MeWHaqtHc0ewQAKAq121rulOuZgaRbl/5LuQp8rQARAQAB
+ tD1QaG9zaCBEZWJpYW4gUGFja2FnZXMgKEFyY2hpdmUgU2lnbmluZyBLZXkpIDxk
+ ZWJzQHBob3NoLm1vYmk+iQJUBBMBCgA+AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4B
+ AheAFiEEeHJPmfZ/wlY1lpbHLf0ViOUfQ7IFAmXoV34FCQlmPBgACgkQLf0ViOUf
+ Q7JWNxAApMQeEKSto6LGZkdqoKXCZgaXg//2UeAnkhK9+Z1hZ2Do7RYhoOW994yi
+ FqtZ92WVMqzbK0EqfEnFX8yVzM1cXo3PgouCDCgTy060YmH0OV2XxThr8fJ4uZfW
+ vib9HE+W4o/dgoMSy3BlPtpB1y/gevgJGoHAtQbV6Ex4bRL89i8pOQJYPYRx5Xj0
+ 4SADUWWjOnY9AZbykUlMuRFSOMBWITn8yqUCYPpw8bGbtFignfvK1iRcW5LIkrtY
+ XsOlQCK5+ttNAMUkCeI93LGYhSZUqbpt87tdkbCP5qfV7o7Vkv8iObKw8fxKh2o1
+ oijY8S6ZqEl/CZjDtKcdvsQrEvY3Z1KX0xUNn01PFrHGzRiTn7eieXF4O3PCM2zJ
+ 1TGva0gliKUgdN4y8W6Ul1H74T3rhZWpNO10rotfnvyX6AP/bLlkdMdSpL85mcqt
+ PfSROQGcKOU6WmF1G2MvwzBY6sjP3IN95qqnaBKa1IJGBPFt5IsY8eoqdNuNkeRT
+ W3OFcBQas+1RQdDzOZ7svJIX9fNBubebtnB20mRYIwESkhQMO2VpjyrBPzUP+bum
+ kg/7Lx/Gr+OdH2SzNfeTr+28foyKExf2wdhbICErm+eRq1Bh4dFe6ljN/YBUVdEq
+ MHjCZ4GQaiw5Uq+5sQTUWYkFeb/j3NeRadmSTshinPgTISGNYBo=
+ =lIij
+ -----END PGP PUBLIC KEY BLOCK-----
+EOF
+
+apt update
+```
+
+If copy and paste is troublesome you can also get get the
+`phosh-nightly.sources` [here][4] and put it into
+`/etc/apt/sources.list.d`/.
+
+# Installing packages
+
+The repo is (similar to Debian's backports) set up in a way that
+packages aren't fetched from it by default - so you can still safely
+`apt upgrade` with the above added to your apt sources without pulling
+all nightly packages accidentally.
+
+Now if you want to pick a nightly build (e.g. for phoc) you'd do
+
+```
+apt install -t trixie-nightly phoc
+```
+
+This will fetch the nightly build and also continue to pick it from
+that repository on further updates. When you want to go back to the
+version shipped in Debian you do:
+
+```
+apt install phoc/trixie
+```
+
+It's as simple as that and the preferred way as it allows you to
+test changes on a per package basis.
+
+
+Should you want to pull all packages from the nightly repo you can
+do:
+
+```
+apt install -t trixie-nightly full-upgrade
+```
+
+but be careful to check what packages exactly get installed/removed in
+this case.
+
+
+# Finding packages from the nightly repo
+
+If you want to figure out the packages you got form the nightly repo
+you can use [apt-forktracer](https://packages.debian.org/trixie/apt-forktracer):
+
+```
+apt-forktracer | grep '\+nb'
+```
+
+On a system that pulled phosh, phoc and mobile-settings and the matching
+debug packages the result looks like:
+
+```
+phosh-plugins (0.36.0+next20240208.1519.f5176c759.1) [Phosh: 0.36.0+nb20240306.4312891] [Debian: 0.36.0-1 0.36.0-1]
+phoc (0.36.0+nb20240306.4312881) [Phosh: 0.36.0+nb20240306.4312881] [Debian: 0.36.0+ds-1 0.36.0+ds-1]
+phosh-plugins-dbgsym (0.36.0+next20240208.1519.f5176c759.1) [Phosh: 0.36.0+nb20240306.4312891] [Debian: 0.36.0-1 0.36.0-1]
+phosh-dbgsym (0.36.0+nb20240306.4312891) [Phosh: 0.36.0+nb20240306.4312891] [Debian: 0.36.0-1 0.36.0-1]
+phosh (0.36.0+nb20240306.4312891) [Phosh: 0.36.0+nb20240306.4312891] [Debian: 0.36.0-1 0.36.0-1]
+phoc-dbgsym (0.36.0+nb20240306.4312881) [Phosh: 0.36.0+nb20240306.4312881] [Debian: 0.36.0+ds-1 0.36.0+ds-1]
+phosh-mobile-settings (0.36.0+nb20240306.4312901) [Phosh: 0.36.0+nb20240306.4312901] [Debian: 0.36.0-1 0.36.0-1]
+```
+
+This version information is useful to provide in bug reports as it
+allows to identify the exact git commit the package was built from.
+
+# Closing
+
+Note that you're testing unreleased software so always make sure you
+can recover by going back to the Debian version e.g. via `ssh` login.
+Also make sure to not bother the Debian, Mobian or PureOS devs with
+bugs in these version. Issues detected in the nightly builds can go
+directly upstream. If you have trouble to figure out the right
+component start at [phosh](https://gitlab.gnome.org/World/Phosh/phosh/-/issues).
+
+Have fun testing the nightly builds!
+
+This work is possible thanks to your [donations](https://liberapay.com/Phosh)
+and [Purism](https://source.puri.sm)'s gitlab runners used to do the builds.
+
+[0]: https://phosh.mobi/posts/phosh-dev-part-0/
+[1]: https://gitlab.gnome.org/World/Phosh/phosh
+[2]: https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests
+[3]: https://www.debian.org/releases/trixie/
+[4]: http://deb.phosh.mobi/nightly/misc/phosh-nightly.sources
+[5]: https://phosh.mobi/releases/
+[phosh-nightly]: https://deb.phosh.mobi/nightly/
+[Debian]: https://debian.org
+[Mobian]: https://mobian.org
+[PureOS]: https://pureos.net
+
diff --git a/content/posts/phosh-nightly/pipeline-nightly.png b/content/posts/phosh-nightly/pipeline-nightly.png
new file mode 100644
index 0000000..2f856aa
--- /dev/null
+++ b/content/posts/phosh-nightly/pipeline-nightly.png
Binary files differ