#*******************************************************************************
#**  This file is part of Dux Rei Nummariae.                                 ***
#**                                                                          ***
#**  Copyright (C) 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024            ***
#**  John Schneiderman <Licencing _AT_ Schneiderman _DOT_ me>                ***
#**                                                                          ***
#**  This program is free software: you can redistribute it and/or modify it ***
#**  under the terms of the GNU Affero General Public License as published   ***
#**  by the Free Software Foundation, either version 3 of the License, or    ***
#**  (at your option) any later version.                                     ***
#**                                                                          ***
#**  This program is distributed in the hope that it will be useful, but     ***
#**  WITHOUT ANY WARRANTY; without even the implied warranty of              ***
#**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                    ***
#**  See the GNU Affero General Public License for more details.             ***
#**                                                                          ***
#**  You should have received a copy of the GNU Affero General Public License***
#**  along with this program. If not, see <http://www.gnu.org/licenses/>.    ***
#*******************************************************************************
0000-00-00 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 1.0.0
	* Maintenance #68: Changes the banking system to only refer to accounts by their account number.
			N.B. checksum for surveys are not verified for revision 3 this support only will exist
			for the 1.0 release since it's a beta revision.
	* Maintenance: Enables address, undefined behaviour, and leak sanitisation.
2024-08-24 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 0.7.1
	* Bug Fix #106: Fixes not allowing to survey an account that has transactions posted on the same
			day as the survey date.
	* Bug Fix #102: Fixes survey reconciling an asset/liability account with a transaction from a
			non-child account.
	* Bug Fix #103: Fixes income transaction appearing as an expense when transferring moneys from
			one asset account to another.
2024-08-05 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 0.7.0
	* Bug Fix #7: Fixes being able to remove a goal budget item while it has a bank account with a
			balance and closing the bank account.
	* Bug Fix #58: Fixes the general ledger account index key not updating all the information
			during the account re-coding process.
	* Bug Fix #73: Fixes failure to locate budget items GUI elements to remove when there is an
			error during removal.
	* Bug Fix #1: Fixes the savings account not appearing for goals.
	* Bug Fix #3: Fixes duplicate goals bank accounts displayed in the banks GUI.
	* Bug Fix #19: Fixes other bank accounts not appearing in an existing goal budget item.
	* Bug Fix #44: Fixes being unable to create a new goal in when only a single currency set-up.
	* Bug Fix #41: Fixes the slow display performance when a ledger contains a large number of
			transactions.
	* Feature #10: The ability to survey the expected and actual balance of a bank account.
	* Feature #63: A currency's minor and sub-minor unit is only stored when it is non-zero,
			providing up to a 5% reduction in size. For the revision 3 data schema data upgrade: run
			the commands below on the budget file.
			sed -ri 's/ minor="([[:digit:]]+)([[:digit:]][[:digit:]])"/ minor="\1" subMinor="\2"/g'
			sed -ri 's/ totalMinor="([[:digit:]]+)([[:digit:]][[:digit:]])"/ totalMinor="\1" totalSubMinor="\2"/g'
			sed -ri 's/ minimumMinor="([[:digit:]]+)([[:digit:]][[:digit:]])"/ minimumMinor="\1" minimumSubMinor="\2"/g'
			sed -ri 's/ finalMinor="([[:digit:]]+)([[:digit:]][[:digit:]])"/ finalMinor="\1" finalSubMinor="\2"/g'
			sed -ri 's/revision="2"/revision="3"/g'
	* Feature #80: Adds an option to display a currency's symbol instead of its ISO code. Changes
			the listing for allowable currency selection to start by name.
	* Feature #20: Adds the ability to display and post every budget item due within a time frame.
	* Feature: Officially settled on a development organisation name, AureliusSoft.
	* Maintenance #36: Adds packaging via the CMake.
	* Maintenance #71: Updated to Pecunia 0.8.
	* Maintenance #39: Updated to Pecunia 0.7.
	* Maintenance #40: Changed the way the GUI determines the currency code.
	* Maintenance #77: Changed the packaging process to be entirely driven by CMake.
	* Maintenance #46: Changed the percentage type to be a full type.
	* Maintenance: Promoted many of the log messages from debug to info.
2023-12-20 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 0.6.0
	* Maintenance #22: Generalised the saving and opening of budget information.
	* Maintenance #23: Add CI pipeline for supported GNU/Linux distributions.
	* Maintenance #9: Updated to Pecunia 0.6.1.
	* Maintenance #8: Updated to Qt 6.
	* Maintenance: Updated to Qt-mocks 0.6.0.
	* Maintenance: Updated to C++20.
	* Maintenance: Expanded the Qt memory validation to validate the parent hierarchy.
	* Maintenance: Updated CMake to check the compiler for what additional compiler checks to
			add.
	* Maintenance: Adjusted the ObserverPtr to be more aligned with C++ STD smart pointers.
2022-12-20 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 0.5.0
	* Bug Fix #40: Fixed removing a goal budget item not updating the bank account association.
	* Bug Fix #45: Fixed allowing selecting the bank account type when posting a budget item.
	* Bug Fix #46: Fixed the budget item source not adjusting its width when posting a budget item.
	* Bug Fix #48: Fixed a crash when reconciling a transaction between different currencies whose
			exchange rates have diverged significantly since its recording.
	* Feature #32: Adds the ability to store bank reconciliation information.
	* Maintenance #28: All Qt memory is validated at run-time in the debug build.
	* Maintenance #37: Upgraded to the Qt-mocks 0.5.
2022-02-21 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 0.4.1
	* Bug Fix #1: Fixed exiting requiring double confirmation when exiting with a clean budget file
			state.
	* Bug Fix #17: Fixed bank map not checking that the new bank association isn't being associated
			with the same bank.
	* Bug Fix #17: Fixed not being able to modify an existing goal that was already associated with
			a bank account.
	* Bug Fix #2: Run Qt deploy against all libraries and executables on Windows.
	* Bug Fix #2: Added OpenSSL to the list of 3rd-party libraries to
			install on Windows.
	* Bug Fix #3: Fixed compilation failing on macOS.
2021-12-27 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 0.4.0
	* Feature: Any budget item that produces an error when saving will have the error message
				displayed below that budget item.
	* Feature: Simplified the bank interface.
	* Feature: The ability to associate a bank account with a goal and debt budget item.
	* Feature: The post budget item now displays the budget item type as well.
	* Feature: The ability to post budget items that are not yet due.
	* Bug Fix: Successful budget items due will not double post when other items due have an error.
	* Bug Fix: Being unable to mark a transaction as cleared or reconciled via the ledgers
				interface.
	* Maintenance: Updated to Pecunia 0.5.0.
	* Maintenance: Updated to Qt-mocks 0.4.0.
	* Maintenance: Updated to CMake 3.13.
	* Maintenance: Removed the error-handling library and moved into foundation.
	* Maintenance: Updated the project structure to use the modern CMake structure.
	* Maintenance: Dropped the usage of the date library with their Qt equivalents or custom type.
	* Maintenance: Split out budget-accounting into a banking and navigation libraries.
2020-12-22 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 0.3.0
	* Feature: Changed all naming to reflect the chosen official name.
	* Feature: All budget items created automatically have an associated ledger account.
	* Feature: When saving a budget file, a back-up file will automatically be created.
	* Feature: When saving a budget file, if the save fails for any reason the back-up file is
				restored as the current budget file and the broken one is removed.
	* Feature: Ability to add a bank and associate accounts with them.
	* Feature: Ability to create sub-accounts.
	* Feature: Adding accounts will now use the selected account number generator.
	* Feature: A dashboard widget to display all budget items that are approaching being due.
	* Feature: The number of days to display for budget items due is configurable in the user's
				preferences.
	* Feature: Ability to post a budget item due against a bank account or goal budget item account.
	* Feature: Ability to skip a budget item due.
	* Feature: Ability to reload the currently opened budget file.
	* Feature: Ability to "Save As" a budget file.
	* Feature: Ability to save without any prompts the currently opened budget file.
	* Feature: The account code name and number separator no longer uses a dash, but an em-dash to
				reduce the collisions from user input.
	* Feature: Ability to add more than one nontracked budget item.
	* Feature: The budget health offers information on the state of the health of the budget.
	* Feature: The budget item widgets now sort all entries by source name.
	* Feature: Adds a tool-bar of common budget item operations.
	* Bug Fix: Debts can no longer change the amount borrowed as it's tied to the account balance.
	* Bug Fix: The ledger widget no longer display account codes using their stream view.
	* Bug Fix: The transaction widget no longer display account codes using their stream view.
	* Bug Fix: The account errors no longer display account codes using their stream view.
	* Bug Fix: The account widget no longer displays an incorrect account code from a recode error.
	* Bug Fix: Allow budget items next occur date to be in the past since items due could have been
				missed and are only now being posted.
	* Bug Fix: The budget source text carrot is moved to the beginning.
	* Bug Fix: The monthly goal wage percentage updating all values every time it gains focus.
	* Maintenance: Running ctest from the command-line will work.
	* Maintenance: Initial support for managing which kind of Qt object pointer is created.
	* Maintenance: Updated to Pecunia 0.4.2.
	* Maintenance: Updated to Qt-Mocks 0.3.0.
	* Maintenance: Updated to the current master of Date.
	* Maintenance: Changed to every library having its own export macro.
	* Maintenance: Moved the version information to the top-level CMake file.
2019-06-29 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 0.2.0
	* Feature: Ability to create an account to track finances.
	* Feature: Ability to create a transaction between accounts.
	* Feature: Ability to have a general ledger book.
	* Feature: High DPI monitor support.
	* Feature: Fetching exchange rates now stores and displays when it was last performed.
	* Feature: Budget item types now have the next occurrence date.
	* Feature: Debt percentage rates are now compared only to be within six digits of precision.
	* Feature: The money entries are now validated based upon the currency and locale.
	* Bug Fix: The "Are you sure" dialogue no longer will be displayed  when the application is
				not modified.
	* Bug Fix: Fixes occasional crash when updating the discretionary amount.
	* Bug Fix: Fixed the money amounts being sometimes converted to floating point numbers.
	* Bug Fix: Fixed the number of minor digits display not following the number of digits of the
				currency.
	* Bug Fix: The dashboard monthly amount for budget types now display the same as the budget
				type entry.
	* Bug Fix: The dashboard monthly amount for budget types no longer always has a scroll bar.
	* Bug Fix: The goal budget type entry's final amount did not update to use the same period as
				the period amount.
	* Maintenance: All unit-tests are now a part of the CMake test system.
	* Maintenance: Switched to use CMake's auto-moc/ui system.
	* Maintenance: Uses CMake's modern way of adding compilation flags.
	* Maintenance: All files are now listed explicitly for compilation.
	* Maintenance: Adds source grouping.
	* Maintenance: The project file generated on Windows will now have the paths to the libraries
					and projects .
	* Maintenance: The install project on Windows will now also copy the 3rd party libraries needed
					to run the application.
	* Maintenance: Replaced Moneta library with Pecunia.
2018-05-31 John Schneiderman <JohnMS_AT_member_DOT_fsf_DOT_org> 0.1.0
	* Feature: Ability to have a budget with:
		- Bills
		- Debts
		- Goals
		- Nontracked spending
		- Wages
	* Feature: Display health of budget.
	* Feature: Display the monthly budget totals.
	* Feature: Save budget to a local file.
	* Feature: Select preferred overall currency for the budget.
	* Feature: Use different currencies in the budget items.
	* Feature: Select usable currencies in the budget.
	* Feature: Select average working hours and days in a week.
	* Feature: Fetch and/or modify currency exchange rates.
