Prepare stable 0.1.0 release

This commit is contained in:
Samuel Onoja committed 2026-10-25 16:35:51 +01:00
1 parent e03d491353
commit f21167e1a2
10 files changed
+118 -42

No files matched your search

+18 -1
View File
@@ -38,11 +38,16 @@ jobs:
run: |
python3 - <<'PY'
import importlib.util, os
from pathlib import Path
spec = importlib.util.spec_from_file_location('package', 'scripts/package.py')
package = importlib.util.module_from_spec(spec)
spec.loader.exec_module(package)
version = package.version()
package.check_tag(os.environ['RELEASE_TAG'], version)
if os.environ['RELEASE_TAG']:
notes = Path('docs/releases') / f"v{version}.md"
if not notes.read_text().strip():
raise ValueError('Release notes are empty')
with open(os.environ['GITHUB_OUTPUT'], 'a') as output:
print(f'version={version}', file=output)
PY
@@ -129,6 +134,7 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- uses: actions/download-artifact@v8
with:
pattern: release-*
@@ -140,6 +146,12 @@ jobs:
script: |
const tag = context.ref.slice('refs/tags/'.length);
const repo = context.repo;
const fs = require('node:fs');
if (!/^v\d+\.\d+\.\d+(?:-[0-9A-Za-z.]+)?$/.test(tag)) {
throw new Error('Invalid release tag');
}
const body = fs.readFileSync(`docs/releases/${tag}.md`, 'utf8');
if (!body.trim()) throw new Error('Release notes are empty');
const commit = await github.rest.repos.getCommit({...repo, ref: tag});
if (commit.data.sha !== context.sha) {
throw new Error('Release tag moved after validation');
@@ -156,7 +168,12 @@ jobs:
if (!release) {
await github.rest.repos.createRelease({
...repo, tag_name: tag, name: tag, draft: true,
generate_release_notes: true, prerelease: tag.includes('-')
body, prerelease: tag.includes('-')
});
} else {
await github.rest.repos.updateRelease({
...repo, release_id: release.id, body,
prerelease: tag.includes('-')
});
}
- name: Upload packages and publish completed release
Generated
+18 -18
View File
@@ -1807,7 +1807,7 @@ dependencies = [
[[package]]
name = "ferese"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ab_glyph",
"async-channel",
@@ -1840,14 +1840,14 @@ dependencies = [
[[package]]
name = "ferese-activities"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"serde",
]
[[package]]
name = "ferese-animation"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-layout",
"serde",
@@ -1855,7 +1855,7 @@ dependencies = [
[[package]]
name = "ferese-config"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-activities",
"ferese-panel",
@@ -1870,7 +1870,7 @@ dependencies = [
[[package]]
name = "ferese-core"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-layout",
"serde",
@@ -1878,7 +1878,7 @@ dependencies = [
[[package]]
name = "ferese-ipc"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-activities",
"ferese-theme-model",
@@ -1889,11 +1889,11 @@ dependencies = [
[[package]]
name = "ferese-layout"
version = "0.1.0-beta.2"
version = "0.1.0"
[[package]]
name = "ferese-lock"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-config",
"ferese-ipc",
@@ -1913,7 +1913,7 @@ dependencies = [
[[package]]
name = "ferese-panel"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-animation",
"ferese-layout",
@@ -1923,7 +1923,7 @@ dependencies = [
[[package]]
name = "ferese-polkit-agent"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-config",
"ferese-ipc",
@@ -1942,7 +1942,7 @@ dependencies = [
[[package]]
name = "ferese-protocols"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"bitflags 2.13.2",
"wayland-backend",
@@ -1955,7 +1955,7 @@ dependencies = [
[[package]]
name = "ferese-settings"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-config",
"ferese-ipc",
@@ -1981,7 +1981,7 @@ source = "git+https://github.com/ferese-wm/ferese-shape?tag=v0.1.0#63d7b6dfd520d
[[package]]
name = "ferese-shell"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"base64",
"ferese-activities",
@@ -2017,7 +2017,7 @@ dependencies = [
[[package]]
name = "ferese-theme"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-config",
"ferese-layout",
@@ -2031,7 +2031,7 @@ dependencies = [
[[package]]
name = "ferese-theme-client"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"ferese-config",
"ferese-ipc",
@@ -2045,14 +2045,14 @@ dependencies = [
[[package]]
name = "ferese-theme-model"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"serde",
]
[[package]]
name = "feresectl"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"clap",
"ferese-activities",
@@ -8368,7 +8368,7 @@ checksum = "2fb433233f2df9344722454bc7e96465c9d03bff9d77c248f9e7523fe79585b5"
[[package]]
name = "xdg-desktop-portal-ferese"
version = "0.1.0-beta.2"
version = "0.1.0"
dependencies = [
"calloop",
"dirs 6.0.0",
+1 -1
View File
@@ -22,7 +22,7 @@ members = [
resolver = "3"
[workspace.package]
version = "0.1.0-beta.2"
version = "0.1.0"
edition = "2024"
license = "MIT"
rust-version = "1.95"
+6 -6
View File
@@ -15,9 +15,9 @@ Ferese is a Linux desktop built in Rust with Smithay. It includes a window manag
desktop shell, Settings and a lock screen, with shared configuration and theming.
Choose a layout per workspace and configure the desktop through Settings or a KDL file.
**Beta:** [0.1.0-beta](https://github.com/ferese-wm/ferese/releases/tag/v0.1.0-beta)
has packages for Fedora 44 and Arch Linux on x86_64. This README and the wiki
describe `main`.
**Version 0.1.0** is the first stable release. See the [release notes](docs/releases/v0.1.0.md)
for what's included. Packages target Fedora 44 and Arch Linux on x86_64.
This README and the wiki describe `main`.
![Ferese desktop with the launcher, build progress, Appearance settings and terminal windows](docs/images/screenshots/ferese-desktop.png)
@@ -37,7 +37,7 @@ describe `main`.
Configuration edits apply live. Invalid edits leave the last working configuration active.
- Manage displays, Wi-Fi, Bluetooth and audio from Settings and Control Center.
Multiple monitors, fractional scaling and monitor mirroring are supported.
- Annotate screenshots, share a window or display, and record a monitor or selected
- Annotate screenshots, share a window, workspace or display, and record a monitor or selected
region with audio.
The [feature roadmap](https://github.com/ferese-wm/ferese/issues/5) tracks implemented features and remaining work.
@@ -45,9 +45,9 @@ The [feature roadmap](https://github.com/ferese-wm/ferese/issues/5) tracks imple
## Install
Download the package for your distribution from
[Releases](https://github.com/ferese-wm/ferese/releases/tag/v0.1.0-beta), then follow
[Releases](https://github.com/ferese-wm/ferese/releases/tag/v0.1.0), then follow
the [package installation instructions](https://github.com/ferese-wm/ferese/wiki/Packages-and-Releases#install-a-release-package).
The release notes list the beta's limitations.
Read the [release notes](docs/releases/v0.1.0.md) before upgrading.
To build the current development version, install the
[build dependencies](https://github.com/ferese-wm/ferese/wiki/Installation#requirements)
+2 -3
View File
@@ -1,9 +1,8 @@
# Documentation
These guides describe the development version on `main`.
For the packaged **0.1.0-beta**, use the
[release notes](https://github.com/ferese-wm/ferese/releases/tag/v0.1.0-beta)
and [guides at that tag](https://github.com/ferese-wm/ferese/tree/v0.1.0-beta/docs).
For **0.1.0**, use the [release notes](https://github.com/ferese-wm/ferese/releases/tag/v0.1.0) and
[guides at the release tag](https://github.com/ferese-wm/ferese/tree/v0.1.0/docs).
## Usage
+4 -5
View File
@@ -3,17 +3,16 @@
Ferese runs on Linux as its own Wayland session alongside your existing desktop.
Launch it from a login manager, a command-based greeter or a local TTY.
The [0.1.0-beta release](https://github.com/ferese-wm/ferese/releases/tag/v0.1.0-beta)
The [0.1.0 release](https://github.com/ferese-wm/ferese/releases/tag/v0.1.0)
has packages for Fedora 44 and Arch Linux on x86_64. Follow
[package installation](packaging.md#install-a-release-package) to use those builds.
The steps below build the development version from `main`. It includes tabbed
window groups, binding modes, Live Activities, new panel styles, and audio and
region recording added since the beta. The wiki describes this development version.
The steps below build from `main`, which may include changes made after the
release. The wiki follows `main` too.
## Requirements
For a full session, you’ll need a Wayland-capable graphics driver and a local user
For a full session, you'll need a Wayland-capable graphics driver and a local user
session with seat access through logind or seatd. A nested preview runs inside your
existing Wayland desktop.
+4 -3
View File
@@ -89,12 +89,13 @@ release package. Submit that recipe to AUR separately if you want AUR distributi
## Publish a release
1. Set `workspace.package.version` in `Cargo.toml` and update `Cargo.lock`.
2. Commit the release changes and push them.
2. Write `docs/releases/v<version>.md`. The workflow uses this file as the release
notes. Commit the release changes and push them.
3. Tag that commit with the same version, prefixed by `v`, then push the tag:
```sh
git tag v0.1.0-beta
git push origin v0.1.0-beta
git tag v0.1.0
git push origin v0.1.0
```
A tag/version mismatch fails before packaging. Tags with a prerelease suffix,
+60
View File
@@ -0,0 +1,60 @@
# Ferese 0.1.0
Ferese 0.1.0 is our first stable release. It includes the window manager, panel,
Settings, notifications and lock screen, with one set of appearance settings
across the desktop.
## Arrange your windows
Choose a layout for each workspace. Scroll through columns of windows, tile them
to fit the screen, or let them float. You can switch layouts as your work changes
and group related windows into tabs.
Move and resize windows with the mouse or keyboard. Overview shows your open
windows and workspaces, and the launcher finds apps, files and commands.
Display scaling has finer steps for getting text to a comfortable size.
## Change the panel and appearance
Build your panel in Settings. Move controls between groups, put the panel at the
top or bottom, and choose anything from a full-width bar to separate floating
controls. Morph keeps the panel in a small hub that opens when you need it.
Pick from six themes with light and dark versions, then adjust the colors,
wallpaper, transparency and motion. The shell, Settings, menus and lock screen
follow the same theme. Changes apply as you make them.
The panel can also show command and build progress, music controls, and a focus
timer with work and break sessions.
## Share and record
Share a window, a display, or one workspace. A shared workspace stays on screen
for your audience when you switch elsewhere, and leaves out the panel and
notifications. Sharing ends when you lock the desktop.
Record a display or a selected area from the panel, with optional microphone
and system audio. The new **Capture status** item shows which apps are sharing.
With the optional OBS connection set up, it also shows when you're live,
recording, paused or reconnecting. An OBS preview alone shows **Sharing**.
Your saved panel layout stays as it is. To add the new indicator, open
**Settings → Panel & Shell → Edit panel → Add item** and choose **Capture status**.
The [sharing guide](https://github.com/ferese-wm/ferese/blob/v0.1.0/docs/screen-sharing.md#panel-status)
includes the OBS setup steps.
We removed repeated background checks and work that redraws an unchanged screen.
Fixes also cover floating windows opening on the wrong monitor and notification
menus closing when their unread badge clears.
## Install or upgrade
Packages are available below for Fedora 44 and Arch Linux on 64-bit Intel and
AMD PCs. Other distributions can [build from source](https://github.com/ferese-wm/ferese/blob/v0.1.0/docs/installation.md).
If you're moving from a source installation to a package, follow the
[package installation guide](https://github.com/ferese-wm/ferese/blob/v0.1.0/docs/packaging.md#install-a-release-package)
first. Keep your personal configuration, then log out and back in after updating.
Found a problem? [Open an issue](https://github.com/ferese-wm/ferese/issues)
with what happened, how to reproduce it, and your Ferese version.
+1 -1
View File
@@ -1,5 +1,5 @@
pkgname=ferese-git
pkgver=0.1.0beta.r0.g0000000
pkgver=0.1.0.r0.g0000000
pkgrel=1
pkgdesc='Scrolling Wayland desktop with its shell, Settings and desktop portal (Git)'
arch=('x86_64')
+4 -4
View File
@@ -4,9 +4,9 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#111821">
<meta name="description" content="Ferese is a Wayland desktop for Linux with scrolling and tree tiling, an included shell, and shared configuration. Beta packages for Fedora and Arch Linux.">
<meta name="description" content="Ferese is a Wayland desktop for Linux with scrolling and tree tiling, an included shell, and shared configuration. Packages for Fedora and Arch Linux.">
<meta property="og:title" content="Ferese | A configurable Wayland desktop">
<meta property="og:description" content="Scrolling and tree tiling with an included desktop shell, Settings and lock screen. Beta packages for Fedora and Arch Linux.">
<meta property="og:description" content="Scrolling and tree tiling with an included desktop shell, Settings and lock screen. Packages for Fedora and Arch Linux.">
<meta property="og:type" content="website">
<meta property="og:image" content="https://ferese-wm.github.io/ferese/assets/screenshots/ferese-desktop.png">
<meta property="og:image:width" content="2880">
@@ -36,7 +36,7 @@
<section class="hero page-width" aria-labelledby="hero-title">
<h1 id="hero-title">A configurable Wayland desktop.</h1>
<p class="hero-description">Ferese is a Wayland desktop for Linux with an included shell, Settings and lock screen. Choose a layout per workspace and configure it all in Settings or a KDL file.</p>
<p class="release-note"><a href="https://github.com/ferese-wm/ferese/releases/tag/v0.1.0-beta">0.1.0-beta</a> is available for Fedora 44 and Arch Linux on x86_64. This page and the wiki describe the development version.</p>
<p class="release-note"><a href="https://github.com/ferese-wm/ferese/releases/tag/v0.1.0">0.1.0</a> is the first stable release, with packages for Fedora 44 and Arch Linux on x86_64. This page and the wiki describe the development version.</p>
<div class="hero-actions"><a class="primary-button" href="https://github.com/ferese-wm/ferese/wiki/Installation">Get Ferese <svg class="icon"><use href="#i-arrow"/></svg></a><a class="inline-link" href="#desktop-preview">Take a look <svg class="icon down"><use href="#i-arrow"/></svg></a></div>
<div class="desktop-stage" id="desktop-preview">
<div class="desktop-capture" id="desktop-capture">
@@ -63,7 +63,7 @@
</article>
</section>
<div class="gallery-link page-width"><a class="inline-link" href="https://github.com/ferese-wm/ferese/wiki/Screenshots">See all desktop screenshots <svg class="icon"><use href="#i-arrow"/></svg></a></div>
<section class="start-section page-width" aria-labelledby="start-title"><img class="start-logo" src="assets/branding/ferese.svg" width="74" height="74" alt=""><h2 id="start-title">Try Ferese.</h2><p>Download the beta for Fedora 44 or Arch Linux, or build from source for the latest changes. You can preview Ferese inside an existing Wayland session.</p><div class="hero-actions"><a class="primary-button" href="https://github.com/ferese-wm/ferese/releases/tag/v0.1.0-beta">Download the beta <svg class="icon"><use href="#i-arrow"/></svg></a><a class="inline-link" href="https://github.com/ferese-wm/ferese/wiki/Installation">Build and preview <svg class="icon"><use href="#i-external"/></svg></a></div></section>
<section class="start-section page-width" aria-labelledby="start-title"><img class="start-logo" src="assets/branding/ferese.svg" width="74" height="74" alt=""><h2 id="start-title">Try Ferese.</h2><p>Download Ferese 0.1.0 for Fedora 44 or Arch Linux, or build from source. You can preview Ferese inside an existing Wayland session.</p><div class="hero-actions"><a class="primary-button" href="https://github.com/ferese-wm/ferese/releases/tag/v0.1.0">Download Ferese <svg class="icon"><use href="#i-arrow"/></svg></a><a class="inline-link" href="https://github.com/ferese-wm/ferese/wiki/Installation">Build and preview <svg class="icon"><use href="#i-external"/></svg></a></div></section>
</main>
<footer class="site-footer page-width"><a class="brand" href="#main" aria-label="Ferese home"><img src="assets/branding/ferese.svg" width="28" height="28" alt=""><span>Ferese</span></a><span>Rust and Smithay · MIT license</span><nav aria-label="Footer navigation"><a href="https://github.com/ferese-wm/ferese/wiki">Documentation</a><a href="https://github.com/ferese-wm/ferese">GitHub <svg class="icon"><use href="#i-external"/></svg></a></nav></footer>
</body>