diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 000000000..b6421ddd6 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,35 @@ +# Read the Docs configuration file for Sphinx projects +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the OS, Python version and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.12" + # You can also specify other tool versions: + # nodejs: "20" + # rust: "1.70" + # golang: "1.20" + +# Build documentation in the "docs/" directory with Sphinx +sphinx: + configuration: docs/source/conf.py + # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs + # builder: "dirhtml" + # Fail on all warnings to avoid broken references + # fail_on_warning: true + +# Optionally build your docs in additional formats such as PDF and ePub +formats: + - pdf +# - epub + +# Optional but recommended, declare the Python requirements required +# to build your documentation +# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html +python: + install: + - requirements: docs/requirements.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index c155595cc..96aa92169 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,14 +3,26 @@ Change Log --- -## Unreleased +## 1.0.1 (2023-12-15) + +This patch release primarily addresses minor bug fixes and is needed to update +the zfpy Python wheels. + +### Added + +- A new build macro, `BUILD_TESTING_FULL`, specifies that all unit tests be + built; `BUILD_TESTING` produces a smaller subset of tests. Full tests and + documentation are now included in releases. ### Fixed -- #220: Errors reported with scikit-build when running `CMake` with `BUILD_ZFPY` enabled -- #177: Full test suite not in release -- #176: `CFP` API is not exposed via CMake configuration file - #169: `libm` dependency is not always correctly detected. +- #171: `ptrdiff_t` is not always imported in Cython. +- #176: cfp API is not exposed via CMake configuration file. +- #177: Full test suite is not included in release. +- #181: `rpath` is not set correctly in executables. +- #204: Array strides are not passed by value in zFORp. +- #220: Errors reported with scikit-build when building zfpy. --- diff --git a/LICENSE b/LICENSE index 9bed13fb4..3c726d295 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2014-2022, Lawrence Livermore National Security, LLC +Copyright (c) 2014-2023, Lawrence Livermore National Security, LLC All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index ec5ada556..5ee0ef636 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ZFP === [![Github Actions Build Status](https://github.com/LLNL/zfp/workflows/Run%20Tests/badge.svg)](https://github.com/LLNL/zfp/actions/workflows/tests.yml) [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/qb3ld7j11segy52k/branch/develop?svg=true)](https://ci.appveyor.com/project/lindstro/zfp) -[![Documentation Status](https://readthedocs.org/projects/zfp/badge/?version=release1.0.0)](https://zfp.readthedocs.io/en/release1.0.0/) +[![Documentation Status](https://readthedocs.org/projects/zfp/badge/?version=release1.0.1)](https://zfp.readthedocs.io/en/release1.0.1/) [![codecov](https://codecov.io/gh/LLNL/zfp/branch/develop/graph/badge.svg?token=jqvMVvgRQ9)](https://codecov.io/gh/LLNL/zfp) [![R&D100 - Winner](https://img.shields.io/badge/R%26D100-Winner-gold)](https://www.rdworldonline.com/rd-100-winners-for-2023-are-announced-2/) @@ -58,18 +58,18 @@ Note: GNU builds are less flexible and do not support all available features, e.g., CUDA support. For further configuration and build instructions, please consult the -[documentation](https://zfp.readthedocs.io/en/release1.0.0/installation.html). +[documentation](https://zfp.readthedocs.io/en/release1.0.1/installation.html). For examples of how to call the C library and use the C++ array classes, -see the [examples](https://zfp.readthedocs.io/en/release1.0.0/examples.html) +see the [examples](https://zfp.readthedocs.io/en/release1.0.1/examples.html) section. Documentation ------------- -Full HTML [documentation](http://zfp.readthedocs.io/en/release1.0.0) is +Full HTML [documentation](http://zfp.readthedocs.io/en/release1.0.1) is available online. -A [PDF](http://readthedocs.org/projects/zfp/downloads/pdf/release1.0.0/) +A [PDF](http://readthedocs.org/projects/zfp/downloads/pdf/release1.0.1/) version is also available. Further information on the zfp software is included in these files: diff --git a/appveyor.yml b/appveyor.yml index 18d3cb35b..8a1e4688b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 1.0.0-{build} +version: 1.0.1-{build} environment: # zfpy only build for Release builds (otherwise need debug python libs python27_d.lib) diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 000000000..f0c7424af --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,4 @@ +sphinx-fortran==1.1.1 + +# required by sphinx-fortran but not installed on RTD +six diff --git a/docs/source/conf.py b/docs/source/conf.py index b669ef5bf..0536c39e6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -46,8 +46,8 @@ # General information about the project. project = u'zfp' -copyright = u'2014-2022, LLNL-CODE-663824' -author = u'Peter Lindstrom, Garrett Morrison' +copyright = u'2014-2023, LLNL-CODE-663824' +author = u'Peter Lindstrom, Danielle Asher' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -56,14 +56,17 @@ # The short X.Y version. version = u'1.0' # The full version, including alpha/beta/rc tags. -release = u'1.0.0' +release = u'1.0.1' + +# The release date (as the RTD server is in another time zone). +today = u'Dec 15, 2023' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = 'en' # Enable automatic numbering of figures referenced by :numref:. numfig = True @@ -149,7 +152,7 @@ # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'zfp.tex', u'zfp Documentation', - u'\shortstack[l]{Peter Lindstrom\\\\Garrett Morrison}', 'manual'), + u'\shortstack[l]{Peter Lindstrom\\\\Danielle Asher}', 'manual'), ] diff --git a/docs/source/contributors.rst b/docs/source/contributors.rst index 53d33fbf9..45e945c24 100644 --- a/docs/source/contributors.rst +++ b/docs/source/contributors.rst @@ -7,7 +7,7 @@ Contributors * |zfp| development team - Peter Lindstrom - - Garrett Morrison + - Danielle Asher * Major contributors diff --git a/docs/source/installation.rst b/docs/source/installation.rst index fb11314b8..9009fa891 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -20,7 +20,7 @@ core library can also be built using GNU make on Linux, macOS, and MinGW. C++11, and C++14. .. note:: - |zfp| requires 64-bit compiler and operating system support. + |zfp| requires compiler support for 64-bit integers. .. _cmake_builds: @@ -30,7 +30,7 @@ CMake Builds To build |zfp| using `CMake `__ on Linux or macOS, start a Unix shell and type:: - cd zfp-1.0.0 + cd zfp-1.0.1 mkdir build cd build cmake .. @@ -48,7 +48,7 @@ By default, CMake builds will attempt to locate and use To build |zfp| using Visual Studio on Windows, start a DOS shell and type:: - cd zfp-1.0.0 + cd zfp-1.0.1 mkdir build cd build cmake .. @@ -67,7 +67,7 @@ GNU Builds To build |zfp| using `gcc `__ without `OpenMP `__, type:: - cd zfp-1.0.0 + cd zfp-1.0.1 gmake This builds |libzfp| as a static library as well as the |zfp| @@ -193,6 +193,8 @@ Regardless of the settings below, |libzfp| will always be built. CMake default: on. GNU make default: off. +.. note:: + On macOS, add :code:`OS=mac` when building shared libraries with GNU make. .. index:: single: Configuration diff --git a/docs/source/introduction.rst b/docs/source/introduction.rst index c2f180f3c..2757eab0f 100644 --- a/docs/source/introduction.rst +++ b/docs/source/introduction.rst @@ -41,6 +41,8 @@ exactly, is also supported. `Lawrence Livermore National Laboratory `__ and is supported by the U.S. Department of Energy's `Exascale Computing Project `__. +|zfp| is a +`2023 R&D 100 Award Winner `__. Availability @@ -57,11 +59,12 @@ bindings) to install. |zfp| is also available through several package managers, including Conda (both `C/C++ `__ and `Python `__ packages are available), -`PIP `__, and -`Spack `__. -`RPM packages `__ are available -for several Linux distributions and may be installed using :code:`apt` or -:code:`yum`. +`PIP `__, +`Spack `__, and +`MacPorts `__. +`Linux packages `__ are available +for several distributions and may be installed, for example, using :code:`apt` +and :code:`yum`. .. _app-support: @@ -83,7 +86,7 @@ plugins, and formats, such as select compressors shipped with `HDF5 binaries `__. -* `Compression functions `__ +* `Compression functions `__ for Intel\ |reg| `Integrated Performance Primitives `__. * `Compressed MPI messages `__ diff --git a/docs/source/license.rst b/docs/source/license.rst index 0c8d6e5ce..1129b833f 100644 --- a/docs/source/license.rst +++ b/docs/source/license.rst @@ -3,7 +3,7 @@ License ======= -| Copyright (c) 2014-2022, Lawrence Livermore National Security, LLC +| Copyright (c) 2014-2023, Lawrence Livermore National Security, LLC | All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/docs/source/versions.rst b/docs/source/versions.rst index d42818654..0824e55cd 100644 --- a/docs/source/versions.rst +++ b/docs/source/versions.rst @@ -3,6 +3,30 @@ Release Notes ============= +1.0.1 (2023-12-15) +------------------ + +This patch release primarily addresses minor bug fixes and is needed to update +the zfpy Python wheels. + +**Added** + +- A new build macro, ``BUILD_TESTING_FULL``, specifies that all unit tests be + built; ``BUILD_TESTING`` produces a smaller subset of tests. Full tests and + documentation are now included in releases. + +**Fixed** + +- #169: `libm` dependency is not always correctly detected. +- #171: `ptrdiff_t` is not always imported in Cython. +- #176: cfp API is not exposed via CMake configuration file. +- #177: Full test suite is not included in release. +- #181: `rpath` is not set correctly in executables. +- #204: Array strides are not passed by value in zFORp. +- #220: Errors reported with scikit-build when building zfpy. + +---- + 1.0.0 (2022-08-01) ------------------ diff --git a/fortran/zfp.f90 b/fortran/zfp.f90 index 8418b0e51..ae5714685 100644 --- a/fortran/zfp.f90 +++ b/fortran/zfp.f90 @@ -53,7 +53,7 @@ module zfp integer, parameter :: const_zFORp_version_major = 1 integer, parameter :: const_zFORp_version_minor = 0 - integer, parameter :: const_zFORp_version_patch = 0 + integer, parameter :: const_zFORp_version_patch = 1 integer, parameter :: const_zFORp_version_tweak = 0 integer, protected, bind(c, name="zFORp_version_major") :: zFORp_version_major integer, protected, bind(c, name="zFORp_version_minor") :: zFORp_version_minor @@ -68,11 +68,11 @@ module zfp integer, protected, bind(c, name="zFORp_codec_version") :: zFORp_codec_version data zFORp_codec_version/const_zFORp_codec_version/ - integer, parameter :: const_zFORp_library_version = 4096 ! 0x1000 + integer, parameter :: const_zFORp_library_version = 4112 ! 0x1010 integer, protected, bind(c, name="zFORp_library_version") :: zFORp_library_version data zFORp_library_version/const_zFORp_library_version/ - character(len = 36), parameter :: zFORp_version_string = 'zfp version 1.0.0 (August 1, 2022)' + character(len = 36), parameter :: zFORp_version_string = 'zfp version 1.0.1 (December 15, 2023)' integer, parameter :: const_zFORp_min_bits = 1 integer, parameter :: const_zFORp_max_bits = 16658 diff --git a/include/zfp.h b/include/zfp.h index 2d096cceb..5e87a3244 100644 --- a/include/zfp.h +++ b/include/zfp.h @@ -1,5 +1,5 @@ /* -** Copyright (c) 2014-2022, Lawrence Livermore National Security, LLC and +** Copyright (c) 2014-2023, Lawrence Livermore National Security, LLC and ** other zfp project contributors. See the top-level LICENSE file for details. ** SPDX-License-Identifier: BSD-3-Clause */ diff --git a/include/zfp.hpp b/include/zfp.hpp index 406fec9bb..5ec93fd48 100644 --- a/include/zfp.hpp +++ b/include/zfp.hpp @@ -1,7 +1,7 @@ #ifndef ZFP_HPP #define ZFP_HPP -// Copyright (c) 2014-2022, Lawrence Livermore National Security, LLC and +// Copyright (c) 2014-2023, Lawrence Livermore National Security, LLC and // other zfp project contributors. See the top-level LICENSE file for details. // SPDX-License-Identifier: BSD-3-Clause diff --git a/include/zfp/version.h b/include/zfp/version.h index 75872a282..1390bb36d 100644 --- a/include/zfp/version.h +++ b/include/zfp/version.h @@ -4,12 +4,9 @@ /* library version information */ #define ZFP_VERSION_MAJOR 1 /* library major version number */ #define ZFP_VERSION_MINOR 0 /* library minor version number */ -#define ZFP_VERSION_PATCH 0 /* library patch version number */ +#define ZFP_VERSION_PATCH 1 /* library patch version number */ #define ZFP_VERSION_TWEAK 0 /* library tweak version number */ -/* defined for work in progress (indicates unofficial release) */ -#define ZFP_VERSION_DEVELOP 1 - /* codec version number (see also zfp_codec_version) */ #define ZFP_CODEC 5 diff --git a/setup.py b/setup.py index 668e52392..fa2da6efc 100644 --- a/setup.py +++ b/setup.py @@ -3,8 +3,8 @@ setup( name="zfpy", - version="1.0.0", - author="Peter Lindstrom", + version="1.0.1", + author="Peter Lindstrom, Danielle Asher", author_email="zfp@llnl.gov", url="https://zfp.llnl.gov", description="zfp compression in Python", diff --git a/src/zfp.c b/src/zfp.c index 6192bd614..6aa8b8f67 100644 --- a/src/zfp.c +++ b/src/zfp.c @@ -11,7 +11,7 @@ const uint zfp_codec_version = ZFP_CODEC; const uint zfp_library_version = ZFP_VERSION; -const char* const zfp_version_string = "zfp version " ZFP_VERSION_STRING " (August 1, 2022)"; +const char* const zfp_version_string = "zfp version " ZFP_VERSION_STRING " (December 15, 2023)"; /* private functions ------------------------------------------------------- */