issuedb 1.0.0__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.
issuedb-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 IssueDB Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
issuedb-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,414 @@
1
+ Metadata-Version: 2.4
2
+ Name: issuedb
3
+ Version: 1.0.0
4
+ Summary: A command-line issue tracking system for software development projects
5
+ Author-email: Farshid Ashouri <farsheed.ashouri@gmail.com>
6
+ Maintainer-email: Farshid Ashouri <farsheed.ashouri@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/rodmena-limited/issue-queue
9
+ Project-URL: Bug Tracker, https://github.com/rodmena-limited/issue-queue/issues
10
+ Project-URL: Source, https://github.com/rodmena-limited/issue-queue
11
+ Keywords: issue tracking,task management,cli,project management
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: Topic :: Software Development :: Bug Tracking
24
+ Classifier: Topic :: Utilities
25
+ Classifier: Environment :: Console
26
+ Requires-Python: >=3.8
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Dynamic: license-file
30
+
31
+ # IssueDB
32
+
33
+ A command-line issue tracking system for software development projects. IssueDB provides a simple yet concrete way to manage issues, bugs, and tasks directly from your terminal.
34
+
35
+ ## Features
36
+
37
+ - **Simple Issue Management**: Create, update, delete, and list issues
38
+ - **Project-based Organization**: Group issues by project
39
+ - **Priority Levels**: Categorize issues as low, medium, high, or critical
40
+ - **Status Tracking**: Track issues through open, in-progress, and closed states
41
+ - **FIFO Queue Management**: Get the next issue to work on based on priority and creation date
42
+ - **Full-text Search**: Search issues by keyword in title and description
43
+ - **Audit Logging**: Complete immutable history of all changes
44
+ - **JSON Output**: Machine-readable output for scripting and automation
45
+ - **Local Storage**: SQLite database stored locally with no external dependencies
46
+
47
+ ## Installation
48
+
49
+ ### From PyPI (when published)
50
+
51
+ ```bash
52
+ pip install issuedb
53
+ ```
54
+
55
+ ### From Source
56
+
57
+ ```bash
58
+ git clone https://github.com/rodmena-limited/issue-queue
59
+ cd issuedb
60
+ pip install -e .
61
+ ```
62
+
63
+ ## Quick Start
64
+
65
+ ### Create your first issue
66
+
67
+ ```bash
68
+ issuedb-cli create --title "Fix login bug" --project MyApp --description "Users cannot log in with special characters" --priority high
69
+ ```
70
+
71
+ ### List all open issues
72
+
73
+ ```bash
74
+ issuedb-cli list --status open
75
+ ```
76
+
77
+ ### Get the next issue to work on
78
+
79
+ ```bash
80
+ issuedb-cli get-next --project MyApp
81
+ ```
82
+
83
+ ## Usage
84
+
85
+ ### Creating Issues
86
+
87
+ Create a new issue with required title and project:
88
+
89
+ ```bash
90
+ issuedb-cli create -t "Add user authentication" -p WebApp
91
+ ```
92
+
93
+ With additional details:
94
+
95
+ ```bash
96
+ issuedb-cli create \
97
+ --title "Implement OAuth2" \
98
+ --project WebApp \
99
+ --description "Add Google and GitHub OAuth providers" \
100
+ --priority high \
101
+ --status open
102
+ ```
103
+
104
+ ### Listing Issues
105
+
106
+ List all issues:
107
+
108
+ ```bash
109
+ issuedb-cli list
110
+ ```
111
+
112
+ Filter by project:
113
+
114
+ ```bash
115
+ issuedb-cli list --project WebApp
116
+ ```
117
+
118
+ Filter by status and priority:
119
+
120
+ ```bash
121
+ issuedb-cli list --status open --priority high
122
+ ```
123
+
124
+ Limit results:
125
+
126
+ ```bash
127
+ issuedb-cli list --limit 10
128
+ ```
129
+
130
+ ### Getting Issue Details
131
+
132
+ View a specific issue:
133
+
134
+ ```bash
135
+ issuedb-cli get 42
136
+ ```
137
+
138
+ ### Updating Issues
139
+
140
+ Update issue status:
141
+
142
+ ```bash
143
+ issuedb-cli update 42 --status in-progress
144
+ ```
145
+
146
+ Update multiple fields:
147
+
148
+ ```bash
149
+ issuedb-cli update 42 \
150
+ --title "Updated title" \
151
+ --priority critical \
152
+ --status in-progress
153
+ ```
154
+
155
+ ### Deleting Issues
156
+
157
+ Delete an issue (with audit trail preserved):
158
+
159
+ ```bash
160
+ issuedb-cli delete 42
161
+ ```
162
+
163
+ ### Getting Next Issue
164
+
165
+ Get the highest priority oldest issue:
166
+
167
+ ```bash
168
+ issuedb-cli get-next
169
+ ```
170
+
171
+ For a specific project:
172
+
173
+ ```bash
174
+ issuedb-cli get-next --project WebApp
175
+ ```
176
+
177
+ ### Searching Issues
178
+
179
+ Search by keyword:
180
+
181
+ ```bash
182
+ issuedb-cli search --keyword "login" --project WebApp
183
+ ```
184
+
185
+ ### Clearing Project Issues
186
+
187
+ Clear all issues for a project (requires confirmation):
188
+
189
+ ```bash
190
+ issuedb-cli clear --project OldProject --confirm
191
+ ```
192
+
193
+ ### Viewing Audit Logs
194
+
195
+ View all changes for an issue:
196
+
197
+ ```bash
198
+ issuedb-cli audit --issue 42
199
+ ```
200
+
201
+ View all changes in a project:
202
+
203
+ ```bash
204
+ issuedb-cli audit --project WebApp
205
+ ```
206
+
207
+ ### Database Information
208
+
209
+ Get database statistics:
210
+
211
+ ```bash
212
+ issuedb-cli info
213
+ ```
214
+
215
+ ## JSON Output
216
+
217
+ All commands support JSON output for scripting and automation:
218
+
219
+ ```bash
220
+ issuedb-cli list --project WebApp --json | jq '.[].title'
221
+ ```
222
+
223
+ ```bash
224
+ issuedb-cli get-next --json | jq '.id'
225
+ ```
226
+
227
+ ## Command Reference
228
+
229
+ ### Commands
230
+
231
+ - `create` - Create a new issue
232
+ - `list` - List issues with optional filters
233
+ - `get` - Get details of a specific issue
234
+ - `update` - Update issue fields
235
+ - `delete` - Delete an issue
236
+ - `get-next` - Get the next issue to work on
237
+ - `search` - Search issues by keyword
238
+ - `clear` - Clear all issues for a project
239
+ - `audit` - View audit logs
240
+ - `info` - Get database information
241
+
242
+ ### Global Options
243
+
244
+ - `--db PATH` - Use a custom database file (default: ~/.issuedb/issuedb.sqlite)
245
+ - `--json` - Output results in JSON format
246
+
247
+ ### Priority Levels
248
+
249
+ - `low` - Low priority
250
+ - `medium` - Medium priority (default)
251
+ - `high` - High priority
252
+ - `critical` - Critical priority
253
+
254
+ ### Status Values
255
+
256
+ - `open` - Issue is open (default)
257
+ - `in-progress` - Issue is being worked on
258
+ - `closed` - Issue is resolved
259
+
260
+ ## Examples
261
+
262
+ ### Example Workflow
263
+
264
+ ```bash
265
+ # Create a new project's issues
266
+ issuedb-cli create -t "Setup CI/CD pipeline" -p DevOps --priority high
267
+ issuedb-cli create -t "Add unit tests" -p DevOps --priority medium
268
+ issuedb-cli create -t "Update documentation" -p DevOps --priority low
269
+
270
+ # Get the next issue to work on
271
+ issuedb-cli get-next -p DevOps
272
+
273
+ # Start working on it
274
+ issuedb-cli update 1 --status in-progress
275
+
276
+ # Complete the issue
277
+ issuedb-cli update 1 --status closed
278
+
279
+ # Check remaining open issues
280
+ issuedb-cli list -p DevOps --status open
281
+ ```
282
+
283
+ ### Integration with Scripts
284
+
285
+ ```bash
286
+ #!/bin/bash
287
+ # Get next issue ID and mark it as in-progress
288
+ ISSUE_ID=$(issuedb-cli get-next --project MyApp --json | jq -r '.id')
289
+ if [ "$ISSUE_ID" != "null" ]; then
290
+ echo "Working on issue $ISSUE_ID"
291
+ issuedb-cli update $ISSUE_ID --status in-progress
292
+ fi
293
+ ```
294
+
295
+ ### LLM Agent Integration
296
+
297
+ IssueDB is designed to be easily used by LLM agents:
298
+
299
+ ```python
300
+ import subprocess
301
+ import json
302
+
303
+ def get_next_issue(project):
304
+ result = subprocess.run(
305
+ ["issuedb-cli", "get-next", "--project", project, "--json"],
306
+ capture_output=True,
307
+ text=True
308
+ )
309
+ return json.loads(result.stdout) if result.returncode == 0 else None
310
+
311
+ def create_issue(title, project, description=None, priority="medium"):
312
+ cmd = ["issuedb-cli", "create",
313
+ "--title", title,
314
+ "--project", project,
315
+ "--priority", priority,
316
+ "--json"]
317
+ if description:
318
+ cmd.extend(["--description", description])
319
+
320
+ result = subprocess.run(cmd, capture_output=True, text=True)
321
+ return json.loads(result.stdout) if result.returncode == 0 else None
322
+ ```
323
+
324
+ ## Database
325
+
326
+ IssueDB uses a local SQLite database stored at `~/.issuedb/issuedb.sqlite`. The database includes:
327
+
328
+ - **issues** table - Stores all issue data
329
+ - **audit_logs** table - Immutable audit trail of all changes
330
+ - Comprehensive indexes for optimal query performance
331
+
332
+ The database is automatically created on first use.
333
+
334
+ ## Testing
335
+
336
+ Run the test suite:
337
+
338
+ ```bash
339
+ pytest
340
+ ```
341
+
342
+ Run with coverage:
343
+
344
+ ```bash
345
+ pytest --cov=issuedb
346
+ ```
347
+
348
+ ## Development
349
+
350
+ ### Setup Development Environment
351
+
352
+ ```bash
353
+ # Clone the repository
354
+ git clone https://github.com/yourusername/issuedb
355
+ cd issuedb
356
+
357
+ # Create virtual environment
358
+ python -m venv venv
359
+ source venv/bin/activate # On Windows: venv\Scripts\activate
360
+
361
+ # Install in development mode
362
+ pip install -e .
363
+ pip install pytest pytest-cov ruff
364
+ ```
365
+
366
+ ### Code Formatting and Linting
367
+
368
+ ```bash
369
+ # Format code
370
+ ruff format .
371
+
372
+ # Check linting
373
+ ruff check .
374
+ ```
375
+
376
+ ### Running Tests
377
+
378
+ ```bash
379
+ # Run all tests
380
+ pytest
381
+
382
+ # Run specific test file
383
+ pytest tests/test_repository.py
384
+
385
+ # Run with verbose output
386
+ pytest -v
387
+ ```
388
+
389
+ ## License
390
+
391
+ MIT License - See LICENSE file for details
392
+
393
+ ## Contributing
394
+
395
+ 1. Fork the repository
396
+ 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
397
+ 3. Commit your changes (`git commit -m 'Add amazing feature'`)
398
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
399
+ 5. Open a Pull Request
400
+
401
+ ## Support
402
+
403
+ For issues, questions, or suggestions, please open an issue on GitHub.
404
+
405
+ ## Roadmap
406
+
407
+ - [ ] Export/import functionality
408
+ - [ ] Issue templates
409
+ - [ ] Tags/labels support
410
+ - [ ] Due dates
411
+ - [ ] Issue relationships (blocks, depends on)
412
+ - [ ] Statistics and reporting
413
+ - [ ] Web UI (optional)
414
+ - [ ] Backup and restore utilities