backlogops 0.2__tar.gz → 0.3__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.2/backlogops.egg-info → backlogops-0.3}/PKG-INFO +64 -18
- backlogops-0.2/PKG-INFO → backlogops-0.3/README_pypi.md +53 -42
- backlogops-0.2/README_pypi.md → backlogops-0.3/backlogops.egg-info/PKG-INFO +88 -10
- {backlogops-0.2 → backlogops-0.3}/backlogops.egg-info/SOURCES.txt +18 -0
- backlogops-0.3/backlogops.egg-info/requires.txt +6 -0
- {backlogops-0.2 → backlogops-0.3}/pyproject.toml +6 -5
- {backlogops-0.2 → backlogops-0.3}/setup.py +7 -5
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/__init__.py +69 -5
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/backlog.py +6 -4
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/backlog_helpers.py +68 -6
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/backlog_ops_config.py +34 -4
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/backlog_ops_wizard.py +13 -3
- backlogops-0.3/src/backlogops/jira_connect.py +105 -0
- backlogops-0.3/src/backlogops/jira_io_config.py +787 -0
- backlogops-0.3/src/backlogops/jira_order_releases.py +202 -0
- backlogops-0.3/src/backlogops/jira_rank_backlog.py +251 -0
- backlogops-0.3/src/backlogops/jira_rank_by_keys.py +165 -0
- backlogops-0.3/src/backlogops/jira_rank_move_keys.py +273 -0
- backlogops-0.3/src/backlogops/jira_read.py +372 -0
- backlogops-0.3/src/backlogops/jira_rename_releases.py +214 -0
- backlogops-0.3/src/backlogops/jira_token.py +76 -0
- backlogops-0.3/src/backlogops/jira_update_backlog.py +629 -0
- backlogops-0.3/src/backlogops/jira_update_releases.py +229 -0
- backlogops-0.3/src/backlogops/jira_wizard.py +246 -0
- backlogops-0.3/src/backlogops/jira_write.py +927 -0
- backlogops-0.3/src/backlogops/jira_write_fields.py +167 -0
- backlogops-0.3/src/backlogops/jira_write_format.py +101 -0
- backlogops-0.3/src/backlogops/jira_write_releases.py +327 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/key_list_io.py +4 -10
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/levels.py +15 -12
- backlogops-0.3/src/backlogops/name_list_io.py +68 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/order_by_dependencies.py +24 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/releases.py +13 -15
- backlogops-0.3/src/backlogops/rename_list_io.py +135 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/table_create.py +33 -7
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/wizard_helpers.py +242 -9
- backlogops-0.2/backlogops.egg-info/requires.txt +0 -4
- {backlogops-0.2 → backlogops-0.3}/LICENSE.txt +0 -0
- {backlogops-0.2 → backlogops-0.3}/backlogops.egg-info/dependency_links.txt +0 -0
- {backlogops-0.2 → backlogops-0.3}/backlogops.egg-info/top_level.txt +0 -0
- {backlogops-0.2 → backlogops-0.3}/setup.cfg +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/apply_format_rules.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/available_teams.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/available_teams_config.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/backlog_in_release_order.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/backlog_releases.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/backlog_releases_io.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/blo_version_reporter.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/date_ranges.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/demo_backlog.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/estimate_ready_date.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/format_rules.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/io_config.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/io_preset_wizard.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/move_keys_first.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/no_text_io.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/person.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/py.typed +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/release_backlog_updates.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/release_change_io.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/table_rows.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/team.py +0 -0
- {backlogops-0.2 → backlogops-0.3}/src/backlogops/work_hours.py +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: backlogops
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3
|
|
4
4
|
Summary: Library with backlog operations.
|
|
5
5
|
Author: Tom Björkholm
|
|
6
6
|
Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
|
|
7
7
|
License-Expression: MIT
|
|
8
|
-
Project-URL: Homepage, https://
|
|
9
|
-
Project-URL: Source code, https://
|
|
10
|
-
Project-URL: Documentation, https://
|
|
8
|
+
Project-URL: Homepage, https://github.com/tom-bjorkholm/backlog-ops
|
|
9
|
+
Project-URL: Source code, https://github.com/tom-bjorkholm/backlog-ops
|
|
10
|
+
Project-URL: Documentation, https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/
|
|
11
11
|
Keywords: backlog,release planning,agile,scrum,scheduling,roadmap,project management,product owner,product management
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -18,13 +18,16 @@ Classifier: Development Status :: 3 - Alpha
|
|
|
18
18
|
Classifier: Intended Audience :: Developers
|
|
19
19
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
20
|
Classifier: Topic :: Office/Business :: Scheduling
|
|
21
|
+
Classifier: Typing :: Typed
|
|
21
22
|
Requires-Python: >=3.12
|
|
22
23
|
Description-Content-Type: text/markdown
|
|
23
24
|
License-File: LICENSE.txt
|
|
24
|
-
Requires-Dist: config-as-json>=1.
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist:
|
|
27
|
-
Requires-Dist:
|
|
25
|
+
Requires-Dist: config-as-json>=1.4
|
|
26
|
+
Requires-Dist: cryptography>=49.0.0
|
|
27
|
+
Requires-Dist: jira[cli,opt]>=3.10.5
|
|
28
|
+
Requires-Dist: tableio>=1.1
|
|
29
|
+
Requires-Dist: tableio-cfg-json>=0.8
|
|
30
|
+
Requires-Dist: versionreporter>=0.4
|
|
28
31
|
Dynamic: author
|
|
29
32
|
Dynamic: license-file
|
|
30
33
|
Dynamic: requires-dist
|
|
@@ -101,6 +104,23 @@ The following functionality is available in all 3 packages:
|
|
|
101
104
|
- A wizard to create a backlog-ops configuration file with the workforce, named
|
|
102
105
|
input and output presets, level names, and status name mapping.
|
|
103
106
|
|
|
107
|
+
- Read a backlog and releases from Jira into a backlog and release table.
|
|
108
|
+
|
|
109
|
+
- Write a backlog to Jira, creating a new Jira issue for each backlog item.
|
|
110
|
+
|
|
111
|
+
- Update a backlog that is already in Jira, changing only the chosen columns.
|
|
112
|
+
|
|
113
|
+
- Add the releases to Jira as Jira versions.
|
|
114
|
+
|
|
115
|
+
- Update the releases in Jira, setting their dates to the planned release dates.
|
|
116
|
+
|
|
117
|
+
- Order the releases in Jira by date, by a name list, or by the input order.
|
|
118
|
+
|
|
119
|
+
- Rename releases in Jira, changing the Jira version names.
|
|
120
|
+
|
|
121
|
+
- Move backlog items to a chosen anchor in the Jira rank order, following a key
|
|
122
|
+
list.
|
|
123
|
+
|
|
104
124
|
## The operating model
|
|
105
125
|
|
|
106
126
|
The operating model that most of the functionality is designed for is that the
|
|
@@ -136,8 +156,9 @@ the library:
|
|
|
136
156
|
before the parent item starts, and the parent item cannot finish before all
|
|
137
157
|
its children have finished.
|
|
138
158
|
|
|
139
|
-
- `release` The release of the backlog item. Optional.
|
|
140
|
-
|
|
159
|
+
- `release` The release of the backlog item. Optional. Must not be empty string,
|
|
160
|
+
must not start or end with whitespace, and must not contain tabs, newlines or
|
|
161
|
+
control characters.
|
|
141
162
|
|
|
142
163
|
- `team` The team responsible for the backlog item. Optional. Must not be empty
|
|
143
164
|
string. Must be a valid team name. If None the item can be done by any team.
|
|
@@ -177,21 +198,27 @@ To install backlogops on Microsoft Windows, run the following command:
|
|
|
177
198
|
pip install --upgrade backlogops
|
|
178
199
|
````
|
|
179
200
|
|
|
201
|
+
## Using backlogops documentation
|
|
202
|
+
|
|
203
|
+
For a better understanding of how to use the library, CLI or GUI, see the user
|
|
204
|
+
documentation:
|
|
205
|
+
[Using backlogops](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc//using_backlogops/README.md)
|
|
206
|
+
|
|
180
207
|
## API documentation
|
|
181
208
|
|
|
182
209
|
For more detailed code documentation, see the API documentation:
|
|
183
210
|
|
|
184
|
-
- [Library public API](https://
|
|
211
|
+
- [Library public API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_api.md)
|
|
185
212
|
|
|
186
|
-
- [Library protected API](https://
|
|
213
|
+
- [Library protected API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_api.md)
|
|
187
214
|
|
|
188
|
-
- [
|
|
215
|
+
- [Public CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_cli.md)
|
|
189
216
|
|
|
190
|
-
- [
|
|
217
|
+
- [Protected CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_cli.md)
|
|
191
218
|
|
|
192
|
-
- [
|
|
219
|
+
- [Public GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_gui.md)
|
|
193
220
|
|
|
194
|
-
- [
|
|
221
|
+
- [Protected GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_gui.md)
|
|
195
222
|
|
|
196
223
|
## Library main entry points
|
|
197
224
|
|
|
@@ -254,13 +281,32 @@ from backlogops import (
|
|
|
254
281
|
- `check_backlog_consistency`: validate the backlog and releases for
|
|
255
282
|
consistency.
|
|
256
283
|
|
|
284
|
+
### Jira
|
|
285
|
+
|
|
286
|
+
- `read_backlog_from_jira`: read a backlog and its releases from Jira.
|
|
287
|
+
|
|
288
|
+
- `add_backlog_to_jira`, `update_backlog_in_jira`: create Jira issues
|
|
289
|
+
for the backlog items, or update selected fields of existing issues.
|
|
290
|
+
|
|
291
|
+
- `add_releases_to_jira`, `update_releases_in_jira`: create Jira
|
|
292
|
+
versions for the releases, or update their dates.
|
|
293
|
+
|
|
294
|
+
- `order_releases_in_jira`, `rename_releases_in_jira`: order and rename
|
|
295
|
+
the Jira versions.
|
|
296
|
+
|
|
297
|
+
- `jira_rank_backlog`, `jira_rank_move_keys`: rank backlog items in the
|
|
298
|
+
Jira rank order.
|
|
299
|
+
|
|
300
|
+
- `JiraIOConfig`, `JiraPreset`: the Jira connection and preset
|
|
301
|
+
configuration.
|
|
302
|
+
|
|
257
303
|
For the full set of public names see the API documentation linked above.
|
|
258
304
|
|
|
259
305
|
## Test summary
|
|
260
306
|
|
|
261
|
-
- Test result:
|
|
307
|
+
- Test result: 2284 passed, 7 deselected in 44s
|
|
262
308
|
- No flake8 warnings.
|
|
263
309
|
- No mypy errors found.
|
|
264
310
|
- No python layout warnings.
|
|
265
|
-
- Built version(s): 0.
|
|
311
|
+
- Built version(s): 0.3
|
|
266
312
|
- Build and test using Python 3.14.6
|
|
@@ -1,35 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: backlogops
|
|
3
|
-
Version: 0.2
|
|
4
|
-
Summary: Library with backlog operations.
|
|
5
|
-
Author: Tom Björkholm
|
|
6
|
-
Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
|
|
7
|
-
License-Expression: MIT
|
|
8
|
-
Project-URL: Homepage, https://bitbucket.org/tom-bjorkholm/backlog-ops
|
|
9
|
-
Project-URL: Source code, https://bitbucket.org/tom-bjorkholm/backlog-ops
|
|
10
|
-
Project-URL: Documentation, https://bitbucket.org/tom-bjorkholm/backlog-ops/src/master/doc/
|
|
11
|
-
Keywords: backlog,release planning,agile,scrum,scheduling,roadmap,project management,product owner,product management
|
|
12
|
-
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
-
Classifier: Operating System :: OS Independent
|
|
17
|
-
Classifier: Development Status :: 3 - Alpha
|
|
18
|
-
Classifier: Intended Audience :: Developers
|
|
19
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
-
Classifier: Topic :: Office/Business :: Scheduling
|
|
21
|
-
Requires-Python: >=3.12
|
|
22
|
-
Description-Content-Type: text/markdown
|
|
23
|
-
License-File: LICENSE.txt
|
|
24
|
-
Requires-Dist: config-as-json>=1.3
|
|
25
|
-
Requires-Dist: tableio>=1.0
|
|
26
|
-
Requires-Dist: tableio-cfg-json>=0.6
|
|
27
|
-
Requires-Dist: versionreporter>=0.3
|
|
28
|
-
Dynamic: author
|
|
29
|
-
Dynamic: license-file
|
|
30
|
-
Dynamic: requires-dist
|
|
31
|
-
Dynamic: requires-python
|
|
32
|
-
|
|
33
1
|
# backlogops
|
|
34
2
|
|
|
35
3
|
There are 3 related packages for backlog operations:
|
|
@@ -101,6 +69,23 @@ The following functionality is available in all 3 packages:
|
|
|
101
69
|
- A wizard to create a backlog-ops configuration file with the workforce, named
|
|
102
70
|
input and output presets, level names, and status name mapping.
|
|
103
71
|
|
|
72
|
+
- Read a backlog and releases from Jira into a backlog and release table.
|
|
73
|
+
|
|
74
|
+
- Write a backlog to Jira, creating a new Jira issue for each backlog item.
|
|
75
|
+
|
|
76
|
+
- Update a backlog that is already in Jira, changing only the chosen columns.
|
|
77
|
+
|
|
78
|
+
- Add the releases to Jira as Jira versions.
|
|
79
|
+
|
|
80
|
+
- Update the releases in Jira, setting their dates to the planned release dates.
|
|
81
|
+
|
|
82
|
+
- Order the releases in Jira by date, by a name list, or by the input order.
|
|
83
|
+
|
|
84
|
+
- Rename releases in Jira, changing the Jira version names.
|
|
85
|
+
|
|
86
|
+
- Move backlog items to a chosen anchor in the Jira rank order, following a key
|
|
87
|
+
list.
|
|
88
|
+
|
|
104
89
|
## The operating model
|
|
105
90
|
|
|
106
91
|
The operating model that most of the functionality is designed for is that the
|
|
@@ -136,8 +121,9 @@ the library:
|
|
|
136
121
|
before the parent item starts, and the parent item cannot finish before all
|
|
137
122
|
its children have finished.
|
|
138
123
|
|
|
139
|
-
- `release` The release of the backlog item. Optional.
|
|
140
|
-
|
|
124
|
+
- `release` The release of the backlog item. Optional. Must not be empty string,
|
|
125
|
+
must not start or end with whitespace, and must not contain tabs, newlines or
|
|
126
|
+
control characters.
|
|
141
127
|
|
|
142
128
|
- `team` The team responsible for the backlog item. Optional. Must not be empty
|
|
143
129
|
string. Must be a valid team name. If None the item can be done by any team.
|
|
@@ -177,21 +163,27 @@ To install backlogops on Microsoft Windows, run the following command:
|
|
|
177
163
|
pip install --upgrade backlogops
|
|
178
164
|
````
|
|
179
165
|
|
|
166
|
+
## Using backlogops documentation
|
|
167
|
+
|
|
168
|
+
For a better understanding of how to use the library, CLI or GUI, see the user
|
|
169
|
+
documentation:
|
|
170
|
+
[Using backlogops](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc//using_backlogops/README.md)
|
|
171
|
+
|
|
180
172
|
## API documentation
|
|
181
173
|
|
|
182
174
|
For more detailed code documentation, see the API documentation:
|
|
183
175
|
|
|
184
|
-
- [Library public API](https://
|
|
176
|
+
- [Library public API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_api.md)
|
|
185
177
|
|
|
186
|
-
- [Library protected API](https://
|
|
178
|
+
- [Library protected API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_api.md)
|
|
187
179
|
|
|
188
|
-
- [
|
|
180
|
+
- [Public CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_cli.md)
|
|
189
181
|
|
|
190
|
-
- [
|
|
182
|
+
- [Protected CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_cli.md)
|
|
191
183
|
|
|
192
|
-
- [
|
|
184
|
+
- [Public GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_gui.md)
|
|
193
185
|
|
|
194
|
-
- [
|
|
186
|
+
- [Protected GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_gui.md)
|
|
195
187
|
|
|
196
188
|
## Library main entry points
|
|
197
189
|
|
|
@@ -254,13 +246,32 @@ from backlogops import (
|
|
|
254
246
|
- `check_backlog_consistency`: validate the backlog and releases for
|
|
255
247
|
consistency.
|
|
256
248
|
|
|
249
|
+
### Jira
|
|
250
|
+
|
|
251
|
+
- `read_backlog_from_jira`: read a backlog and its releases from Jira.
|
|
252
|
+
|
|
253
|
+
- `add_backlog_to_jira`, `update_backlog_in_jira`: create Jira issues
|
|
254
|
+
for the backlog items, or update selected fields of existing issues.
|
|
255
|
+
|
|
256
|
+
- `add_releases_to_jira`, `update_releases_in_jira`: create Jira
|
|
257
|
+
versions for the releases, or update their dates.
|
|
258
|
+
|
|
259
|
+
- `order_releases_in_jira`, `rename_releases_in_jira`: order and rename
|
|
260
|
+
the Jira versions.
|
|
261
|
+
|
|
262
|
+
- `jira_rank_backlog`, `jira_rank_move_keys`: rank backlog items in the
|
|
263
|
+
Jira rank order.
|
|
264
|
+
|
|
265
|
+
- `JiraIOConfig`, `JiraPreset`: the Jira connection and preset
|
|
266
|
+
configuration.
|
|
267
|
+
|
|
257
268
|
For the full set of public names see the API documentation linked above.
|
|
258
269
|
|
|
259
270
|
## Test summary
|
|
260
271
|
|
|
261
|
-
- Test result:
|
|
272
|
+
- Test result: 2284 passed, 7 deselected in 44s
|
|
262
273
|
- No flake8 warnings.
|
|
263
274
|
- No mypy errors found.
|
|
264
275
|
- No python layout warnings.
|
|
265
|
-
- Built version(s): 0.
|
|
276
|
+
- Built version(s): 0.3
|
|
266
277
|
- Build and test using Python 3.14.6
|
|
@@ -1,3 +1,38 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: backlogops
|
|
3
|
+
Version: 0.3
|
|
4
|
+
Summary: Library with backlog operations.
|
|
5
|
+
Author: Tom Björkholm
|
|
6
|
+
Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/tom-bjorkholm/backlog-ops
|
|
9
|
+
Project-URL: Source code, https://github.com/tom-bjorkholm/backlog-ops
|
|
10
|
+
Project-URL: Documentation, https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/
|
|
11
|
+
Keywords: backlog,release planning,agile,scrum,scheduling,roadmap,project management,product owner,product management
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Development Status :: 3 - Alpha
|
|
18
|
+
Classifier: Intended Audience :: Developers
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Classifier: Topic :: Office/Business :: Scheduling
|
|
21
|
+
Classifier: Typing :: Typed
|
|
22
|
+
Requires-Python: >=3.12
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE.txt
|
|
25
|
+
Requires-Dist: config-as-json>=1.4
|
|
26
|
+
Requires-Dist: cryptography>=49.0.0
|
|
27
|
+
Requires-Dist: jira[cli,opt]>=3.10.5
|
|
28
|
+
Requires-Dist: tableio>=1.1
|
|
29
|
+
Requires-Dist: tableio-cfg-json>=0.8
|
|
30
|
+
Requires-Dist: versionreporter>=0.4
|
|
31
|
+
Dynamic: author
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
Dynamic: requires-dist
|
|
34
|
+
Dynamic: requires-python
|
|
35
|
+
|
|
1
36
|
# backlogops
|
|
2
37
|
|
|
3
38
|
There are 3 related packages for backlog operations:
|
|
@@ -69,6 +104,23 @@ The following functionality is available in all 3 packages:
|
|
|
69
104
|
- A wizard to create a backlog-ops configuration file with the workforce, named
|
|
70
105
|
input and output presets, level names, and status name mapping.
|
|
71
106
|
|
|
107
|
+
- Read a backlog and releases from Jira into a backlog and release table.
|
|
108
|
+
|
|
109
|
+
- Write a backlog to Jira, creating a new Jira issue for each backlog item.
|
|
110
|
+
|
|
111
|
+
- Update a backlog that is already in Jira, changing only the chosen columns.
|
|
112
|
+
|
|
113
|
+
- Add the releases to Jira as Jira versions.
|
|
114
|
+
|
|
115
|
+
- Update the releases in Jira, setting their dates to the planned release dates.
|
|
116
|
+
|
|
117
|
+
- Order the releases in Jira by date, by a name list, or by the input order.
|
|
118
|
+
|
|
119
|
+
- Rename releases in Jira, changing the Jira version names.
|
|
120
|
+
|
|
121
|
+
- Move backlog items to a chosen anchor in the Jira rank order, following a key
|
|
122
|
+
list.
|
|
123
|
+
|
|
72
124
|
## The operating model
|
|
73
125
|
|
|
74
126
|
The operating model that most of the functionality is designed for is that the
|
|
@@ -104,8 +156,9 @@ the library:
|
|
|
104
156
|
before the parent item starts, and the parent item cannot finish before all
|
|
105
157
|
its children have finished.
|
|
106
158
|
|
|
107
|
-
- `release` The release of the backlog item. Optional.
|
|
108
|
-
|
|
159
|
+
- `release` The release of the backlog item. Optional. Must not be empty string,
|
|
160
|
+
must not start or end with whitespace, and must not contain tabs, newlines or
|
|
161
|
+
control characters.
|
|
109
162
|
|
|
110
163
|
- `team` The team responsible for the backlog item. Optional. Must not be empty
|
|
111
164
|
string. Must be a valid team name. If None the item can be done by any team.
|
|
@@ -145,21 +198,27 @@ To install backlogops on Microsoft Windows, run the following command:
|
|
|
145
198
|
pip install --upgrade backlogops
|
|
146
199
|
````
|
|
147
200
|
|
|
201
|
+
## Using backlogops documentation
|
|
202
|
+
|
|
203
|
+
For a better understanding of how to use the library, CLI or GUI, see the user
|
|
204
|
+
documentation:
|
|
205
|
+
[Using backlogops](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc//using_backlogops/README.md)
|
|
206
|
+
|
|
148
207
|
## API documentation
|
|
149
208
|
|
|
150
209
|
For more detailed code documentation, see the API documentation:
|
|
151
210
|
|
|
152
|
-
- [Library public API](https://
|
|
211
|
+
- [Library public API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_api.md)
|
|
153
212
|
|
|
154
|
-
- [Library protected API](https://
|
|
213
|
+
- [Library protected API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_api.md)
|
|
155
214
|
|
|
156
|
-
- [
|
|
215
|
+
- [Public CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_cli.md)
|
|
157
216
|
|
|
158
|
-
- [
|
|
217
|
+
- [Protected CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_cli.md)
|
|
159
218
|
|
|
160
|
-
- [
|
|
219
|
+
- [Public GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_gui.md)
|
|
161
220
|
|
|
162
|
-
- [
|
|
221
|
+
- [Protected GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_gui.md)
|
|
163
222
|
|
|
164
223
|
## Library main entry points
|
|
165
224
|
|
|
@@ -222,13 +281,32 @@ from backlogops import (
|
|
|
222
281
|
- `check_backlog_consistency`: validate the backlog and releases for
|
|
223
282
|
consistency.
|
|
224
283
|
|
|
284
|
+
### Jira
|
|
285
|
+
|
|
286
|
+
- `read_backlog_from_jira`: read a backlog and its releases from Jira.
|
|
287
|
+
|
|
288
|
+
- `add_backlog_to_jira`, `update_backlog_in_jira`: create Jira issues
|
|
289
|
+
for the backlog items, or update selected fields of existing issues.
|
|
290
|
+
|
|
291
|
+
- `add_releases_to_jira`, `update_releases_in_jira`: create Jira
|
|
292
|
+
versions for the releases, or update their dates.
|
|
293
|
+
|
|
294
|
+
- `order_releases_in_jira`, `rename_releases_in_jira`: order and rename
|
|
295
|
+
the Jira versions.
|
|
296
|
+
|
|
297
|
+
- `jira_rank_backlog`, `jira_rank_move_keys`: rank backlog items in the
|
|
298
|
+
Jira rank order.
|
|
299
|
+
|
|
300
|
+
- `JiraIOConfig`, `JiraPreset`: the Jira connection and preset
|
|
301
|
+
configuration.
|
|
302
|
+
|
|
225
303
|
For the full set of public names see the API documentation linked above.
|
|
226
304
|
|
|
227
305
|
## Test summary
|
|
228
306
|
|
|
229
|
-
- Test result:
|
|
307
|
+
- Test result: 2284 passed, 7 deselected in 44s
|
|
230
308
|
- No flake8 warnings.
|
|
231
309
|
- No mypy errors found.
|
|
232
310
|
- No python layout warnings.
|
|
233
|
-
- Built version(s): 0.
|
|
311
|
+
- Built version(s): 0.3
|
|
234
312
|
- Build and test using Python 3.14.6
|
|
@@ -25,9 +25,26 @@ src/backlogops/estimate_ready_date.py
|
|
|
25
25
|
src/backlogops/format_rules.py
|
|
26
26
|
src/backlogops/io_config.py
|
|
27
27
|
src/backlogops/io_preset_wizard.py
|
|
28
|
+
src/backlogops/jira_connect.py
|
|
29
|
+
src/backlogops/jira_io_config.py
|
|
30
|
+
src/backlogops/jira_order_releases.py
|
|
31
|
+
src/backlogops/jira_rank_backlog.py
|
|
32
|
+
src/backlogops/jira_rank_by_keys.py
|
|
33
|
+
src/backlogops/jira_rank_move_keys.py
|
|
34
|
+
src/backlogops/jira_read.py
|
|
35
|
+
src/backlogops/jira_rename_releases.py
|
|
36
|
+
src/backlogops/jira_token.py
|
|
37
|
+
src/backlogops/jira_update_backlog.py
|
|
38
|
+
src/backlogops/jira_update_releases.py
|
|
39
|
+
src/backlogops/jira_wizard.py
|
|
40
|
+
src/backlogops/jira_write.py
|
|
41
|
+
src/backlogops/jira_write_fields.py
|
|
42
|
+
src/backlogops/jira_write_format.py
|
|
43
|
+
src/backlogops/jira_write_releases.py
|
|
28
44
|
src/backlogops/key_list_io.py
|
|
29
45
|
src/backlogops/levels.py
|
|
30
46
|
src/backlogops/move_keys_first.py
|
|
47
|
+
src/backlogops/name_list_io.py
|
|
31
48
|
src/backlogops/no_text_io.py
|
|
32
49
|
src/backlogops/order_by_dependencies.py
|
|
33
50
|
src/backlogops/person.py
|
|
@@ -35,6 +52,7 @@ src/backlogops/py.typed
|
|
|
35
52
|
src/backlogops/release_backlog_updates.py
|
|
36
53
|
src/backlogops/release_change_io.py
|
|
37
54
|
src/backlogops/releases.py
|
|
55
|
+
src/backlogops/rename_list_io.py
|
|
38
56
|
src/backlogops/table_create.py
|
|
39
57
|
src/backlogops/table_rows.py
|
|
40
58
|
src/backlogops/team.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "backlogops"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.3"
|
|
8
8
|
authors = [
|
|
9
9
|
{ name="Tom Björkholm", email="klausuler_linnet0q@icloud.com" },
|
|
10
10
|
]
|
|
@@ -25,11 +25,12 @@ classifiers = [
|
|
|
25
25
|
"Development Status :: 3 - Alpha",
|
|
26
26
|
"Intended Audience :: Developers",
|
|
27
27
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
28
|
-
"Topic :: Office/Business :: Scheduling"
|
|
28
|
+
"Topic :: Office/Business :: Scheduling",
|
|
29
|
+
"Typing :: Typed"
|
|
29
30
|
]
|
|
30
31
|
dynamic = ["dependencies"]
|
|
31
32
|
|
|
32
33
|
[project.urls]
|
|
33
|
-
"Homepage" = "https://
|
|
34
|
-
"Source code" = "https://
|
|
35
|
-
"Documentation" = "https://
|
|
34
|
+
"Homepage" = "https://github.com/tom-bjorkholm/backlog-ops"
|
|
35
|
+
"Source code" = "https://github.com/tom-bjorkholm/backlog-ops"
|
|
36
|
+
"Documentation" = "https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/"
|
|
@@ -5,7 +5,7 @@ from setuptools import setup
|
|
|
5
5
|
|
|
6
6
|
setup(
|
|
7
7
|
name='backlogops',
|
|
8
|
-
version='0.
|
|
8
|
+
version='0.3',
|
|
9
9
|
description='Library with backlog operations.',
|
|
10
10
|
author='Tom Björkholm',
|
|
11
11
|
author_email='klausuler_linnet0q@icloud.com',
|
|
@@ -14,9 +14,11 @@ setup(
|
|
|
14
14
|
package_dir={'backlogops': 'src/backlogops'},
|
|
15
15
|
package_data={'backlogops': ['src/py.typed']},
|
|
16
16
|
install_requires=[
|
|
17
|
-
'config-as-json >= 1.
|
|
18
|
-
'
|
|
19
|
-
'
|
|
20
|
-
'
|
|
17
|
+
'config-as-json >= 1.4',
|
|
18
|
+
'cryptography >= 49.0.0',
|
|
19
|
+
'jira[cli,opt] >= 3.10.5',
|
|
20
|
+
'tableio >= 1.1',
|
|
21
|
+
'tableio-cfg-json >= 0.8',
|
|
22
|
+
'versionreporter >= 0.4'
|
|
21
23
|
]
|
|
22
24
|
)
|
|
@@ -29,9 +29,9 @@ from backlogops.available_teams_config import (
|
|
|
29
29
|
AvailableTeamsConfig, read_available_teams, write_available_teams)
|
|
30
30
|
from backlogops.backlog_ops_config import (
|
|
31
31
|
BacklogOpsConfig, read_backlog_ops_config, write_backlog_ops_config,
|
|
32
|
-
get_backlog_ops_config)
|
|
32
|
+
get_backlog_ops_config, DEF_STATUS_INPUT_MAP)
|
|
33
33
|
from backlogops.order_by_dependencies import (
|
|
34
|
-
order_by_dependencies, DependencyMode)
|
|
34
|
+
order_by_dependencies, DependencyMode, precedence_relations)
|
|
35
35
|
from backlogops.estimate_ready_date import (
|
|
36
36
|
estimate_ready_date, set_plan_from_estimate)
|
|
37
37
|
from backlogops.release_backlog_updates import (
|
|
@@ -45,6 +45,11 @@ from backlogops.io_config import (
|
|
|
45
45
|
GuiDisplayConfig, InputFormatConfig, OutputFormatConfig,
|
|
46
46
|
resolve_input_config, resolve_output_config, make_input_config,
|
|
47
47
|
make_output_config)
|
|
48
|
+
from backlogops.jira_io_config import (
|
|
49
|
+
JiraIOConfig, JiraConnectConfig, JiraPreset, JiraType,
|
|
50
|
+
TokenStorage, JiraAttrType, JiraAttrPath, JiraColumnMap,
|
|
51
|
+
JiraIssueTypeMap, DEF_BACKLOG_COLUMN_MAP, DEF_RELEASE_COLUMN_MAP,
|
|
52
|
+
CLEAR_TOKEN_WARNING, default_jira_filter)
|
|
48
53
|
from backlogops.table_create import FileExistsCb, allow_overwrite
|
|
49
54
|
from backlogops.backlog_releases_io import (
|
|
50
55
|
read_backlog_releases, write_backlog_releases)
|
|
@@ -56,6 +61,7 @@ from backlogops.format_rules import FormatRules
|
|
|
56
61
|
from backlogops.apply_format_rules import format_backlog, format_releases
|
|
57
62
|
from backlogops.move_keys_first import move_keys_first, get_keys_in_order
|
|
58
63
|
from backlogops.key_list_io import read_key_list, write_key_list
|
|
64
|
+
from backlogops.name_list_io import read_name_list
|
|
59
65
|
from backlogops.backlog_ops_wizard import (
|
|
60
66
|
available_teams_wizard, backlog_ops_wizard)
|
|
61
67
|
from backlogops.io_preset_wizard import preset_wizard
|
|
@@ -65,6 +71,38 @@ from backlogops.work_hours import (
|
|
|
65
71
|
from backlogops.date_ranges import check_date_range, check_no_overlap
|
|
66
72
|
from backlogops.no_text_io import NoTextIO
|
|
67
73
|
from backlogops.backlog_in_release_order import backlog_in_release_order
|
|
74
|
+
from backlogops.jira_connect import JiraConnections
|
|
75
|
+
from backlogops.jira_read import (
|
|
76
|
+
read_backlog_from_jira, read_jira_from_config, build_backlog_releases,
|
|
77
|
+
resolve_jql)
|
|
78
|
+
from backlogops.jira_write_fields import FailedLink
|
|
79
|
+
from backlogops.jira_write import (
|
|
80
|
+
add_backlog_to_jira, AddedToJira, ExistsInJiraError, FailedItem,
|
|
81
|
+
ItemNotInJiraError, OnExistingKey, OnMissingKey, StatusMismatch,
|
|
82
|
+
UnknownIssueTypeError, apply_jira_keys,
|
|
83
|
+
jira_custom_fields, jira_editable_fields)
|
|
84
|
+
from backlogops.jira_write_format import format_add_result
|
|
85
|
+
from backlogops.jira_write_releases import (
|
|
86
|
+
add_releases_to_jira, AddedReleasesToJira, FailedRelease,
|
|
87
|
+
ReleaseExistsError, format_release_result)
|
|
88
|
+
from backlogops.jira_update_releases import (
|
|
89
|
+
update_releases_in_jira, UpdatedReleasesInJira, format_release_updates)
|
|
90
|
+
from backlogops.jira_rename_releases import (
|
|
91
|
+
rename_release_in_jira, rename_releases_in_jira, ReleaseRename,
|
|
92
|
+
FailedRename, RenamedReleasesInJira, format_rename_result)
|
|
93
|
+
from backlogops.jira_order_releases import (
|
|
94
|
+
order_releases_in_jira, order_jira_rel_by_date, OrderedReleasesInJira,
|
|
95
|
+
format_order_result)
|
|
96
|
+
from backlogops.rename_list_io import read_renames
|
|
97
|
+
from backlogops.jira_update_backlog import (
|
|
98
|
+
update_backlog_in_jira, UpdatedBacklogInJira, LinkUpdate,
|
|
99
|
+
format_backlog_updates, updatable_backlog_fields)
|
|
100
|
+
from backlogops.jira_rank_by_keys import (
|
|
101
|
+
jira_rank_by_keys_raw, JiraKeyError, JiraTooManyLoops)
|
|
102
|
+
from backlogops.jira_rank_backlog import (
|
|
103
|
+
jira_rank_backlog, JiraRankAnchor, BadJiraRankFilter)
|
|
104
|
+
from backlogops.jira_rank_move_keys import (
|
|
105
|
+
jira_rank_move_keys, RankedInJira, format_rank_result)
|
|
68
106
|
|
|
69
107
|
__all__ = [
|
|
70
108
|
'Backlog', 'BacklogItem', 'Status', 'get_backlog', 'get_backlog_item',
|
|
@@ -78,10 +116,15 @@ __all__ = [
|
|
|
78
116
|
'AvailableTeams', 'AvailableTeamsConfig', 'read_available_teams',
|
|
79
117
|
'write_available_teams', 'BacklogOpsConfig', 'read_backlog_ops_config',
|
|
80
118
|
'write_backlog_ops_config', 'get_backlog_ops_config',
|
|
81
|
-
'order_by_dependencies',
|
|
119
|
+
'order_by_dependencies', 'precedence_relations',
|
|
82
120
|
'DependencyMode', 'GuiDisplayConfig', 'InputFormatConfig',
|
|
83
121
|
'OutputFormatConfig', 'resolve_input_config', 'resolve_output_config',
|
|
84
|
-
'make_input_config', 'make_output_config',
|
|
122
|
+
'make_input_config', 'make_output_config',
|
|
123
|
+
'JiraIOConfig', 'JiraConnectConfig', 'JiraPreset',
|
|
124
|
+
'JiraType', 'TokenStorage', 'JiraAttrType', 'JiraAttrPath',
|
|
125
|
+
'JiraColumnMap', 'JiraIssueTypeMap', 'DEF_BACKLOG_COLUMN_MAP',
|
|
126
|
+
'DEF_RELEASE_COLUMN_MAP', 'DEF_STATUS_INPUT_MAP',
|
|
127
|
+
'CLEAR_TOKEN_WARNING', 'default_jira_filter', 'FileExistsCb',
|
|
85
128
|
'allow_overwrite', 'read_backlog_releases', 'write_backlog_releases',
|
|
86
129
|
'LEVEL_COLUMN', 'LEVEL_NAME_COLUMN', 'apply_column_map',
|
|
87
130
|
'map_column_order', 'display_level_order',
|
|
@@ -95,7 +138,28 @@ __all__ = [
|
|
|
95
138
|
'adjust_release_content', 'format_content_changes', 'format_date_changes',
|
|
96
139
|
'write_content_changes', 'write_date_changes',
|
|
97
140
|
'move_keys_first', 'get_keys_in_order', 'read_key_list', 'write_key_list',
|
|
141
|
+
'read_name_list',
|
|
98
142
|
'available_teams_wizard', 'backlog_ops_wizard', 'preset_wizard',
|
|
99
143
|
'WeekDay', 'ScheduleWorkHours', 'DEFAULT_WORK_WEEK', 'ExceptionWorkHours',
|
|
100
144
|
'CompanyWorkHours', 'check_date_range', 'check_no_overlap', 'NoTextIO',
|
|
101
|
-
'backlog_in_release_order'
|
|
145
|
+
'backlog_in_release_order', 'read_backlog_from_jira',
|
|
146
|
+
'read_jira_from_config', 'build_backlog_releases', 'resolve_jql',
|
|
147
|
+
'JiraConnections', 'add_backlog_to_jira', 'AddedToJira',
|
|
148
|
+
'ExistsInJiraError', 'FailedItem', 'FailedLink', 'ItemNotInJiraError',
|
|
149
|
+
'OnExistingKey', 'OnMissingKey', 'StatusMismatch',
|
|
150
|
+
'UnknownIssueTypeError', 'apply_jira_keys', 'format_add_result',
|
|
151
|
+
'jira_custom_fields', 'jira_editable_fields',
|
|
152
|
+
'add_releases_to_jira', 'AddedReleasesToJira', 'FailedRelease',
|
|
153
|
+
'ReleaseExistsError', 'format_release_result',
|
|
154
|
+
'update_releases_in_jira', 'UpdatedReleasesInJira',
|
|
155
|
+
'format_release_updates', 'rename_release_in_jira',
|
|
156
|
+
'rename_releases_in_jira', 'ReleaseRename', 'FailedRename',
|
|
157
|
+
'RenamedReleasesInJira', 'format_rename_result',
|
|
158
|
+
'order_releases_in_jira', 'order_jira_rel_by_date',
|
|
159
|
+
'OrderedReleasesInJira', 'format_order_result', 'read_renames',
|
|
160
|
+
'update_backlog_in_jira',
|
|
161
|
+
'UpdatedBacklogInJira', 'LinkUpdate', 'format_backlog_updates',
|
|
162
|
+
'updatable_backlog_fields', 'jira_rank_by_keys_raw', 'JiraKeyError',
|
|
163
|
+
'JiraTooManyLoops', 'jira_rank_move_keys', 'jira_rank_backlog',
|
|
164
|
+
'JiraRankAnchor', 'RankedInJira', 'BadJiraRankFilter',
|
|
165
|
+
'format_rank_result']
|