{"id":"68c37895ada04dd1f737a1f3","title":"2025 09 12","path":"how-to/committee/release-notes/2025-09-12","contentMarkdown":"# 23rd August — 12th September 2025 — Angular 20, Bootstrap 5, Luxon & UI Polish\n## [Build #277](https://github.com/nbarrett/ngx-ramblers/actions/runs/17661319694/job/50195181948)\n____\n_Please feel free to skip these release notes if you’re not into the under‑the‑hood bits — this changeset rolls up several migrations and a good amount of tidy‑up to make things behave just so._  🚀\n____\n  ### 2025-09-12 — Date & UI polish\n\n  - feat(ui): improve Bootstrap 5 migration, Luxon Date migration regressions and committee role selector ([00ae842](https://github.com/nbarrett/ngx-ramblers/commit/00ae842fad5ca6d6f8c2790b9bfb80c06038f3bc))\n      - Date picker: introduce Moment‑style BsDatepickerFormat for ngx‑bootstrap; keep Luxon tokens in UIDateFormat\n      - Wire app-date-picker to BsDatepickerFormat.DATE_INPUT; avoid early template‑ref usage\n      - Fix invalid template bindings; align site‑edit checkboxes (Quick Search, Pagination, Alert Indicator, Auto Title, Add New Event Button)\n      - Consolidate date formats; ensure DateTime.toFormat() used across pipes\n  - docs(dev): add semantic commit conventions to AGENTS.md ([67155e6](https://github.com/nbarrett/ngx-ramblers/commit/67155e645100b62493765be6d7034f7cc683feab))\n\n  ### 2025-09-10 — Luxon migration, lodash‑es → es‑toolkit, and BS5 tidy‑ups\n\n  - Convert migrate Moment.js → Luxon across app & server (#15) ([94df053](https://github.com/nbarrett/ngx-ramblers/commit/94df053ecb0fe30ebc312d442480a509c4e0bc70))\n      - Replace Moment with Luxon; unify Europe/London zone; DST‑safe calculations\n      - Centralize ISO formatting (suppress ms); update components/pipes/tests; drop custom‑webpack\n  - Refactor: migrate lodash‑es usage to es‑toolkit (#47) ([a75630f](https://github.com/nbarrett/ngx-ramblers/commit/a75630f8658ef1f3cb87c3dbe341bef21b2e0e11))\n  - Fix date handling when required value(s) missing; update former jumbotron to BS5 classes ([3d1827a](https://github.com/nbarrett/ngx-ramblers/commit/3d1827ae96374afae24c7ff59a03a547c2860f4d))\n\n  ### 2025-09-09 — Bootstrap 5 UI fixes\n\n  - Bootstrap 5 migration UI fixes and dynamic content editor button improvements ([aa39211](https://github.com/nbarrett/ngx-ramblers/commit/aa392115a10cf4203aad8689ae7be8485c1547ba))\n\n  ### 2025-09-07 — Bootstrap 5 migration and CI/test gating\n\n  - Bootstrap 4 → 5 migration (pin bootstrap@5.3.8, @popperjs/core@2.11.8); many template/class updates ([b5603f2](https://github.com/nbarrett/ngx-ramblers/commit/b5603f25cbe5e9ad14d58babff73de57cf0204a9))\n  - Frontend + server polish, test gating, and doc consolidation ([6f3962a](https://github.com/nbarrett/ngx-ramblers/commit/6f3962a272fdb8e5439bdf9ef17bed14952bb373))\n      - Pre‑push: FE + server tests on pushes to main/pre‑main\n      - Actions: split test/deploy; deploy gated on tests; S3 client moved to AWS SDK v3\n\n  ### 2025-09-06 — Dependency update\n\n  - Upgrade ng2-file-upload to 9.0.0; remove legacy peer‑deps flag ([74c9e92](https://github.com/nbarrett/ngx-ramblers/commit/74c9e92a9357858f947d7d263e4bb0f802cd0a9d))\n\n  ### 2025-09-05 — Angular 20 + Node 22 upgrades\n\n  - Upgrade Angular to 20.2.4; CLI to 20.2.2; TypeScript 5.9.2; Node 22.19.0; npm 10.9.3 ([4b5a7b4](https://github.com/nbarrett/ngx-ramblers/commit/4b5a7b466480c0a73359436616bccdb6985b74b6))\n\n  ### 2025-09-04 — Album editor fixes, pagination polish, and local storage standardisation\n\n  - Fixed album image upload on stale page; pagination alignment; correct page counts; standardise localStorage keys ([e7eb4c0](https://github.com/nbarrett/ngx-ramblers/commit/e7eb4c05d0ba381ec36aabf31e5f65cc2f284cd8))\n  - Gallery view now responds to selection; only the active album row updates on select ([080f0a3](https://github.com/nbarrett/ngx-ramblers/commit/080f0a320a2c6823db7278a0f40184291cfd5583))\n  - Added CLAUDE.md ([c453c9b](https://github.com/nbarrett/ngx-ramblers/commit/c453c9bc95fda30a10b6beba6f134e04b24a62d5))\n\n  ### 2025-08-23 — Social event fix\n\n  - Fix social event contact details error ([91588c6](https://github.com/nbarrett/ngx-ramblers/commit/91588c65a92c1ad636860414b6f526d6e7026ef2))","contentHtml":"<h1>23rd August — 12th September 2025 — Angular 20, Bootstrap 5, Luxon &amp; UI Polish</h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/17661319694/job/50195181948\">Build #277</a></h2>\n<hr>\n<p><em>Please feel free to skip these release notes if you’re not into the under‑the‑hood bits — this changeset rolls up several migrations and a good amount of tidy‑up to make things behave just so.</em>  🚀</p>\n<hr>\n<h3>2025-09-12 — Date &amp; UI polish</h3>\n<ul>\n<li>feat(ui): improve Bootstrap 5 migration, Luxon Date migration regressions and committee role selector (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/00ae842fad5ca6d6f8c2790b9bfb80c06038f3bc\">00ae842</a>)<ul>\n<li>Date picker: introduce Moment‑style BsDatepickerFormat for ngx‑bootstrap; keep Luxon tokens in UIDateFormat</li>\n<li>Wire app-date-picker to BsDatepickerFormat.DATE_INPUT; avoid early template‑ref usage</li>\n<li>Fix invalid template bindings; align site‑edit checkboxes (Quick Search, Pagination, Alert Indicator, Auto Title, Add New Event Button)</li>\n<li>Consolidate date formats; ensure DateTime.toFormat() used across pipes</li>\n</ul>\n</li>\n<li>docs(dev): add semantic commit conventions to AGENTS.md (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/67155e645100b62493765be6d7034f7cc683feab\">67155e6</a>)</li>\n</ul>\n<h3>2025-09-10 — Luxon migration, lodash‑es → es‑toolkit, and BS5 tidy‑ups</h3>\n<ul>\n<li>Convert migrate Moment.js → Luxon across app &amp; server (#15) (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/94df053ecb0fe30ebc312d442480a509c4e0bc70\">94df053</a>)<ul>\n<li>Replace Moment with Luxon; unify Europe/London zone; DST‑safe calculations</li>\n<li>Centralize ISO formatting (suppress ms); update components/pipes/tests; drop custom‑webpack</li>\n</ul>\n</li>\n<li>Refactor: migrate lodash‑es usage to es‑toolkit (#47) (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/a75630f8658ef1f3cb87c3dbe341bef21b2e0e11\">a75630f</a>)</li>\n<li>Fix date handling when required value(s) missing; update former jumbotron to BS5 classes (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/3d1827ae96374afae24c7ff59a03a547c2860f4d\">3d1827a</a>)</li>\n</ul>\n<h3>2025-09-09 — Bootstrap 5 UI fixes</h3>\n<ul>\n<li>Bootstrap 5 migration UI fixes and dynamic content editor button improvements (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/aa392115a10cf4203aad8689ae7be8485c1547ba\">aa39211</a>)</li>\n</ul>\n<h3>2025-09-07 — Bootstrap 5 migration and CI/test gating</h3>\n<ul>\n<li>Bootstrap 4 → 5 migration (pin <a href=\"mailto:bootstrap@5.3.8\">bootstrap@5.3.8</a>, @popperjs/<a href=\"mailto:core@2.11.8\">core@2.11.8</a>); many template/class updates (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/b5603f25cbe5e9ad14d58babff73de57cf0204a9\">b5603f2</a>)</li>\n<li>Frontend + server polish, test gating, and doc consolidation (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/6f3962a272fdb8e5439bdf9ef17bed14952bb373\">6f3962a</a>)<ul>\n<li>Pre‑push: FE + server tests on pushes to main/pre‑main</li>\n<li>Actions: split test/deploy; deploy gated on tests; S3 client moved to AWS SDK v3</li>\n</ul>\n</li>\n</ul>\n<h3>2025-09-06 — Dependency update</h3>\n<ul>\n<li>Upgrade ng2-file-upload to 9.0.0; remove legacy peer‑deps flag (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/74c9e92a9357858f947d7d263e4bb0f802cd0a9d\">74c9e92</a>)</li>\n</ul>\n<h3>2025-09-05 — Angular 20 + Node 22 upgrades</h3>\n<ul>\n<li>Upgrade Angular to 20.2.4; CLI to 20.2.2; TypeScript 5.9.2; Node 22.19.0; npm 10.9.3 (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/4b5a7b466480c0a73359436616bccdb6985b74b6\">4b5a7b4</a>)</li>\n</ul>\n<h3>2025-09-04 — Album editor fixes, pagination polish, and local storage standardisation</h3>\n<ul>\n<li>Fixed album image upload on stale page; pagination alignment; correct page counts; standardise localStorage keys (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/e7eb4c05d0ba381ec36aabf31e5f65cc2f284cd8\">e7eb4c0</a>)</li>\n<li>Gallery view now responds to selection; only the active album row updates on select (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/080f0a320a2c6823db7278a0f40184291cfd5583\">080f0a3</a>)</li>\n<li>Added CLAUDE.md (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/c453c9bc95fda30a10b6beba6f134e04b24a62d5\">c453c9b</a>)</li>\n</ul>\n<h3>2025-08-23 — Social event fix</h3>\n<ul>\n<li>Fix social event contact details error (<a href=\"https://github.com/nbarrett/ngx-ramblers/commit/91588c65a92c1ad636860414b6f526d6e7026ef2\">91588c6</a>)</li>\n</ul>\n"}