Repository navigation
docs: add portable upgrade walkthrough - #367
Conversation
Closes #100 A complete walkthrough for upgrading a portable installation while keeping recorded activity, reports and preferences: stopping the old copy, backing up and verifying the backup, downloading and checking the new release ZIP, extracting beside the old folder, carrying data/ reports/config.json across, confirming the data in the new copy, and rolling back without overwriting the backup. The file-level steps were executed with disposable folders and fictional activity against the real v1.3.0 release; observed results are recorded in the document.
HafidIdrissi
left a comment
There was a problem hiding this comment.
Thanks for documenting the upgrade and distinguishing your WSL file checks from Windows execution. I reviewed both changed files at 8f5672e. Please correct these points before this can be approved:
windows_app.pyloads/savesAPP_DIRECTORY / "preferences.json", beside the executable in portable mode, notdata/preferences.json. Fix the tree, backup checklist, copy commands, settings check and validation fixtures to include root-levelpreferences.json(when present). Copying onlydata,reportsandconfig.jsonloses actual sampling/idle preferences.- Separate the production upgrade instructions from the disposable demonstration. The opening currently says every step touches only fictional data, while the recipe later tells users to copy and eventually delete their installation. State explicitly that users must substitute their own paths and preserve their verified backup. Require fresh/non-existing backup and destination folders so repeating
Copy-Itemcannot silently create a nested layout. Treat optional preferences/config/reports paths as optional throughout, including backup checks. - WSL copy/hash checks do not verify PowerShell behavior or the desktop settings/data/report steps. Replace the claim that Linux equivalents were executed 'exactly as written' with the actual shell commands/environment and clearly mark Windows commands and native walkthrough steps as not performed. After fixing the preferences path, validate the documented commands in a disposable Windows folder: stop both copies, copy/verify all existing user files, start the new copy, check preferences and generate a report from fictional stored activity, then restore to a fresh folder without changing the backup. Report actual versions/results and any remaining skips; do not imply a cross-version upgrade if only v1.3.0 was exercised.
Keep this focused on #100. The Tests run https://github.com/HafidIdrissi/Time-Tracker/actions/runs/38191824971 is awaiting maintainer 'Approve and run'; no tests from that run have executed. I have not run local tests or a native walkthrough.
|
@HafidIdrissi — thank you for the source-pinned review. I addressed the documentation and data-safety points on the PR branch:
Commits: 62e1b7e + a030381. The PR description and documentation now accurately list the executed checks and the remaining native GUI verification gap. The upstream Tests workflow still awaits your approval; I am not claiming it passed. Please let me know if the remaining GUI check is required before re-review. |
HafidIdrissi
left a comment
There was a problem hiding this comment.
Thanks @Furox-Art — I re-reviewed the full two-file diff at a030381. The root-level preferences path, optional user paths, fresh copy destinations, production/test distinction and honest Windows validation limits address the main documentation corrections.
Yes, the remaining native settings/report check is still needed before final approval of this preservation walkthrough. In the disposable v1.3.0 rehearsal, open the new copy and confirm the visible 5-second sampling / 10-minute idle settings, generate a report covering the fictional 15-minute period, and check the resulting HTML includes that period. After stopping/closing and restoring to a fresh folder, confirm the restored settings/data too. This can be a manual mouse/keyboard walkthrough; Tk controls need not be accessible to an automation API. Report only observed results. A cross-version upgrade is not newly required: keeping the rehearsal's limits explicit is sufficient.
One small correction remains in step 4: EndsWith($filename) is a suffix match, not exact manifest filename matching (a line for OtherLocalTimeTracker-...zip can also match). Parse each checksum line into its hash and filename, handle the optional * marker, compare the complete filename, and require exactly one matching valid SHA-256 entry. Check the documented recipe with a genuine entry and synthetic missing/duplicate/suffix-only entries; those must not be accepted as the exact target.
CI update: run 38191824971 now succeeded, but it belongs to the old 8f5672e revision. The current a030381 revision has no workflow runs/checks; both follow-ups use [skip ci]. Please submit the focused documentation correction without a skip directive so CI can run against the revision being reviewed. If GitHub requests authorization for that new run, the maintainer will need to use 'Approve and run'. I have not executed local tests or the Windows walkthrough. No merge/approval yet.
|
@HafidIdrissi — I addressed your follow-up review on #100 and updated the PR description and documentation at current head
The isolated fork Windows test branch does not alter this docs-only PR. Please re-review the updated documentation and let me know if manual interaction with the packaged EXE is still a strict acceptance requirement. |
HafidIdrissi
left a comment
There was a problem hiding this comment.
Thanks @Furox-Art — I reviewed the complete README/guide diff at a3a2831 and inspected both isolated fork workflows, the native Tk validation script and both job logs.
The exact checksum block matches the one actually exercised in run 38316721144: all eight Windows PowerShell cases pass, including the genuine manifest and required missing/duplicate/suffix-only/wrong/invalid-hash rejection. Run 38317255364 verifies the real native Tk settings widgets, invokes the actual report-button callback, checks the fictional report output, and verifies settings/database preservation after restoration, with live tracking disabled. These are fork CI results I inspected; the earlier local copy/binary checks remain author-reported. I have not executed a Windows walkthrough myself.
For this documentation-only task, that native UI-path evidence plus the separately reported packaged-EXE launch and file-preservation checks resolves the remaining settings/report validation item. A physical mouse-click packaged-EXE walkthrough is not an additional gate, provided the existing explicit limitations stay in the guide. No further documentation correction is requested at this revision.
The remaining gate is current-head upstream CI: https://github.com/HafidIdrissi/Time-Tracker/actions/runs/38317398283 is action_required on this exact head. The maintainer must use Approve and run; the connector has no dedicated execution-approval action. The earlier successful run does not validate this revision. Once this run succeeds, I can perform the final head/checks/auto-merge recheck and approve. No approval or merge performed now.
|
@HafidIdrissi — thanks for confirming that the documentation and validation requirements are satisfied at |
HafidIdrissi
left a comment
There was a problem hiding this comment.
Reviewed the complete README/portable-upgrade guide diff at a3a2831. The root preferences, optional user paths, fresh backup/extraction/rollback destinations and exact unique SHA-256 filename match resolve the reported documentation defects. As recorded in my previous review, I inspected the fork validation source and both logs: eight PowerShell manifest cases and native Windows Tk settings/report/restoration checks pass; packaged-binary and cross-version limitations remain explicit.
Current-head upstream Tests run 38317398283 now succeeds. I inspected all three logs: 129 tests pass on Windows/Python 3.11, Windows/Python 3.13 and Ubuntu/Python 3.12. Those are CI results; author-local checks remain separately reported, and I have not executed tests or a Windows walkthrough myself. Rechecked the exact head, successful checks and absence of auto-merge. No blocking finding remains; approving this revision. No merge performed.
|
Merged — thank you @Furox-Art for the portable-upgrade guide and for completing the root-preferences, backup/rollback, exact-checksum and Windows validation follow-ups. Issue #100 is now closed. The final reviewed revision passed all three upstream core jobs (129 tests each), and the guide keeps the packaged-binary and cross-version validation limits explicit. |
Closes #100
What changed
Added a safe portable-upgrade and rollback guide in docs/PORTABLE_UPGRADE.md, linked from README.
Addressed the maintainer review in follow-up commits 62e1b7e and a030381:
Validation actually performed (12 October 2026)
Latest verification (13 October 2026 TR)
action_requiredworkflow; no current-head upstream green CI is claimed. The final doc commit a3a2831 contains no [skip ci].All changes remain scoped to issue #100.