Skip to content

Commit 2355954

Browse files
Add release notes for v0.2.5 alpha
1 parent dc2b517 commit 2355954

File tree

2 files changed

+35
-49
lines changed

2 files changed

+35
-49
lines changed

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@
105105
"Abenthy",
106106
"adjustmentbuilder",
107107
"apap",
108+
"dataclass",
108109
"dataitem",
109110
"Denna",
110111
"Elodin",

docs/release_notes/Changes for Version 0.2.5.md

Lines changed: 34 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
| Version | Release Date | Audience |
44
| :------ | :----------- | :--------- |
5-
| 0.2.5 | ??/??/2022 | Developers |
5+
| 0.2.5 | 10/31/2022 | Developers |
66

77
**Message from ScottSucksAtProgramming:**
88

@@ -12,64 +12,49 @@
1212
> more pleasant to work with and easier to understand. Read on to see the
1313
> larger changes.
1414
15-
## Structural Changes
15+
## Structural Improvements
1616

1717
### Interfaces
1818

19-
### Builders Package
19+
Most packages within the Narcotics Tracker now include an interface specifying
20+
how new modules should be created. Interfaces are located in a separate
21+
sub-package.
2022

21-
This package contains modules which can be used to build all of the DataItems
22-
which are stored within the SQLite3 database. Full documentation is available
23-
within that package and its modules. The previous templates were removed and
24-
replaced with a single BuilderInterface class and modules for each of the six
25-
DataItems.
23+
### Design Patterns
2624

27-
The number of tests for this package has been greatly reduced due to the change
28-
in responsibility of the DataItems class. Many tests for those behaviors have
29-
been moved to the other parts of the test suite.
25+
The Builder Pattern had already been implemented to make construction of
26+
DataItems easier. With this update the Command Pattern was also implemented
27+
allowing for the decoupling many modules. All commands share the same interface
28+
allowing for easy creation of new commands. Look at the documentation in the
29+
Commands Package for more information.
3030

31-
### Items Package
31+
### Inheritance and DataClasses
3232

33-
This package contain the modules for all items which are stored within the
34-
database. The DataItem class defines an interface for all Data Items.
33+
The Items Package saw an overhaul in is structure. Each of the six DataItems
34+
inherit from a DataItem superclass. DataItems are no longer responsible for
35+
saving and loading themselves from the database, their only concern is to store
36+
their data. Each DataItem is now written as a dataclass. These two change make
37+
the code much simpler to read.
3538

36-
The number of tests for this package has been reduced and are available within
37-
the Items sub-package within the Unit Tests package.
39+
## New Functionality
3840

39-
### Services Package
41+
### The Service Provider
4042

41-
The services package was created to contain all the services and utilities
42-
which are used to run the Narcotics Tracker. As of this release are three
43-
service providers in this package: The Conversion Manager, Datetime Manager,
44-
and SQLiteManager. Additionally the ServiceProvider class offers an object
45-
which instantiates these services in a single command.
43+
The Utilities Package was removed and replaced with the services package. As of
44+
this release three services are included in this package. The SQLiteManager
45+
provides the persistence service which stores and retrieves information from
46+
the SQLite3 database. To manage dates and times the DateTimeManager provides
47+
the datetime service; This object is responsible for providing datetime
48+
information and converting between human readable dates and unix timestamps.
49+
The conversion service, provided by the ConversionManager, converts between
50+
different units of mass and volume.
4651

47-
#### Intended Use
52+
The Service Provider module instantiates each service as needed. It is a single
53+
point of access for all current and future services. The Service Provider also
54+
allows for each service manager to be replaced with new or different services
55+
as needed.
4856

49-
## Command Pattern
57+
## Next Up!
5058

51-
The **Command Design Pattern** was implemented to interact with the SQLite3
52-
database.
53-
54-
### Receivers
55-
56-
All modules related to communications with SQLite3 have been moved into the
57-
**Persistence Package**. The Database module contains the **SQLiteManager**
58-
which sends and receives information from the database. It's designed to be
59-
used as a context manager, and handles closing of the database connection
60-
automatically. The Date Manager module contains the **DateTimeFormatter** which
61-
returns the current datetime from the database and converts between a unix
62-
timestamp and a human-readable date formatted as (MM-DD-YYYY HH:MM:SS).
63-
64-
## Invokers
65-
66-
Not yet implemented.
67-
68-
## Interface
69-
70-
The interface for SQLite3 Commands is located in the
71-
`sqlite_command_interface.py` module.
72-
73-
## Commands
74-
75-
Commands are located within the `commands.py` module.
59+
The next release will see the creation of the reporting functionality and a set
60+
of general reports which are frequently used for narcotics management.

0 commit comments

Comments
 (0)