From 98f9199abc3044779627b859b14f84fff3a97623 Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Tue, 3 Sep 2024 21:48:10 +0200 Subject: chore: add publish script for urdf and stl + unify all releases by de… (#727) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: add publish script for urdf and stl + unify all releases by default * better cross platform publish support * publish in dry run within ci * publish scripts better errors, abort if a publish fails, with an exit code. * chore(rapier_urdf): fix warnings * chore(rapier-urdf): typo fix --------- Co-authored-by: Sébastien Crozet --- .github/workflows/rapier-ci-build.yml | 8 ++++++++ crates/rapier3d-urdf/src/lib.rs | 14 ++++++-------- publish-all.sh | 14 ++++++++++++++ publish-testbeds.sh | 26 -------------------------- publish.sh | 35 ----------------------------------- scripts/publish-extra-formats.sh | 11 +++++++++++ scripts/publish-rapier.sh | 35 +++++++++++++++++++++++++++++++++++ scripts/publish-testbeds.sh | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 108 insertions(+), 69 deletions(-) create mode 100755 publish-all.sh delete mode 100755 publish-testbeds.sh delete mode 100755 publish.sh create mode 100755 scripts/publish-extra-formats.sh create mode 100755 scripts/publish-rapier.sh create mode 100755 scripts/publish-testbeds.sh diff --git a/.github/workflows/rapier-ci-build.yml b/.github/workflows/rapier-ci-build.yml index c44704b..32f4a4a 100644 --- a/.github/workflows/rapier-ci-build.yml +++ b/.github/workflows/rapier-ci-build.yml @@ -97,3 +97,11 @@ jobs: - uses: actions/checkout@v4 - name: check typos uses: crate-ci/typos@v1.23.2 + publish-dry-run: + runs-on: ubuntu-latest + env: + RUSTFLAGS: -D warnings + steps: + - uses: actions/checkout@v4 + - name: publish dry-run + run: ./publish-all.sh diff --git a/crates/rapier3d-urdf/src/lib.rs b/crates/rapier3d-urdf/src/lib.rs index f6d96bd..1f913da 100644 --- a/crates/rapier3d-urdf/src/lib.rs +++ b/crates/rapier3d-urdf/src/lib.rs @@ -32,10 +32,7 @@ use rapier3d::{ JointAxis, MassProperties, MultibodyJointHandle, MultibodyJointSet, RigidBody, RigidBodyBuilder, RigidBodyHandle, RigidBodySet, RigidBodyType, }, - geometry::{ - Collider, ColliderBuilder, ColliderHandle, ColliderSet, MeshConverter, SharedShape, - TriMeshFlags, - }, + geometry::{Collider, ColliderBuilder, ColliderHandle, ColliderSet, SharedShape, TriMeshFlags}, math::{Isometry, Point, Real, Vector}, na, }; @@ -493,7 +490,7 @@ fn urdf_to_rigid_body(options: &UrdfLoaderOptions, inertial: &Inertial) -> Rigid fn urdf_to_collider( options: &UrdfLoaderOptions, - mesh_dir: &Path, + _mesh_dir: &Path, // NOTO: this isn’t used if there is no external mesh feature enabled (like stl). geometry: &Geometry, origin: &Pose, ) -> Option { @@ -514,17 +511,18 @@ fn urdf_to_collider( Geometry::Sphere { radius } => SharedShape::ball(*radius as Real), Geometry::Mesh { filename, scale } => { let path: &Path = filename.as_ref(); - let scale = scale + let _scale = scale .map(|s| Vector::new(s.x as Real, s.y as Real, s.z as Real)) .unwrap_or_else(|| Vector::::repeat(1.0)); match path.extension().and_then(|ext| ext.to_str()) { #[cfg(feature = "stl")] Some("stl") | Some("STL") => { - let full_path = mesh_dir.join(filename); + use rapier3d::geometry::MeshConverter; + let full_path = _mesh_dir.join(filename); match rapier3d_stl::load_from_path( full_path, MeshConverter::TriMeshWithFlags(options.trimesh_flags), - scale, + _scale, ) { Ok(stl_shape) => { shape_transform = stl_shape.pose; diff --git a/publish-all.sh b/publish-all.sh new file mode 100755 index 0000000..d773b6b --- /dev/null +++ b/publish-all.sh @@ -0,0 +1,14 @@ +#! /bin/bash + +if [[ "$PUBLISH_MODE" == 1 ]] +then + ./scripts/publish-rapier.sh && + ./scripts/publish-testbeds.sh && + ./scripts/publish-extra-formats.sh +else + echo "Running in dry mode, re-run with \`PUBLISH_MODE=1 publish-all.sh\` to actually publish." + + DRY_RUN="--dry-run" ./scripts/publish-rapier.sh && + DRY_RUN="--dry-run" ./scripts/publish-testbeds.sh && + DRY_RUN="--dry-run" ./scripts/publish-extra-formats.sh +fi \ No newline at end of file diff --git a/publish-testbeds.sh b/publish-testbeds.sh deleted file mode 100755 index cf2b259..0000000 --- a/publish-testbeds.sh +++ /dev/null @@ -1,26 +0,0 @@ -#! /bin/bash - -tmp=$(mktemp -d) - -echo "$tmp" - -cp -r src "$tmp"/. -cp -r src_testbed "$tmp"/. -cp -r crates "$tmp"/. -cp -r LICENSE README.md "$tmp"/. - -### Publish the 2D version. -gsed 's#\.\./\.\./src#src#g' crates/rapier_testbed2d/Cargo.toml > "$tmp"/Cargo.toml -gsed -i 's#\.\./rapier#./crates/rapier#g' "$tmp"/Cargo.toml -currdir=$(pwd) -cd "$tmp" && cargo publish -cd "$currdir" || exit - - -### Publish the 3D version. -gsed 's#\.\./\.\./src#src#g' crates/rapier_testbed3d/Cargo.toml > "$tmp"/Cargo.toml -gsed -i 's#\.\./rapier#./crates/rapier#g' "$tmp"/Cargo.toml -cp -r LICENSE README.md "$tmp"/. -cd "$tmp" && cargo publish - -rm -rf "$tmp" diff --git a/publish.sh b/publish.sh deleted file mode 100755 index 56c6db0..0000000 --- a/publish.sh +++ /dev/null @@ -1,35 +0,0 @@ -#! /bin/bash - -tmp=$(mktemp -d) - -echo "$tmp" - -cp -r src "$tmp"/. -cp -r LICENSE README.md "$tmp"/. - -### Publish the 2D version. -sed 's#\.\./\.\./src#src#g' crates/rapier2d/Cargo.toml > "$tmp"/Cargo.toml -currdir=$(pwd) -cd "$tmp" && cargo publish -cd "$currdir" || exit - - -### Publish the 3D version. -sed 's#\.\./\.\./src#src#g' crates/rapier3d/Cargo.toml > "$tmp"/Cargo.toml -cp -r LICENSE README.md "$tmp"/. -cd "$tmp" && cargo publish -cd "$currdir" || exit - -### Publish the 2D f64 version. -sed 's#\.\./\.\./src#src#g' crates/rapier2d-f64/Cargo.toml > "$tmp"/Cargo.toml -currdir=$(pwd) -cd "$tmp" && cargo publish -cd "$currdir" || exit - - -### Publish the 3D f64 version. -sed 's#\.\./\.\./src#src#g' crates/rapier3d-f64/Cargo.toml > "$tmp"/Cargo.toml -cp -r LICENSE README.md "$tmp"/. -cd "$tmp" && cargo publish - -rm -rf "$tmp" diff --git a/scripts/publish-extra-formats.sh b/scripts/publish-extra-formats.sh new file mode 100755 index 0000000..1d9a990 --- /dev/null +++ b/scripts/publish-extra-formats.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +currdir=$(pwd) + +### Publish rapier3d-stl. +cd "crates/rapier3d-stl" && cargo publish $DRY_RUN || exit 1 +cd "$currdir" || exit 2 + +### Publish rapier3d-urdf. +cd "crates/rapier3d-urdf" && cargo publish $DRY_RUN || exit 1 +cd "$currdir" || exit 2 \ No newline at end of file diff --git a/scripts/publish-rapier.sh b/scripts/publish-rapier.sh new file mode 100755 index 0000000..8a1ab14 --- /dev/null +++ b/scripts/publish-rapier.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +tmp=$(mktemp -d) + +echo "$tmp" + +cp -r src "$tmp"/. +cp -r LICENSE README.md "$tmp"/. + +### Publish the 2D version. +sed 's#\.\./\.\./src#src#g' crates/rapier2d/Cargo.toml > "$tmp"/Cargo.toml +currdir=$(pwd) +cd "$tmp" && cargo publish $DRY_RUN || exit 1 +cd "$currdir" || exit 2 + + +### Publish the 3D version. +sed 's#\.\./\.\./src#src#g' crates/rapier3d/Cargo.toml > "$tmp"/Cargo.toml +cp -r LICENSE README.md "$tmp"/. +cd "$tmp" && cargo publish $DRY_RUN || exit 1 +cd "$currdir" || exit 2 + +### Publish the 2D f64 version. +sed 's#\.\./\.\./src#src#g' crates/rapier2d-f64/Cargo.toml > "$tmp"/Cargo.toml +currdir=$(pwd) +cd "$tmp" && cargo publish $DRY_RUN || exit 1 +cd "$currdir" || exit 2 + + +### Publish the 3D f64 version. +sed 's#\.\./\.\./src#src#g' crates/rapier3d-f64/Cargo.toml > "$tmp"/Cargo.toml +cp -r LICENSE README.md "$tmp"/. +cd "$tmp" && cargo publish $DRY_RUN || exit 1 + +rm -rf "$tmp" \ No newline at end of file diff --git a/scripts/publish-testbeds.sh b/scripts/publish-testbeds.sh new file mode 100755 index 0000000..92124fd --- /dev/null +++ b/scripts/publish-testbeds.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +gsed -v >> /dev/null +if [ $? == 0 ]; then + gsed=gsed +else + # Hopefully installed sed is the gnu one. + gsed=sed +fi + +tmp=$(mktemp -d) + +echo "$tmp" + +cp -r src "$tmp"/. +cp -r src_testbed "$tmp"/. +cp -r crates "$tmp"/. +cp -r LICENSE README.md "$tmp"/. + +### Publish the 2D version. +$gsed 's#\.\./\.\./src#src#g' crates/rapier_testbed2d/Cargo.toml > "$tmp"/Cargo.toml +$gsed -i 's#\.\./rapier#./crates/rapier#g' "$tmp"/Cargo.toml +currdir=$(pwd) +cd "$tmp" && cargo publish $DRY_RUN +cd "$currdir" || exit + + +### Publish the 3D version. +$gsed 's#\.\./\.\./src#src#g' crates/rapier_testbed3d/Cargo.toml > "$tmp"/Cargo.toml +$gsed -i 's#\.\./rapier#./crates/rapier#g' "$tmp"/Cargo.toml +cp -r LICENSE README.md "$tmp"/. +cd "$tmp" && cargo publish $DRY_RUN + +rm -rf "$tmp" -- cgit