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.
Files changed (50) hide show
  1. {backlogops-0.1 → backlogops-0.2}/PKG-INFO +60 -32
  2. {backlogops-0.1 → backlogops-0.2}/README_pypi.md +56 -28
  3. {backlogops-0.1 → backlogops-0.2}/backlogops.egg-info/PKG-INFO +60 -32
  4. {backlogops-0.1 → backlogops-0.2}/backlogops.egg-info/SOURCES.txt +6 -2
  5. backlogops-0.2/backlogops.egg-info/requires.txt +4 -0
  6. {backlogops-0.1 → backlogops-0.2}/pyproject.toml +1 -1
  7. {backlogops-0.1 → backlogops-0.2}/setup.py +4 -5
  8. {backlogops-0.1 → backlogops-0.2}/src/backlogops/__init__.py +34 -20
  9. {backlogops-0.1 → backlogops-0.2}/src/backlogops/available_teams_config.py +4 -153
  10. {backlogops-0.1 → backlogops-0.2}/src/backlogops/backlog.py +45 -3
  11. backlogops-0.2/src/backlogops/backlog_in_release_order.py +255 -0
  12. backlogops-0.2/src/backlogops/backlog_ops_config.py +421 -0
  13. backlogops-0.2/src/backlogops/backlog_ops_wizard.py +295 -0
  14. {backlogops-0.1 → backlogops-0.2}/src/backlogops/backlog_releases.py +54 -1
  15. backlogops-0.2/src/backlogops/backlog_releases_io.py +296 -0
  16. backlogops-0.2/src/backlogops/blo_version_reporter.py +40 -0
  17. backlogops-0.2/src/backlogops/io_config.py +590 -0
  18. backlogops-0.2/src/backlogops/io_preset_wizard.py +148 -0
  19. {backlogops-0.1 → backlogops-0.2}/src/backlogops/key_list_io.py +33 -14
  20. {backlogops-0.1 → backlogops-0.2}/src/backlogops/levels.py +63 -2
  21. {backlogops-0.1 → backlogops-0.2}/src/backlogops/release_change_io.py +25 -20
  22. {backlogops-0.1 → backlogops-0.2}/src/backlogops/releases.py +27 -0
  23. {backlogops-0.1 → backlogops-0.2}/src/backlogops/table_create.py +29 -4
  24. backlogops-0.2/src/backlogops/table_rows.py +294 -0
  25. backlogops-0.2/src/backlogops/wizard_helpers.py +760 -0
  26. backlogops-0.1/backlogops.egg-info/requires.txt +0 -4
  27. backlogops-0.1/src/backlogops/available_teams_wizard.py +0 -448
  28. backlogops-0.1/src/backlogops/backlog_releases_io.py +0 -200
  29. backlogops-0.1/src/backlogops/console_yes_no_bridge.py +0 -45
  30. backlogops-0.1/src/backlogops/io_config.py +0 -277
  31. backlogops-0.1/src/backlogops/table_rows.py +0 -125
  32. {backlogops-0.1 → backlogops-0.2}/LICENSE.txt +0 -0
  33. {backlogops-0.1 → backlogops-0.2}/backlogops.egg-info/dependency_links.txt +0 -0
  34. {backlogops-0.1 → backlogops-0.2}/backlogops.egg-info/top_level.txt +0 -0
  35. {backlogops-0.1 → backlogops-0.2}/setup.cfg +0 -0
  36. {backlogops-0.1 → backlogops-0.2}/src/backlogops/apply_format_rules.py +0 -0
  37. {backlogops-0.1 → backlogops-0.2}/src/backlogops/available_teams.py +0 -0
  38. {backlogops-0.1 → backlogops-0.2}/src/backlogops/backlog_helpers.py +0 -0
  39. {backlogops-0.1 → backlogops-0.2}/src/backlogops/date_ranges.py +0 -0
  40. {backlogops-0.1 → backlogops-0.2}/src/backlogops/demo_backlog.py +0 -0
  41. {backlogops-0.1 → backlogops-0.2}/src/backlogops/estimate_ready_date.py +0 -0
  42. {backlogops-0.1 → backlogops-0.2}/src/backlogops/format_rules.py +0 -0
  43. {backlogops-0.1 → backlogops-0.2}/src/backlogops/move_keys_first.py +0 -0
  44. {backlogops-0.1 → backlogops-0.2}/src/backlogops/no_text_io.py +0 -0
  45. {backlogops-0.1 → backlogops-0.2}/src/backlogops/order_by_dependencies.py +0 -0
  46. {backlogops-0.1 → backlogops-0.2}/src/backlogops/person.py +0 -0
  47. {backlogops-0.1 → backlogops-0.2}/src/backlogops/py.typed +0 -0
  48. {backlogops-0.1 → backlogops-0.2}/src/backlogops/release_backlog_updates.py +0 -0
  49. {backlogops-0.1 → backlogops-0.2}/src/backlogops/team.py +0 -0
  50. {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.1
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.2
24
+ Requires-Dist: config-as-json>=1.3
25
25
  Requires-Dist: tableio>=1.0
26
- Requires-Dist: tableio-cfg-json>=0.4
27
- Requires-Dist: versionreporter>=0.2
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: a collection of library functions to manipulate backlogs
37
+ - **[backlogops](https://pypi.org/project/backlogops/)** a collection of library
38
+ functions to manipulate backlogs
38
39
 
39
- - backlogops-cli: command line interface to use the functions in the library.
40
- This is just a thin wrapper around the library functions. It serves a dual
41
- purpose as both an example of how to use the library and as a tool for the
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: graphical user interface to use the functions in the library.
45
- It is based on TkInter. The ambition is to keep it as a thin wrapper around
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
- - A wizard to create an available teams configuration.
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: The key of the backlog item. Required. Must be unique. Must not be empty,
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: The level of the backlog item. Required. Must be an integer.
124
+ - `level` The level of the backlog item. Required. Must be an integer.
105
125
 
106
- - title: The title of the backlog item. Required.
126
+ - `title` The title of the backlog item. Required.
107
127
 
108
- - story_points: The story points of the backlog item. Required.
128
+ - `story_points` The story points of the backlog item. Required.
109
129
 
110
- - status: The status of the backlog item. Required.
130
+ - `status` The status of the backlog item. Required.
111
131
 
112
- - parent_key: The key of the parent backlog item. Optional. Must exist as a 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: The release of the backlog item. Optional. Follows the same character
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: The team responsible for the backlog item. Optional. Must not be empty
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: The list of keys of the backlog items that must have been
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: The list of keys of the backlog items that must have been
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: The list of keys of the backlog items that must have been
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: The planned ready date of the backlog item. The date that
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: The estimated ready date of the backlog item. Optional.
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 configuration.
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: 1066 passed in 16s
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.1
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: a collection of library functions to manipulate backlogs
5
+ - **[backlogops](https://pypi.org/project/backlogops/)** a collection of library
6
+ functions to manipulate backlogs
6
7
 
7
- - backlogops-cli: command line interface to use the functions in the library.
8
- This is just a thin wrapper around the library functions. It serves a dual
9
- purpose as both an example of how to use the library and as a tool for the
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: graphical user interface to use the functions in the library.
13
- It is based on TkInter. The ambition is to keep it as a thin wrapper around
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
- - A wizard to create an available teams configuration.
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: The key of the backlog item. Required. Must be unique. Must not be empty,
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: The level of the backlog item. Required. Must be an integer.
92
+ - `level` The level of the backlog item. Required. Must be an integer.
73
93
 
74
- - title: The title of the backlog item. Required.
94
+ - `title` The title of the backlog item. Required.
75
95
 
76
- - story_points: The story points of the backlog item. Required.
96
+ - `story_points` The story points of the backlog item. Required.
77
97
 
78
- - status: The status of the backlog item. Required.
98
+ - `status` The status of the backlog item. Required.
79
99
 
80
- - parent_key: The key of the parent backlog item. Optional. Must exist as a 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: The release of the backlog item. Optional. Follows the same character
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: The team responsible for the backlog item. Optional. Must not be empty
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: The list of keys of the backlog items that must have been
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: The list of keys of the backlog items that must have been
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: The list of keys of the backlog items that must have been
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: The planned ready date of the backlog item. The date that
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: The estimated ready date of the backlog item. Optional.
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 configuration.
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: 1066 passed in 16s
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.1
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.1
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.2
24
+ Requires-Dist: config-as-json>=1.3
25
25
  Requires-Dist: tableio>=1.0
26
- Requires-Dist: tableio-cfg-json>=0.4
27
- Requires-Dist: versionreporter>=0.2
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: a collection of library functions to manipulate backlogs
37
+ - **[backlogops](https://pypi.org/project/backlogops/)** a collection of library
38
+ functions to manipulate backlogs
38
39
 
39
- - backlogops-cli: command line interface to use the functions in the library.
40
- This is just a thin wrapper around the library functions. It serves a dual
41
- purpose as both an example of how to use the library and as a tool for the
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: graphical user interface to use the functions in the library.
45
- It is based on TkInter. The ambition is to keep it as a thin wrapper around
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
- - A wizard to create an available teams configuration.
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: The key of the backlog item. Required. Must be unique. Must not be empty,
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: The level of the backlog item. Required. Must be an integer.
124
+ - `level` The level of the backlog item. Required. Must be an integer.
105
125
 
106
- - title: The title of the backlog item. Required.
126
+ - `title` The title of the backlog item. Required.
107
127
 
108
- - story_points: The story points of the backlog item. Required.
128
+ - `story_points` The story points of the backlog item. Required.
109
129
 
110
- - status: The status of the backlog item. Required.
130
+ - `status` The status of the backlog item. Required.
111
131
 
112
- - parent_key: The key of the parent backlog item. Optional. Must exist as a 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: The release of the backlog item. Optional. Follows the same character
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: The team responsible for the backlog item. Optional. Must not be empty
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: The list of keys of the backlog items that must have been
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: The list of keys of the backlog items that must have been
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: The list of keys of the backlog items that must have been
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: The planned ready date of the backlog item. The date that
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: The estimated ready date of the backlog item. Optional.
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 configuration.
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: 1066 passed in 16s
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.1
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/console_yes_no_bridge.py
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
@@ -0,0 +1,4 @@
1
+ config-as-json>=1.3
2
+ tableio>=1.0
3
+ tableio-cfg-json>=0.6
4
+ versionreporter>=0.3
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "backlogops"
7
- version = "0.1"
7
+ version = "0.2"
8
8
  authors = [
9
9
  { name="Tom Björkholm", email="klausuler_linnet0q@icloud.com" },
10
10
  ]
@@ -5,7 +5,7 @@ from setuptools import setup
5
5
 
6
6
  setup(
7
7
  name='backlogops',
8
- version='0.1',
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
- # 'argcomplete >= 3.6.3',
18
- 'config-as-json >= 1.2',
17
+ 'config-as-json >= 1.3',
19
18
  'tableio >= 1.0',
20
- 'tableio-cfg-json >= 0.4',
21
- 'versionreporter >= 0.2'
19
+ 'tableio-cfg-json >= 0.6',
20
+ 'versionreporter >= 0.3'
22
21
  ]
23
22
  )