Skip to content

Commit f9710be

Browse files
committed
docs: add v2.11 release notes to README, clear RELEASE_NOTES for next release
1 parent 3208fdb commit f9710be

2 files changed

Lines changed: 16 additions & 44 deletions

File tree

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,22 @@ bulk-pdf-extractor-and-generator/
818818

819819
## Release Notes
820820

821+
### v2.11 — April 2026
822+
823+
**Reliability, performance, and stability fixes** — full codebase audit pass.
824+
825+
- **Fixed: student IDs with leading zeros corrupted in CSV files** — IDs like "0123456" were silently becoming "123456". Now preserved correctly.
826+
- **Fixed: date columns not converting in all paths** — DOB and expiry date fields stored as Excel serial numbers now convert to DD/MM/YYYY in all cases, not only after a full template analysis.
827+
- **Fixed: generation errors shown only as a final count** — The completion dialog now lists which rows failed and why (up to 20 shown). All errors are also written to `app.log` in your data folder.
828+
- **Fixed: preview crashes on some screen configurations** — Canvas dimensions are now read on the main thread instead of a background thread.
829+
- **Fixed: Select All / Deselect All could silently stop responding** — Guarded against an edge case in some theme configurations.
830+
- **Fixed: several bugs from prior audit** — Including "Failed to load data" after analysing, saved templates not restoring settings, Excel file staying locked after load, combed fields crashing on certain PDFs, settings corruption with non-ASCII school names, and preview cache showing wrong PDF.
831+
- **10–50× faster batch generation** — PDF template is now parsed once per batch, not once per student.
832+
- **Preview disk cache capped at 200MB** — Oldest cached images are trimmed automatically on startup.
833+
- **New app.log** — Rotating log file in your data folder captures full error detail for diagnostics.
834+
835+
---
836+
821837
### v2.7.3 — March 2026
822838

823839
- **Fixed: crash on macOS when opening dialogs** — The app could crash immediately when the School Setup, Template Name, Field Type Audit, or Sheet Picker dialog appeared on newer versions of macOS. This was caused by a timing issue between Tk and macOS window management. Dialogs now open reliably on all macOS versions.

RELEASE_NOTES.md

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -10,47 +10,3 @@
1010
After a release is published, clear everything above the instructions
1111
comment and start fresh for the next version.
1212
-->
13-
14-
## What's new in v2.10
15-
16-
### Reliability and stability fixes
17-
18-
This release fixes a number of issues discovered during a full codebase audit. Most of these affect edge cases that teachers on school networks are most likely to encounter.
19-
20-
- **Fixed: "Failed to load data" error after loading a spreadsheet** — A bug caused the app to show a confusing error message every time you loaded an Excel file after analysing a template. Auto-mapping of fields now works correctly.
21-
22-
- **Fixed: loading a saved template could produce wrong output** — If you loaded a saved template on a fresh launch without re-analysing, the app would silently skip your saved field mappings, data types, and combed field settings. Templates now restore all settings automatically.
23-
24-
- **Fixed: date fields showing numbers instead of dates** — Date columns stored as serial numbers in Excel (e.g. "45000" instead of "17/03/2023") were being written as-is into the PDF. They are now correctly converted to DD/MM/YYYY format.
25-
26-
- **Fixed: app crashing on startup on some school networks** — On machines where both the Documents folder and the local app data folder are unavailable (common with GPO-locked school networks), the app would crash before any window appeared. It now falls back gracefully.
27-
28-
- **Fixed: Excel file stays locked after loading** — On Windows, the Excel file remained locked after you loaded it, preventing you from editing or re-saving it until you restarted the app. The file is now released immediately after loading.
29-
30-
- **Fixed: combed fields crashing on certain PDFs** — Combed fields where the PDF didn't report a character limit could crash the app. These are now handled safely.
31-
32-
- **Fixed: settings corruption with non-ASCII school names** — If your school name contained accented or special characters, it could become garbled after restarting the app on Windows. Settings are now always read and written as UTF-8.
33-
34-
- **Fixed: preview cache showing wrong PDF** — If you switched between two PDF templates with the same number of pages, the preview could show pages from the previous template. Each PDF now has its own cache.
35-
36-
- **Fixed: Windows download link on GitHub Releases** — The download link for the Windows .exe in previous releases could return a 404 error. This is now fixed.
37-
38-
- **Improved: template file and settings resilience** — Saved templates and settings files are now more resilient to file system errors on network drives. Temporary files are cleaned up properly if a save is interrupted.
39-
40-
### Performance
41-
42-
- **10–50× faster batch generation** — The PDF template is now read once per run instead of once per student. Generating 200 PDFs used to re-parse the template 200 times. Now it parses it once.
43-
44-
### Additional bug fixes (critical audit)
45-
46-
- **Fixed: student IDs with leading zeros corrupted in CSV files** — When loading a CSV spreadsheet, student IDs like "0123456" were silently converted to "123456". CSV files now load with full string preservation, matching the behaviour of Excel files.
47-
48-
- **Fixed: date columns not converting in all generation paths** — Date fields (e.g. DOB, expiry dates) stored as Excel serial numbers only converted to DD/MM/YYYY format when a template had been fully analysed first. They now convert correctly in all cases.
49-
50-
- **Fixed: generation errors shown only after all PDFs produced** — If some rows failed (e.g. a missing field value caused an error), the app would silently continue and only report the final count. The completion dialog now lists which rows failed and why (up to 20 shown), and all errors are saved to `app.log` in your data folder.
51-
52-
- **Fixed: preview could crash on some screen resolutions** — The field preview was querying screen dimensions from a background thread, which is not safe in tkinter. This could cause silent crashes on certain screen configurations. Fixed by moving the screen size query to the main thread.
53-
54-
- **Fixed: Select All / Deselect All buttons could silently stop working** — On some ttkbootstrap theme configurations, the buttons could hit an internal error and stop responding without any message. They now handle this gracefully.
55-
56-
- **Improved: preview disk cache capped at 200MB** — The app now automatically trims the oldest cached preview images on startup to stay within a 200MB budget. This prevents quota alerts on school networks with redirected Documents folders.

0 commit comments

Comments
 (0)