diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index a2aa2a1b..abe20443 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -76,6 +76,7 @@ jobs: check-pr-title: name: "Check Title Format" + if: ${{ github.ref != 'refs/heads/main' }} runs-on: ubuntu-latest steps: - name: "Check Title Format" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8b5574f0..2c407a18 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Nightly CI +name: Release on: workflow_dispatch: push: diff --git a/RELEASING.md b/RELEASING.md index 6fe3f056..bde17c74 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -21,6 +21,7 @@ which just means you get to skip a few chore steps. 1. Create a new `release-x.y` branch 2. Perform any maintenance actions 3. Run `./scripts/make-release.sh` +4. When the Release workflow succeeds, publish the release using the GitHub UI ### 1. Create a new `release-x.y` Branch diff --git a/scripts/make-release.sh b/scripts/make-release.sh index 0578f0fb..218bb15d 100755 --- a/scripts/make-release.sh +++ b/scripts/make-release.sh @@ -3,4 +3,4 @@ NOTES=$(git cliff --unreleased --tag $1) git tag -a --cleanup verbatim -e -m "$NOTES" $1 git push origin $1 -gh release create $1 --verify-tag --notes "$NOTES" +gh release create $1 --draft --verify-tag --notes "$NOTES" diff --git a/tiledb/api/src/string.rs b/tiledb/api/src/string.rs index 2312842b..c8db4e9e 100644 --- a/tiledb/api/src/string.rs +++ b/tiledb/api/src/string.rs @@ -48,9 +48,16 @@ impl TDBString { }; if res == ffi::TILEDB_OK { - let raw_slice: &[u8] = unsafe { - std::slice::from_raw_parts(c_str as *const u8, c_len) - }; + // The type of `c_str` is platform dependent which means that we + // have to cast anything that might use i8 to u8. However, this + // means that platforms (i.e., Ubuntu arm64) that have a u8 + // c_char type will generate a clippy error about an unnecessary + // cast from u8 to u8. Hence why we're ignoring the lint here. + #[allow(clippy::unnecessary_cast)] + let c_u8_str = c_str as *const u8; + + let raw_slice: &[u8] = + unsafe { std::slice::from_raw_parts(c_u8_str, c_len) }; match std::str::from_utf8(raw_slice) { Ok(s) => Ok(s.to_owned()), Err(e) => Err(Error::NonUtf8(raw_slice.to_vec(), e)),