Releases: LLNL/units
v0.12.1: [pre-commit.ci] pre-commit autoupdate (#358)
updates: - [github.com/pre-commit/mirrors-clang-format: v19.1.5 → v19.1.6](https://github.com/pre-commit/mirrors-clang-format/compare/v19.1.5...v19.1.6) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
v0.12.0: update the python interface, (#357)
- Updated the Python interface, cleaned up the code, added dunder methods, and implemented mod operation for measurements. - Added floor division in Python. - Enhanced README with new shields and more documentation updates. - Updated version and documentation; improved bool conversion in Python with tests. - Applied auto fixes from pre-commit.com hooks. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
v0.11.0
Python package release, documentation update, continued addition of new units and other updates and fixes
Changed
- Updated cmake and other dependencies #342
- Updated copyright date to 2024 #351
- updated the r20 units to be mostly operational #314
- Updated third party libraries, and some new CI builders #335,#336
Fixed
- fixed some issues with windows.h header conflicts #345
- fixed an issue using CMAKE_CXX_STANDARD #339
- fixed some missing test coverage to 100% #316,#317,#318
Added
v0.10.2
v0.9.1
Fix some string output issues related to units with various prefixes of meters and seconds, and add a UNITS_CMAKE_PROJECT_NAME
variable to cmake to allow the CMAKE project name to be customized.
Fixed
- fixed an issue with string output related to mm/s outputting as mHz*m and mm/s^2 outputting as Gy/km #308
Added
- Added a CMAKE variable to change the project name, to resolve some packaging conflicts.
UNITS_CMAKE_PROJECT_NAME
#310
v0.9.0
A few user suggested tweaks, and support additional unit string conversions supported by the google unit converter. Cleaner output for Hz
and prioritization of SI base units in the to_string operation.
Changed
- Modified the eflag to work a little differently than the iflag and moved a couple units to use the eflag instead to support things like
sqrt(degC.pow(2))=degC
#275 - Updated copyright date to 2023 #266
- Updated to new version of google test and added some additional units and test from the google unit conversion #283
- Fixed and corrected some documentation to match the latest code #284
- Altered the match_flags to 64 bits and corresponding updates to the flag constants#294
- adjusting the partitioning algorithms to have a minimum size and have some controlling flags #294,#297
- split the non-english units into a separate array that can be controlled independently in the build #296
Fixed
- fix fuzzing issue with arb. unit #275
- Format arb.unit nicely and fix a hardcoded namespace #272
- Fix
quad
unit, and clean up some unit conversion strings involvingHz
#265 - Update clang tidy and fix resulting issues #267
- Fixed an issue where scalar unit values in measurements using
to_string
could cause a crash #289 - Fixed some issues with prioritization of base units in the string generation #303
Added
- Added multiplies and divides operations which take into account perunit operations #299
- Added application notes on strain #299
- Added support for addition in unit string, the units on both sides must have the same units #298
- Updated coverage to hit 100% again #291
- Added several unit strings and cleaned up the typography units #282
- Added a dependabot configuration for updating the actions #274
- Added
removeUserDefinedUnit
method #273 - Added `addUserDefinedOutput method to specify an output string for a unit #270
- Added support for
robi
andqubi
prefixes
v0.7.0
Added several math operations for units, restored coverage to 100%, added uncertain constants and cleaner string generation and interpretation around the use of '.' and uncertain measurements, and added support for new SI prefixes.
Changed
- Changed the interpretation of '.' in some unit strings to allow more consistent use as abbreviation #250
- Made the string generation for uncertain measurements obey rules for significant figures more closely #249
Fixed
- Get code coverage back to 100% #256, #254, #253, #252
- Fixed hard coded namespaces in unit_conversion maps #241
- Fixed a bug found by fuzzing #240
Added
v0.6.0
This release has a number of fixes for specific unit strings, adds some other units and a new unit_conversion_maps
structure to reduce stack usage.
Changed
- Convert default branch to "main"
- The string maps are new defined in a constexpr array in
units_conversion_maps.hpp
this reduces the stack usage significantly and clears up some warnings about that on some compilers [#217][],#226 - The country specific codes for China and Canada were changed from "ch" and
can
tocn
andca
to match country top level domains #229
Fixed
- The "hartree" string produced an incorrect value #163
- Fixed an issue with inverse multipliers for inverse conversions #166
- changed the string conversions to better align with SI recommendations #173
- Fix an issue with the string "0.2" #188
- Fix asterisk operator typo #194
- Update the docker images to use more recent base images #206,#212
- User defined units were not being used in the string conversion operations properly #213
- Update third party library links #216
- Clean up some
if constexpr
warnings on some platforms #227 - Fix an issue of misinterpreting short strings with spaces such as
kg m
#224
Added
- Added a series of constants to make the available constants match the Nist Common Constants list #163
- added "Eh" as a valid string value for "hartree" #163
- Added support for larger power factors in units when using larger base #184
- Added support for some climate related units #210,#179
- Added mass to weight conversions #229
- added domains to allow some domain specific units that might mean different things in different contexts #173
v0.5.0
This release includes some changes to the CMake builds and Targets. Also includes support for 64 bit base types for units with expanded power support, and support for a custom namespace for better integration with other applications. And additional units for natural gas and particle physics.
Changed
- update the physical constants to latest values and updated related documentation on Physical constants [#56][]
- CMake targets units::units and units::header_only are the only two public targets [#155][]
- Updated code checks [#85][]
Fixed
- Fixed
-Wshadow
warnings for GCC 4.9 and earlier [#66][] - Documentation Fixes and updates [#152][], [#146][], [#111][], [#82][]
- Fixed pow_overflows not handling 0 correctly [#139][], [#134][]
- Fixed a few issues with the output strings and some SI units [#130][]
- Some cleanup for multiplier string generation [#93][]
- Fixed an issue with plural two character units like
lb
,oz
[#91][] - Fix identified Fuzzing issue [#84][]
- Fixed some shadow warnings on some compilers [#72][]
- Fixed some issues with
std::abs
usage [#70][]
Added
- Added version output to converter app and the correct version info on the webserver [#54][]
- Added markdown linter to pre-commit [#64][]
- CMake format check to pre-commit [#65][]
- Added tests for the shared library build [#155][]
- Added support for 64 bit base unit [#150][], [#142][]
- CMake Variable for manipulating output namespace [#136][], [#141][]
- Added some support for compiling with C++20 [#125][]
- Added some additional units for supporting particle physics [#120][],[#115][], [#112][], [#109][]
- Added support for exposing the main unit maps for string conversions [#113][]
- Added support for natural gas related units [#74][]
Removed
v0.4.0
Add a converter command line application and fix a few slow conversion issues and some other fuzz issues that came up recently, add isnormal operation for measurements, better test coverage for fixed_precise_measurement, some additional tests and static analysis checks.
Changed
- Added several tests run under Azure to remove deprecated image and add some new tests #40
- clears up several warnings from clang-tidy #41
- the fuzzer now uses fuzz_measurement #42
- update clang format to limit line length to 80 and allow reflowing comments #43
- add clang-tidy checks for the tests and fix a few issues. #47
Fixed
- A few timeouts on the fuzzer- the fix was to generalize the multiplier insertion after ^ to accept multiple digits after the ^ instead of just ignoring it after more than one. #34
- An asymmetry was observed in the unit equality from on the fuzzers, this resulted in some modifications of the
cround_equal
andcround_precice_equals
functions. Also noted that the functions weren't aborting on exact floating point equality so were doing quite a bit of extra calculations. #34 - A timeout issue from fuzzing having to do with not injecting multiplies after
[]
in some circumstances. The fix was to be a little more refined as to which point to not inject the*
and to do it in multiple stages so as to not rely on the partitioner so much. #35 fixed_measurement
andfixed_precise_measurement
had incorrect subtraction operation in a few overloads. #39- fixed a few initial issues from fuzz_measurement #42
- Some more fuzzing generated issues with cascading powers #45
- A number of additional clang-tidy checks were added and the resulting warnings fixed #46
- An issue from the fuzzer dealing with equation type units #51
Added
- added a converter command line application that can convert units on the command line #35
- Added a file operation that can load user defined units from a file #36
- Added
is_valid
methods for all measurement types #36 - Added addUserDefinedInputUnit to add user defined units only on the input #36
- The webserver gained a
to_string
option to use the internal to_string operations to simplify the measurement and units #37 - The webserver and the converter gained an ability to handle
*
and<base>
as the input unit to convert the measurement to base units. #37 - Added
to_string
operation for uncertain_measurements #38 - Added
isnormal
operation for measurement types #39 - Added
UNITS_CLANG_TIDY
option to run tests with Clang tidy #41 - Added fuzz_measurement fuzzer to test measurement_from_string #42
- Added cpplint test to azure #43
- Added a number of additional units from UDunits #44
- Added several CI checks including CPPlint, and a series of CMAKE checks, and formatting checks #48,#49
- Added a series of additional tests for coverage #50