diff --git a/Cargo.toml b/Cargo.toml index 6f7c4f7de..f82792dc1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,8 +12,8 @@ authors = [ ] keywords = ["hdf5"] license = "MIT OR Apache-2.0" -repository = "https://github.com/aldanor/hdf5-rust" -homepage = "https://github.com/aldanor/hdf5-rust" +repository = "https://github.com/metno/hdf5-rust" +homepage = "https://github.com/metno/hdf5-rust" edition = "2021" [workspace.dependencies] @@ -26,8 +26,8 @@ mpi-sys = "0.2" num-complex = { version = "0.4", default-features = false } regex = "1.10" # internal -hdf5 = { version = "0.8.1", path = "hdf5" } # !V -hdf5-derive = { version = "0.8.1", path = "hdf5-derive" } # !V -hdf5-src = { version = "0.8.1", path = "hdf5-src" } # !V -hdf5-sys = { version = "0.8.1", path = "hdf5-sys" } # !V -hdf5-types = { version = "0.8.1", path = "hdf5-types" } # !V +hdf5 = { package = "hdf5-metno", version = "0.8.1", path = "hdf5" } # !V +hdf5-derive = { package = "hdf5-metno-derive", version = "0.8.1", path = "hdf5-derive" } # !V +hdf5-src = { package = "hdf5-metno-src", version = "0.8.1", path = "hdf5-src" } # !V +hdf5-sys = { package = "hdf5-metno-sys", version = "0.8.1", path = "hdf5-sys" } # !V +hdf5-types = { package = "hdf5-metno-types", version = "0.8.1", path = "hdf5-types" } # !V diff --git a/README.md b/README.md index 31c68c330..2d46d3da5 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,16 @@ HDF5 for Rust. -[![Build](https://github.com/aldanor/hdf5-rust/workflows/CI/badge.svg)](https://github.com/aldanor/hdf5-rust/actions?query=branch%3Amaster) -[![Latest Version](https://img.shields.io/crates/v/hdf5.svg)](https://crates.io/crates/hdf5) -[![Documentation](https://docs.rs/hdf5/badge.svg)](https://docs.rs/hdf5) -[![Changelog](https://img.shields.io/github/v/release/aldanor/hdf5-rust)](https://github.com/aldanor/hdf5-rust/blob/master/CHANGELOG.md) +[![Build](https://github.com/metno/hdf5-rust/workflows/CI/badge.svg)](https://github.com/metno/hdf5-rust/actions?query=branch%3Amain) +[![Latest Version](https://img.shields.io/crates/v/hdf5-metno.svg)](https://crates.io/crates/hdf5-metno) +[![Documentation](https://docs.rs/hdf5-metno/badge.svg)](https://docs.rs/hdf5-metno) +[![Changelog](https://img.shields.io/github/v/release/metno/hdf5-rust)](https://github.com/metno/hdf5-rust/blob/master/CHANGELOG.md) ![hdf5: rustc 1.51+](https://img.shields.io/badge/hdf5-rustc_1.51+-lightblue.svg) -[![Total Lines](https://tokei.rs/b1/github/aldanor/hdf5-rust)](https://github.com/aldanor/hdf5-rust) +[![Total Lines](https://tokei.rs/b1/github/metno/hdf5-rust)](https://github.com/metno/hdf5-rust) [![Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) -The `hdf5` crate (previously known as `hdf5-rs`) provides thread-safe Rust bindings and +The `hdf5-metno` crate (also known under the pre-fork name of `hdf5`) provides thread-safe Rust bindings and high-level wrappers for the HDF5 library API. Some of the features include: - Thread-safety with non-threadsafe libhdf5 builds guaranteed via reentrant mutexes. @@ -23,6 +23,12 @@ Direct low-level bindings are also available and are provided in the `hdf5-sys` Requires HDF5 library of version 1.8.4 or later. +## Fork +This is a fork of https://github.com/aldanor/hdf5-rust used for publishing newer versions of the crate. This includes a change in the crate name to allow publishing on crates.io. For backwards compatibility consider using the following in your `Cargo.toml`: +```yaml +hdf5 = { package = "hdf5-metno", version = "0.8.1" } +``` + ## Example ```rust diff --git a/hdf5-derive/Cargo.toml b/hdf5-derive/Cargo.toml index 801ca5f15..3cedae3c7 100644 --- a/hdf5-derive/Cargo.toml +++ b/hdf5-derive/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "hdf5-derive" +name = "hdf5-metno-derive" description = "Derive macro for HDF5 structs and enums." categories = ["procedural-macro-helpers"] readme = "README.md" @@ -23,4 +23,4 @@ syn = { version = "2.0", features = ["derive", "extra-traits"]} [dev-dependencies] trybuild = "1.0" -hdf5.workspace = true +hdf5-metno = { path = "../hdf5" } diff --git a/hdf5-derive/src/lib.rs b/hdf5-derive/src/lib.rs index a93ceef68..8e9f02a40 100644 --- a/hdf5-derive/src/lib.rs +++ b/hdf5-derive/src/lib.rs @@ -23,7 +23,7 @@ pub fn derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream { let expanded = quote! { #[allow(dead_code, unused_variables, unused_attributes)] const #dummy: () = { - extern crate hdf5 as _h5; + use ::hdf5_metno as _h5; #[automatically_derived] unsafe impl #impl_generics _h5::types::H5Type for #name #ty_generics #where_clause { diff --git a/hdf5-derive/tests/compile-fail/empty-enum.rs b/hdf5-derive/tests/compile-fail/empty-enum.rs index a8604731c..1b8d3adcd 100644 --- a/hdf5-derive/tests/compile-fail/empty-enum.rs +++ b/hdf5-derive/tests/compile-fail/empty-enum.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; #[derive(H5Type)] //~^ ERROR proc-macro derive diff --git a/hdf5-derive/tests/compile-fail/empty-enum.stderr b/hdf5-derive/tests/compile-fail/empty-enum.stderr index f8fd7d87d..af307a994 100644 --- a/hdf5-derive/tests/compile-fail/empty-enum.stderr +++ b/hdf5-derive/tests/compile-fail/empty-enum.stderr @@ -1,5 +1,5 @@ error: cannot derive `H5Type` for empty enums - --> $DIR/empty-enum.rs:7:6 + --> tests/compile-fail/empty-enum.rs:6:6 | -7 | enum Foo {} +6 | enum Foo {} | ^^^ diff --git a/hdf5-derive/tests/compile-fail/empty-struct.rs b/hdf5-derive/tests/compile-fail/empty-struct.rs index e4681007b..1be50c078 100644 --- a/hdf5-derive/tests/compile-fail/empty-struct.rs +++ b/hdf5-derive/tests/compile-fail/empty-struct.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; #[derive(H5Type)] //~^ ERROR proc-macro derive diff --git a/hdf5-derive/tests/compile-fail/empty-struct.stderr b/hdf5-derive/tests/compile-fail/empty-struct.stderr index 3ad6402e5..6acff95ec 100644 --- a/hdf5-derive/tests/compile-fail/empty-struct.stderr +++ b/hdf5-derive/tests/compile-fail/empty-struct.stderr @@ -1,5 +1,5 @@ error: cannot derive `H5Type` for empty structs - --> $DIR/empty-struct.rs:7:8 + --> tests/compile-fail/empty-struct.rs:6:8 | -7 | struct Foo {} +6 | struct Foo {} | ^^^ diff --git a/hdf5-derive/tests/compile-fail/empty-tuple-struct.rs b/hdf5-derive/tests/compile-fail/empty-tuple-struct.rs index 8047a9537..3b184370e 100644 --- a/hdf5-derive/tests/compile-fail/empty-tuple-struct.rs +++ b/hdf5-derive/tests/compile-fail/empty-tuple-struct.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; #[derive(H5Type)] //~^ ERROR proc-macro derive diff --git a/hdf5-derive/tests/compile-fail/empty-tuple-struct.stderr b/hdf5-derive/tests/compile-fail/empty-tuple-struct.stderr index c4ddab801..30f8b6576 100644 --- a/hdf5-derive/tests/compile-fail/empty-tuple-struct.stderr +++ b/hdf5-derive/tests/compile-fail/empty-tuple-struct.stderr @@ -1,5 +1,5 @@ error: cannot derive `H5Type` for empty tuple structs - --> $DIR/empty-tuple-struct.rs:7:8 + --> tests/compile-fail/empty-tuple-struct.rs:6:8 | -7 | struct Foo(); +6 | struct Foo(); | ^^^ diff --git a/hdf5-derive/tests/compile-fail/enum-no-repr.rs b/hdf5-derive/tests/compile-fail/enum-no-repr.rs index b00063482..0010d9d7a 100644 --- a/hdf5-derive/tests/compile-fail/enum-no-repr.rs +++ b/hdf5-derive/tests/compile-fail/enum-no-repr.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; #[derive(H5Type)] //~^ ERROR proc-macro derive diff --git a/hdf5-derive/tests/compile-fail/enum-no-repr.stderr b/hdf5-derive/tests/compile-fail/enum-no-repr.stderr index 85c0f1c5b..b3498682e 100644 --- a/hdf5-derive/tests/compile-fail/enum-no-repr.stderr +++ b/hdf5-derive/tests/compile-fail/enum-no-repr.stderr @@ -1,5 +1,5 @@ error: `H5Type` can only be derived for enums with explicit representation - --> $DIR/enum-no-repr.rs:7:6 + --> tests/compile-fail/enum-no-repr.rs:6:6 | -7 | enum Foo { +6 | enum Foo { | ^^^ diff --git a/hdf5-derive/tests/compile-fail/enum-non-scalar.rs b/hdf5-derive/tests/compile-fail/enum-non-scalar.rs index b538f5083..934f85339 100644 --- a/hdf5-derive/tests/compile-fail/enum-non-scalar.rs +++ b/hdf5-derive/tests/compile-fail/enum-non-scalar.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; #[derive(H5Type)] //~^ ERROR proc-macro derive diff --git a/hdf5-derive/tests/compile-fail/enum-non-scalar.stderr b/hdf5-derive/tests/compile-fail/enum-non-scalar.stderr index 36b351888..0928b411f 100644 --- a/hdf5-derive/tests/compile-fail/enum-non-scalar.stderr +++ b/hdf5-derive/tests/compile-fail/enum-non-scalar.stderr @@ -1,5 +1,5 @@ error: `H5Type` can only be derived for enums with scalar discriminants - --> $DIR/enum-non-scalar.rs:7:6 + --> tests/compile-fail/enum-non-scalar.rs:6:6 | -7 | enum Foo { +6 | enum Foo { | ^^^ diff --git a/hdf5-derive/tests/compile-fail/pd-empty-struct.rs b/hdf5-derive/tests/compile-fail/pd-empty-struct.rs index 7bb9b309e..28102f666 100644 --- a/hdf5-derive/tests/compile-fail/pd-empty-struct.rs +++ b/hdf5-derive/tests/compile-fail/pd-empty-struct.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; use std::marker::PhantomData; diff --git a/hdf5-derive/tests/compile-fail/pd-empty-struct.stderr b/hdf5-derive/tests/compile-fail/pd-empty-struct.stderr index 828afcc1b..58900c456 100644 --- a/hdf5-derive/tests/compile-fail/pd-empty-struct.stderr +++ b/hdf5-derive/tests/compile-fail/pd-empty-struct.stderr @@ -1,5 +1,5 @@ error: cannot derive `H5Type` for empty structs - --> $DIR/pd-empty-struct.rs:9:8 + --> tests/compile-fail/pd-empty-struct.rs:8:8 | -9 | struct Foo { +8 | struct Foo { | ^^^ diff --git a/hdf5-derive/tests/compile-fail/pd-empty-tuple-struct.rs b/hdf5-derive/tests/compile-fail/pd-empty-tuple-struct.rs index 47f5ba673..4b4188007 100644 --- a/hdf5-derive/tests/compile-fail/pd-empty-tuple-struct.rs +++ b/hdf5-derive/tests/compile-fail/pd-empty-tuple-struct.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; use std::marker::PhantomData; diff --git a/hdf5-derive/tests/compile-fail/pd-empty-tuple-struct.stderr b/hdf5-derive/tests/compile-fail/pd-empty-tuple-struct.stderr index 1d845d505..3adb0a954 100644 --- a/hdf5-derive/tests/compile-fail/pd-empty-tuple-struct.stderr +++ b/hdf5-derive/tests/compile-fail/pd-empty-tuple-struct.stderr @@ -1,5 +1,5 @@ error: cannot derive `H5Type` for empty tuple structs - --> $DIR/pd-empty-tuple-struct.rs:9:8 + --> tests/compile-fail/pd-empty-tuple-struct.rs:8:8 | -9 | struct Foo(PhantomData); +8 | struct Foo(PhantomData); | ^^^ diff --git a/hdf5-derive/tests/compile-fail/struct-no-repr.rs b/hdf5-derive/tests/compile-fail/struct-no-repr.rs index b8250588f..ef4638a11 100644 --- a/hdf5-derive/tests/compile-fail/struct-no-repr.rs +++ b/hdf5-derive/tests/compile-fail/struct-no-repr.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; #[derive(H5Type)] //~^ ERROR proc-macro derive diff --git a/hdf5-derive/tests/compile-fail/struct-no-repr.stderr b/hdf5-derive/tests/compile-fail/struct-no-repr.stderr index 6531dbd4f..06e40f81e 100644 --- a/hdf5-derive/tests/compile-fail/struct-no-repr.stderr +++ b/hdf5-derive/tests/compile-fail/struct-no-repr.stderr @@ -1,5 +1,5 @@ error: `H5Type` requires repr(C), repr(packed) or repr(transparent) for structs - --> $DIR/struct-no-repr.rs:7:8 + --> tests/compile-fail/struct-no-repr.rs:6:8 | -7 | struct Foo { +6 | struct Foo { | ^^^ diff --git a/hdf5-derive/tests/compile-fail/tuple-struct-no-repr.rs b/hdf5-derive/tests/compile-fail/tuple-struct-no-repr.rs index 8e40fbb1d..12dfb06d1 100644 --- a/hdf5-derive/tests/compile-fail/tuple-struct-no-repr.rs +++ b/hdf5-derive/tests/compile-fail/tuple-struct-no-repr.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; #[derive(H5Type)] //~^ ERROR proc-macro derive diff --git a/hdf5-derive/tests/compile-fail/tuple-struct-no-repr.stderr b/hdf5-derive/tests/compile-fail/tuple-struct-no-repr.stderr index 735d15909..c33b3a15b 100644 --- a/hdf5-derive/tests/compile-fail/tuple-struct-no-repr.stderr +++ b/hdf5-derive/tests/compile-fail/tuple-struct-no-repr.stderr @@ -1,5 +1,5 @@ error: `H5Type` requires repr(C), repr(packed) or repr(transparent) for tuple structs - --> $DIR/tuple-struct-no-repr.rs:7:8 + --> tests/compile-fail/tuple-struct-no-repr.rs:6:8 | -7 | struct Foo(i64); +6 | struct Foo(i64); | ^^^ diff --git a/hdf5-derive/tests/compile-fail/unit-struct.rs b/hdf5-derive/tests/compile-fail/unit-struct.rs index c8accaa54..fa804695c 100644 --- a/hdf5-derive/tests/compile-fail/unit-struct.rs +++ b/hdf5-derive/tests/compile-fail/unit-struct.rs @@ -1,5 +1,4 @@ -extern crate hdf5_derive; -use hdf5_derive::H5Type; +use hdf5_metno_derive::H5Type; #[derive(H5Type)] //~^ ERROR proc-macro derive diff --git a/hdf5-derive/tests/compile-fail/unit-struct.stderr b/hdf5-derive/tests/compile-fail/unit-struct.stderr index 2c736bc5b..1de04c654 100644 --- a/hdf5-derive/tests/compile-fail/unit-struct.stderr +++ b/hdf5-derive/tests/compile-fail/unit-struct.stderr @@ -1,5 +1,5 @@ error: cannot derive `H5Type` for unit structs - --> $DIR/unit-struct.rs:7:8 + --> tests/compile-fail/unit-struct.rs:6:8 | -7 | struct Foo; +6 | struct Foo; | ^^^ diff --git a/hdf5-derive/tests/test.rs b/hdf5-derive/tests/test.rs index 50b824d20..dbb6555ca 100644 --- a/hdf5-derive/tests/test.rs +++ b/hdf5-derive/tests/test.rs @@ -1,11 +1,10 @@ -#[macro_use] -extern crate hdf5_derive; - use std::marker::PhantomData; use std::mem; use hdf5::types::TypeDescriptor as TD; use hdf5::types::*; +use hdf5_metno as hdf5; +use hdf5_metno_derive::H5Type; #[derive(H5Type)] #[repr(C)] diff --git a/hdf5-src/Cargo.toml b/hdf5-src/Cargo.toml index 4eadb2a56..21c261548 100644 --- a/hdf5-src/Cargo.toml +++ b/hdf5-src/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "hdf5-src" +name = "hdf5-metno-src" license-file = "ext/hdf5/COPYING" build = "build.rs" description = "Build script for compiling HDF5 C library from source." diff --git a/hdf5-sys/Cargo.toml b/hdf5-sys/Cargo.toml index d3077e116..71ead7fc3 100644 --- a/hdf5-sys/Cargo.toml +++ b/hdf5-sys/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "hdf5-sys" +name = "hdf5-metno-sys" build = "build.rs" description = "Native bindings to the HDF5 library." links = "hdf5" diff --git a/hdf5-types/Cargo.toml b/hdf5-types/Cargo.toml index 0ecf295e3..8845b0741 100644 --- a/hdf5-types/Cargo.toml +++ b/hdf5-types/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "hdf5-types" +name = "hdf5-metno-types" description = "Native Rust equivalents of HDF5 types." readme = "README.md" build = "build.rs" diff --git a/hdf5/Cargo.toml b/hdf5/Cargo.toml index c8782b693..edf746e13 100644 --- a/hdf5/Cargo.toml +++ b/hdf5/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "hdf5" +name = "hdf5-metno" readme = "../README.md" description = "Thread-safe Rust bindings for the HDF5 library." build = "build.rs" diff --git a/hdf5/examples/chunking.rs b/hdf5/examples/chunking.rs index f12d6808f..8c153e8f9 100644 --- a/hdf5/examples/chunking.rs +++ b/hdf5/examples/chunking.rs @@ -1,6 +1,7 @@ //! Create, write, and read a chunked dataset use hdf5::{File, Result}; +use hdf5_metno as hdf5; use ndarray::Array2; fn main() -> Result<()> { diff --git a/hdf5/examples/simple.rs b/hdf5/examples/simple.rs index 64563dc39..967a05ca7 100644 --- a/hdf5/examples/simple.rs +++ b/hdf5/examples/simple.rs @@ -1,6 +1,7 @@ #[cfg(feature = "blosc")] use hdf5::filters::blosc_set_nthreads; use hdf5::{File, H5Type, Result}; +use hdf5_metno as hdf5; use ndarray::{arr2, s}; #[derive(H5Type, Clone, PartialEq, Debug)] // register with HDF5 diff --git a/hdf5/tests/common/gen.rs b/hdf5/tests/common/gen.rs index 4a08a5734..22cd00daf 100644 --- a/hdf5/tests/common/gen.rs +++ b/hdf5/tests/common/gen.rs @@ -4,6 +4,7 @@ use std::iter; use hdf5::types::{FixedAscii, FixedUnicode, VarLenArray, VarLenAscii, VarLenUnicode}; use hdf5::H5Type; +use hdf5_metno as hdf5; use half::f16; use ndarray::{ArrayD, SliceInfo, SliceInfoElem}; diff --git a/hdf5/tests/common/util.rs b/hdf5/tests/common/util.rs index 1f36e6d64..ed4f8500d 100644 --- a/hdf5/tests/common/util.rs +++ b/hdf5/tests/common/util.rs @@ -1,5 +1,7 @@ use super::gen::gen_ascii; +use hdf5_metno as hdf5; + pub fn random_filename() -> String { gen_ascii(&mut rand::thread_rng(), 8) } diff --git a/hdf5/tests/test_dataset.rs b/hdf5/tests/test_dataset.rs index caefc5c4e..8dde6dc34 100644 --- a/hdf5/tests/test_dataset.rs +++ b/hdf5/tests/test_dataset.rs @@ -5,6 +5,7 @@ use std::io::{Read, Seek, SeekFrom}; use ndarray::{s, Array1, Array2, ArrayD, IxDyn, SliceInfo}; use rand::prelude::{Rng, SeedableRng, SmallRng}; +use hdf5_metno as hdf5; use hdf5_types::TypeDescriptor; mod common; diff --git a/hdf5/tests/test_datatypes.rs b/hdf5/tests/test_datatypes.rs index 1b83638f9..14d86558d 100644 --- a/hdf5/tests/test_datatypes.rs +++ b/hdf5/tests/test_datatypes.rs @@ -3,6 +3,7 @@ mod common; use hdf5::types::{TypeDescriptor as TD, *}; use hdf5::{from_id, Datatype, H5Type}; +use hdf5_metno as hdf5; use hdf5_sys::h5i::H5I_INVALID_HID; diff --git a/hdf5/tests/test_plist.rs b/hdf5/tests/test_plist.rs index fdec433e0..e5c960703 100644 --- a/hdf5/tests/test_plist.rs +++ b/hdf5/tests/test_plist.rs @@ -4,6 +4,7 @@ use std::str::FromStr; use hdf5::dataset::*; use hdf5::file::*; use hdf5::plist::*; +use hdf5_metno as hdf5; macro_rules! test_pl { ($ty:ident, $field:ident ($($arg:expr),+): $($name:ident=$value:expr),+) => ( diff --git a/hdf5/tests/tests.rs b/hdf5/tests/tests.rs index f7bae99b9..78a5723ec 100644 --- a/hdf5/tests/tests.rs +++ b/hdf5/tests/tests.rs @@ -1,3 +1,5 @@ +use hdf5_metno as hdf5; + #[test] fn roundtrip_compound_type() { use hdf5::H5Type;