diff --git a/CHANGELOG.md b/CHANGELOG.md index 128eba907..764b01eee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,19 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.27.1 - 2024-03-29 +### 🐛 Fixed +* Fix visual glitch on the right side of highly rounded rectangles [#4244](https://github.com/emilk/egui/pull/4244) +* Prevent visual glitch when shadow blur width is very high [#4245](https://github.com/emilk/egui/pull/4245) +* Fix `InputState::any_touches` and add `InputState::has_touch_screen` [#4247](https://github.com/emilk/egui/pull/4247) +* Fix `Context::repaint_causes` returning no causes [#4248](https://github.com/emilk/egui/pull/4248) +* Fix touch-and-hold to open context menu [#4249](https://github.com/emilk/egui/pull/4249) +* Hide shortcut text on zoom buttons if `zoom_with_keyboard` is false [#4262](https://github.com/emilk/egui/pull/4262) + +### 🔧 Changed +* Don't apply a clip rect to the contents of an `Area` or `Window` [#4258](https://github.com/emilk/egui/pull/4258) + + ## 0.27.0 - 2024-03-26 - Nicer menus and new hit test logic The hit test logic (what is the user clicking on?) has been completely rewritten, and should now be much more accurate and helpful. The hit test and interaction logic is run at the start of the frame, using the widgets rects from the previous frame, but the latest mouse coordinates. diff --git a/Cargo.lock b/Cargo.lock index 2a517c705..0a72704b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1187,7 +1187,7 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "ecolor" -version = "0.27.0" +version = "0.27.1" dependencies = [ "bytemuck", "cint", @@ -1198,7 +1198,7 @@ dependencies = [ [[package]] name = "eframe" -version = "0.27.0" +version = "0.27.1" dependencies = [ "bytemuck", "cocoa", @@ -1236,7 +1236,7 @@ dependencies = [ [[package]] name = "egui" -version = "0.27.0" +version = "0.27.1" dependencies = [ "accesskit", "ahash", @@ -1252,7 +1252,7 @@ dependencies = [ [[package]] name = "egui-wgpu" -version = "0.27.0" +version = "0.27.1" dependencies = [ "bytemuck", "document-features", @@ -1269,7 +1269,7 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.27.0" +version = "0.27.1" dependencies = [ "accesskit_winit", "arboard", @@ -1287,7 +1287,7 @@ dependencies = [ [[package]] name = "egui_demo_app" -version = "0.27.0" +version = "0.27.1" dependencies = [ "bytemuck", "chrono", @@ -1312,7 +1312,7 @@ dependencies = [ [[package]] name = "egui_demo_lib" -version = "0.27.0" +version = "0.27.1" dependencies = [ "chrono", "criterion", @@ -1327,7 +1327,7 @@ dependencies = [ [[package]] name = "egui_extras" -version = "0.27.0" +version = "0.27.1" dependencies = [ "chrono", "document-features", @@ -1345,7 +1345,7 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.27.0" +version = "0.27.1" dependencies = [ "bytemuck", "document-features", @@ -1365,7 +1365,7 @@ dependencies = [ [[package]] name = "egui_plot" -version = "0.27.0" +version = "0.27.1" dependencies = [ "document-features", "egui", @@ -1394,7 +1394,7 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "emath" -version = "0.27.0" +version = "0.27.1" dependencies = [ "bytemuck", "document-features", @@ -1469,7 +1469,7 @@ dependencies = [ [[package]] name = "epaint" -version = "0.27.0" +version = "0.27.1" dependencies = [ "ab_glyph", "ahash", diff --git a/Cargo.toml b/Cargo.toml index 431bffcfc..bde03d7c8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ members = [ edition = "2021" license = "MIT OR Apache-2.0" rust-version = "1.72" -version = "0.27.0" +version = "0.27.1" [profile.release] @@ -48,17 +48,17 @@ opt-level = 2 [workspace.dependencies] -emath = { version = "0.27.0", path = "crates/emath", default-features = false } -ecolor = { version = "0.27.0", path = "crates/ecolor", default-features = false } -epaint = { version = "0.27.0", path = "crates/epaint", default-features = false } -egui = { version = "0.27.0", path = "crates/egui", default-features = false } -egui_plot = { version = "0.27.0", path = "crates/egui_plot", default-features = false } -egui-winit = { version = "0.27.0", path = "crates/egui-winit", default-features = false } -egui_extras = { version = "0.27.0", path = "crates/egui_extras", default-features = false } -egui-wgpu = { version = "0.27.0", path = "crates/egui-wgpu", default-features = false } -egui_demo_lib = { version = "0.27.0", path = "crates/egui_demo_lib", default-features = false } -egui_glow = { version = "0.27.0", path = "crates/egui_glow", default-features = false } -eframe = { version = "0.27.0", path = "crates/eframe", default-features = false } +emath = { version = "0.27.1", path = "crates/emath", default-features = false } +ecolor = { version = "0.27.1", path = "crates/ecolor", default-features = false } +epaint = { version = "0.27.1", path = "crates/epaint", default-features = false } +egui = { version = "0.27.1", path = "crates/egui", default-features = false } +egui_plot = { version = "0.27.1", path = "crates/egui_plot", default-features = false } +egui-winit = { version = "0.27.1", path = "crates/egui-winit", default-features = false } +egui_extras = { version = "0.27.1", path = "crates/egui_extras", default-features = false } +egui-wgpu = { version = "0.27.1", path = "crates/egui-wgpu", default-features = false } +egui_demo_lib = { version = "0.27.1", path = "crates/egui_demo_lib", default-features = false } +egui_glow = { version = "0.27.1", path = "crates/egui_glow", default-features = false } +eframe = { version = "0.27.1", path = "crates/eframe", default-features = false } #TODO(emilk): make more things workspace dependencies ahash = { version = "0.8.6", default-features = false, features = [ diff --git a/crates/ecolor/CHANGELOG.md b/crates/ecolor/CHANGELOG.md index d21513d6c..493d125e7 100644 --- a/crates/ecolor/CHANGELOG.md +++ b/crates/ecolor/CHANGELOG.md @@ -6,6 +6,10 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.27.1 - 2024-03-29 +* Nothing new + + ## 0.27.0 - 2024-03-26 * Nothing new diff --git a/crates/eframe/CHANGELOG.md b/crates/eframe/CHANGELOG.md index 3f3c3d689..e110500cb 100644 --- a/crates/eframe/CHANGELOG.md +++ b/crates/eframe/CHANGELOG.md @@ -7,6 +7,11 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.27.1 - 2024-03-29 +* Web: repaint if the `#hash` in the URL changes [#4261](https://github.com/emilk/egui/pull/4261) +* Add web support for `zoom_factor` [#4260](https://github.com/emilk/egui/pull/4260) (thanks [@justusdieckmann](https://github.com/justusdieckmann)!) + + ## 0.27.0 - 2024-03-26 * Update to document-features 0.2.8 [#4003](https://github.com/emilk/egui/pull/4003) * Added `App::raw_input_hook` allows for the manipulation or filtering of raw input events [#4008](https://github.com/emilk/egui/pull/4008) (thanks [@varphone](https://github.com/varphone)!) diff --git a/crates/egui-wgpu/CHANGELOG.md b/crates/egui-wgpu/CHANGELOG.md index 92da1e975..9dea60d1e 100644 --- a/crates/egui-wgpu/CHANGELOG.md +++ b/crates/egui-wgpu/CHANGELOG.md @@ -6,6 +6,10 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.27.1 - 2024-03-29 +* Nothing new + + ## 0.27.0 - 2024-03-26 * Improve panic message in egui-wgpu when failing to create buffers [#3986](https://github.com/emilk/egui/pull/3986) diff --git a/crates/egui-winit/CHANGELOG.md b/crates/egui-winit/CHANGELOG.md index ff85f8b5d..52dd56e8f 100644 --- a/crates/egui-winit/CHANGELOG.md +++ b/crates/egui-winit/CHANGELOG.md @@ -5,6 +5,10 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.27.1 - 2024-03-29 +* Nothing new + + ## 0.27.0 - 2024-03-26 * Update memoffset to 0.9.0, arboard to 3.3.1, and remove egui_glow's needless dependency on pure_glow's deps [#4036](https://github.com/emilk/egui/pull/4036) (thanks [@Nopey](https://github.com/Nopey)!) * Don't clear modifier state on focus change [#4157](https://github.com/emilk/egui/pull/4157) (thanks [@ming08108](https://github.com/ming08108)!) diff --git a/crates/egui_extras/CHANGELOG.md b/crates/egui_extras/CHANGELOG.md index fd498f377..0980768ae 100644 --- a/crates/egui_extras/CHANGELOG.md +++ b/crates/egui_extras/CHANGELOG.md @@ -5,6 +5,10 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.27.1 - 2024-03-29 +* Nothing new + + ## 0.27.0 - 2024-03-26 * Add scroll bar visibility option to `Table` widget [#3981](https://github.com/emilk/egui/pull/3981) (thanks [@richardhozak](https://github.com/richardhozak)!) * Update `ehttp` to 0.5 [#4055](https://github.com/emilk/egui/pull/4055) diff --git a/crates/egui_glow/CHANGELOG.md b/crates/egui_glow/CHANGELOG.md index 970fb87a2..f39d8a199 100644 --- a/crates/egui_glow/CHANGELOG.md +++ b/crates/egui_glow/CHANGELOG.md @@ -6,6 +6,10 @@ Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.27.1 - 2024-03-29 +* Nothing new + + ## 0.27.0 - 2024-03-26 * Add `sense` option to `Plot` [#4052](https://github.com/emilk/egui/pull/4052) (thanks [@AmesingFlank](https://github.com/AmesingFlank)!) * Plot widget - allow disabling scroll for x and y separately [#4051](https://github.com/emilk/egui/pull/4051) (thanks [@YgorSouza](https://github.com/YgorSouza)!) diff --git a/crates/epaint/CHANGELOG.md b/crates/epaint/CHANGELOG.md index 4e222f855..b5fc33f67 100644 --- a/crates/epaint/CHANGELOG.md +++ b/crates/epaint/CHANGELOG.md @@ -5,6 +5,11 @@ This file is updated upon each release. Changes since the last release can be found at or by running the `scripts/generate_changelog.py` script. +## 0.27.1 - 2024-03-29 +* Fix visual glitch on the right side of highly rounded rectangles [#4244](https://github.com/emilk/egui/pull/4244) +* Prevent visual glitch when shadow blur width is very high [#4245](https://github.com/emilk/egui/pull/4245) + + ## 0.27.0 - 2024-03-26 * Add `ColorImage::from_gray_iter` [#3536](https://github.com/emilk/egui/pull/3536) (thanks [@wangxiaochuTHU](https://github.com/wangxiaochuTHU)!) * Convenience const fn for `Margin`, `Rounding` and `Shadow` [#4080](https://github.com/emilk/egui/pull/4080) (thanks [@0Qwel](https://github.com/0Qwel)!) diff --git a/scripts/generate_changelog.py b/scripts/generate_changelog.py index 17b44f49b..6b0fc71eb 100755 --- a/scripts/generate_changelog.py +++ b/scripts/generate_changelog.py @@ -115,18 +115,22 @@ def print_section(crate: str, items: List[str]) -> None: print() +def changelog_filepath(crate: str) -> str: + scripts_dirpath = os.path.dirname(os.path.realpath(__file__)) + if crate == "egui": + file_path = f"{scripts_dirpath}/../CHANGELOG.md" + else: + file_path = f"{scripts_dirpath}/../crates/{crate}/CHANGELOG.md" + return os.path.normpath(file_path) + + def add_to_changelog_file(crate: str, items: List[str], version: str) -> None: insert_text = f"\n## {version} - {date.today()}\n" for item in items: insert_text += f"* {item}\n" insert_text += "\n" - scripts_dirpath = os.path.dirname(os.path.realpath(__file__)) - if crate == "egui": - file_path = f"{scripts_dirpath}/../CHANGELOG.md" - else: - file_path = f"{scripts_dirpath}/../crates/{crate}/CHANGELOG.md" - file_path = os.path.normpath(file_path) + file_path = changelog_filepath(crate) with open(file_path, 'r') as file: content = file.read() @@ -151,6 +155,28 @@ def main() -> None: print("ERROR: --version is required when --write is used") sys.exit(1) + crate_names = [ + "ecolor", + "eframe", + "egui_extras", + "egui_plot", + "egui_glow", + "egui-wgpu", + "egui-winit", + "egui", + "epaint", + ] + + # We read all existing changelogs to remove duplicate entries. + # For instance: the PRs that were part of 0.27.2 would also show up in the diff for `0.27.0..HEAD` + # when its time for a 0.28 release. We can't do `0.27.2..HEAD` because we would miss PRs that were + # merged before in `0.27.0..0.27.2` that were not cherry-picked into `0.27.2`. + all_changelogs = "" + for crate in crate_names: + file_path = changelog_filepath(crate) + with open(file_path, 'r') as file: + all_changelogs += file.read() + repo = Repo(".") commits = list(repo.iter_commits(args.commit_range)) commits.reverse() # Most recent last @@ -167,17 +193,6 @@ def main() -> None: ignore_labels = ["CI", "dependencies"] - crate_names = [ - "ecolor", - "eframe", - "egui_extras", - "egui_plot", - "egui_glow", - "egui-wgpu", - "egui-winit", - "egui", - "epaint", - ] sections = {} unsorted_prs = [] unsorted_commits = [] @@ -193,6 +208,10 @@ def main() -> None: summary = f"{title} [{hexsha[:7]}](https://github.com/{OWNER}/{REPO}/commit/{hexsha})" unsorted_commits.append(summary) else: + if f"[#{pr_number}]" in all_changelogs: + print(f"Ignoring PR that is already in the changelog: #{pr_number}") + continue + # We prefer the PR title if available title = pr_info.pr_title if pr_info else title labels = pr_info.labels if pr_info else []