diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 1b1ef3c3..1e48acc8 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -22,7 +22,7 @@ is much higher. - [optional] HDF5: **Style Guide** -1. Please paste text as text and not as a screen shot. +1. Please paste text as text and not as a screenshot. 2. If in doubt paste too much output rather than too little, i.e. don't be too scared of a large wall of text. Especially, if it's a compiler error. (Anything past the first error is largely uninformative and can be safely diff --git a/.github/ISSUE_TEMPLATE/build_failure.md b/.github/ISSUE_TEMPLATE/build_failure.md index 18b280c6..d33a789a 100644 --- a/.github/ISSUE_TEMPLATE/build_failure.md +++ b/.github/ISSUE_TEMPLATE/build_failure.md @@ -11,7 +11,7 @@ assignees: '' Unfortunately, build failures tend to be highly specific and there's many things that could go wrong on both our and your side. Therefore, a reproducer is essential. You could try the minimal setup found here: -https://github.com/BlueBrain/HighFive/blob/master/doc/installation.md#manually-install-highfive +https://github.com/highfive-devs/HighFive/blob/main/doc/installation.md#manually-install-highfive from there you can work upwards by adding complexity until you reproduce the issue. @@ -35,7 +35,7 @@ than less output.) - HDF5: **Style Guide** -1. Please paste text as text and not as a screen shot. +1. Please paste text as text and not as a screenshot. 2. If in doubt paste too much output rather than too little, i.e. don't be too scared of a large wall of text. Especially, if it's a compiler error. (Anything past the first error is largely uninformative and can be safely diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 1d9540b0..655c8967 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: true contact_links: - name: HighFive Community Support - url: https://github.com/BlueBrain/HighFive/discussions + url: https://github.com/highfive-devs/HighFive/discussions about: Please ask and answer questions here. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c05ab479..d3a76512 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -86,7 +86,7 @@ jobs: run: | ctest -j2 --output-on-failure -C $BUILD_TYPE - - name: Test No HDF5 Diagnositics + - name: Test No HDF5 Diagnostics working-directory: ${{github.workspace}}/build run: | ! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG @@ -133,7 +133,7 @@ jobs: run: | ctest -j2 --output-on-failure -C $BUILD_TYPE - - name: Test No HDF5 Diagnositics + - name: Test No HDF5 Diagnostics working-directory: ${{github.workspace}}/build run: | ! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG @@ -185,7 +185,7 @@ jobs: run: | ctest -j2 --output-on-failure -C $BUILD_TYPE - - name: Test No HDF5 Diagnositics + - name: Test No HDF5 Diagnostics working-directory: ${{github.workspace}}/build run: | ! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG @@ -232,7 +232,7 @@ jobs: run: | ctest -j2 --output-on-failure -C $BUILD_TYPE - - name: Test No HDF5 Diagnositics + - name: Test No HDF5 Diagnostics working-directory: ${{github.workspace}}/build run: | ! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG @@ -281,7 +281,7 @@ jobs: run: | ctest -j2 --output-on-failure -C $BUILD_TYPE - - name: Test No HDF5 Diagnositics + - name: Test No HDF5 Diagnostics working-directory: ${{github.workspace}}/build run: | ! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG @@ -372,7 +372,7 @@ jobs: run: | ctest -j2 --output-on-failure -C $BUILD_TYPE - - name: Test No HDF5 Diagnositics + - name: Test No HDF5 Diagnostics working-directory: ${{github.workspace}}/build run: | ! ctest --verbose -C $BUILD_TYPE | grep HDF5-DIAG @@ -428,7 +428,7 @@ jobs: run: | ctest -j2 --output-on-failure -C $BUILD_TYPE - - name: Test No HDF5 Diagnositics + - name: Test No HDF5 Diagnostics working-directory: ${{github.workspace}}/build shell: bash -l {0} run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 36b1d249..871e0b17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,7 +49,7 @@ Same as 3.0.0-beta3. ## Version 3.0.0-beta1 - 2024-07-16 This version is a major one and is breaking some usage compare to v2. -Read the migration guide from the documentation: https://highfive-devs.github.io/highfive/md__2home_2runner_2work_2_high_five_2_high_five_2doc_2migration__guide.html +Read the migration guide from the documentation: https://highfive-devs.github.io/highfive/md__2home_2runner_2work_2highfive_2highfive_2doc_2migration__guide.html The minimum version for C++ has been moved to `C++14`. diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c6b64cc..5f64e0a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ option(HIGHFIVE_VERBOSE "Set logging level to verbose." OFF) # protected constructor, e.g., `HighFive::Object::Object`. # # Starting with `2.7.0` these friend declarations don't matter -# anymore. It's mearly a means of appeasing a compiler. +# anymore. It's merely a means of appeasing a compiler. # # The values of `HIGHFIVE_HAS_FRIEND_DECLARATIONS` are: # - that the macro is undefined. diff --git a/README.md b/README.md index 67d794fb..1fa03316 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ > [!NOTE] -> HighFive was orignally developed and maintained at +> HighFive was originally developed and maintained at > https://github.com/BlueBrain/HighFive. To continue maintenance of HighFive as > an independent open-source code without support from BBP or EPFL, some (one) > of the developers decided to create this repository. @@ -37,7 +37,7 @@ target_link_libraries(foo HighFive::HighFive) - RAII for opening/closing files, groups, datasets, etc. - Compatible with the HDF5 C API. - A second API layer `H5Easy` provides a oneliner API for common, simple - usecases. + use cases. ### Feature support - create/read/write files, datasets, attributes, groups, dataspaces. @@ -52,7 +52,7 @@ target_link_libraries(foo HighFive::HighFive) - etc... (see [ChangeLog](./CHANGELOG.md)) ### Known flaws -- HighFive is not thread-safe. At best it has the same limitations as the HDF5 library. However, HighFive objects modify their members without protecting these writes. Users have reported that HighFive is not thread-safe even when using the threadsafe HDF5 library, e.g., https://github.com/BlueBrain/HighFive/discussions/675. +- HighFive is not thread-safe. At best, it has the same limitations as the HDF5 library. However, HighFive objects modify their members without protecting these writes. Users have reported that HighFive is not thread-safe even when using the threadsafe HDF5 library, e.g., https://github.com/BlueBrain/HighFive/discussions/675. - Eigen support in core HighFive was broken until v3.0. See https://github.com/BlueBrain/HighFive/issues/532. H5Easy was not affected. - The support of fixed length strings isn't ideal. @@ -68,7 +68,7 @@ using namespace HighFive; std::string filename = "/tmp/new_file.h5"; { - // We create an empty HDF55 file, by truncating an existing + // We create an empty HDF5 file, by truncating an existing // file if required: File file(filename, File::Truncate); @@ -93,12 +93,12 @@ std::string filename = "/tmp/new_file.h5"; **Note:** As of 2.8.0, one can use `highfive/highfive.hpp` to include everything HighFive. Prior to 2.8.0 one would include `highfive/H5File.hpp`. -**Note:** For advanced usecases the dataset can be created without immediately +**Note:** For advanced use cases the dataset can be created without immediately writing to it. This is common in MPI-IO related patterns, or when growing a dataset over the course of a simulation. ### H5Easy -For simple, common usecases the [highfive/H5Easy.hpp](include/highfive/H5Easy.hpp) +For simple, common use cases the [highfive/H5Easy.hpp](include/highfive/H5Easy.hpp) interface provides single line solution. Here's the example from the introduction again: ```cpp @@ -123,8 +123,8 @@ See [easy_load_dump.cpp](src/examples/easy_load_dump.cpp) for more details. interchangeably. ### And Many More Examples! -We strive to have one example per usecase or feature of HighFive, -see [src/examples/](https://github.com/highfive-devs/highfive/blob/master/src/examples/) +We strive to have one example per use case or feature of HighFive, +see [src/examples/](https://github.com/highfive-devs/highfive/blob/main/src/examples/) for more examples. @@ -155,7 +155,7 @@ target_link_libraries(foo HighFive::HighFive) ``` **Note:** `add_subdirectory(third_party/HighFive)` will search and "link" HDF5 -but wont search or link any optional dependencies such as Boost. +but won't search or link any optional dependencies such as Boost. **Note:** The two targets `HighFive` and `HighFive::HighFive` are aliases. The former is older and works with v2, while the latter was introduced in v3, @@ -163,7 +163,7 @@ because CMake targets work more nicely if they contain `::`. ### Regular Installation of HighFive -Alternatively, HighFive can be install and "found" like regular software. +Alternatively, HighFive can be installed and "found" like regular software. The project's `CMakeLists.txt` should add the following: ```cmake find_package(HighFive REQUIRED) @@ -217,7 +217,7 @@ HighFive integrates with the following libraries: #### XTensor Header Location XTensor reorganized their headers in version 0.26. HighFive attempts to guess -where the headers can be found. The guessing can be overridded by setting +where the headers can be found. The guessing can be overridden by setting `HIGHFIVE_XTENSOR_HEADER_VERSION` to: `1` for finding `xtensor.hpp` in `` and `2` for ``. @@ -269,7 +269,7 @@ Please consult its README for funding information by the Blue Brain Project or E One of the main contributors to [BlueBrain/HighFive](https://github.com/BlueBrain/HighFive) wanted to keep the project alive past the end of BBP. This repository was created to provide a -seemless continuation of HighFive; and prevent fracturing or capturing of the +seamless continuation of HighFive; and prevent fracturing or capturing of the project. This repository is not supported by the Blue Brain Project or EPFL. diff --git a/doc/Doxyfile b/doc/Doxyfile index d0cf7efb..44ba7294 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -466,7 +466,7 @@ LOOKUP_CACHE_SIZE = 0 # than 0 to get more control over the balance between CPU load and processing # speed. At this moment only the input processing can be done using multiple # threads. Since this is still an experimental feature the default is set to 1, -# which efficively disables parallel processing. Please report any issues you +# which effectively disables parallel processing. Please report any issues you # encounter. Generating dot graphs in parallel is controlled by the # DOT_NUM_THREADS setting. # Minimum value: 0, maximum value: 32, default value: 1. diff --git a/doc/developer_guide.md b/doc/developer_guide.md index 1254d27c..8c378d12 100644 --- a/doc/developer_guide.md +++ b/doc/developer_guide.md @@ -1,7 +1,7 @@ # Developer Guide First clone the repository and remember the `--recursive`: ```bash -git clone --recursive git@github.com:BlueBrain/HighFive.git +git clone --recursive git@github.com:highfive-devs/HighFive.git ``` The instructions to recover if you forgot are: ```bash @@ -149,7 +149,7 @@ arrays and mismatching sizes; and checking non-reallocation. Read/Write cycles are implemented in two distinct checks. One for writing and another for reading. When checking writing we read with a "trusted" -multi-dimensional array (a nested `std::vector`), and vice-versa when checking +multi-dimensional array (a nested `std::vector`), and vice versa when checking reading. This matters because certain bugs, like writing a column major array as if it were row-major can't be caught if one reads it back into a column-major array. @@ -227,7 +227,7 @@ brings their own copy of HighFive and uses it. The different vendoring strategies are: - **find_package**: the standard way for finding dependencies in CMake. Usually - the assumption is that HighFive was install properly, either systemwide or in + the assumption is that HighFive was installed properly, either systemwide or in a specific subdirectory. HighFive is then found with `find_package` (or `find_dependency` when called from `*Config.cmake`). @@ -242,12 +242,12 @@ strategies are: works. #### Integration Strategies -These refer to downstream projects picking different HighFive targerts to +These refer to downstream projects picking different HighFive targets to "link" with HighFive. There's four: two regular targets, a target that only adds `-I ` and one that skips all HighFive CMake code. #### Location Hints -There are serveral ways of indicating where to find a package: +There are several ways of indicating where to find a package: - **CMAKE_PREFIX_PATH**: which adds a list of directories to the list of directories that are used as prefixes when searching for `HighFiveConfig.` @@ -274,7 +274,7 @@ then their build breaks, complaining about missing HighFive targets (and it seems they can't "fix it up" on their end because then CMake complains that there's duplicate exported HighFive related targets). -The second way ommiting the missing `export()` can break downstream projects is +The second way omitting the missing `export()` can break downstream projects is if they attempt to use HighFive's build directory (not install directory) as `HighFive_ROOT` (or `CMAKE_PREFIX_PATH`). @@ -297,7 +297,7 @@ symbols will exist, and they linker will pick one (arbitrarily); which is only safe if all definitions are identical. ### Test "Organization" -The script to check everything is unwieldy. Here's a summary of what it attemps +The script to check everything is unwieldy. Here's a summary of what it attempts to do. There's three downstream project in play: `dependent_library` is a library that @@ -314,7 +314,7 @@ The conceptually easy choices are: - Libraries and applications that have dependencies that use HighFive should use `find_package` since it's the easiest way of injecting a common version - of HighFive everwhere. + of HighFive everywhere. Since we can't (and don't want to) force our consumers to use `find_package` and ban vendoring, we have to test what happens when libraries vendor diff --git a/doc/installation.md b/doc/installation.md index 3dfb3dc4..d37613a8 100644 --- a/doc/installation.md +++ b/doc/installation.md @@ -124,7 +124,7 @@ Now, fingers crossed it'll compile and install: Note that here we picked the installation path (or more precisely prefix) to be `../hdf5-v1.14.0`. You might want to install HDF5 somewhere else. This -installation prefix is the also the path you need to give CMake so it's able to +installation prefix is also the path you need to give CMake so it's able to find HDF5 later on. ### Confirming HDF5 Has Been Installed @@ -200,7 +200,7 @@ enough. Just like before the steps are, clone, configure, compile (kinda a no-op), install. The detailed instructions would be - git clone --recursive https://github.com/BlueBrain/HighFive.git + git clone --recursive https://github.com/highfive-devs/HighFive.git cd HighFive git checkout v2.8.0 @@ -251,7 +251,7 @@ The required CMake commands are: [100%] Linking CXX executable dummy /usr/bin/c++ ... -o dummy -Wl,-rpath,${HDF5_ROOT}/lib ${HDF5_ROOT}/lib/libhdf5.so.310.0.0 ... -Pay attention to the semi-colon (not colon like the rest of Linux) used to +Pay attention to the semicolon (not colon like the rest of Linux) used to separate directories in `CMAKE_PREFIX_PATH`. If this worked you should be set to either copy the instruction to your "real" project, or start developing the rest of your project. diff --git a/doc/migration_guide.md b/doc/migration_guide.md index c169d37b..d12e6fda 100644 --- a/doc/migration_guide.md +++ b/doc/migration_guide.md @@ -52,7 +52,7 @@ dset.read(x); ``` continues to be correct in `v3` and can check that the dimensions match. The inspector recognizes `double[n][m]` as a contiguous array of doubles. -Therefore, it'll use the shallow-copy buffer and avoid the any additional +Therefore, it'll use the shallow-copy buffer and avoid any additional allocations or copies. ### Intentional Raw Read @@ -110,7 +110,7 @@ header only library, it needs to perform two tasks: 2. Export a target that sets `-I ${HIGHFIVE_DIR}` and links with HDF5. We've removed all flags for optional dependencies, such as -`-DHIGHFIVE_USE_BOOST`. Instead user that want to read/write into/from +`-DHIGHFIVE_USE_BOOST`. Instead users that want to read/write into/from optionally supported containers, include a header with the corresponding name and make sure to adjust their CMake code to link with the dependency. @@ -177,7 +177,7 @@ The feature is prone to accidentally not failing. Consider an array that shape `[n, m]` and in general both `n, m > 0`. Hence, one should always be reading into a two-dimensional array, even if `n == 1` or `m == 1`. However, due to broadcasting, if one of the dimensions (accidentally) happens to be one, then -the checks wont fails. This isn't a bug, however, it can hide a bug. For +the checks won't fail. This isn't a bug, however, it can hide a bug. For example if the test happen to use `[n, 1]` datasets and a one-dimensional array. @@ -254,8 +254,8 @@ HighFive::File open(std::string name, HighFive::File::AccessMode mode) { } ``` -Note: There's a caveat, the short-hand notation `File::ReadOnly` doesn't have -an address. Meaning one can't take it's address or const-references of it +Note: There's a caveat, the shorthand notation `File::ReadOnly` doesn't have +an address. Meaning one can't take its address or const-references of it (results in a linker error about missing symbol `File::ReadOnly`). Use `File::AccessMode::ReadOnly` instead.