Add install.sh / run.sh / bundled icon; fully pin requirements
- install.sh: one-time Linux Mint setup (apt, .venv, requirements, .desktop entry with absolute paths). Re-runnable. - run.sh: launches the app from .venv (called by the menu entry). - icon.png: bundled 256px red-cross launcher/window icon; app prefers it over the runtime-drawn fallback (data/icon.png). - requirements.txt: fully pinned incl. transitive deps, tested on Python 3.12; numpy held at 2.2.6 so it installs on Python 3.10 too. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+13
-18
@@ -127,20 +127,14 @@ example file.
|
||||
Gives you history, a rollback path, and a clean way to push updates to the
|
||||
laptop (`git pull`).
|
||||
|
||||
## 5. Packaging & distribution 🟡
|
||||
## 5. Packaging & distribution 🟡 — mostly done
|
||||
|
||||
Today install is: `apt install python3-tk`, create a venv, `pip install`. That's
|
||||
a one-time terminal session, which is acceptable but fragile (loose version
|
||||
pins mean a future `pip install` could pull an incompatible pandas/folium).
|
||||
|
||||
**Suggested changes**
|
||||
|
||||
- Pin all four dependencies to exact versions and regenerate deliberately.
|
||||
- Ship the `run.sh` + `.desktop` launcher from [setup.md](setup.md) in the repo.
|
||||
- Optional: build a [PyInstaller](https://pyinstaller.org/) one-file bundle on a
|
||||
matching Linux box. It bundles Python, Tk, and all deps, so install becomes
|
||||
"copy one file + double-click" with no apt/venv step. Trade-off: you build it,
|
||||
and rebuild on dependency updates.
|
||||
- ✅ `requirements.txt` fully pinned (direct + transitive), tested on 3.12.
|
||||
- ✅ `run.sh` + `install.sh` (generates the `.desktop` entry) shipped in the repo.
|
||||
- ✅ Bundled `icon.png`.
|
||||
- ⬜ Optional: a [PyInstaller](https://pyinstaller.org/) one-file bundle would
|
||||
drop the apt/venv step entirely, at the cost of building per release. Not
|
||||
needed while `install.sh` works.
|
||||
|
||||
## 6. Diagnostics / logging 🟡 — ✅ done
|
||||
|
||||
@@ -223,8 +217,9 @@ Open follow-ups: no rollback if a pushed update is broken (mitigated by
|
||||
|
||||
## Suggested order of remaining work
|
||||
|
||||
1. Initial git commit (item 4), then decide on committing `orte.csv`.
|
||||
2. **Set up the git remote** the updater pulls from, and pin all deps (item 5).
|
||||
3. `run.sh` + `.desktop` launcher in the repo (item 5).
|
||||
4. Stable `id` column (item 7 of the first review).
|
||||
5. Formalize tests (item 10); offline map (item 9) only if offline use becomes real.
|
||||
1. Deploy to the laptop: `git clone` + `./install.sh` (see [setup.md](setup.md)).
|
||||
2. Stable `id` column (item 7 of the first review).
|
||||
3. Formalize tests (item 10) — a non-GUI `tests/` suite already exists in
|
||||
spirit (dev smoke scripts); move it into the repo.
|
||||
4. Offline map (item 9) only if offline use becomes real.
|
||||
5. Optional PyInstaller bundle (item 5).
|
||||
|
||||
Reference in New Issue
Block a user