diff --git a/Cargo.lock b/Cargo.lock index c23ac679..d1771a9c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1447,7 +1447,7 @@ dependencies = [ [[package]] name = "fractal" -version = "5.0.0-rc1" +version = "5.0.0" dependencies = [ "ashpd", "djb_hash", diff --git a/Cargo.toml b/Cargo.toml index 2d481eb4..c1927185 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fractal" -version = "5.0.0-rc1" +version = "5.0.0" authors = ["Julian Sparber "] edition = "2021" rust-version = "1.70" @@ -96,7 +96,7 @@ version = "0.9.2" # rev = "4ef6d1641bdd7d1c1586d2356c183798f3900bf1" features = [ "unstable-unspecified", - "client-api-c", + "client-api-c", "compat-key-id", "compat-user-id", "compat-empty-string-null", diff --git a/README.md b/README.md index cbc64309..8fced8ca 100644 --- a/README.md +++ b/README.md @@ -5,27 +5,24 @@ # Fractal Fractal is a Matrix messaging app for GNOME written in Rust. Its interface is optimized for -collaboration in large groups, such as free software projects. +collaboration in large groups, such as free software projects, and will fit all screens, big or small. -![screenshot](https://gitlab.gnome.org/GNOME/fractal/raw/main/screenshots/fractal.png) +![screenshot](https://gitlab.gnome.org/GNOME/fractal/raw/main/screenshots/main.png) -## Work in Progress +Highlights: -Up until the 4.4 series, Fractal was built with GTK 3 and used its own implementation of the Matrix -API. With the availability of the [matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk) -and [GTK 4](https://www.gtk.org/), the technological landscape had changed enough that a full -rewrite made more sense than simply trying to port the complex codebase that we had. That effort -started in March 2021 and the result is the current [Fractal 5 beta](#beta-version) (and -[nightly](#development-version)). - -You can follow along our progress towards the stable release by looking at the -[Fractal 5](https://gitlab.gnome.org/GNOME/fractal/-/milestones/18) milestone. +* Find rooms to discuss your favorite topics, or talk privately to people, securely thanks to end-to-end encryption +* Send rich formatted messages, files, or your current location +* Reply to specific messages, react with emoji, edit or remove messages +* View images, and play audio and video directly in the conversation +* See who has read messages, and who is typing +* Log into multiple accounts at once (with Single-Sign On support) ## Installation instructions ### Stable version -The current stable version is 4.4.2 (released March 2023). +The current stable version is 5 (released November 24th 2023). Flatpak is the recommended installation method. Until our next iteration is ready, you can get the official Fractal Flatpak from Flathub. @@ -41,7 +38,7 @@ Until our next iteration is ready, you can get the official Fractal Flatpak from ### Beta version -The current beta version is 5.rc1 (released November 8th 2023). +The current beta version is 5 (same as stable, released November 24th 2023). It is available as a Flatpak on Flathub Beta. @@ -179,9 +176,9 @@ They are translated on [Element’s translation platform](https://translate.elem ## Frequently Asked Questions -* Does Fractal have encryption support? Will it ever? +* Does Fractal have encryption support? -Yes, the current development version (`main` branch) has encryption support using Cross-Signing. See +**Yes**, since Fractal 5, encryption is supported using Cross-Signing. See for more info on the state of encryption. * Can I run Fractal with the window closed? @@ -192,7 +189,7 @@ to interact with apps running in the background. ## The origin of Fractal -The development version is a complete rewrite of Fractal built on top of the +The current version is a complete rewrite of Fractal built on top of the [matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk) using [GTK4](https://gtk.org/). The previous version of Fractal was using GTK3 and its own backend to talk to a matrix homeserver, diff --git a/data/meson.build b/data/meson.build index 1f80f1b3..8bacac39 100644 --- a/data/meson.build +++ b/data/meson.build @@ -29,11 +29,11 @@ endif if is_release development_release = '' else - appstream_version = major_version + '~' + appstream_version = major_version if pre_release_version != '' - appstream_version += pre_release_version + '-' + appstream_version += '~' + pre_release_version endif - appstream_version += devel_version + appstream_version += '-' + devel_version development_release = ''' diff --git a/data/org.gnome.Fractal.metainfo.xml.in.in b/data/org.gnome.Fractal.metainfo.xml.in.in index 175dfa10..79d26ba8 100644 --- a/data/org.gnome.Fractal.metainfo.xml.in.in +++ b/data/org.gnome.Fractal.metainfo.xml.in.in @@ -20,7 +20,16 @@ - https://gitlab.gnome.org/GNOME/fractal/raw/main/screenshots/fractal.png + https://gitlab.gnome.org/GNOME/fractal/raw/main/screenshots/main.png + Fractal’s main window. + + + https://gitlab.gnome.org/GNOME/fractal/raw/main/screenshots/media-history.png + View the media history of a Matrix room. + + + https://gitlab.gnome.org/GNOME/fractal/raw/main/screenshots/adaptive.png + Fractal’s interface adapts to small screens. @@ -40,151 +49,32 @@ pointing touch - + intense intense @development-release@ - + -

Fractal 5.rc1 is the first release candidate since the rewrite of - Fractal to take advantage of GTK 4 and the Matrix Rust SDK, an effort - that started in March 2021.

- -

The most notable changes since Fractal 5.beta2, that was released 2 - months ago, are:

- +

+ Fractal 5 is a full rewrite compared to Fractal 4, that now leverages GTK 4, libadwaita, + and the Matrix Rust SDK. The two-and-a-half-year effort brings a new interface that fits + all screens, big 🖥️ or small 📱, but should still look familiar to users of earlier versions. +

+

+ It still offers the same old features you know and love, with a few additions. + Highlights (italics is new✨ in 5): +

    -
  • An awesome new look thanks to libadwaita 1.4
  • -
  • Read receipts tracking has been largely improved thanks to some - upstream work in the Matrix Rust SDK
  • -
  • The same upstream work allows to have much better tracking of the - activity in the rooms list
  • -
  • The full lists of read receipts and reactions on messages can be - perused in popovers
  • -
  • Destructive actions like removing a message or leaving a room now - ask for confirmation
  • -
  • The most noticeable performance issues and memory leaks were fixed - to make Fractal run as smoothly as ever
  • +
  • Find rooms to discuss your favorite topics, or talk privately to people, securely thanks to end-to-end encryption
  • +
  • Send rich formatted messages, files, or your current location
  • +
  • Reply to specific messages, react with emoji, edit or remove messages
  • +
  • View images, and play audio and video directly in the conversation
  • +
  • See who has read messages, and who is typing
  • +
  • Log into multiple accounts at once (with Single-Sign On support)
- -

This list is far from complete and hides more enhancements, including - bug fixes and new translations thanks to all our contributors, and our - upstream projects.

- -

As the version implies, if we don’t find any major bug in the next 2 - weeks, our next release should be the long-awaited Fractal 5 stable - version!

- -

In the meantime, if you want to fix bugs, implement new features, or - any other kind of contribution, you can get inspired by taking a look - at our issues tracker on GitLab. Any help is greatly appreciated!

-
-
- - -

Fractal 5.beta2 is the second beta release 🎉 since the rewrite of - Fractal to take advantage of GTK 4 and the Matrix Rust SDK, an effort - that started in March 2021.

- -

The most visible changes since Fractal 5.beta1 are:

-
    -
  • Editing text messages ✏️
  • -
  • Logging in with homeservers that don’t support auto-discovery 🧐 -
  • -
  • A refactor of the login flow should avoid crashes when going back - at any step 🔙
  • -
  • Sometimes two day dividers 📅 would appear next to each other - without messages between them, this is now fixed
  • -
- -

Of course, there are a also a lot of less visible changes, notably a - lot of refactoring, 🐛 fixes and translations thanks to all our - contributors, and our upstream projects.

- -

As the version implies, this is still considered beta stage and might - trigger crashes or other bugs 😔 but overall should be pretty stable - 👍.

- -

A list of blocking issues for the release of version 5 can be found - in the Fractal v5 milestone on GitLab.

-
-
- - -

Fractal 5.beta1 is the first beta release since the rewrite of - Fractal to take advantage of GTK 4 and the Matrix Rust SDK. It is the - result of over two years of work.

- -

New features since Fractal 5.alpha1:

-
    -
  • Joining room by ID, by alias or with a Matrix URI
  • -
  • Creation of direct chats
  • -
  • Sending and displaying read receipts, read markers and typing - notifications
  • -
  • Notifications on new messages
  • -
  • Highlight messages with mentions
  • -
  • Added media file history viewers in the room details, thanks to - our GSoC intern Marco Melorio
  • -
  • Displaying the other user’s avatar as a room avatar for direct - chats
  • -
- -

Of course, there are a also a lot of less visible changes, fixes and - translations thanks to all our contributors, and our upstream - projects.

- -

As the version implies, this is still considered beta stage and might - trigger crashes or other bugs but overall should be pretty stable.

- -

A list of blocking issues for the release of version 5 can be found - in the Fractal v5 milestone on GitLab.

-
-
- - -

Fractal 5.alpha1 is the first release since Fractal has been - rewritten to take advantage of GTK 4 and the Matrix Rust SDK. - It is the result of eighteen months of work.

- -

Currently supported features are:

-
    -
  • Sending and receiving messages and files
  • -
  • Sending files via Drag-n-Drop and pasting in the message entry
  • -
  • Rendering of rich formatted (HTML) messages, as well as media
  • -
  • Displaying edited messages, redacting messages
  • -
  • Showing and adding reactions
  • -
  • Tab completion of user names
  • -
  • Sending and displaying replies
  • -
  • Sharing the current location
  • -
  • Exploring the room directory
  • -
  • Sorting the rooms by category
  • -
  • Joining rooms
  • -
  • Sending and accepting invitations
  • -
  • Logging into multiple accounts at once
  • -
  • Logging in with Single-Sign On
  • -
  • Sending and reading encrypted messages
  • -
  • Verifying user sessions using cross-signing
  • -
  • Exporting and importing encryption keys
  • -
  • Managing the connected devices
  • -
  • Changing the user profile details
  • -
  • Deactivating the account
  • -
-

Major missing features are:

-
    -
  • Notifications
  • -
  • Read markers
  • -
- -

As the name implies, this is still considered alpha stage and is not - ready for general use just yet. If you want to give this development - version a try, you can get it from the GNOME Apps Nightly flatpak - repository (See wiki.gnome.org/Apps/Nightly).

- -

A list of known issues and missing features for a 5.0 release can be - found in the Fractal v5 milestone on Gitlab.

diff --git a/meson.build b/meson.build index 46baf6a3..b1efc1a3 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('fractal', 'rust', - version: '5.rc1', + version: '5', license: 'GPL-3.0-or-later', meson_version: '>= 0.59') @@ -10,7 +10,7 @@ gnome = import('gnome') base_id = 'org.gnome.Fractal' major_version = '5' -pre_release_version = 'rc1' +pre_release_version = '' dependency('glib-2.0', version: '>= 2.72') # update when changing gtk version dependency('gio-2.0', version: '>= 2.72') # always same version as glib diff --git a/screenshots/adaptive.png b/screenshots/adaptive.png new file mode 100644 index 00000000..d90d300b Binary files /dev/null and b/screenshots/adaptive.png differ diff --git a/screenshots/fractal.png b/screenshots/fractal.png deleted file mode 100644 index d9967c89..00000000 Binary files a/screenshots/fractal.png and /dev/null differ diff --git a/screenshots/main.png b/screenshots/main.png new file mode 100644 index 00000000..7533efcf Binary files /dev/null and b/screenshots/main.png differ diff --git a/screenshots/media-history.png b/screenshots/media-history.png new file mode 100644 index 00000000..9d784956 Binary files /dev/null and b/screenshots/media-history.png differ