bevy/tools/publish.sh
BD103 22305acf66
Rename bevy_reflect_derive folder to derive (#13269)
# Objective

- Some of the "large" crates have sub-crates, usually for things such as
macros.
- For an example, see [`bevy_ecs_macros` at
`bevy_ecs/macros`](4f9f987099/crates/bevy_ecs/macros).
- The one crate that does not follow this convention is
[`bevy_reflect_derive`](4f9f987099/crates/bevy_reflect/bevy_reflect_derive),
which is in the `bevy_reflect/bevy_reflect_derive` folder and not
`bevy_reflect/derive` or `bevy_reflect/macros`.

## Solution

- Rename folder `bevy_reflect_derive` to `derive`.
- I chose to use `derive` instead of `macros` because the crate name
itself ends in `_derive`. (One of only two crates to actually use this
convention, funnily enough.)

## Testing

- Build and test `bevy_reflect` and `bevy_reflect_derive`.
- Apply the following patch to `publish.sh` to run it in `--dry-run`
mode, to test that the path has been successfully updated:
- If you have any security concerns about applying random diffs, feel
free to skip this step. Worst case scenario it fails and Cart has to
manually publish a few crates.

```bash
# Apply patch to make `publish.sh` *not* actually publish anything.
git apply path/to/foo.patch
# Make `publish.sh` executable.
chmod +x tools/publish.sh
# Execute `publish.sh`.
./tools/publish.sh
```

```patch
diff --git a/tools/publish.sh b/tools/publish.sh
index b020bad28..fbcc09281 100644
--- a/tools/publish.sh
+++ b/tools/publish.sh
@@ -49,7 +49,7 @@ crates=(
 
 if [ -n "$(git status --porcelain)" ]; then
     echo "You have local changes!"
-    exit 1
+    # exit 1
 fi
 
 pushd crates
@@ -61,15 +61,15 @@ do
   cp ../LICENSE-APACHE "$crate"
   pushd "$crate"
   git add LICENSE-MIT LICENSE-APACHE
-  cargo publish --no-verify --allow-dirty
+  cargo publish --no-verify --allow-dirty --dry-run
   popd
-  sleep 20
+  # sleep 20
 done
 
 popd
 
 echo "Publishing root crate"
-cargo publish --allow-dirty
+cargo publish --allow-dirty --dry-run
 
 echo "Cleaning local state"
 git reset HEAD --hard
```

---

## Changelog

- Moved `bevy_reflect_derive` from
`crates/bevy_reflect/bevy_reflect_derive` to
`crates/bevy_reflect/derive`.
2024-05-07 07:55:32 +00:00

75 lines
1.3 KiB
Bash

# if crate A depends on crate B, B must come before A in this list
crates=(
bevy_utils/macros
bevy_utils
bevy_ptr
bevy_macro_utils
bevy_derive
bevy_math
bevy_tasks
bevy_reflect/derive
bevy_reflect
bevy_ecs/macros
bevy_ecs
bevy_app
bevy_time
bevy_log
bevy_dynamic_plugin
bevy_asset/macros
bevy_asset
bevy_audio
bevy_core
bevy_diagnostic
bevy_hierarchy
bevy_transform
bevy_window
bevy_encase_derive
bevy_render/macros
bevy_mikktspace
bevy_render
bevy_core_pipeline
bevy_input
bevy_gilrs
bevy_animation
bevy_pbr
bevy_gltf
bevy_scene
bevy_sprite
bevy_gizmos/macros
bevy_gizmos
bevy_text
bevy_a11y
bevy_ui
bevy_winit
bevy_dev_tools
bevy_internal
bevy_dylib
bevy_color
)
if [ -n "$(git status --porcelain)" ]; then
echo "You have local changes!"
exit 1
fi
pushd crates
for crate in "${crates[@]}"
do
echo "Publishing ${crate}"
cp ../LICENSE-MIT "$crate"
cp ../LICENSE-APACHE "$crate"
pushd "$crate"
git add LICENSE-MIT LICENSE-APACHE
cargo publish --no-verify --allow-dirty
popd
sleep 20
done
popd
echo "Publishing root crate"
cargo publish --allow-dirty
echo "Cleaning local state"
git reset HEAD --hard