backlogops 0.1__tar.gz → 0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {backlogops-0.1 → backlogops-0.2}/PKG-INFO +60 -32
- {backlogops-0.1 → backlogops-0.2}/README_pypi.md +56 -28
- {backlogops-0.1 → backlogops-0.2}/backlogops.egg-info/PKG-INFO +60 -32
- {backlogops-0.1 → backlogops-0.2}/backlogops.egg-info/SOURCES.txt +6 -2
- backlogops-0.2/backlogops.egg-info/requires.txt +4 -0
- {backlogops-0.1 → backlogops-0.2}/pyproject.toml +1 -1
- {backlogops-0.1 → backlogops-0.2}/setup.py +4 -5
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/__init__.py +34 -20
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/available_teams_config.py +4 -153
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/backlog.py +45 -3
- backlogops-0.2/src/backlogops/backlog_in_release_order.py +255 -0
- backlogops-0.2/src/backlogops/backlog_ops_config.py +421 -0
- backlogops-0.2/src/backlogops/backlog_ops_wizard.py +295 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/backlog_releases.py +54 -1
- backlogops-0.2/src/backlogops/backlog_releases_io.py +296 -0
- backlogops-0.2/src/backlogops/blo_version_reporter.py +40 -0
- backlogops-0.2/src/backlogops/io_config.py +590 -0
- backlogops-0.2/src/backlogops/io_preset_wizard.py +148 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/key_list_io.py +33 -14
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/levels.py +63 -2
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/release_change_io.py +25 -20
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/releases.py +27 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/table_create.py +29 -4
- backlogops-0.2/src/backlogops/table_rows.py +294 -0
- backlogops-0.2/src/backlogops/wizard_helpers.py +760 -0
- backlogops-0.1/backlogops.egg-info/requires.txt +0 -4
- backlogops-0.1/src/backlogops/available_teams_wizard.py +0 -448
- backlogops-0.1/src/backlogops/backlog_releases_io.py +0 -200
- backlogops-0.1/src/backlogops/console_yes_no_bridge.py +0 -45
- backlogops-0.1/src/backlogops/io_config.py +0 -277
- backlogops-0.1/src/backlogops/table_rows.py +0 -125
- {backlogops-0.1 → backlogops-0.2}/LICENSE.txt +0 -0
- {backlogops-0.1 → backlogops-0.2}/backlogops.egg-info/dependency_links.txt +0 -0
- {backlogops-0.1 → backlogops-0.2}/backlogops.egg-info/top_level.txt +0 -0
- {backlogops-0.1 → backlogops-0.2}/setup.cfg +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/apply_format_rules.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/available_teams.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/backlog_helpers.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/date_ranges.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/demo_backlog.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/estimate_ready_date.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/format_rules.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/move_keys_first.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/no_text_io.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/order_by_dependencies.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/person.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/py.typed +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/release_backlog_updates.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/team.py +0 -0
- {backlogops-0.1 → backlogops-0.2}/src/backlogops/work_hours.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: backlogops
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2
|
|
4
4
|
Summary: Library with backlog operations.
|
|
5
5
|
Author: Tom Björkholm
|
|
6
6
|
Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
|
|
@@ -21,10 +21,10 @@ Classifier: Topic :: Office/Business :: Scheduling
|
|
|
21
21
|
Requires-Python: >=3.12
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE.txt
|
|
24
|
-
Requires-Dist: config-as-json>=1.
|
|
24
|
+
Requires-Dist: config-as-json>=1.3
|
|
25
25
|
Requires-Dist: tableio>=1.0
|
|
26
|
-
Requires-Dist: tableio-cfg-json>=0.
|
|
27
|
-
Requires-Dist: versionreporter>=0.
|
|
26
|
+
Requires-Dist: tableio-cfg-json>=0.6
|
|
27
|
+
Requires-Dist: versionreporter>=0.3
|
|
28
28
|
Dynamic: author
|
|
29
29
|
Dynamic: license-file
|
|
30
30
|
Dynamic: requires-dist
|
|
@@ -34,16 +34,17 @@ Dynamic: requires-python
|
|
|
34
34
|
|
|
35
35
|
There are 3 related packages for backlog operations:
|
|
36
36
|
|
|
37
|
-
- backlogops
|
|
37
|
+
- **[backlogops](https://pypi.org/project/backlogops/)** a collection of library
|
|
38
|
+
functions to manipulate backlogs
|
|
38
39
|
|
|
39
|
-
- backlogops-cli
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
user to use the library.
|
|
40
|
+
- **[backlogops-cli](https://pypi.org/project/backlogops-cli/)** command line
|
|
41
|
+
interface to use the functions in the library. This is just a thin wrapper
|
|
42
|
+
around the library functions. It serves a dual purpose as both an example of
|
|
43
|
+
how to use the library and as a tool for the user to use the library.
|
|
43
44
|
|
|
44
|
-
- backlogops-gui
|
|
45
|
-
|
|
46
|
-
the library.
|
|
45
|
+
- **[backlogops-gui](https://pypi.org/project/backlogops-gui/)** graphical user
|
|
46
|
+
interface to use the functions in the library. It is based on TkInter. The
|
|
47
|
+
ambition is to keep it as a thin wrapper around the library.
|
|
47
48
|
|
|
48
49
|
## Available functionality
|
|
49
50
|
|
|
@@ -72,6 +73,9 @@ The following functionality is available in all 3 packages:
|
|
|
72
73
|
the key is at a higher level it will bring all items it is a parent of in
|
|
73
74
|
front of it (recursively).
|
|
74
75
|
|
|
76
|
+
- Reorder the backlog in release order, optionally taking dependencies into
|
|
77
|
+
account.
|
|
78
|
+
|
|
75
79
|
- Set planned release dates from the estimated release dates.
|
|
76
80
|
|
|
77
81
|
- Calculate the release dates from the backlog items estimated ready dates, with
|
|
@@ -79,7 +83,23 @@ The following functionality is available in all 3 packages:
|
|
|
79
83
|
|
|
80
84
|
- Validate the backlog and releases for consistency.
|
|
81
85
|
|
|
82
|
-
-
|
|
86
|
+
- Convert a backlog and releases between table file formats.
|
|
87
|
+
|
|
88
|
+
- Order the releases by their planned or estimated date.
|
|
89
|
+
|
|
90
|
+
- Rename columns when reading a file and when writing a file.
|
|
91
|
+
|
|
92
|
+
- Map custom status names in input files to backlog item statuses.
|
|
93
|
+
|
|
94
|
+
- Choose how backlog item levels are written: by number, by name, or both, and
|
|
95
|
+
configure custom level names.
|
|
96
|
+
|
|
97
|
+
- Create stand-alone input or output preset configuration files.
|
|
98
|
+
|
|
99
|
+
- Migrate an older configuration or preset file to the current file format.
|
|
100
|
+
|
|
101
|
+
- A wizard to create a backlog-ops configuration file with the workforce, named
|
|
102
|
+
input and output presets, level names, and status name mapping.
|
|
83
103
|
|
|
84
104
|
## The operating model
|
|
85
105
|
|
|
@@ -97,45 +117,45 @@ availability of the team members.
|
|
|
97
117
|
Each backlog item has the following fields that are used by the algorithms in
|
|
98
118
|
the library:
|
|
99
119
|
|
|
100
|
-
- key
|
|
101
|
-
must not contain whitespace and must not contain any of the characters
|
|
102
|
-
( ) \[ \] \{ \}.
|
|
120
|
+
- `key` The key of the backlog item. Required. Must be unique. Must not be
|
|
121
|
+
empty, must not contain whitespace and must not contain any of the characters
|
|
122
|
+
, . ; : ( ) \[ \] \{ \}.
|
|
103
123
|
|
|
104
|
-
- level
|
|
124
|
+
- `level` The level of the backlog item. Required. Must be an integer.
|
|
105
125
|
|
|
106
|
-
- title
|
|
126
|
+
- `title` The title of the backlog item. Required.
|
|
107
127
|
|
|
108
|
-
- story_points
|
|
128
|
+
- `story_points` The story points of the backlog item. Required.
|
|
109
129
|
|
|
110
|
-
- status
|
|
130
|
+
- `status` The status of the backlog item. Required.
|
|
111
131
|
|
|
112
|
-
- parent_key
|
|
132
|
+
- `parent_key` The key of the parent backlog item. Optional. Must exist as a key
|
|
113
133
|
in the backlog. Parent keys are used to build the hierarchy of the backlog.
|
|
114
134
|
The parent key must be at a higher level than the current item. Parent keys
|
|
115
135
|
introduce implicit dependencies between items: the current item cannot start
|
|
116
136
|
before the parent item starts, and the parent item cannot finish before all
|
|
117
137
|
its children have finished.
|
|
118
138
|
|
|
119
|
-
- release
|
|
120
|
-
rules as the key. Must not be empty string.
|
|
139
|
+
- `release` The release of the backlog item. Optional. Follows the same
|
|
140
|
+
character rules as the key. Must not be empty string.
|
|
121
141
|
|
|
122
|
-
- team
|
|
142
|
+
- `team` The team responsible for the backlog item. Optional. Must not be empty
|
|
123
143
|
string. Must be a valid team name. If None the item can be done by any team.
|
|
124
144
|
If not None. the item can only be done by the specified team.
|
|
125
145
|
|
|
126
|
-
- depends_on_f2s
|
|
146
|
+
- `depends_on_f2s` The list of keys of the backlog items that must have been
|
|
127
147
|
finished before the current item can start. May be empty.
|
|
128
148
|
|
|
129
|
-
- depends_on_f2f
|
|
149
|
+
- `depends_on_f2f` The list of keys of the backlog items that must have been
|
|
130
150
|
finished before the current item can finish. May be empty.
|
|
131
151
|
|
|
132
|
-
- depends_on_s2s
|
|
152
|
+
- `depends_on_s2s` The list of keys of the backlog items that must have been
|
|
133
153
|
started before the current item can start. May be empty.
|
|
134
154
|
|
|
135
|
-
- planned_ready_date
|
|
155
|
+
- `planned_ready_date` The planned ready date of the backlog item. The date that
|
|
136
156
|
is communicated to the customer. Optional.
|
|
137
157
|
|
|
138
|
-
- estimated_ready_date
|
|
158
|
+
- `estimated_ready_date` The estimated ready date of the backlog item. Optional.
|
|
139
159
|
|
|
140
160
|
Additionally each backlog item can have any number of other fields.
|
|
141
161
|
|
|
@@ -202,7 +222,12 @@ from backlogops import (
|
|
|
202
222
|
backlog and its releases from and to a table file.
|
|
203
223
|
|
|
204
224
|
- `read_available_teams`, `write_available_teams`: read and write the
|
|
205
|
-
available-teams
|
|
225
|
+
available-teams workforce on its own.
|
|
226
|
+
|
|
227
|
+
- `read_backlog_ops_config`, `write_backlog_ops_config`,
|
|
228
|
+
`get_backlog_ops_config`: read, write, and look up the top-level
|
|
229
|
+
`BacklogOpsConfig` (workforce, named input and output presets, and the
|
|
230
|
+
optional backlog item levels).
|
|
206
231
|
|
|
207
232
|
- `read_key_list`, `write_key_list`: read and write a list of keys.
|
|
208
233
|
|
|
@@ -216,6 +241,9 @@ from backlogops import (
|
|
|
216
241
|
- `move_keys_first`: reorder so that listed keys (and their children)
|
|
217
242
|
come first.
|
|
218
243
|
|
|
244
|
+
- `backlog_in_release_order`: reorder the backlog to follow the release
|
|
245
|
+
order, optionally honouring dependencies.
|
|
246
|
+
|
|
219
247
|
- `estimate_ready_date`, `set_plan_from_estimate`: estimate ready dates
|
|
220
248
|
and set planned dates from the estimate.
|
|
221
249
|
|
|
@@ -230,9 +258,9 @@ For the full set of public names see the API documentation linked above.
|
|
|
230
258
|
|
|
231
259
|
## Test summary
|
|
232
260
|
|
|
233
|
-
- Test result:
|
|
261
|
+
- Test result: 1545 passed in 32s
|
|
234
262
|
- No flake8 warnings.
|
|
235
263
|
- No mypy errors found.
|
|
236
264
|
- No python layout warnings.
|
|
237
|
-
- Built version(s): 0.
|
|
265
|
+
- Built version(s): 0.2
|
|
238
266
|
- Build and test using Python 3.14.6
|
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
There are 3 related packages for backlog operations:
|
|
4
4
|
|
|
5
|
-
- backlogops
|
|
5
|
+
- **[backlogops](https://pypi.org/project/backlogops/)** a collection of library
|
|
6
|
+
functions to manipulate backlogs
|
|
6
7
|
|
|
7
|
-
- backlogops-cli
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
user to use the library.
|
|
8
|
+
- **[backlogops-cli](https://pypi.org/project/backlogops-cli/)** command line
|
|
9
|
+
interface to use the functions in the library. This is just a thin wrapper
|
|
10
|
+
around the library functions. It serves a dual purpose as both an example of
|
|
11
|
+
how to use the library and as a tool for the user to use the library.
|
|
11
12
|
|
|
12
|
-
- backlogops-gui
|
|
13
|
-
|
|
14
|
-
the library.
|
|
13
|
+
- **[backlogops-gui](https://pypi.org/project/backlogops-gui/)** graphical user
|
|
14
|
+
interface to use the functions in the library. It is based on TkInter. The
|
|
15
|
+
ambition is to keep it as a thin wrapper around the library.
|
|
15
16
|
|
|
16
17
|
## Available functionality
|
|
17
18
|
|
|
@@ -40,6 +41,9 @@ The following functionality is available in all 3 packages:
|
|
|
40
41
|
the key is at a higher level it will bring all items it is a parent of in
|
|
41
42
|
front of it (recursively).
|
|
42
43
|
|
|
44
|
+
- Reorder the backlog in release order, optionally taking dependencies into
|
|
45
|
+
account.
|
|
46
|
+
|
|
43
47
|
- Set planned release dates from the estimated release dates.
|
|
44
48
|
|
|
45
49
|
- Calculate the release dates from the backlog items estimated ready dates, with
|
|
@@ -47,7 +51,23 @@ The following functionality is available in all 3 packages:
|
|
|
47
51
|
|
|
48
52
|
- Validate the backlog and releases for consistency.
|
|
49
53
|
|
|
50
|
-
-
|
|
54
|
+
- Convert a backlog and releases between table file formats.
|
|
55
|
+
|
|
56
|
+
- Order the releases by their planned or estimated date.
|
|
57
|
+
|
|
58
|
+
- Rename columns when reading a file and when writing a file.
|
|
59
|
+
|
|
60
|
+
- Map custom status names in input files to backlog item statuses.
|
|
61
|
+
|
|
62
|
+
- Choose how backlog item levels are written: by number, by name, or both, and
|
|
63
|
+
configure custom level names.
|
|
64
|
+
|
|
65
|
+
- Create stand-alone input or output preset configuration files.
|
|
66
|
+
|
|
67
|
+
- Migrate an older configuration or preset file to the current file format.
|
|
68
|
+
|
|
69
|
+
- A wizard to create a backlog-ops configuration file with the workforce, named
|
|
70
|
+
input and output presets, level names, and status name mapping.
|
|
51
71
|
|
|
52
72
|
## The operating model
|
|
53
73
|
|
|
@@ -65,45 +85,45 @@ availability of the team members.
|
|
|
65
85
|
Each backlog item has the following fields that are used by the algorithms in
|
|
66
86
|
the library:
|
|
67
87
|
|
|
68
|
-
- key
|
|
69
|
-
must not contain whitespace and must not contain any of the characters
|
|
70
|
-
( ) \[ \] \{ \}.
|
|
88
|
+
- `key` The key of the backlog item. Required. Must be unique. Must not be
|
|
89
|
+
empty, must not contain whitespace and must not contain any of the characters
|
|
90
|
+
, . ; : ( ) \[ \] \{ \}.
|
|
71
91
|
|
|
72
|
-
- level
|
|
92
|
+
- `level` The level of the backlog item. Required. Must be an integer.
|
|
73
93
|
|
|
74
|
-
- title
|
|
94
|
+
- `title` The title of the backlog item. Required.
|
|
75
95
|
|
|
76
|
-
- story_points
|
|
96
|
+
- `story_points` The story points of the backlog item. Required.
|
|
77
97
|
|
|
78
|
-
- status
|
|
98
|
+
- `status` The status of the backlog item. Required.
|
|
79
99
|
|
|
80
|
-
- parent_key
|
|
100
|
+
- `parent_key` The key of the parent backlog item. Optional. Must exist as a key
|
|
81
101
|
in the backlog. Parent keys are used to build the hierarchy of the backlog.
|
|
82
102
|
The parent key must be at a higher level than the current item. Parent keys
|
|
83
103
|
introduce implicit dependencies between items: the current item cannot start
|
|
84
104
|
before the parent item starts, and the parent item cannot finish before all
|
|
85
105
|
its children have finished.
|
|
86
106
|
|
|
87
|
-
- release
|
|
88
|
-
rules as the key. Must not be empty string.
|
|
107
|
+
- `release` The release of the backlog item. Optional. Follows the same
|
|
108
|
+
character rules as the key. Must not be empty string.
|
|
89
109
|
|
|
90
|
-
- team
|
|
110
|
+
- `team` The team responsible for the backlog item. Optional. Must not be empty
|
|
91
111
|
string. Must be a valid team name. If None the item can be done by any team.
|
|
92
112
|
If not None. the item can only be done by the specified team.
|
|
93
113
|
|
|
94
|
-
- depends_on_f2s
|
|
114
|
+
- `depends_on_f2s` The list of keys of the backlog items that must have been
|
|
95
115
|
finished before the current item can start. May be empty.
|
|
96
116
|
|
|
97
|
-
- depends_on_f2f
|
|
117
|
+
- `depends_on_f2f` The list of keys of the backlog items that must have been
|
|
98
118
|
finished before the current item can finish. May be empty.
|
|
99
119
|
|
|
100
|
-
- depends_on_s2s
|
|
120
|
+
- `depends_on_s2s` The list of keys of the backlog items that must have been
|
|
101
121
|
started before the current item can start. May be empty.
|
|
102
122
|
|
|
103
|
-
- planned_ready_date
|
|
123
|
+
- `planned_ready_date` The planned ready date of the backlog item. The date that
|
|
104
124
|
is communicated to the customer. Optional.
|
|
105
125
|
|
|
106
|
-
- estimated_ready_date
|
|
126
|
+
- `estimated_ready_date` The estimated ready date of the backlog item. Optional.
|
|
107
127
|
|
|
108
128
|
Additionally each backlog item can have any number of other fields.
|
|
109
129
|
|
|
@@ -170,7 +190,12 @@ from backlogops import (
|
|
|
170
190
|
backlog and its releases from and to a table file.
|
|
171
191
|
|
|
172
192
|
- `read_available_teams`, `write_available_teams`: read and write the
|
|
173
|
-
available-teams
|
|
193
|
+
available-teams workforce on its own.
|
|
194
|
+
|
|
195
|
+
- `read_backlog_ops_config`, `write_backlog_ops_config`,
|
|
196
|
+
`get_backlog_ops_config`: read, write, and look up the top-level
|
|
197
|
+
`BacklogOpsConfig` (workforce, named input and output presets, and the
|
|
198
|
+
optional backlog item levels).
|
|
174
199
|
|
|
175
200
|
- `read_key_list`, `write_key_list`: read and write a list of keys.
|
|
176
201
|
|
|
@@ -184,6 +209,9 @@ from backlogops import (
|
|
|
184
209
|
- `move_keys_first`: reorder so that listed keys (and their children)
|
|
185
210
|
come first.
|
|
186
211
|
|
|
212
|
+
- `backlog_in_release_order`: reorder the backlog to follow the release
|
|
213
|
+
order, optionally honouring dependencies.
|
|
214
|
+
|
|
187
215
|
- `estimate_ready_date`, `set_plan_from_estimate`: estimate ready dates
|
|
188
216
|
and set planned dates from the estimate.
|
|
189
217
|
|
|
@@ -198,9 +226,9 @@ For the full set of public names see the API documentation linked above.
|
|
|
198
226
|
|
|
199
227
|
## Test summary
|
|
200
228
|
|
|
201
|
-
- Test result:
|
|
229
|
+
- Test result: 1545 passed in 32s
|
|
202
230
|
- No flake8 warnings.
|
|
203
231
|
- No mypy errors found.
|
|
204
232
|
- No python layout warnings.
|
|
205
|
-
- Built version(s): 0.
|
|
233
|
+
- Built version(s): 0.2
|
|
206
234
|
- Build and test using Python 3.14.6
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: backlogops
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2
|
|
4
4
|
Summary: Library with backlog operations.
|
|
5
5
|
Author: Tom Björkholm
|
|
6
6
|
Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
|
|
@@ -21,10 +21,10 @@ Classifier: Topic :: Office/Business :: Scheduling
|
|
|
21
21
|
Requires-Python: >=3.12
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE.txt
|
|
24
|
-
Requires-Dist: config-as-json>=1.
|
|
24
|
+
Requires-Dist: config-as-json>=1.3
|
|
25
25
|
Requires-Dist: tableio>=1.0
|
|
26
|
-
Requires-Dist: tableio-cfg-json>=0.
|
|
27
|
-
Requires-Dist: versionreporter>=0.
|
|
26
|
+
Requires-Dist: tableio-cfg-json>=0.6
|
|
27
|
+
Requires-Dist: versionreporter>=0.3
|
|
28
28
|
Dynamic: author
|
|
29
29
|
Dynamic: license-file
|
|
30
30
|
Dynamic: requires-dist
|
|
@@ -34,16 +34,17 @@ Dynamic: requires-python
|
|
|
34
34
|
|
|
35
35
|
There are 3 related packages for backlog operations:
|
|
36
36
|
|
|
37
|
-
- backlogops
|
|
37
|
+
- **[backlogops](https://pypi.org/project/backlogops/)** a collection of library
|
|
38
|
+
functions to manipulate backlogs
|
|
38
39
|
|
|
39
|
-
- backlogops-cli
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
user to use the library.
|
|
40
|
+
- **[backlogops-cli](https://pypi.org/project/backlogops-cli/)** command line
|
|
41
|
+
interface to use the functions in the library. This is just a thin wrapper
|
|
42
|
+
around the library functions. It serves a dual purpose as both an example of
|
|
43
|
+
how to use the library and as a tool for the user to use the library.
|
|
43
44
|
|
|
44
|
-
- backlogops-gui
|
|
45
|
-
|
|
46
|
-
the library.
|
|
45
|
+
- **[backlogops-gui](https://pypi.org/project/backlogops-gui/)** graphical user
|
|
46
|
+
interface to use the functions in the library. It is based on TkInter. The
|
|
47
|
+
ambition is to keep it as a thin wrapper around the library.
|
|
47
48
|
|
|
48
49
|
## Available functionality
|
|
49
50
|
|
|
@@ -72,6 +73,9 @@ The following functionality is available in all 3 packages:
|
|
|
72
73
|
the key is at a higher level it will bring all items it is a parent of in
|
|
73
74
|
front of it (recursively).
|
|
74
75
|
|
|
76
|
+
- Reorder the backlog in release order, optionally taking dependencies into
|
|
77
|
+
account.
|
|
78
|
+
|
|
75
79
|
- Set planned release dates from the estimated release dates.
|
|
76
80
|
|
|
77
81
|
- Calculate the release dates from the backlog items estimated ready dates, with
|
|
@@ -79,7 +83,23 @@ The following functionality is available in all 3 packages:
|
|
|
79
83
|
|
|
80
84
|
- Validate the backlog and releases for consistency.
|
|
81
85
|
|
|
82
|
-
-
|
|
86
|
+
- Convert a backlog and releases between table file formats.
|
|
87
|
+
|
|
88
|
+
- Order the releases by their planned or estimated date.
|
|
89
|
+
|
|
90
|
+
- Rename columns when reading a file and when writing a file.
|
|
91
|
+
|
|
92
|
+
- Map custom status names in input files to backlog item statuses.
|
|
93
|
+
|
|
94
|
+
- Choose how backlog item levels are written: by number, by name, or both, and
|
|
95
|
+
configure custom level names.
|
|
96
|
+
|
|
97
|
+
- Create stand-alone input or output preset configuration files.
|
|
98
|
+
|
|
99
|
+
- Migrate an older configuration or preset file to the current file format.
|
|
100
|
+
|
|
101
|
+
- A wizard to create a backlog-ops configuration file with the workforce, named
|
|
102
|
+
input and output presets, level names, and status name mapping.
|
|
83
103
|
|
|
84
104
|
## The operating model
|
|
85
105
|
|
|
@@ -97,45 +117,45 @@ availability of the team members.
|
|
|
97
117
|
Each backlog item has the following fields that are used by the algorithms in
|
|
98
118
|
the library:
|
|
99
119
|
|
|
100
|
-
- key
|
|
101
|
-
must not contain whitespace and must not contain any of the characters
|
|
102
|
-
( ) \[ \] \{ \}.
|
|
120
|
+
- `key` The key of the backlog item. Required. Must be unique. Must not be
|
|
121
|
+
empty, must not contain whitespace and must not contain any of the characters
|
|
122
|
+
, . ; : ( ) \[ \] \{ \}.
|
|
103
123
|
|
|
104
|
-
- level
|
|
124
|
+
- `level` The level of the backlog item. Required. Must be an integer.
|
|
105
125
|
|
|
106
|
-
- title
|
|
126
|
+
- `title` The title of the backlog item. Required.
|
|
107
127
|
|
|
108
|
-
- story_points
|
|
128
|
+
- `story_points` The story points of the backlog item. Required.
|
|
109
129
|
|
|
110
|
-
- status
|
|
130
|
+
- `status` The status of the backlog item. Required.
|
|
111
131
|
|
|
112
|
-
- parent_key
|
|
132
|
+
- `parent_key` The key of the parent backlog item. Optional. Must exist as a key
|
|
113
133
|
in the backlog. Parent keys are used to build the hierarchy of the backlog.
|
|
114
134
|
The parent key must be at a higher level than the current item. Parent keys
|
|
115
135
|
introduce implicit dependencies between items: the current item cannot start
|
|
116
136
|
before the parent item starts, and the parent item cannot finish before all
|
|
117
137
|
its children have finished.
|
|
118
138
|
|
|
119
|
-
- release
|
|
120
|
-
rules as the key. Must not be empty string.
|
|
139
|
+
- `release` The release of the backlog item. Optional. Follows the same
|
|
140
|
+
character rules as the key. Must not be empty string.
|
|
121
141
|
|
|
122
|
-
- team
|
|
142
|
+
- `team` The team responsible for the backlog item. Optional. Must not be empty
|
|
123
143
|
string. Must be a valid team name. If None the item can be done by any team.
|
|
124
144
|
If not None. the item can only be done by the specified team.
|
|
125
145
|
|
|
126
|
-
- depends_on_f2s
|
|
146
|
+
- `depends_on_f2s` The list of keys of the backlog items that must have been
|
|
127
147
|
finished before the current item can start. May be empty.
|
|
128
148
|
|
|
129
|
-
- depends_on_f2f
|
|
149
|
+
- `depends_on_f2f` The list of keys of the backlog items that must have been
|
|
130
150
|
finished before the current item can finish. May be empty.
|
|
131
151
|
|
|
132
|
-
- depends_on_s2s
|
|
152
|
+
- `depends_on_s2s` The list of keys of the backlog items that must have been
|
|
133
153
|
started before the current item can start. May be empty.
|
|
134
154
|
|
|
135
|
-
- planned_ready_date
|
|
155
|
+
- `planned_ready_date` The planned ready date of the backlog item. The date that
|
|
136
156
|
is communicated to the customer. Optional.
|
|
137
157
|
|
|
138
|
-
- estimated_ready_date
|
|
158
|
+
- `estimated_ready_date` The estimated ready date of the backlog item. Optional.
|
|
139
159
|
|
|
140
160
|
Additionally each backlog item can have any number of other fields.
|
|
141
161
|
|
|
@@ -202,7 +222,12 @@ from backlogops import (
|
|
|
202
222
|
backlog and its releases from and to a table file.
|
|
203
223
|
|
|
204
224
|
- `read_available_teams`, `write_available_teams`: read and write the
|
|
205
|
-
available-teams
|
|
225
|
+
available-teams workforce on its own.
|
|
226
|
+
|
|
227
|
+
- `read_backlog_ops_config`, `write_backlog_ops_config`,
|
|
228
|
+
`get_backlog_ops_config`: read, write, and look up the top-level
|
|
229
|
+
`BacklogOpsConfig` (workforce, named input and output presets, and the
|
|
230
|
+
optional backlog item levels).
|
|
206
231
|
|
|
207
232
|
- `read_key_list`, `write_key_list`: read and write a list of keys.
|
|
208
233
|
|
|
@@ -216,6 +241,9 @@ from backlogops import (
|
|
|
216
241
|
- `move_keys_first`: reorder so that listed keys (and their children)
|
|
217
242
|
come first.
|
|
218
243
|
|
|
244
|
+
- `backlog_in_release_order`: reorder the backlog to follow the release
|
|
245
|
+
order, optionally honouring dependencies.
|
|
246
|
+
|
|
219
247
|
- `estimate_ready_date`, `set_plan_from_estimate`: estimate ready dates
|
|
220
248
|
and set planned dates from the estimate.
|
|
221
249
|
|
|
@@ -230,9 +258,9 @@ For the full set of public names see the API documentation linked above.
|
|
|
230
258
|
|
|
231
259
|
## Test summary
|
|
232
260
|
|
|
233
|
-
- Test result:
|
|
261
|
+
- Test result: 1545 passed in 32s
|
|
234
262
|
- No flake8 warnings.
|
|
235
263
|
- No mypy errors found.
|
|
236
264
|
- No python layout warnings.
|
|
237
|
-
- Built version(s): 0.
|
|
265
|
+
- Built version(s): 0.2
|
|
238
266
|
- Build and test using Python 3.14.6
|
|
@@ -11,17 +11,20 @@ src/backlogops/__init__.py
|
|
|
11
11
|
src/backlogops/apply_format_rules.py
|
|
12
12
|
src/backlogops/available_teams.py
|
|
13
13
|
src/backlogops/available_teams_config.py
|
|
14
|
-
src/backlogops/available_teams_wizard.py
|
|
15
14
|
src/backlogops/backlog.py
|
|
16
15
|
src/backlogops/backlog_helpers.py
|
|
16
|
+
src/backlogops/backlog_in_release_order.py
|
|
17
|
+
src/backlogops/backlog_ops_config.py
|
|
18
|
+
src/backlogops/backlog_ops_wizard.py
|
|
17
19
|
src/backlogops/backlog_releases.py
|
|
18
20
|
src/backlogops/backlog_releases_io.py
|
|
19
|
-
src/backlogops/
|
|
21
|
+
src/backlogops/blo_version_reporter.py
|
|
20
22
|
src/backlogops/date_ranges.py
|
|
21
23
|
src/backlogops/demo_backlog.py
|
|
22
24
|
src/backlogops/estimate_ready_date.py
|
|
23
25
|
src/backlogops/format_rules.py
|
|
24
26
|
src/backlogops/io_config.py
|
|
27
|
+
src/backlogops/io_preset_wizard.py
|
|
25
28
|
src/backlogops/key_list_io.py
|
|
26
29
|
src/backlogops/levels.py
|
|
27
30
|
src/backlogops/move_keys_first.py
|
|
@@ -35,4 +38,5 @@ src/backlogops/releases.py
|
|
|
35
38
|
src/backlogops/table_create.py
|
|
36
39
|
src/backlogops/table_rows.py
|
|
37
40
|
src/backlogops/team.py
|
|
41
|
+
src/backlogops/wizard_helpers.py
|
|
38
42
|
src/backlogops/work_hours.py
|
|
@@ -5,7 +5,7 @@ from setuptools import setup
|
|
|
5
5
|
|
|
6
6
|
setup(
|
|
7
7
|
name='backlogops',
|
|
8
|
-
version='0.
|
|
8
|
+
version='0.2',
|
|
9
9
|
description='Library with backlog operations.',
|
|
10
10
|
author='Tom Björkholm',
|
|
11
11
|
author_email='klausuler_linnet0q@icloud.com',
|
|
@@ -14,10 +14,9 @@ setup(
|
|
|
14
14
|
package_dir={'backlogops': 'src/backlogops'},
|
|
15
15
|
package_data={'backlogops': ['src/py.typed']},
|
|
16
16
|
install_requires=[
|
|
17
|
-
|
|
18
|
-
'config-as-json >= 1.2',
|
|
17
|
+
'config-as-json >= 1.3',
|
|
19
18
|
'tableio >= 1.0',
|
|
20
|
-
'tableio-cfg-json >= 0.
|
|
21
|
-
'versionreporter >= 0.
|
|
19
|
+
'tableio-cfg-json >= 0.6',
|
|
20
|
+
'versionreporter >= 0.3'
|
|
22
21
|
]
|
|
23
22
|
)
|