Skip to content

Commit f9ee3aa

Browse files
authored
feat!: Bevy 0.17 (#498)
1 parent 7dd5518 commit f9ee3aa

162 files changed

Lines changed: 24036 additions & 11207 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/bevy_mod_scripting.yml

Lines changed: 11 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -105,20 +105,17 @@ jobs:
105105
matrix:
106106
run_args: ${{fromJson(needs.generate-job-matrix.outputs.matrix)}}
107107
steps:
108-
# - name: Free Disk Space (Ubuntu)
109-
# if: runner.os == 'Linux'
110-
# uses: jlumbroso/free-disk-space@main
111-
# with:
112-
# tool-cache: false
113-
# android: true
114-
# dotnet: true
115-
# haskell: true
116-
# large-packages: true
117-
# docker-images: true
118-
# swap-storage: true
119-
# # - if: runner.os == 'linux'
120-
# # run: |
121-
# # sudo rm -rf /usr/share/dotnet; sudo rm -rf /opt/ghc; sudo rm -rf "/usr/local/share/boost"; sudo rm -rf "$AGENT_TOOLSDIRECTORY"
108+
- name: Free Disk Space (Ubuntu)
109+
if: runner.os == 'Linux'
110+
uses: jlumbroso/free-disk-space@main
111+
with:
112+
tool-cache: false
113+
android: true
114+
dotnet: true
115+
haskell: true
116+
large-packages: true
117+
docker-images: true
118+
swap-storage: true
122119
- name: Checkout
123120
if: ${{ needs.check-needs-run.outputs.any-changes == 'true' && (matrix.run_args.run_on_forks || needs.check-is-fork.outputs.is_fork != 'true') }}
124121
uses: actions/checkout@v4
@@ -162,34 +159,6 @@ jobs:
162159
run: |
163160
xvfb-run ${{ matrix.run_args.command }}
164161
165-
- name: Upload coverage artifact
166-
if: ${{ needs.check-needs-run.outputs.any-changes == 'true' && (matrix.run_args.run_on_forks || needs.check-is-fork.outputs.is_fork != 'true') && matrix.run_args.generates_coverage }}
167-
uses: actions/upload-artifact@v4
168-
with:
169-
name: code-coverage-report
170-
path: target/coverage/html/
171-
172-
- name: Update coverage badge
173-
if: ${{ needs.check-needs-run.outputs.any-changes == 'true' && (matrix.run_args.run_on_forks || needs.check-is-fork.outputs.is_fork != 'true') && matrix.run_args.generates_coverage }}
174-
continue-on-error: true
175-
run: |
176-
git checkout -b chore/_update-coverage-badge || git checkout chore/_update-coverage-badge
177-
cp target/coverage/html/badges/for_the_badge.svg badges/coverage.svg
178-
179-
git config user.name "github-actions[bot]"
180-
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
181-
git config --global push.autoSetupRemote true
182-
git add badges/coverage.svg
183-
184-
if [[ -n $(git status -s) ]]; then
185-
git commit -m "chore(badge): Update coverage badge" -m "[skip ci]"
186-
git push -f
187-
gh pr create --title "chore: Update coverage badge" --body "Updates coverage badge based on test results" --base ${{ github.ref }} --head chore/_update-coverage-badge > pr.txt
188-
sed -n 's/.*pull\/\([0-9]*\).*/\1/p' pr.txt > pr_number.txt
189-
PRNUMBER=$(cat pr_number.txt)
190-
gh pr merge $PRNUMBER --squash
191-
fi
192-
193162
rollup-check:
194163
name: Required Checks Successful
195164
needs: [check]

.github/workflows/synchronize_bindings.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
run: |
3333
if [[ -n $(git status --porcelain) ]]; then
3434
echo "changes=true" >> "$GITHUB_OUTPUT"
35-
git diff > bindings.diff
35+
git diff --text > bindings.diff
3636
echo "Diff created:"
3737
cat bindings.diff
3838
else

.github/workflows/synchronize_bindings_check_diff.yml

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ jobs:
1515
env:
1616
DIFF_ARTIFACT: bindings.diff
1717
PR_EVENT: event-bindings.json
18+
EVENT_FILE: event.json
1819
steps:
19-
- name: Download Benchmark Results
20+
- name: Download Diff Results
2021
uses: dawidd6/action-download-artifact@v6
2122
with:
2223
name: ${{ env.DIFF_ARTIFACT }}
@@ -31,13 +32,48 @@ jobs:
3132
with:
3233
script: |
3334
let fs = require('fs');
34-
let prEvent = JSON.parse(fs.readFileSync(process.env.PR_EVENT, {encoding: 'utf8'}));
35+
let prEvent = JSON.parse(fs.readFileSync(process.env.EVENT_FILE, {encoding: 'utf8'}));
3536
core.exportVariable("PR_HEAD", prEvent.pull_request.head.ref);
3637
core.exportVariable("PR_BASE", prEvent.pull_request.base.ref);
3738
core.exportVariable("PR_BASE_SHA", prEvent.pull_request.base.sha);
3839
core.exportVariable("PR_NUMBER", prEvent.number);
3940
core.exportVariable("HEAD_REPO", prEvent.pull_request.head.repo.full_name);
4041
core.exportVariable("HEAD_REPO_URL", prEvent.pull_request.head.repo.git_url);
42+
43+
- name: Build Collapsible Diff Comment
44+
id: build_comment
45+
continue-on-error: true
46+
shell: bash
47+
run: |
48+
echo '### 🔍 Binding Differences Detected' > comment.md
49+
echo '' >> comment.md
50+
echo '> The following changes were detected in generated bindings:' >> comment.md
51+
echo '' >> comment.md
52+
53+
# Build collapsible sections per file
54+
awk '
55+
/^diff --git/ {
56+
if (file != "") print "</pre></details>" >> "comment.md"
57+
file=$4
58+
gsub(/^a\//, "", file)
59+
print "<details><summary>" file "</summary><pre>" >> "comment.md"
60+
next
61+
}
62+
{ print $0 >> "comment.md" }
63+
END { if (file != "") print "</pre></details>" >> "comment.md" }
64+
' "${{ env.DIFF_ARTIFACT }}"
65+
66+
- name: Add or Update PR Comment with Diff
67+
id: pr_comment
68+
continue-on-error: true
69+
uses: peter-evans/create-or-update-comment@v4
70+
with:
71+
issue-number: ${{ env.PR_NUMBER }}
72+
body-path: comment.md
73+
edit-mode: replace
74+
token: ${{ secrets.GITHUB_TOKEN }}
75+
comment-identifier: bindings-diff
76+
4177
- name: Fail PR With URL
4278
uses: actions/github-script@v6
4379
with:

Cargo.toml

Lines changed: 49 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ core_functions = ["bevy_mod_scripting_functions/core_functions"]
6666
bevy_a11y_bindings = ["bevy_mod_scripting_functions/bevy_a11y"]
6767
bevy_animation_bindings = ["bevy_mod_scripting_functions/bevy_animation"]
6868
bevy_asset_bindings = ["bevy_mod_scripting_functions/bevy_asset"]
69+
bevy_camera_bindings = ["bevy_mod_scripting_functions/bevy_camera"]
6970
bevy_color_bindings = ["bevy_mod_scripting_functions/bevy_color"]
7071
bevy_core_pipeline_bindings = [
7172
"bevy_mod_scripting_functions/bevy_core_pipeline",
@@ -76,17 +77,24 @@ bevy_gltf_bindings = ["bevy_mod_scripting_functions/bevy_gltf"]
7677
bevy_image_bindings = ["bevy_mod_scripting_functions/bevy_image"]
7778
bevy_input_bindings = ["bevy_mod_scripting_functions/bevy_input"]
7879
bevy_input_focus_bindings = ["bevy_mod_scripting_functions/bevy_input_focus"]
80+
bevy_light_bindings = ["bevy_mod_scripting_functions/bevy_light"]
7981
bevy_math_bindings = ["bevy_mod_scripting_functions/bevy_math"]
8082
bevy_mesh_bindings = ["bevy_mod_scripting_functions/bevy_mesh"]
8183
bevy_pbr_bindings = ["bevy_mod_scripting_functions/bevy_pbr"]
8284
bevy_picking_bindings = ["bevy_mod_scripting_functions/bevy_picking"]
85+
bevy_post_process_bindings = ["bevy_mod_scripting_functions/bevy_post_process"]
8386
bevy_reflect_bindings = ["bevy_mod_scripting_functions/bevy_reflect"]
8487
bevy_render_bindings = ["bevy_mod_scripting_functions/bevy_render"]
8588
bevy_scene_bindings = ["bevy_mod_scripting_functions/bevy_scene"]
8689
bevy_sprite_bindings = ["bevy_mod_scripting_functions/bevy_sprite"]
90+
bevy_sprite_render_bindings = [
91+
"bevy_mod_scripting_functions/bevy_sprite_render",
92+
]
8793
bevy_text_bindings = ["bevy_mod_scripting_functions/bevy_text"]
8894
bevy_time_bindings = ["bevy_mod_scripting_functions/bevy_time"]
8995
bevy_transform_bindings = ["bevy_mod_scripting_functions/bevy_transform"]
96+
bevy_ui_bindings = ["bevy_mod_scripting_functions/bevy_ui"]
97+
bevy_ui_render_bindings = ["bevy_mod_scripting_functions/bevy_ui_render"]
9098

9199
# optional
92100
unsafe_lua_modules = ["bevy_mod_scripting_lua?/unsafe_lua_modules"]
@@ -140,54 +148,57 @@ bevy_mod_scripting_core = { path = "crates/bevy_mod_scripting_core", version = "
140148

141149
# bevy
142150

143-
bevy = { version = "0.16.0", default-features = false }
144-
bevy_math = { version = "0.16.0", default-features = false, features = ["std"] }
145-
bevy_transform = { version = "0.16.0", default-features = false }
146-
bevy_reflect = { version = "0.16.0", default-features = false }
147-
bevy_ecs = { version = "0.16.0", default-features = false }
148-
bevy_asset = { version = "0.16.0", default-features = false }
149-
bevy_app = { version = "0.16.0", default-features = false }
150-
bevy_log = { version = "0.16.0", default-features = false }
151-
bevy_internal = { version = "0.16.0", default-features = false }
152-
bevy_diagnostic = { version = "0.16.0", default-features = false }
153-
bevy_platform = { version = "0.16.0", default-features = false }
154-
bevy_time = { version = "0.16.0", default-features = false }
155-
bevy_input = { version = "0.16.0", default-features = false }
156-
bevy_a11y = { version = "0.16.0", default-features = false, features = [
151+
152+
bevy = { version = "0.17", default-features = false }
153+
bevy_math = { version = "0.17", default-features = false, features = ["std"] }
154+
bevy_transform = { version = "0.17", default-features = false }
155+
bevy_reflect = { version = "0.17", default-features = false }
156+
bevy_ecs = { version = "0.17", default-features = false }
157+
bevy_asset = { version = "0.17", default-features = false }
158+
bevy_app = { version = "0.17", default-features = false }
159+
bevy_log = { version = "0.17", default-features = false }
160+
bevy_internal = { version = "0.17", default-features = false }
161+
bevy_diagnostic = { version = "0.17", default-features = false }
162+
bevy_platform = { version = "0.17", default-features = false }
163+
bevy_time = { version = "0.17", default-features = false }
164+
bevy_input = { version = "0.17", default-features = false }
165+
bevy_a11y = { version = "0.17", default-features = false, features = [
157166
"std",
158167
"bevy_reflect",
159168
] }
160-
bevy_animation = { version = "0.16.0", default-features = false }
161-
bevy_color = { version = "0.16.0", default-features = false, features = [
169+
bevy_animation = { version = "0.17", default-features = false }
170+
bevy_color = { version = "0.17", default-features = false, features = [
162171
"std",
163172
"bevy_reflect",
164173
] }
165-
bevy_core_pipeline = { version = "0.16.0", default-features = false }
166-
bevy_gizmos = { version = "0.16.0", default-features = false }
167-
bevy_gltf = { version = "0.16.0", default-features = false }
168-
bevy_image = { version = "0.16.0", default-features = false, features = [
174+
bevy_core_pipeline = { version = "0.17", default-features = false }
175+
bevy_gizmos = { version = "0.17", default-features = false }
176+
bevy_gltf = { version = "0.17", default-features = false }
177+
bevy_image = { version = "0.17", default-features = false, features = [
169178
"bevy_reflect",
170179
] }
171-
bevy_input_focus = { version = "0.16.0", default-features = false, features = [
180+
bevy_input_focus = { version = "0.17", default-features = false, features = [
172181
"std",
173182
"bevy_reflect",
174183
] }
175-
bevy_mesh = { version = "0.16.0", default-features = false }
176-
bevy_pbr = { version = "0.16.0", default-features = false }
177-
bevy_picking = { version = "0.16.0", default-features = false }
178-
bevy_render = { version = "0.16.0", default-features = false }
179-
bevy_scene = { version = "0.16.0", default-features = false }
180-
bevy_sprite = { version = "0.16.0", default-features = false }
181-
bevy_text = { version = "0.16.0", default-features = false }
182-
bevy_window = { version = "0.16.0", default-features = false, features = [
184+
bevy_mesh = { version = "0.17", default-features = false }
185+
bevy_pbr = { version = "0.17", default-features = false }
186+
bevy_picking = { version = "0.17", default-features = false }
187+
bevy_render = { version = "0.17", default-features = false }
188+
bevy_scene = { version = "0.17", default-features = false }
189+
bevy_sprite = { version = "0.17", default-features = false }
190+
bevy_text = { version = "0.17", default-features = false }
191+
bevy_window = { version = "0.17", default-features = false, features = [
183192
"bevy_reflect",
184193
"std",
185194
] }
186-
bevy_winit = { version = "0.16.0", default-features = false }
195+
bevy_winit = { version = "0.17", default-features = false }
196+
bevy_utils = { version = "0.17", default-features = false, features = ["std"] }
187197

188-
glam = { version = "0.29.3", default-features = false }
189-
uuid = { version = "1.11", default-features = false }
198+
glam = { version = "0.30.7", default-features = false }
199+
uuid = { version = "1.13", default-features = false }
190200
smol_str = { version = "0.2.0", default-features = false }
201+
nonmax = { version = "0.5", default-features = false, features = ["std"] }
191202

192203
# other
193204
serde_json = { version = "1.0", default-features = false }
@@ -204,8 +215,8 @@ rhai = { version = "1.21", default-features = false }
204215
mlua = { version = "0.10", default-features = false }
205216
log = { version = "0.4", default-features = false }
206217
env_logger = { version = "0.11", default-features = false }
207-
clap = { version = "4", default-features = false }
208-
mdbook = { version = "0.4", default-features = false }
218+
clap = { version = "4", default-features = false, features = ["std"] }
219+
mdbook-preprocessor = { version = "0.5", default-features = false }
209220
quote = { version = "1.0", default-features = false }
210221
syn = { version = "2.0", default-features = false }
211222
proc-macro2 = { version = "1.0", default-features = false }
@@ -224,7 +235,7 @@ pretty_assertions = { version = "1.4", default-features = false, features = [
224235
manifest-dir-macros = { version = "0.1.18", default-features = false }
225236
assert_cmd = { version = "2.1", default-features = false }
226237
tokio = { version = "1", default-features = false }
227-
bevy_console = { version = "0.14", default-features = false }
238+
bevy_console = { version = "0.16", default-features = false }
228239
tracing-tracy = { version = "0.11", default-features = false }
229240
libtest-mimic = { version = "0.8", default-features = false }
230241
criterion = { version = "0.5", default-features = false }
@@ -238,10 +249,13 @@ bevy = { workspace = true, features = [
238249
"bevy_asset",
239250
"bevy_core_pipeline",
240251
"bevy_sprite",
252+
"bevy_sprite_render",
241253
"bevy_state",
242254
"x11",
243255
"bevy_ui",
244256
"default_font",
257+
"custom_cursor",
258+
"debug",
245259
] }
246260
bevy_platform = { workspace = true }
247261
clap = { workspace = true, features = ["derive"] }

assets/scripts/game_of_life.lua

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ LifeState = world.get_type_by_name("LifeState")
22
Settings = world.get_type_by_name("Settings")
33

44
info("Lua: The game_of_life.lua script just got loaded")
5-
65
math.randomseed(os.time())
76

87
function fetch_life_state()
@@ -37,11 +36,11 @@ function on_click(x, y)
3736
local dimensions = settings.physical_grid_dimensions
3837
local screen = settings.display_grid_dimensions
3938

40-
local dimension_x = dimensions._1
41-
local dimension_y = dimensions._2
39+
local dimension_x = dimensions[1]
40+
local dimension_y = dimensions[2]
4241

43-
local screen_x = screen._1
44-
local screen_y = screen._2
42+
local screen_x = screen[1]
43+
local screen_y = screen[2]
4544

4645
local cell_width = screen_x / dimension_x
4746
local cell_height = screen_y / dimension_y
@@ -78,8 +77,8 @@ function on_update()
7877
local cells = fetch_life_state().cells
7978
local settings = world.get_resource(Settings)
8079
local dimensions = settings.physical_grid_dimensions
81-
local dimension_x = dimensions._1
82-
local dimension_y = dimensions._2
80+
local dimension_x = dimensions[1]
81+
local dimension_y = dimensions[2]
8382

8483
-- primitives are passed by value to lua, keep a hold of old state but turn 255's into 1's
8584
local prev_state = {}

assets/scripts/game_of_life.rhai

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ fn on_click(x,y) {
4040
let dimensions = settings.physical_grid_dimensions;
4141
let screen = settings.display_grid_dimensions;
4242

43-
let dimension_x = dimensions["_0"];
44-
let dimension_y = dimensions["_1"];
43+
let dimension_x = dimensions[0];
44+
let dimension_y = dimensions[1];
4545

46-
let screen_x = screen["_0"];
47-
let screen_y = screen["_1"];
46+
let screen_x = screen[0];
47+
let screen_y = screen[1];
4848

4949
let cell_width = screen_x / dimension_x;
5050
let cell_height = screen_y / dimension_y;
@@ -77,8 +77,8 @@ fn on_update() {
7777
// note that here we do not make use of RhaiProxyable and just go off pure reflection
7878
let settings = world.get_resource.call(Settings);
7979
let dimensions = settings.physical_grid_dimensions;
80-
let dimension_x = dimensions["_0"];
81-
let dimension_y = dimensions["_1"];
80+
let dimension_x = dimensions[0];
81+
let dimension_y = dimensions[1];
8282

8383
// primitives are passed by value to rhai, keep a hold of old state but turn 255's into 1's
8484
let prev_state = [];
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
local entity = Entity.from_raw(9999);
1+
local entity = _make_invalid_entity();
22
-- does not throw
3-
entity:eq(entity);
3+
entity:eq(entity);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
let entity = Entity.from_raw.call(9999);
1+
let entity = _make_invalid_entity.call();
22
// does not throw
33
let out = entity.eq.call(entity);

assets/tests/add_system/added_systems_run_in_parallel.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ digraph {
4141
node_16 [label="on_test_post_update"];
4242
node_17 [label="custom_system_a"];
4343
node_18 [label="custom_system_b"];
44-
node_19 [label="SystemSet AssetEvents"];
44+
node_19 [label="SystemSet AssetEventSystems"];
4545
node_20 [label="SystemSet GarbageCollection"];
4646
node_21 [label="SystemSet ListeningPhase"];
4747
node_22 [label="SystemSet MachineStartPhase"];

assets/tests/add_system/added_systems_run_in_parallel.rhai

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ digraph {
4040
node_16 [label="on_test_post_update"];
4141
node_17 [label="custom_system_a"];
4242
node_18 [label="custom_system_b"];
43-
node_19 [label="SystemSet AssetEvents"];
43+
node_19 [label="SystemSet AssetEventSystems"];
4444
node_20 [label="SystemSet GarbageCollection"];
4545
node_21 [label="SystemSet ListeningPhase"];
4646
node_22 [label="SystemSet MachineStartPhase"];

0 commit comments

Comments
 (0)