All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This Changelog contains the changes for all packages of this monorepo, which all use the same version at all times.
- Add quantitykind constants for those quantitykinds that are defined in the currency file in QUDT.
- Speed up unit matching by
- indexing units by dimension vector
- preventing recalculation of normalized factor units by keeping the result
- Add FactorUnits.getDimensionVector()
- Some spurious triples removed from the input to code generation - Extent of the problem is unclear but it is now fixed.
- Upgrade QUDT to 2.1.37
- Added two units and a quantity kind pending upstream PR merging
- Bump qudtlib version to 2.1.35
- Simplified BEST_MATCH algorithm for obtaining a unit from a set of factor units. Recent additions to the data model (isScalingOf and factorUnit relationships) led to a larger set of candidates and the complexity of the previous algorithm led to very high computation time.
- Changed the behaviour of Unit.hasFactorUnits() such that for a FactorUnits object with only one top-level factor unit (such as [N^1]), the method returns false.
- Implement a not so recent change in QUDTLib whereby quantitykinds are no longer skos:broader but
qudt:exactMatch in certain conditions. See qudtlib/qudtlib-java#61. The change
adds an
exactMatch
property to theQuantityKind
andUnit
classes and uses the exactMatch property where appropriate in algorithms.
quantitykind:Currency
was missing in 5.0.0. Its definition was moved to the currencies file in the QUDT repo which used to be ingested only for units code generation. Now it is also used for quantity kinds code generation.
Qudt.currencyFromLocalName*
methods to obtain currency units
- Breaking change: special handling for currencies (cannot be instantiated by localname as before)
- Changes to the system of unit handling likely to produce different results in some cases
- Add qudt namespace to Qudt.NAMESPACES
- Added currency symbols for major currencies
- Updated QUDT to v2.1.25
npm run run-examples
now conveniently runs the examples. This script is also triggered in the complete build.
- Fix 'module not found' error: splitting the one big
qudtlib.ts
file into many smaller ones in 4.0 actually did not work as the imports could not be resolved. Fixed that. - Adapt jest config to the fix above.
- Corresponding unit in system functionality - finds the best matching units to a given unit in a desired unit system, such as the corresponding unit for inch in the SI system (centimeter).
- SystemOfUnits as a model class
- Several manual links from units to their base units or factor units
- BREAKING: Made QUDTlib data model immutable, changed instantiation to force use of builders.
- Temporarily added quantitykinds
PositivePlaneAngle, NonNegativeLength, PositiveLength and Count
until upstream upstream PR 630 and upstream PR 631 are released.
- Updated QUDT to v2.1.24
- Add quantity kinds for positive dimensionless ratio and normalized dimensionless ratio temporarily until the canges from the upstream PR are released.
- Changed scoring algorithm for determining best matching unit
Unit.getAllPossibleFactorUnitCombinations()
, required for finding the best matching unit for a set of factor units.
- Improved algorithm for scoring unit matches in
Qudt.matchScore
.
- support for currency code and currency number, accessible for instantiation via
Qudt.unitFromLabel
.
- Refactoring of derived unit calculation (breaking)
- Support non-base units in derived unit specs. For example, derive NPERM3 from [N, 1, M3, -1].
- Refactoring of factor unit matching
- Add units and quantitykinds required for mapping QUDT to IFC (alpha).
- Re-export Decimal from decimal.js so clients do not need to install a separate dependency.
- Improve JSDoc for Qudt.scale() and Qudt.scaleUnitFromLabels().
- Updated QUDT to v2.1.21
- New
examples
package (not published to npm) for documentation purposes - New convenience methods for obtaining a
FactorUnitSelecion
for deriving units when you already haveFactorUnits[]
.
- Updated QUDT to v2.1.20
- Generated allunits/src/units.ts with qudtlib-java:2.1.1
- Improved the
README.md
files with examples
- Initial release.