Prepare stable 0.1.0 release
This commit is contained in:
1 parent
e03d491353
commit
f21167e1a2
10 files changed
+118
-42
No files matched your search
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
@@ -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`.
|
||||
|
||||

|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
@@ -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,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
@@ -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>
|
||||
|
||||
Reference in new issue
Block a user