# TODO List for esm-logging This is a poor-man's issue tracker. I am not primarily a GitHub user so don't want to commit to their issue tracking feature, but my primary SVC service provider (Bitbucket) only offers paid integration into their issue tracker (Jira). I don't have the time (and patience) at the moment to analyze the best approach, so this file will have to suffice. It's a very simple concept: Track any issues (features, bugfixes, hotfixes) in here, assign a sequential number to it and use that number when branching. I will try to develop a format so that I can parse the file later on, should I decide to migrate to a real issue tracker. It's probably going to be Bugzilla, but for that my html-theme-ref project needs to stabilize first. ## Format Specification The file uses Markdown conventions for formatting headers and other text block entitities, but SHOULD NOT be considered a Markdown file. That's why it has no definitive file extension. Each issue entry follows a structured format for easier parsing and future migration. Issues MUST be **appended** to this file and never moved, to preserve Git diffing. ### Issue Format ``` ID: [ISSUE-NUMBER] Type: [feature/bugfix/hotfix] Title: [Short title] Status: [open/in-progress/done/hold/cancelled] Priority: [low/medium/high] Created: [YYYY-MM-DD] Description: [Detailed explanation] --- ``` - ISSUE-NUMBERs must be sequential - truncation of description must be indentended so that every line starts at the same column - issues must be started with two LF - issues must be terminated with two LF, then `---` - issues may have a free-text field (epilog), which must be started with two LF. ## Issues ID: 1 Type: feature Title: implement KMP algorithm for string searching Status: hold Priority: high Created: 2025-05-03 Description: Implement the Knuth-Morris-Pratt algorithm for string searching. I require this for matching RFC 9112 boundaries of entities against a circular buffer. --- ID: 2 Type: feature Title: implement circular buffer Status: done Priority: high Created: 2025-05-04 Description: implement a simple circular buffer --- ID: 3 Type: bugfix Title: move unit tests to subdirectory Status: done Priority: high Created: 2025-05-04 Description: move the unit test suites to a unit/ subdirectory so that integration tests and benchmarks can be cleanly separated --- ID: 4 Type: feature Title: implement Rabin-Karp rolling hash algorithm Status: done Priority: high Created: 2025-05-05 Description: After testing a couple of string search algorithms, I've ditched the idea of using KMP as my use-case gives no advantage compared to naive searching. In addition I've came upon the challenge that many string search algorithms are optimized for search on a linear buffer, which in my case is not applicable as the implementation the search algorithm is for uses a circular buffer. Rabin-Karp seemed promising. I've come up with a different approach though, which is still based on rolling hashes, therefore, as a base, I need an implementation of the original Rabin-Karp rolling hash algorithm --- ID: 5 Type: feature Title: implement chunked rolling hash algorithm Status: in-progress Priority: high Created: 2025-05-05 Description: Implement my custom algorithm for doing rolling hash string search against a fixed length ring buffer --- ID: 6 Type: feature Title: implement importlib.resources handler for urllib Status: done Priority: high Created: 2025-06-20 Description: A handler that can be registered with an urllib.request OpenerDirector to open importlib.resources package files. --- ID: 7 Type: feature Title: setup advanced testing environment Status: done Priority: high Created: 2025-06-20 Description: copy the testing environment setup from byteb4rb1e.sphinxcontrib.ext --- ID: 8 Type: bugfix Title: rename package Status: done Priority: high Created: 2025-06-20 Description: use dot namespaces to make the package a little more elegant --- ID: 9 Type: bugfix Title: fix LICENSE reference Status: done Priority: high Created: 2025-06-20 Description: license specification is no longer a trove classifier in pyproject.toml, hence the reference to LICENSE must be changed --- ID: 10 Type: feature Title: pytest current test context fixtures Status: done Priority: high Created: 2025-06-20 Description: add fixtures for doing things in relation to the active testing context --- ID: 11 Type: bugfix Title: move testing utils out of utils Status: done Priority: high Created: 2025-06-20 Description: to shorten the namespace and also indicate that testing utilities are different from regular utilities --- ID: 12 Type: feature Title: simplify testing.fixtures.mock_pkg Status: done Priority: high Created: 2025-06-21 Description: Only bootstrap a package mock with the minimum requirements for a Python module and let the consumer handle the directory layout. --- ID: 13 Type: bugfix Title: fix unit tests for urllib PkgHandler Status: done Priority: high Created: 2025-06-21 Description: change of issue 12 wasn't properly reflected in urllib PkgHandler unit tests --- ID: 14 Type: feature Title: add compression support for urllib PkgHandler Status: done Priority: high Created: 2025-06-21 Description: with a proper content-type of the PkgHandler addinfourl object, a consumer can determine whether the file is compressed or not. --- ID: 15 Type: bugfix Title: modularize module containers Status: in-progress Priority: high Created: 2025-06-28 Description: Even though importlib can find submodules through traversing paths instead of relying on __init__.py for every ancestor module, this is not supported by some modules like sphinx.ext.autosummary ---