Skip to content

docs: a security policy and a changelog - #70

Merged
fadion merged 1 commit into
masterfrom
docs/security-and-changelog
Aug 27, 2026
Merged

fadion merged 1 commit into
masterfrom
docs/security-and-changelog

Conversation

@fadion

@fadion fadion commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Two gaps a 1.0 with a compatibility promise should not ship with.

What changed

SECURITY.md exists mostly to say what is not a vulnerability. Aria has no sandbox and is not meant to: a program reads and writes any path the process can, and import reaches anywhere it is pointed. Someone will eventually report file access as a security hole, and the useful answer is a paragraph written before the report rather than after it. The other half says what is worth reporting — a Go panic, a hang in the scanner or parser, unbounded memory while merely reading a program, an archive that does not match its source — and points at private advisories. It is honest that this is one person's toy language with no response-time commitment.

CHANGELOG.md because docs/compatibility.md already promises deprecations are announced "in both sets of release notes", and the release workflow uses --generate-notes, which is a list of PR titles. Fine for a patch, not enough for a major, where the reader's question is "what breaks". The 1.0.0 entry keeps a Breaking section separate, covering the eleven changes since 0.6.0 that can stop an existing program.

Both are linked from the README's header note, alongside the two docs already there.

One correction while writing it: the changelog first said go install resolved to a 2017 pseudo-version "until 1.0.0". It was v0.6.0 that fixed that, being the first tag with a v on it.

No em dashes in either, or in compatibility.md, which had three. That is the README's convention and these are read the same way. architecture.md and CLAUDE.md keep theirs, being notes for whoever works on the interpreter.

Two gaps a 1.0 with a compatibility promise should not ship with.

SECURITY.md exists mostly to say what is NOT a vulnerability. Aria has no
sandbox and is not meant to: a program reads and writes any path the
process can, and import reaches anywhere it is pointed. Someone will
eventually report file access as a security hole, and the useful answer is
a paragraph written before the report rather than after it. What is worth
reporting is the other half: a Go panic, a hang in the scanner or parser,
unbounded memory while merely reading a program, or an archive that does
not match its source. Private advisories are the channel, and the note is
honest that this is one person's toy language with no response-time
commitment.

CHANGELOG.md because docs/compatibility.md already promises that
deprecations are announced "in both sets of release notes", and the
release workflow generates notes with --generate-notes, which is a list of
pull request titles. That is fine for a patch and not enough for a major,
where the question a reader has is "what breaks". So the 1.0.0 entry keeps
a Breaking section separate from the rest, covering the eleven changes
since 0.6.0 that can stop an existing program: integer overflow, ordering
on collections, atom keying, case lists, empty bodies, Record, aliased
imports, String.first, stray control keywords, and the CLI exit status.

Both are linked from the README's header note, along with the two docs
that were already there.

One correction while writing it: the changelog first said `go install`
resolved to a 2017 pseudo-version "until 1.0.0". It was v0.6.0 that fixed
that, being the first tag with a `v` on it.

No em dashes in either, or in compatibility.md, which had three. That is
the README's convention and these are read the same way. architecture.md
and CLAUDE.md keep theirs; they are notes for whoever works on the
interpreter and were written that way on purpose.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@fadion
fadion merged commit 014a725 into master Aug 27, 2026
6 checks passed
@fadion
fadion deleted the docs/security-and-changelog branch August 27, 2026 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant