backlogops-gui 0.1__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_gui-0.1 → backlogops_gui-0.3}/PKG-INFO +129 -43
- backlogops_gui-0.3/README_pypi.md +313 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/backlogops_gui.egg-info/PKG-INFO +129 -43
- backlogops_gui-0.3/backlogops_gui.egg-info/SOURCES.txt +43 -0
- backlogops_gui-0.3/backlogops_gui.egg-info/requires.txt +3 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/pyproject.toml +6 -5
- {backlogops_gui-0.1 → backlogops_gui-0.3}/setup.py +4 -3
- backlogops_gui-0.3/src/backlogops_gui/_migrate_warn.py +53 -0
- backlogops_gui-0.3/src/backlogops_gui/application.py +591 -0
- backlogops_gui-0.1/src/backlogops_gui/backlog_window.py → backlogops_gui-0.3/src/backlogops_gui/backlog_actions.py +121 -182
- backlogops_gui-0.1/src/backlogops_gui/io_dialogs.py → backlogops_gui-0.3/src/backlogops_gui/backlog_dialogs.py +154 -283
- {backlogops_gui-0.1 → backlogops_gui-0.3}/src/backlogops_gui/backlog_io.py +24 -7
- backlogops_gui-0.3/src/backlogops_gui/backlog_window.py +425 -0
- backlogops_gui-0.3/src/backlogops_gui/blog_version_reporter.py +25 -0
- backlogops_gui-0.3/src/backlogops_gui/choice_dialogs.py +139 -0
- backlogops_gui-0.3/src/backlogops_gui/close_binding.py +47 -0
- backlogops_gui-0.3/src/backlogops_gui/file_choosers.py +67 -0
- backlogops_gui-0.3/src/backlogops_gui/format_dialogs.py +145 -0
- backlogops_gui-0.3/src/backlogops_gui/gui_style.py +70 -0
- backlogops_gui-0.3/src/backlogops_gui/gui_wizard.py +102 -0
- backlogops_gui-0.3/src/backlogops_gui/jira_actions.py +38 -0
- backlogops_gui-0.3/src/backlogops_gui/jira_base.py +132 -0
- backlogops_gui-0.3/src/backlogops_gui/jira_dialogs.py +785 -0
- backlogops_gui-0.3/src/backlogops_gui/jira_order.py +69 -0
- backlogops_gui-0.3/src/backlogops_gui/jira_rank.py +63 -0
- backlogops_gui-0.3/src/backlogops_gui/jira_read.py +79 -0
- backlogops_gui-0.3/src/backlogops_gui/jira_rename.py +60 -0
- backlogops_gui-0.3/src/backlogops_gui/jira_update.py +120 -0
- backlogops_gui-0.3/src/backlogops_gui/jira_write.py +107 -0
- backlogops_gui-0.3/src/backlogops_gui/modal_dialog.py +56 -0
- backlogops_gui-0.3/src/backlogops_gui/python_version.py +32 -0
- backlogops_gui-0.3/src/backlogops_gui/report_windows.py +61 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/src/backlogops_gui/table_view.py +33 -9
- backlogops_gui-0.3/src/backlogops_gui/wizard_table.py +229 -0
- backlogops_gui-0.3/src/backlogops_gui/wizard_window.py +287 -0
- backlogops_gui-0.1/README_pypi.md +0 -229
- backlogops_gui-0.1/backlogops_gui.egg-info/SOURCES.txt +0 -21
- backlogops_gui-0.1/backlogops_gui.egg-info/requires.txt +0 -2
- backlogops_gui-0.1/src/backlogops_gui/application.py +0 -313
- backlogops_gui-0.1/src/backlogops_gui/gui_wizard.py +0 -237
- {backlogops_gui-0.1 → backlogops_gui-0.3}/LICENSE.txt +0 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/backlogops_gui.egg-info/dependency_links.txt +0 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/backlogops_gui.egg-info/entry_points.txt +0 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/backlogops_gui.egg-info/top_level.txt +0 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/setup.cfg +0 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/src/backlogops_gui/__init__.py +0 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/src/backlogops_gui/__main__.py +0 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/src/backlogops_gui/log_buffer.py +0 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/src/backlogops_gui/py.typed +0 -0
- {backlogops_gui-0.1 → backlogops_gui-0.3}/src/backlogops_gui/tcltk_version.py +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: backlogops-gui
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3
|
|
4
4
|
Summary: Graphical user interface for 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/using_backlogops/README.md
|
|
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,11 +18,13 @@ Classifier: Development Status :: 3 - Alpha
|
|
|
18
18
|
Classifier: Intended Audience :: End Users/Desktop
|
|
19
19
|
Classifier: Intended Audience :: Information Technology
|
|
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: backlogops>=0.
|
|
25
|
-
Requires-Dist: argcomplete>=3.
|
|
25
|
+
Requires-Dist: backlogops>=0.3
|
|
26
|
+
Requires-Dist: argcomplete>=3.7.0
|
|
27
|
+
Requires-Dist: versionreporter>=0.4
|
|
26
28
|
Dynamic: author
|
|
27
29
|
Dynamic: license-file
|
|
28
30
|
Dynamic: requires-dist
|
|
@@ -32,16 +34,17 @@ Dynamic: requires-python
|
|
|
32
34
|
|
|
33
35
|
There are 3 related packages for backlog operations:
|
|
34
36
|
|
|
35
|
-
- backlogops
|
|
37
|
+
- **[backlogops](https://pypi.org/project/backlogops/)** a collection of library
|
|
38
|
+
functions to manipulate backlogs
|
|
36
39
|
|
|
37
|
-
- backlogops-cli
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
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.
|
|
41
44
|
|
|
42
|
-
- backlogops-gui
|
|
43
|
-
|
|
44
|
-
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.
|
|
45
48
|
|
|
46
49
|
## Available functionality
|
|
47
50
|
|
|
@@ -70,6 +73,9 @@ The following functionality is available in all 3 packages:
|
|
|
70
73
|
the key is at a higher level it will bring all items it is a parent of in
|
|
71
74
|
front of it (recursively).
|
|
72
75
|
|
|
76
|
+
- Reorder the backlog in release order, optionally taking dependencies into
|
|
77
|
+
account.
|
|
78
|
+
|
|
73
79
|
- Set planned release dates from the estimated release dates.
|
|
74
80
|
|
|
75
81
|
- Calculate the release dates from the backlog items estimated ready dates, with
|
|
@@ -77,7 +83,40 @@ The following functionality is available in all 3 packages:
|
|
|
77
83
|
|
|
78
84
|
- Validate the backlog and releases for consistency.
|
|
79
85
|
|
|
80
|
-
-
|
|
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.
|
|
103
|
+
|
|
104
|
+
- Read a backlog and releases from Jira into a backlog and release table.
|
|
105
|
+
|
|
106
|
+
- Write a backlog to Jira, creating a new Jira issue for each backlog item.
|
|
107
|
+
|
|
108
|
+
- Update a backlog that is already in Jira, changing only the chosen columns.
|
|
109
|
+
|
|
110
|
+
- Add the releases to Jira as Jira versions.
|
|
111
|
+
|
|
112
|
+
- Update the releases in Jira, setting their dates to the planned release dates.
|
|
113
|
+
|
|
114
|
+
- Order the releases in Jira by date, by a name list, or by the input order.
|
|
115
|
+
|
|
116
|
+
- Rename releases in Jira, changing the Jira version names.
|
|
117
|
+
|
|
118
|
+
- Move backlog items to a chosen anchor in the Jira rank order, following a key
|
|
119
|
+
list.
|
|
81
120
|
|
|
82
121
|
## The operating model
|
|
83
122
|
|
|
@@ -95,45 +134,46 @@ availability of the team members.
|
|
|
95
134
|
Each backlog item has the following fields that are used by the algorithms in
|
|
96
135
|
the library:
|
|
97
136
|
|
|
98
|
-
- key
|
|
99
|
-
must not contain whitespace and must not contain any of the characters
|
|
100
|
-
( ) \[ \] \{ \}.
|
|
137
|
+
- `key` The key of the backlog item. Required. Must be unique. Must not be
|
|
138
|
+
empty, must not contain whitespace and must not contain any of the characters
|
|
139
|
+
, . ; : ( ) \[ \] \{ \}.
|
|
101
140
|
|
|
102
|
-
- level
|
|
141
|
+
- `level` The level of the backlog item. Required. Must be an integer.
|
|
103
142
|
|
|
104
|
-
- title
|
|
143
|
+
- `title` The title of the backlog item. Required.
|
|
105
144
|
|
|
106
|
-
- story_points
|
|
145
|
+
- `story_points` The story points of the backlog item. Required.
|
|
107
146
|
|
|
108
|
-
- status
|
|
147
|
+
- `status` The status of the backlog item. Required.
|
|
109
148
|
|
|
110
|
-
- parent_key
|
|
149
|
+
- `parent_key` The key of the parent backlog item. Optional. Must exist as a key
|
|
111
150
|
in the backlog. Parent keys are used to build the hierarchy of the backlog.
|
|
112
151
|
The parent key must be at a higher level than the current item. Parent keys
|
|
113
152
|
introduce implicit dependencies between items: the current item cannot start
|
|
114
153
|
before the parent item starts, and the parent item cannot finish before all
|
|
115
154
|
its children have finished.
|
|
116
155
|
|
|
117
|
-
- release
|
|
118
|
-
|
|
156
|
+
- `release` The release of the backlog item. Optional. Must not be empty string,
|
|
157
|
+
must not start or end with whitespace, and must not contain tabs, newlines or
|
|
158
|
+
control characters.
|
|
119
159
|
|
|
120
|
-
- team
|
|
160
|
+
- `team` The team responsible for the backlog item. Optional. Must not be empty
|
|
121
161
|
string. Must be a valid team name. If None the item can be done by any team.
|
|
122
162
|
If not None. the item can only be done by the specified team.
|
|
123
163
|
|
|
124
|
-
- depends_on_f2s
|
|
164
|
+
- `depends_on_f2s` The list of keys of the backlog items that must have been
|
|
125
165
|
finished before the current item can start. May be empty.
|
|
126
166
|
|
|
127
|
-
- depends_on_f2f
|
|
167
|
+
- `depends_on_f2f` The list of keys of the backlog items that must have been
|
|
128
168
|
finished before the current item can finish. May be empty.
|
|
129
169
|
|
|
130
|
-
- depends_on_s2s
|
|
170
|
+
- `depends_on_s2s` The list of keys of the backlog items that must have been
|
|
131
171
|
started before the current item can start. May be empty.
|
|
132
172
|
|
|
133
|
-
- planned_ready_date
|
|
173
|
+
- `planned_ready_date` The planned ready date of the backlog item. The date that
|
|
134
174
|
is communicated to the customer. Optional.
|
|
135
175
|
|
|
136
|
-
- estimated_ready_date
|
|
176
|
+
- `estimated_ready_date` The estimated ready date of the backlog item. Optional.
|
|
137
177
|
|
|
138
178
|
Additionally each backlog item can have any number of other fields.
|
|
139
179
|
|
|
@@ -155,21 +195,27 @@ To install backlogops-gui on Microsoft Windows, run the following command:
|
|
|
155
195
|
pip install --upgrade backlogops-gui
|
|
156
196
|
````
|
|
157
197
|
|
|
198
|
+
## Using backlogops documentation
|
|
199
|
+
|
|
200
|
+
For a better understanding of how to use the library, CLI or GUI, see the user
|
|
201
|
+
documentation:
|
|
202
|
+
[Using backlogops](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc//using_backlogops/README.md)
|
|
203
|
+
|
|
158
204
|
## API documentation
|
|
159
205
|
|
|
160
206
|
For more detailed code documentation, see the API documentation:
|
|
161
207
|
|
|
162
|
-
- [Library public API](https://
|
|
208
|
+
- [Library public API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_api.md)
|
|
163
209
|
|
|
164
|
-
- [Library protected API](https://
|
|
210
|
+
- [Library protected API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_api.md)
|
|
165
211
|
|
|
166
|
-
- [
|
|
212
|
+
- [Public CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_cli.md)
|
|
167
213
|
|
|
168
|
-
- [
|
|
214
|
+
- [Protected CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_cli.md)
|
|
169
215
|
|
|
170
|
-
- [
|
|
216
|
+
- [Public GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_gui.md)
|
|
171
217
|
|
|
172
|
-
- [
|
|
218
|
+
- [Protected GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_gui.md)
|
|
173
219
|
|
|
174
220
|
## Graphical user interface for backlog manipulation
|
|
175
221
|
|
|
@@ -208,22 +254,42 @@ is in the menus.
|
|
|
208
254
|
|
|
209
255
|
- File
|
|
210
256
|
|
|
211
|
-
- Read backlog...: Read in a file with a backlog and list
|
|
212
|
-
A new backlog window will be opened with the read in
|
|
257
|
+
- Read backlog from file...: Read in a file with a backlog and list
|
|
258
|
+
of releases. A new backlog window will be opened with the read in
|
|
259
|
+
backlog.
|
|
260
|
+
|
|
261
|
+
- Read backlog from Jira...: Read a backlog and list of releases from
|
|
262
|
+
Jira. A new backlog window will be opened with the read in backlog.
|
|
213
263
|
|
|
214
264
|
- New demo backlog: Create a demo backlog with some backlog items and
|
|
215
265
|
releases. A new backlog window will be opened with the demo backlog.
|
|
216
266
|
|
|
267
|
+
- Exit: Close the application.
|
|
268
|
+
|
|
217
269
|
- Configuration
|
|
218
270
|
|
|
219
|
-
-
|
|
271
|
+
- Load configuration file...: Load a configuration file, replacing the
|
|
272
|
+
configuration currently active in the application.
|
|
273
|
+
|
|
274
|
+
- Run configuration wizard...: this lets you configure the teams that work on
|
|
220
275
|
the backlog and also other aspects like the dates the company is
|
|
221
276
|
closed for vacation, and preset configuration for the inputs or
|
|
222
277
|
outputs you want to use.
|
|
223
278
|
|
|
279
|
+
- Create IO preset file...: Create a stand-alone input or output preset
|
|
280
|
+
configuration file via a wizard.
|
|
281
|
+
|
|
282
|
+
- Migrate IO preset file...: Migrate an older input or output preset
|
|
283
|
+
file to the current file format.
|
|
284
|
+
|
|
224
285
|
- Write configuration...: This lets you write the configuration you
|
|
225
286
|
have in application to a file.
|
|
226
287
|
|
|
288
|
+
- Help
|
|
289
|
+
|
|
290
|
+
- Report version information: Show version information for the
|
|
291
|
+
application and its dependencies.
|
|
292
|
+
|
|
227
293
|
## Backlog window
|
|
228
294
|
|
|
229
295
|
The backlog window shows 2 read-only tables: one with the backlog and
|
|
@@ -235,25 +301,45 @@ one with the list of releases. You will want to use the menus.
|
|
|
235
301
|
|
|
236
302
|
- Order by dependencies...
|
|
237
303
|
|
|
304
|
+
- Order by release order...
|
|
305
|
+
|
|
238
306
|
- Estimate ready date...
|
|
239
307
|
|
|
240
308
|
- Set planned date from estimated
|
|
241
309
|
|
|
242
|
-
- Adjust release content
|
|
310
|
+
- Adjust release content...
|
|
243
311
|
|
|
244
312
|
- Adjust planned release dates...
|
|
245
313
|
|
|
314
|
+
- Order releases by date...
|
|
315
|
+
|
|
246
316
|
- Extract keys...
|
|
247
317
|
|
|
248
318
|
- Save to file...
|
|
249
319
|
|
|
250
320
|
- Close
|
|
251
321
|
|
|
322
|
+
- Jira
|
|
323
|
+
|
|
324
|
+
- Add backlog to Jira...
|
|
325
|
+
|
|
326
|
+
- Update backlog in Jira...
|
|
327
|
+
|
|
328
|
+
- Add releases to Jira...
|
|
329
|
+
|
|
330
|
+
- Update releases in Jira...
|
|
331
|
+
|
|
332
|
+
- Order releases in Jira...
|
|
333
|
+
|
|
334
|
+
- Rename releases in Jira...
|
|
335
|
+
|
|
336
|
+
- Rank items in Jira...
|
|
337
|
+
|
|
252
338
|
## Test summary
|
|
253
339
|
|
|
254
|
-
- Test result:
|
|
340
|
+
- Test result: 2284 passed, 7 deselected in 44s
|
|
255
341
|
- No flake8 warnings.
|
|
256
342
|
- No mypy errors found.
|
|
257
343
|
- No python layout warnings.
|
|
258
|
-
- Built version(s): 0.
|
|
344
|
+
- Built version(s): 0.3
|
|
259
345
|
- Build and test using Python 3.14.6
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# backlogops-gui
|
|
2
|
+
|
|
3
|
+
There are 3 related packages for backlog operations:
|
|
4
|
+
|
|
5
|
+
- **[backlogops](https://pypi.org/project/backlogops/)** a collection of library
|
|
6
|
+
functions to manipulate backlogs
|
|
7
|
+
|
|
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.
|
|
12
|
+
|
|
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.
|
|
16
|
+
|
|
17
|
+
## Available functionality
|
|
18
|
+
|
|
19
|
+
The following functionality is available in all 3 packages:
|
|
20
|
+
|
|
21
|
+
- Reading backlog and releases from file types that TableIO supports reading
|
|
22
|
+
from (Currently CSV, Excel, and ODS).
|
|
23
|
+
|
|
24
|
+
- Writing backlog and releases to file types that TableIO supports writing to
|
|
25
|
+
(Currently CSV, Excel, ODS and 9 other file formats).
|
|
26
|
+
|
|
27
|
+
- File format is detected from the file extension, but may be overridden.
|
|
28
|
+
|
|
29
|
+
- Adjust release content to fit the planned release dates.
|
|
30
|
+
|
|
31
|
+
- Create a demonstration backlog and releases (for exploring the features).
|
|
32
|
+
|
|
33
|
+
- Estimate ready date for the backlog items based on available teams, team
|
|
34
|
+
velocity, vacation dates, periods with half time work, etc.
|
|
35
|
+
|
|
36
|
+
- Extract backlog keys at given backlog item levels.
|
|
37
|
+
|
|
38
|
+
- Reorder the backlog so that the dependencies are satisfied.
|
|
39
|
+
|
|
40
|
+
- Reorder the backlog so that items identified by keys in a list come first. If
|
|
41
|
+
the key is at a higher level it will bring all items it is a parent of in
|
|
42
|
+
front of it (recursively).
|
|
43
|
+
|
|
44
|
+
- Reorder the backlog in release order, optionally taking dependencies into
|
|
45
|
+
account.
|
|
46
|
+
|
|
47
|
+
- Set planned release dates from the estimated release dates.
|
|
48
|
+
|
|
49
|
+
- Calculate the release dates from the backlog items estimated ready dates, with
|
|
50
|
+
a configurable buffer time.
|
|
51
|
+
|
|
52
|
+
- Validate the backlog and releases for consistency.
|
|
53
|
+
|
|
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.
|
|
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
|
+
|
|
89
|
+
## The operating model
|
|
90
|
+
|
|
91
|
+
The operating model that most of the functionality is designed for is that the
|
|
92
|
+
teams work off a single backlog in the order of the backlog. The backlog items
|
|
93
|
+
are ordered by priority and dependencies to allow the teams to work in the
|
|
94
|
+
backlog order. Each backlog item and each release may have a planned ready date,
|
|
95
|
+
that records what has been communicated to the customer. Each backlog item and
|
|
96
|
+
each release may have an estimated ready date, that is calculated from the
|
|
97
|
+
current backlog state, the team velocity, and what we know about the
|
|
98
|
+
availability of the team members.
|
|
99
|
+
|
|
100
|
+
## The backlog item fields
|
|
101
|
+
|
|
102
|
+
Each backlog item has the following fields that are used by the algorithms in
|
|
103
|
+
the library:
|
|
104
|
+
|
|
105
|
+
- `key` The key of the backlog item. Required. Must be unique. Must not be
|
|
106
|
+
empty, must not contain whitespace and must not contain any of the characters
|
|
107
|
+
, . ; : ( ) \[ \] \{ \}.
|
|
108
|
+
|
|
109
|
+
- `level` The level of the backlog item. Required. Must be an integer.
|
|
110
|
+
|
|
111
|
+
- `title` The title of the backlog item. Required.
|
|
112
|
+
|
|
113
|
+
- `story_points` The story points of the backlog item. Required.
|
|
114
|
+
|
|
115
|
+
- `status` The status of the backlog item. Required.
|
|
116
|
+
|
|
117
|
+
- `parent_key` The key of the parent backlog item. Optional. Must exist as a key
|
|
118
|
+
in the backlog. Parent keys are used to build the hierarchy of the backlog.
|
|
119
|
+
The parent key must be at a higher level than the current item. Parent keys
|
|
120
|
+
introduce implicit dependencies between items: the current item cannot start
|
|
121
|
+
before the parent item starts, and the parent item cannot finish before all
|
|
122
|
+
its children have finished.
|
|
123
|
+
|
|
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.
|
|
127
|
+
|
|
128
|
+
- `team` The team responsible for the backlog item. Optional. Must not be empty
|
|
129
|
+
string. Must be a valid team name. If None the item can be done by any team.
|
|
130
|
+
If not None. the item can only be done by the specified team.
|
|
131
|
+
|
|
132
|
+
- `depends_on_f2s` The list of keys of the backlog items that must have been
|
|
133
|
+
finished before the current item can start. May be empty.
|
|
134
|
+
|
|
135
|
+
- `depends_on_f2f` The list of keys of the backlog items that must have been
|
|
136
|
+
finished before the current item can finish. May be empty.
|
|
137
|
+
|
|
138
|
+
- `depends_on_s2s` The list of keys of the backlog items that must have been
|
|
139
|
+
started before the current item can start. May be empty.
|
|
140
|
+
|
|
141
|
+
- `planned_ready_date` The planned ready date of the backlog item. The date that
|
|
142
|
+
is communicated to the customer. Optional.
|
|
143
|
+
|
|
144
|
+
- `estimated_ready_date` The estimated ready date of the backlog item. Optional.
|
|
145
|
+
|
|
146
|
+
Additionally each backlog item can have any number of other fields.
|
|
147
|
+
|
|
148
|
+
## Installing backlogops-gui
|
|
149
|
+
|
|
150
|
+
### On macOS and Linux
|
|
151
|
+
|
|
152
|
+
To install backlogops-gui on macOS and Linux, run the following command:
|
|
153
|
+
|
|
154
|
+
````sh
|
|
155
|
+
pip3 install --upgrade backlogops-gui
|
|
156
|
+
````
|
|
157
|
+
|
|
158
|
+
### On Microsoft Windows
|
|
159
|
+
|
|
160
|
+
To install backlogops-gui on Microsoft Windows, run the following command:
|
|
161
|
+
|
|
162
|
+
````sh
|
|
163
|
+
pip install --upgrade backlogops-gui
|
|
164
|
+
````
|
|
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
|
+
|
|
172
|
+
## API documentation
|
|
173
|
+
|
|
174
|
+
For more detailed code documentation, see the API documentation:
|
|
175
|
+
|
|
176
|
+
- [Library public API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_api.md)
|
|
177
|
+
|
|
178
|
+
- [Library protected API](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_api.md)
|
|
179
|
+
|
|
180
|
+
- [Public CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_cli.md)
|
|
181
|
+
|
|
182
|
+
- [Protected CLI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_cli.md)
|
|
183
|
+
|
|
184
|
+
- [Public GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_gui.md)
|
|
185
|
+
|
|
186
|
+
- [Protected GUI code documentation](https://github.com/tom-bjorkholm/backlog-ops/blob/master/doc/backlogops_protected_gui.md)
|
|
187
|
+
|
|
188
|
+
## Graphical user interface for backlog manipulation
|
|
189
|
+
|
|
190
|
+
Most of the functionality in the backlogops backlog operations library
|
|
191
|
+
is made available for GUI users in this GUI application.
|
|
192
|
+
|
|
193
|
+
### Tkinter
|
|
194
|
+
|
|
195
|
+
The Graphical user interface is based on
|
|
196
|
+
[Tkinter](https://docs.python.org/3/library/tkinter.html). Tkinter
|
|
197
|
+
is based on [Tcl/Tk](https://en.wikipedia.org/wiki/Tk_(software)).
|
|
198
|
+
|
|
199
|
+
For full functionality you need Tk version 9.0.2 or newer.
|
|
200
|
+
|
|
201
|
+
## First startup
|
|
202
|
+
|
|
203
|
+
Start the application on Linux or mac with command
|
|
204
|
+
````sh
|
|
205
|
+
python3 -m backlogops_gui
|
|
206
|
+
python3 -m backlogops_gui -c config_file.cfg
|
|
207
|
+
````
|
|
208
|
+
or on Microsoft Windows with command
|
|
209
|
+
````sh
|
|
210
|
+
python -m backlogops_gui
|
|
211
|
+
python -m backlogops_gui -c config_file.cfg
|
|
212
|
+
````
|
|
213
|
+
|
|
214
|
+
At first startup you do not have any configuration file yet,
|
|
215
|
+
so when you start the application it will start the configuration
|
|
216
|
+
wizard.
|
|
217
|
+
|
|
218
|
+
## Main window
|
|
219
|
+
|
|
220
|
+
The main window has some informative text, but the functionality
|
|
221
|
+
is in the menus.
|
|
222
|
+
|
|
223
|
+
- File
|
|
224
|
+
|
|
225
|
+
- Read backlog from file...: Read in a file with a backlog and list
|
|
226
|
+
of releases. A new backlog window will be opened with the read in
|
|
227
|
+
backlog.
|
|
228
|
+
|
|
229
|
+
- Read backlog from Jira...: Read a backlog and list of releases from
|
|
230
|
+
Jira. A new backlog window will be opened with the read in backlog.
|
|
231
|
+
|
|
232
|
+
- New demo backlog: Create a demo backlog with some backlog items and
|
|
233
|
+
releases. A new backlog window will be opened with the demo backlog.
|
|
234
|
+
|
|
235
|
+
- Exit: Close the application.
|
|
236
|
+
|
|
237
|
+
- Configuration
|
|
238
|
+
|
|
239
|
+
- Load configuration file...: Load a configuration file, replacing the
|
|
240
|
+
configuration currently active in the application.
|
|
241
|
+
|
|
242
|
+
- Run configuration wizard...: this lets you configure the teams that work on
|
|
243
|
+
the backlog and also other aspects like the dates the company is
|
|
244
|
+
closed for vacation, and preset configuration for the inputs or
|
|
245
|
+
outputs you want to use.
|
|
246
|
+
|
|
247
|
+
- Create IO preset file...: Create a stand-alone input or output preset
|
|
248
|
+
configuration file via a wizard.
|
|
249
|
+
|
|
250
|
+
- Migrate IO preset file...: Migrate an older input or output preset
|
|
251
|
+
file to the current file format.
|
|
252
|
+
|
|
253
|
+
- Write configuration...: This lets you write the configuration you
|
|
254
|
+
have in application to a file.
|
|
255
|
+
|
|
256
|
+
- Help
|
|
257
|
+
|
|
258
|
+
- Report version information: Show version information for the
|
|
259
|
+
application and its dependencies.
|
|
260
|
+
|
|
261
|
+
## Backlog window
|
|
262
|
+
|
|
263
|
+
The backlog window shows 2 read-only tables: one with the backlog and
|
|
264
|
+
one with the list of releases. You will want to use the menus.
|
|
265
|
+
|
|
266
|
+
- Backlog
|
|
267
|
+
|
|
268
|
+
- Order by keys...
|
|
269
|
+
|
|
270
|
+
- Order by dependencies...
|
|
271
|
+
|
|
272
|
+
- Order by release order...
|
|
273
|
+
|
|
274
|
+
- Estimate ready date...
|
|
275
|
+
|
|
276
|
+
- Set planned date from estimated
|
|
277
|
+
|
|
278
|
+
- Adjust release content...
|
|
279
|
+
|
|
280
|
+
- Adjust planned release dates...
|
|
281
|
+
|
|
282
|
+
- Order releases by date...
|
|
283
|
+
|
|
284
|
+
- Extract keys...
|
|
285
|
+
|
|
286
|
+
- Save to file...
|
|
287
|
+
|
|
288
|
+
- Close
|
|
289
|
+
|
|
290
|
+
- Jira
|
|
291
|
+
|
|
292
|
+
- Add backlog to Jira...
|
|
293
|
+
|
|
294
|
+
- Update backlog in Jira...
|
|
295
|
+
|
|
296
|
+
- Add releases to Jira...
|
|
297
|
+
|
|
298
|
+
- Update releases in Jira...
|
|
299
|
+
|
|
300
|
+
- Order releases in Jira...
|
|
301
|
+
|
|
302
|
+
- Rename releases in Jira...
|
|
303
|
+
|
|
304
|
+
- Rank items in Jira...
|
|
305
|
+
|
|
306
|
+
## Test summary
|
|
307
|
+
|
|
308
|
+
- Test result: 2284 passed, 7 deselected in 44s
|
|
309
|
+
- No flake8 warnings.
|
|
310
|
+
- No mypy errors found.
|
|
311
|
+
- No python layout warnings.
|
|
312
|
+
- Built version(s): 0.3
|
|
313
|
+
- Build and test using Python 3.14.6
|