next: accumulated work for the current cycle #39
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2026 Jeffrey Paul <sneak@sneak.berlin>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
# lora.vegas
|
# lora.vegas
|
||||||
|
|
||||||
`lora.vegas` is the website of the Las Vegas Meshtastic and LoRa community: a
|
`lora.vegas` is the website of the Las Vegas Meshtastic and LoRa community: an
|
||||||
single-page static site, built with Hugo, by [@sneak](https://sneak.berlin).
|
MIT-licensed single-page static site, built with Hugo, by
|
||||||
|
[@sneak](https://sneak.berlin).
|
||||||
|
|
||||||
It publishes what the local mesh needs in one linkable place:
|
It publishes what the local mesh needs in one linkable place:
|
||||||
|
|
||||||
@@ -109,7 +110,9 @@ The live task list is in [TODO.md](TODO.md).
|
|||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Content is provided as-is for community use.
|
MIT. See [LICENSE](LICENSE). This covers everything in the repository — the Hugo
|
||||||
|
configuration, the `script/` entrypoints, the vendored `themes/loravega/`
|
||||||
|
templates and CSS, and the site content in `content/`.
|
||||||
|
|
||||||
## Author
|
## Author
|
||||||
|
|
||||||
|
|||||||
51
TODO.md
51
TODO.md
@@ -13,23 +13,49 @@
|
|||||||
pre-1.0
|
pre-1.0
|
||||||
|
|
||||||
No git tags. The site is live and now has the scripts-to-rule-them-all scaffold
|
No git tags. The site is live and now has the scripts-to-rule-them-all scaffold
|
||||||
(`Makefile`, `script/`, `Dockerfile`, `check.yml`) and the canonical policy
|
(`Makefile`, `script/`, `Dockerfile`, `check.yml`), the canonical policy
|
||||||
dotfiles; `LICENSE` is the only mandated file still missing. Every external
|
dotfiles and `LICENSE`, so the mandated minimum file list is complete. Every
|
||||||
reference in the repo is now pinned by cryptographic hash (or, for the wrangler
|
external reference in the repo is now pinned by cryptographic hash (or, for the
|
||||||
CLI install, an exact version), and the Hugo that builds the published site is a
|
wrangler CLI install, an exact version), and the Hugo that builds the published
|
||||||
deliberate pinned version rather than whatever the base image's package repo
|
site is a deliberate pinned version rather than whatever the base image's
|
||||||
serves. The site now ships a Cloudflare Pages `_headers` file, so its response
|
package repo serves. The site now ships a Cloudflare Pages `_headers` file, so
|
||||||
security headers are declared in the repo instead of being whatever the edge
|
its response security headers are declared in the repo instead of being whatever
|
||||||
defaults to — unverified in production until the next deploy.
|
the edge defaults to — unverified in production until the next deploy.
|
||||||
|
|
||||||
# Next Step
|
# Next Step
|
||||||
|
|
||||||
Add `LICENSE` (#10) and replace the README's "content is provided as-is" note
|
Move the artifact actions in `.gitea/workflows/deploy.yml` to v4 once this Gitea
|
||||||
with the committed license. Blocked on the owner's choice of license — the
|
Actions instance serves the v4 artifact protocol; they are pinned on the
|
||||||
remaining policy scaffold is otherwise complete.
|
deprecated v3 line because v4 fails here (#20). This touches the live deploy
|
||||||
|
path, so it needs a real workflow run to verify rather than a local check.
|
||||||
|
|
||||||
# Completed Steps
|
# Completed Steps
|
||||||
|
|
||||||
|
- 2026-08-10: added the `LICENSE` file and made the README say what it says
|
||||||
|
(closes #10). The repo is public (`private: false` on the Gitea API, verified
|
||||||
|
rather than assumed), so the owner's standing policy — MIT on any public repo
|
||||||
|
lacking a license — applies. `LICENSE` is byte-identical to the canonical
|
||||||
|
`sneak/homoicon` copy, confirmed by git blob hash rather than by eye
|
||||||
|
(`3274443`), and its body is word-for-word the SPDX MIT text with only the
|
||||||
|
line wrapping differing. The README's "Content is provided as-is for community
|
||||||
|
use." — which granted nothing and matched no committed file — is replaced by
|
||||||
|
`MIT. See [LICENSE](LICENSE).` plus an explicit statement that the licence
|
||||||
|
covers the content in `content/` as well as the code, since this repo carries
|
||||||
|
both and MIT names only "the Software". The Description first line now carries
|
||||||
|
the licence, which `REPO_POLICIES.md` requires and which was the one field it
|
||||||
|
was missing. Nothing published contradicts the choice: the built `public/`
|
||||||
|
tree carries no copyright, all-rights-reserved or terms-of-use string
|
||||||
|
anywhere, in `index.html`, `css/style.css`, `index.xml` or `sitemap.xml` — the
|
||||||
|
footer `baseof.html` renders names `@sneak` and links the repo but asserts no
|
||||||
|
reservation of rights, and the content is factual mesh channel data with no
|
||||||
|
licence claim of its own. The fmt gate cannot reach `LICENSE` and needed no
|
||||||
|
`.prettierignore` entry: `script/fmt` passes prettier the explicit globs
|
||||||
|
`'**/*.md'` and `'**/*.css'`, and an extensionless root file matches neither.
|
||||||
|
Measured, not assumed — a `script/fmt` run leaves the file's hash unchanged,
|
||||||
|
and a counterfactual `LICENSE.md` copy was reflowed by the same run, which is
|
||||||
|
the direct evidence that it is the extension and not an ignore rule doing the
|
||||||
|
excluding. Deliberately not done, per the issue: per-file licence headers and
|
||||||
|
SPDX identifiers, which no org standard mandates
|
||||||
- 2026-08-09: added `static/_headers` so Cloudflare Pages serves baseline
|
- 2026-08-09: added `static/_headers` so Cloudflare Pages serves baseline
|
||||||
response security headers (closes #14). Hugo copies `static/` verbatim into
|
response security headers (closes #14). Hugo copies `static/` verbatim into
|
||||||
`public/`, which is the deploy root Pages reads the file from; this is the
|
`public/`, which is the deploy root Pages reads the file from; this is the
|
||||||
@@ -200,9 +226,6 @@ remaining policy scaffold is otherwise complete.
|
|||||||
|
|
||||||
# Future Steps
|
# Future Steps
|
||||||
|
|
||||||
- Move the artifact actions to v4 once this Gitea Actions instance serves the v4
|
|
||||||
artifact protocol; they are pinned on the deprecated v3 line because v4 fails
|
|
||||||
here (#20)
|
|
||||||
- Move the deploy container to a pinned node 22 so the wrangler pin can advance
|
- Move the deploy container to a pinned node 22 so the wrangler pin can advance
|
||||||
past 4.86.0 (#21)
|
past 4.86.0 (#21)
|
||||||
- After the next deploy, confirm the `_headers` file actually took effect, on
|
- After the next deploy, confirm the `_headers` file actually took effect, on
|
||||||
|
|||||||
Reference in New Issue
Block a user