summaryrefslogtreecommitdiff
path: root/CHANGELOG.org
blob: 01b3b345303e5ff9a68e6b39c8d85cee0be26920 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
* Changelog
All notable changes in this project will be shown in this file.
** v1.0.0 - [2025-06-15 Sun]
This version is the first one with a stable public API; as per Semantic Versioning all backwards incompatible changes will be put on a major version.
*** Added
- *Allowed conversion to a sum of units (e.g. 4/3 ft \rightarrow 1 ft + 4 in).*
- *Allowed exponents on units to be non-integer numbers.*
  The resulting exponents are rounded to the nearest integer, and the user is warned if this rounding changes the value by more than normal floating-point error.
- *Added the ability to change the language of 7Units's UI.*
  This does not affect the names of units, prefixes and dimensions.
- Added more information to the loading-success message, and added it to the about tab.
- Added the ability to not use the default data files.
- Added the ability to generate Javadoc automatically.
*** Changed
- *Errors in unit/dimension files are shown in popups, rather than crashing the program.*
- Significantly increased number and coverage of automated tests (~./gradlew test~).
*** Fixed
- Fixed encoding of \pm character in values with uncertainty.
- ExpressionParser uses the correct order internally.
  /Note: this failure was only visible if you call the submethods; the public method fixed the problem on its own.  This was fixed primarily to improve testing./
** v0.5.0 - [2024-03-24 Sun]
*** Added
- *Added specifications for all types data files used by 7Units.*
*** Changed
- Configuration file is now located at a standard location in the system, instead of being in the project directory.
- Simplified some setting values in the config file
- Made the various data files more consistent with each other:
  - Addition and subtraction may be used in prefix expressions.
  - Exponentation works for all bases in dimension expressions.
  - All types of config files support comments.
** v0.4.1 - [2023-04-15 Sat]
*** Fixed
- Upgrade Gradle from 6.3 to 8.1 to support users of new Java versions
  (though 7Units still uses Java 11, the old Gradle distribution would fail if compiled with a newer version of Java)
** v0.4.0 - [2022-07-17 Sun]
*** Added
- *Added tests for the GUI*
- *Added search rules that determine which prefixes are shown in the unit conversion view.*
- Added an object for the version numbers (SemanticVersionNumber)
- Added some toString methods to NameSymbol and Nameable
*** Changed
- *Rewrote the GUI code internally using an MVP model to make it easier to maintain and improve*
- BaseDimension is now Nameable.  As a consequence, its name and symbol return Optional<String> instead of String, even though they will always succeed.
- The UnitDatabase's units, prefixes and dimensions are now always named
- The toString method of the common unit classes is now simpler.  Alternate toString functions that describe the full unit are provided.
- UncertainDouble and LinearUnitValue accept a RoundingMode in their complicated toString functions.
- Rounding rules are now in their own classes
- The "Show Duplicates" setting now affects the prefix viewer in addition to units
- Tweaked the look of the unit and expression conversion sections of the view
- Default dimension names are in title case, not uppercase.
** v0.3.2 - [2021-12-02 Thu]
*** Added
- Added lots more tests for the backend and utilities
*** Fixed
- The UnitDatabase's unit map acted as if it were empty if it had units but no prefixes
- Non-exact LinearUnitValue instances had their value printed as "(", meaning "(5.0 ± 0.1) m" would be printed as "( m"
** v0.3.1 - [2021-08-26 Thu]
*** Added
- Created a user manual
- Create a design document (a document detailing the program's design for programmer use)
*** Changed
- Changed the name of the project from "Unit Converter" to "7Units"
  - Changed the main package from ~unitConverter~ to ~sevenUnits~
- Tweaked the README, removing content that belongs in the new user manual
- Renamed ~SI~ to ~Metric~
** v0.3.0 - [2021-06-12 Sat]
*** Added
- Added a simple unit conversion method to the Unit interface
- Added a static factory to create nonlinear units to the Unit interface
- Added a settings menu with many settings to change the system's behaviour.  Allows you to control the precision settings, prefix repetition, and more.
*** Changed
- Changed the unit system again!
- You can now use tabs or spaces to separate unit names and their definitions in unit files.
- Unit Converter uses Gradle instead of Maven.
** v0.2.0 - [2019-04-14]
*** Added
- A selection-based unit converter which allows you to select two units, input a value, and convert.
- The UnitDatabase now stores dimensions.
- A system to parse mathematical expressions, used to parse unit expressions.
- You can now add and subtract in unit expressions!
- Instructions for obtaining unit instances are provided in the relevant classes
- The UnitPrefix interface now provides default times, dividedBy and toExponent methods.
*** Changed
- When searching for units, units with no prefixes are searched for before prefixed units
- Smaller prefixes are searched for before larger prefixes
- Moved project to Maven
- Downgraded JUnit to 4.11
- BaseUnit is now a subclass of LinearUnit
- In unit files, Comments can now start in the middle of lines
- UnitsDatabase.addAllFromFile() has been renamed to loadUnitsFile()
** v0.1.0 - [2019-02-01]
NOTE: At this stage, the API is subject to significant change.
*** Added
- Unit interface, implemented and supporting classes
- UnitPrefix interface, implemented and supporting classes
- UnitDimension and supporting classes
- UnitDatabase to store and parse units
- A GUI for unit conversion