diff --git a/CHANGELOG.md b/CHANGELOG.md index d6aebfd..910c8ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ Python Pro Bootcamp*, for Malay words with Danish translations. ### Known limits - The executable is not signed; Windows SmartScreen may warn about it. +- The executable is not attached to the release: the upload limit of the server rejects a file of its size. Build it with `python tools/build_executable.py`. - The executable is built for Windows (x64); on Linux and macOS run the program from source or build it on that system. - The Danish column of the word list is machine translated. diff --git a/README.md b/README.md index b3eef6c..325ecdb 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ Known words stay known at every level: the level only limits which of the words ### Executable (Windows, no Python needed to run it) -Download `flash-card.exe` and `flash-card.exe.sha256` from the [release page][release-0-1-0] and compare the SHA-256 hash of the file with the checksum file, or build it yourself: +The [release page][release-0-1-0] of v0.1.0 has the release notes. The executable is not attached there yet, because the server's upload limit rejects a file of this size (HTTP 413). Build it yourself: ```powershell python -m pip install -e ".[build,speech]" @@ -142,7 +142,7 @@ GNU Affero General Public License v3.0 or later. See [LICENSE][license]. - [Repository][repository] - [Documentation][documentation] - [Issue tracker][issues] -- [Releases][releases] (the Windows executable `flash-card.exe` and its checksum) +- [Releases][releases] (v0.1.0: release notes; the executable is built from source, see Run) ## 📎 Appendix: Project documents diff --git a/docs/artifact-registry.md b/docs/artifact-registry.md index d897bf4..70dd499 100644 --- a/docs/artifact-registry.md +++ b/docs/artifact-registry.md @@ -25,7 +25,7 @@ document of a type. `Primary File` may contain a glob (e.g. | DCD | Design Class Diagram | docs/dcd.md | 002 | | DICT | Domain Dictionary | docs/dictionary.md | 002 | | ADR | Architecture Decision Record | docs/adr/adr-NNNN-*.md | 0005 | -| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 055 | +| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 056 | | TM | Traceability Matrix | docs/sqa/traceability-matrix.md | 002 | ## Languages diff --git a/docs/sqa/reviews/rc-055-release-v0-1-0.md b/docs/sqa/reviews/rc-055-release-v0-1-0.md new file mode 100644 index 0000000..b8c58c4 --- /dev/null +++ b/docs/sqa/reviews/rc-055-release-v0-1-0.md @@ -0,0 +1,49 @@ +# RC-055: Review of the release v0.1.0 + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-055 | +| CrossReference | [MIL-010] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-15 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [MIL-010] (the milestone's Go / No-Go criteria, checked against the release v0.1.0) +- Checklist used: none exists for a release; the seven criteria of MIL-010 are the checklist +- Scope: full review +- Language and domain: n/a (record of results) +- Language reviewer: none +- Mode: autonomous, not independent (reviewer is `AI as stand-in for S01`) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The executable is rebuilt from the head of `main` that gets the tag and passes the smoke test | Pass | Built with `--clean` from commit `2c580cc` after removing `build/` and `dist/`; four smoke cases passed (window "Flashy" after about 2 s, embedded list, progress file beside the exe with 999 cards, list override with a 2 word list) | +| 2 | The tag `v0.1.0` is an annotated tag on that commit and the version files say `0.1.0` | Pass | `git show v0.1.0` shows the annotated tag on `2c580cc`; `pyproject.toml` and `__version__` say `0.1.0` | +| 3 | The release has the assets `flash-card.exe` and `flash-card.exe.sha256` | Fail | The upload of `flash-card.exe` (25.8 MB) was rejected with `413 Request Entity Too Large` from the server's reverse proxy; a 1 MB test upload was reset as well; only an 82 byte file passed. The checksum asset alone was deleted again, because a checksum without its file is misleading | +| 4 | The SHA-256 of the file downloaded from the release equals the checksum | Fail | There is no downloadable file; the hash of the local build was `0ac22621ecb8ddad53c5f3d2a35278bebd34cefe458510971106ec52d5bdb47d`, which cannot be verified by others because PyInstaller builds are not bit-for-bit reproducible | +| 5 | The release notes say unsigned Windows build, the `data` folder and how to build, and give the SHA-256 | Fail | The notes say unsigned, the `data` folder and how to build, and state that the file is not attached; they give no SHA-256 because there is no file | +| 6 | CHANGELOG, README and the Install page of the wiki link the release; `check-readme.sh` exit 0 | Pass | Links present in all five files and corrected to say the file is not attached; `check-readme.sh` exit 0 | +| 7 | BC-001, US-001 and PP-001 are updated and reviewed `Go` | Pass | RC-051 to RC-053 | + +## Overall Verdict + +Go-with-conditions — the tag and the release page exist and the build was verified, but criteria 3, 4 and 5 fail because the server refuses the upload of the executable. The milestone MIL-010 stays open and issue "Create the release and attach the files" stays open until the executable is attached. Reviewed by AI as stand-in for S01; not independent of the author. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| Raise the upload limit of the git host's reverse proxy (nginx `client_max_body_size`, and Gitea's attachment limit if set) to at least 50 MB, then ask for the attachment of `flash-card.exe` and its SHA-256 to v0.1.0 (or confirm another place to host the file) | S01 | 2026-10-21 | + +--- + +[MIL-010]: ../milestones/mil-010-release.md diff --git a/docs/sqa/traceability-matrix.md b/docs/sqa/traceability-matrix.md index 20ca4cb..62ca43d 100644 --- a/docs/sqa/traceability-matrix.md +++ b/docs/sqa/traceability-matrix.md @@ -52,7 +52,7 @@ updated whenever an artifact instance is created or reviewed. | MIL-008 | Milestone / Gateway | en | it | BC-001, PP-001 | tasks of MIL-008 | [RC-040] | | MIL-009 | Milestone / Gateway | en | it | BC-001 | - | [RC-050] | | ADR-0004 | Architecture Decision Record | - | - | BC-001 | - | [RC-046] | -| MIL-010 | Milestone / Gateway | en | it | BC-001 | - | [RC-054] | +| MIL-010 | Milestone / Gateway | en | it | BC-001 | - | [RC-054], [RC-055] | | PY-MIL-001 | Python Source Code | - | - | DCD-001, ADR-0002 | - | [RC-023] | | PY-MIL-002 | Python Source Code | - | - | DCD-001, ADR-0002 | - | [RC-024] | | PY-MIL-003 | Python Source Code | - | - | DCD-001, ADR-0002 | - | [RC-025] | @@ -167,3 +167,4 @@ updated whenever an artifact instance is created or reviewed. [RC-054]: ./reviews/rc-054-mil-010.md [MIL-010]: ../milestones/mil-010-release.md [9c8e294]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/031-flash-card/commit/9c8e2940217e615f82eda2d48aca9b2fd58f3687 +[RC-055]: ./reviews/rc-055-release-v0-1-0.md diff --git a/docs/wiki/Install-da.md b/docs/wiki/Install-da.md index 49f2555..5540d1c 100644 --- a/docs/wiki/Install-da.md +++ b/docs/wiki/Install-da.md @@ -56,9 +56,9 @@ python -m pytest Vinduestesten i `tests/e2e/` springes over, når der ikke er en skærm. -## Download programfilen (Windows) +## Udgivelse og programfil (Windows) -Hent `flash-card.exe` og `flash-card.exe.sha256` fra [udgivelsessiden](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/031-flash-card/releases/tag/v0.1.0). Sammenlign filens SHA-256-hash med kontrolsumfilen (`certutil -hashfile flash-card.exe SHA256` i Windows). Filen er ikke signeret, så Windows kan vise en SmartScreen-advarsel. +[Udgivelsessiden](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/031-flash-card/releases/tag/v0.1.0) for v0.1.0 har udgivelsesnoterne. Programfilen er endnu ikke vedhæftet, fordi serverens grænse for upload afviser en fil af denne størrelse (HTTP 413); byg den som beskrevet nedenfor. Filen er ikke signeret, så Windows kan vise en SmartScreen-advarsel. ## Byg en programfil (Windows) diff --git a/docs/wiki/Install-ms.md b/docs/wiki/Install-ms.md index 7395072..0a749b5 100644 --- a/docs/wiki/Install-ms.md +++ b/docs/wiki/Install-ms.md @@ -56,9 +56,9 @@ python -m pytest Ujian tetingkap dalam `tests/e2e/` dilangkau apabila tiada paparan. -## Muat turun fail boleh laku (Windows) +## Keluaran dan fail boleh laku (Windows) -Muat turun `flash-card.exe` dan `flash-card.exe.sha256` daripada [halaman keluaran](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/031-flash-card/releases/tag/v0.1.0). Bandingkan cincangan SHA-256 fail dengan fail semak jumlah (`certutil -hashfile flash-card.exe SHA256` pada Windows). Fail tidak ditandatangani, jadi Windows mungkin menunjukkan amaran SmartScreen. +[Halaman keluaran](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/031-flash-card/releases/tag/v0.1.0) v0.1.0 mempunyai nota keluaran. Fail boleh laku belum dilampirkan di sana kerana had muat naik pelayan menolak fail sebesar ini (HTTP 413); bina seperti yang diterangkan di bawah. Fail tidak ditandatangani, jadi Windows mungkin menunjukkan amaran SmartScreen. ## Bina fail boleh laku (Windows) diff --git a/docs/wiki/Install.md b/docs/wiki/Install.md index 9c00e59..237e4de 100644 --- a/docs/wiki/Install.md +++ b/docs/wiki/Install.md @@ -56,9 +56,9 @@ python -m pytest The window test in `tests/e2e/` is skipped when no display is available. -## Download the executable (Windows) +## Release and executable (Windows) -Download `flash-card.exe` and `flash-card.exe.sha256` from the [release page](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/031-flash-card/releases/tag/v0.1.0). Compare the SHA-256 hash of the file with the checksum file (`certutil -hashfile flash-card.exe SHA256` on Windows). The file is not signed, so Windows may show a SmartScreen warning. +The [release page](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/031-flash-card/releases/tag/v0.1.0) of v0.1.0 has the release notes. The executable is not attached there yet, because the server's upload limit rejects a file of this size (HTTP 413); build it as described below. The file is not signed, so Windows may show a SmartScreen warning. ## Build an executable (Windows)