Skip to content

Commit

Permalink
chore: Release
Browse files Browse the repository at this point in the history
  • Loading branch information
rchangelog[bot] committed Jun 5, 2024
1 parent cbb316c commit f02d50c
Show file tree
Hide file tree
Showing 12 changed files with 84 additions and 108 deletions.
134 changes: 55 additions & 79 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,120 +23,96 @@ Please only add new entries below the [Unreleased](#unreleased---releasedate) he

<!-- next-header -->

## [@Unreleased] - @ReleaseDate
## [@Unreleased](https://github.com/RibirX/Ribir/compare/ribir-v0.3.0-beta.2...HEAD) - @ReleaseDate

We're thrilled to announce that Ribir now supports the Web platform! 🎉🎉🎉
## [0.3.0-beta.2](https://github.com/RibirX/Ribir/compare/ribir-v0.3.0-alpha.5...ribir-v0.3.0-beta.2) - 2024-06-05

We're thrilled to announce that Ribir now supports the Web platform\! 🎉🎉🎉

Experience the power of compiling Rust code to wasm and rendering it with WebGPU or WebGL.

Check out our Wordle game demo, now running smoothly in your browser!
Check out our Wordle game demo, now running smoothly in your browser\!

[![Wordle Game](./static/wordle-wasm.png)](https://ribir.org/wordle_game/)

### Features

- **core**: The split functions in `StateReader::map_reader`, `StateWriter::map_writer`, and `StateWriter::split_writer` no longer need to return a reference. (#568 @M-Adoo)
- **core**: Introduced `StateWatcher` for watching state modifies, which was previously the responsibility of `StateReader`. This results in a cleaner and more compact `StateReader` implementation. (#556, @M-Adoo)
- **gpu**: Introduced `GPUBackendImpl::max_textures_per_draw` to set a limit on textures per draw phase (#562 @M-Adoo)
- **gpu**: Updated the `wgpu` implementation of the GPU backend to support WebGL. (#578, @M-Adoo)
- **ci**: add wasm test (#583 @wjian23)
- **ci**: wasm server watch file change (#586 @wjian23)
- **painter**: Introduced support for `Resource<Path>` for drawing. This indicates that the `Path` may be shared with others, allowing the backend to cache it. (#589 @M-Adoo)
- **painter**: Introduced support for bundled commands, enabling the backend to process these commands as a single entity and cache the resulting output. (#589 @M-Adoo)

### Fixed

- **gpu**: Retrieve the texture limit size from the GPU instead of using a hardcoded value. (#578, @M-Adoo)
- **ribir**: fixed the crash issue when the shell window is zero-sized at startup. (#582, @M-Adoo)

### Changed

- **macros**: polish the compile error message of invalid filed in `@$var {}` (#556 @M-Adoo)
- **gpu**: Removed dependency on the texture array feature of wgpu. (#562, @M-Adoo)
- **algo**: removed `Resource` and rename `ShareResource` to `Resource`. (#564, @M-Adoo)
- **dev-helper**: Support specific the comparison of image tests. (#573 @M-Adoo)
- **dev-helper**: If test images differ, both actual and difference images are saved with the expected image. (#573 @M-Adoo)
- **painter**: Removed the AntiAliasing feature from the `painter` package, This responsibility now lies with the painter backend. (#584 @M-Adoo)
- **gpu**: The GPU backend no longer relies on MSAA, which is dependent on the graphics API. Instead, it uses the alpha atlas to provide a solution similar to SSAA.(#584, @M-Adoo)
- **example**: run example in web wasm (#571 @wjian23)
- **gpu**: The GPU backend now only caches the path command if it is a `Resource`. This change reduces GPU memory usage and accelerates cache detection. (#589 @M-Adoo)
- **text**: Implemented caching of the glyph path as a `Resource` to improve performance. (#589 @M-Adoo)


### Documented

- **core**: Explained when to use `unsubscribe` with `watch!`. (#556, @M-Adoo)

### Breaking

- **macros**: removed `map_writer!` and `split_writer!` macros. (#568, @M-Adoo)
- **ribir**: `StateWriter::map_writer` and `StateWriter::split_writer` now only require a writer split function, enhancing both reader and writer split operations. (#568, @M-Adoo)
- **core**: The `StateReader` no longer supports watching its modifications. Use the `StateWatcher` trait instead for this functionality. (#556 @M-Adoo)
- **painter**: Changes to `BackendPainter` APIs. This only affects you if you've implemented a custom painter. (#562 @M-Adoo)


## [0.3.0-alpha.5] - 2024-05-01

### Features
- **ribir**: support stable Rust 1.77.0 (\#552 @M-Adoo)
- **macros**: Added a `include_crate_svg!` macro to include the svg relative to current crate. (\#552, @M-Adoo)
- **ribir**: Added a `nightly` feature to enable functionalities that require nightly Rust. (\#552, @M-Adoo)
- The `include_crates_svg!` macro can operate without the `nightly` feature.
- The `include_svg!` macro requires the `nightly` feature to be enabled.

- **ribir**: Introduced `AppRunGuard` to allow app and window configuration prior to app startup. (#565, @M-Adoo)
- **ribir**: Introduced `AppRunGuard` to allow app and window configuration prior to app startup. (\#565, @M-Adoo)
Previously, to configure the app and window before startup, `App::run` couldn't be used:

``` rust
unsafe {
AppCtx::set_app_theme(material::purple::light());
}

App::new_window(root, None).set_title("Counter");
App::exec();
```

Now, with AppRunGuard, you can use `App::run` and chain the configuration methods:

``` rust
App::run(root)
.with_app_theme(material::purple::light())
.with_title("Counter");
```

### Changed

- **core**: rename builtin field of delay_drop_until to keep_alive (#561 @wjian23)
- **core**: The split functions in `StateReader::map_reader`, `StateWriter::map_writer`, and `StateWriter::split_writer` no longer need to return a reference. (\#568 @M-Adoo)
- **core**: Introduced `StateWatcher` for watching state modifies, which was previously the responsibility of `StateReader`. This results in a cleaner and more compact `StateReader` implementation. (\#556, @M-Adoo)
- **gpu**: Introduced `GPUBackendImpl::max_textures_per_draw` to set a limit on textures per draw phase (\#562 @M-Adoo)
- **gpu**: Updated the `wgpu` implementation of the GPU backend to support WebGL. (\#578, @M-Adoo)
- **ci**: add wasm test (\#583 @wjian23)
- **ci**: wasm server watch file change (\#586 @wjian23)
- **painter**: Introduced support for `Resource<Path>` for drawing. This indicates that the `Path` may be shared with others, allowing the backend to cache it. (\#589 @M-Adoo)
- **painter**: Introduced support for bundled commands, enabling the backend to process these commands as a single entity and cache the resulting output. (\#589 @M-Adoo)

### Fixed

- **ribir**: Resolved the issue causing a black screen on the first frame. (#566, @M-Adoo)

### Breaking

- **ribir**: Updated `App::new_window` to accept `WindowAttributes` instead of size as the second parameter. (#565, #566, @M-Adoo)
- **ribir**: The window creation APIs have been updated to use asynchronous methods, improving compatibility with browsers. (#565, @M-Adoo)

- **examples**: fix crash issue in Storybook (\#559 @M-Adoo)

## [0.3.0-alpha.4] - 2024-04-17
- **ribir**: Resolved the issue causing a black screen on the first frame. (\#566, @M-Adoo)

## [0.3.0-alpha.3] - 2024-04-10

- **ribir**: compile wasm (#543 @wjian23)
- **gpu**: Retrieve the texture limit size from the GPU instead of using a hardcoded value. (\#578, @M-Adoo)
- **ribir**: fixed the crash issue when the shell window is zero-sized at startup. (\#582, @M-Adoo)

### Changed

- **core**: Enhanced panic location tracking during widget build (#559 @M-Adoo)
- **core**: Enhanced panic location tracking during widget build (\#559 @M-Adoo)

### Fixed
- **core**: rename builtin field of delay\_drop\_until to keep\_alive (\#561 @wjian23)

- **examples**: fix crash issue in Storybook (#559 @M-Adoo)
- **macros**: polish the compile error message of invalid filed in `@$var {}` (\#556 @M-Adoo)
- **gpu**: Removed dependency on the texture array feature of wgpu. (\#562, @M-Adoo)
- **algo**: removed `Resource` and rename `ShareResource` to `Resource`. (\#564, @M-Adoo)
- **dev-helper**: Support specific the comparison of image tests. (\#573 @M-Adoo)
- **dev-helper**: If test images differ, both actual and difference images are saved with the expected image. (\#573 @M-Adoo)
- **painter**: Removed the AntiAliasing feature from the `painter` package, This responsibility now lies with the painter backend. (\#584 @M-Adoo)
- **gpu**: The GPU backend no longer relies on MSAA, which is dependent on the graphics API. Instead, it uses the alpha atlas to provide a solution similar to SSAA.(\#584, @M-Adoo)
- **example**: run example in web wasm (\#571 @wjian23)
- **gpu**: The GPU backend now only caches the path command if it is a `Resource`. This change reduces GPU memory usage and accelerates cache detection. (\#589 @M-Adoo)
- **text**: Implemented caching of the glyph path as a `Resource` to improve performance. (\#589 @M-Adoo)

### Documented

## [0.3.0-alpha.2] - 2024-04-03
- **core**: Explained when to use `unsubscribe` with `watch!`. (\#556, @M-Adoo)

### Breaking

### Features
- **ribir**: compile wasm (\#543 @wjian23)

- **ribir**: support stable Rust 1.77.0 (#552 @M-Adoo)
- **macros**: Added a `include_crate_svg!` macro to include the svg relative to current crate. (#552, @M-Adoo)
- **ribir**: Added a `nightly` feature to enable functionalities that require nightly Rust. (#552, @M-Adoo)
- The `include_crates_svg!` macro can operate without the `nightly` feature.
- The `include_svg!` macro requires the `nightly` feature to be enabled.
- **ribir**: Updated `App::new_window` to accept `WindowAttributes` instead of size as the second parameter. (\#565, \#566, @M-Adoo)
- **ribir**: The window creation APIs have been updated to use asynchronous methods, improving compatibility with browsers. (\#565, @M-Adoo)

- **macros**: removed `map_writer!` and `split_writer!` macros. (\#568, @M-Adoo)
- **ribir**: `StateWriter::map_writer` and `StateWriter::split_writer` now only require a writer split function, enhancing both reader and writer split operations. (\#568, @M-Adoo)
- **core**: The `StateReader` no longer supports watching its modifications. Use the `StateWatcher` trait instead for this functionality. (\#556 @M-Adoo)
- **painter**: Changes to `BackendPainter` APIs. This only affects you if you've implemented a custom painter. (\#562 @M-Adoo)

## [0.2.0](https://github.com/RibirX/Ribir/compare/ribir-v0.1.0...ribir-v0.2.0) - 2024-05-29

Expand Down Expand Up @@ -164,25 +140,30 @@ While these are public APIs, they are typically not required for direct use in u
### Features

- Support the overlay (@wjian23).

This enhancement simplifies the creation of overlay widgets. It streamlines the addition of any widget to an overlay and offers a more user-friendly API for overlay management

- **macros**: Generates documentation for the builder methods of members in `#[derive(Declare)]`, thus improving IDE support.(\#538 @M-Adoo)

- **core**: All built-in widget abilities are now exported on `FatObj`. (\#535 @M-Adoo)
You can directly use `FatObj` to configure built-in widget abilities such as `on_click`, `on_key_down`, etc.

``` rust
let _ = FatObj::new(Void)
.margin(EdgeInsets::all(1.0))
.on_click(|_, _| { println!("click"); });
```

- **macros**: `#[derive(Decalre)]` now generates a `FatObj<State<T>>` instead of `State<T>`, and supports initialization of all built-in widgets on its ObjBuilder. (\#535 @M-Adoo)
All pipes used to initialize the field will be unsubscribed when the FatObj is disposed.

``` rust
let row = Row::builder()
.margin(...)
.on_click(...)
.finish(ctx);
```

- **macros**: Introduced `simple_declare` macro for types that don't use `Pipe` for initialization. (\#535 @M-Adoo)

### Changed
Expand Down Expand Up @@ -230,8 +211,3 @@ We are very happy to share it with you. We hope you can try it out and give us f
- **get started**: add the `get_started` series of tutorials to help users get started with Ribir.

<!-- next-url -->
[@Unreleased]: https://github.com/RibirX/Ribir/compare/ribir-v0.3.0-alpha.5...HEAD
[0.3.0-alpha.5]: https://github.com/RibirX/Ribir/compare/ribir-v0.3.0-alpha.4...ribir-v0.3.0-alpha.5
[0.3.0-alpha.4]: https://github.com/RibirX/Ribir/compare/ribir-v0.3.0-alpha.3...ribir-v0.3.0-alpha.4
[0.3.0-alpha.3]: https://github.com/RibirX/Ribir/compare/ribir-v0.3.0-alpha.2...ribir-v0.3.0-alpha.3
[0.3.0-alpha.2]: https://github.com/RibirX/Ribir/compare/ribir-v0.3.0-alpha.1...ribir-v0.3.0-alpha.2
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ homepage = "https://ribir.org"
keywords = ["gui", "ui", "declarative", "compose-ui"]
license = "MIT"
readme = "README.md"
version = "0.3.0-beta.1"
version = "0.3.0-beta.2"
rust-version = "1.77.0"

[workspace.dependencies]
Expand Down
2 changes: 1 addition & 1 deletion cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cli"
version = "0.1.0"
version = "0.1.1-beta.1"
edition = "2021"
publish = false

Expand Down
10 changes: 5 additions & 5 deletions core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ lyon_geom.workspace = true
once_cell.workspace = true
paste.workspace = true
pin-project-lite.workspace = true
ribir_algo = {path = "../algo", version = "0.3.0-beta.1" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.1" }
ribir_macros = {path = "../macros", version = "0.3.0-beta.1" }
ribir_painter = {path = "../painter", version = "0.3.0-beta.1" }
ribir_text = {path = "../text", version = "0.3.0-beta.1" }
ribir_algo = {path = "../algo", version = "0.3.0-beta.2" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.2" }
ribir_macros = {path = "../macros", version = "0.3.0-beta.2" }
ribir_painter = {path = "../painter", version = "0.3.0-beta.2" }
ribir_text = {path = "../text", version = "0.3.0-beta.2" }
rxrust.workspace = true
smallvec.workspace = true
winit.workspace = true
Expand Down
8 changes: 4 additions & 4 deletions dev-helper/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ version.workspace = true
[dependencies]
futures.workspace = true
once_cell.workspace = true
ribir_geom = {path = "../geom", version = "0.3.0-beta.1" }
ribir_gpu = {path = "../gpu", version = "0.3.0-beta.1" }
ribir_painter = {path = "../painter", features = ["png"], version = "0.3.0-beta.1" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.2" }
ribir_gpu = {path = "../gpu", version = "0.3.0-beta.2" }
ribir_painter = {path = "../painter", features = ["png"], version = "0.3.0-beta.2" }
image.workspace = true
dssim-core.workspace = true


[dev-dependencies]
colored.workspace = true
paste.workspace = true
ribir_core = {path = "../core", version = "0.3.0-beta.1" }
ribir_core = {path = "../core", version = "0.3.0-beta.2" }
6 changes: 3 additions & 3 deletions gpu/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ futures = {workspace = true, optional = true}
guillotiere.workspace = true
log.workspace = true
rayon.workspace = true
ribir_algo = {path = "../algo", version = "0.3.0-beta.1" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.1" }
ribir_painter = {path = "../painter", features = ["tessellation"], version = "0.3.0-beta.1" }
ribir_algo = {path = "../algo", version = "0.3.0-beta.2" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.2" }
ribir_painter = {path = "../painter", features = ["tessellation"], version = "0.3.0-beta.2" }
slab = "0.4.9"
wgpu = {workspace = true, optional = true}
zerocopy = {workspace=true, features = ["derive"]}
Expand Down
2 changes: 1 addition & 1 deletion macros/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ bitflags.workspace = true
lazy_static.workspace = true
proc-macro2.workspace = true
quote.workspace = true
ribir_painter = {path = "../painter", version = "0.3.0-beta.1" }
ribir_painter = {path = "../painter", version = "0.3.0-beta.2" }
smallvec.workspace = true
syn = { workspace = true, features = ["fold", "full", "extra-traits"]}
phf = { workspace = true, features = ["macros"] }
Expand Down
4 changes: 2 additions & 2 deletions painter/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ lyon_algorithms = {version = "1.0.3", features = ["serialization"]}
lyon_tessellation = {version = "1.0.3", features = ["serialization"], optional = true}
material-color-utilities-rs = {workspace = true}
rctree.workspace = true
ribir_algo = {path = "../algo", version = "0.3.0-beta.1" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.1" }
ribir_algo = {path = "../algo", version = "0.3.0-beta.2" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.2" }
serde = {version = "1.0", features = ["derive"]}
serde_json.workspace = true
tiny-skia-path = {workspace = true}
Expand Down
10 changes: 5 additions & 5 deletions ribir/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ version.workspace = true

[dependencies]
once_cell.workspace = true
ribir_algo = { path = "../algo", version = "0.3.0-beta.1" }
ribir_core = { path = "../core", version = "0.3.0-beta.1" }
ribir_gpu = { path = "../gpu", version = "0.3.0-beta.1" }
ribir_material = { path = "../themes/material", version = "0.3.0-beta.1", optional = true }
ribir_widgets = { path = "../widgets", version = "0.3.0-beta.1", optional = true }
ribir_algo = { path = "../algo", version = "0.3.0-beta.2" }
ribir_core = { path = "../core", version = "0.3.0-beta.2" }
ribir_gpu = { path = "../gpu", version = "0.3.0-beta.2" }
ribir_material = { path = "../themes/material", version = "0.3.0-beta.2", optional = true }
ribir_widgets = { path = "../widgets", version = "0.3.0-beta.2", optional = true }
rxrust.workspace = true
wgpu = { workspace = true, optional = true }
winit.workspace = true
Expand Down
6 changes: 3 additions & 3 deletions text/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ derive_more.workspace = true
fontdb.workspace = true
log.workspace = true
ordered-float.workspace = true
ribir_algo = {path = "../algo", version = "0.3.0-beta.1" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.1" }
ribir_painter = {path = "../painter", version = "0.3.0-beta.1" }
ribir_algo = {path = "../algo", version = "0.3.0-beta.2" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.2" }
ribir_painter = {path = "../painter", version = "0.3.0-beta.2" }
rustybuzz.workspace = true
unicode-bidi.workspace = true
unicode-script.workspace = true
Expand Down
4 changes: 2 additions & 2 deletions themes/material/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ repository = "https://github.com/RibirX/Ribir/themes/material"
version.workspace = true

[dependencies]
ribir_core = {path = "../../core", version = "0.3.0-beta.1" }
ribir_widgets = {path = "../../widgets", version = "0.3.0-beta.1" }
ribir_core = {path = "../../core", version = "0.3.0-beta.2" }
ribir_widgets = {path = "../../widgets", version = "0.3.0-beta.2" }
4 changes: 2 additions & 2 deletions widgets/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ version.workspace = true
[dependencies]
lyon_algorithms.workspace = true
lyon_path.workspace = true
ribir_core = {path = "../core", version = "0.3.0-beta.1" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.1" }
ribir_core = {path = "../core", version = "0.3.0-beta.2" }
ribir_geom = {path = "../geom", version = "0.3.0-beta.2" }
webbrowser.workspace = true

[dev-dependencies]
Expand Down

0 comments on commit f02d50c

Please sign in to comment.