NEC-117: Run the directory’s own rules on every commit, and cut 0.2.1 #177
No reviewers
Labels
No labels
area:docs
area:identity
area:ops
area:plugin
area:server
channel:community
channel:direct
channel:owned
channel:press
channel:social
e2ee-constrained
gate:at-ga
gate:pre-ga
marketing
parity
relay:absent
relay:planned
relay:requested
relay:supported
risk:additive
risk:contract
risk:none
usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Nectenda/nectenda!177
Loading…
Reference in a new issue
No description provided.
Delete branch "worktree-nec-117-run-the-directory-lint-rules-on-every-co"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Task: NEC-117 — https://projectron.nerchure.com/tasks/117
The community directory rejected 0.2.0, and we found out by reading a web page —
the sixth version reviewed that way. The rules it runs are published packages,
so they now run here on every commit.
Layer 1,
pnpm lint:eslint-plugin-obsidianmdscoped to the two packagesthat get published, and
stylelint-config-obsidianmdover the one stylesheetthat ships. Nothing linted CSS here before.
Calibrated before trusted. Against 0.2.0's scorecard the gate reports the
same findings at the same lines — the
no-static-styles-assignmenterror atremote-pointer.ts:535,537, fourfetch, fiveprefer-create-el, twoVault.trash, twoglobalThis, and the three CSS findings atstyles.css:635,832,849. Fifteen and three, matching theirs. Mutation-checkedboth ways: a fresh
el.style.coloris an error, a freshcreateElement,!importantand:hasare warnings.Two ways it would have looked clean while doing nothing, both closed. The
plugin reads
manifest.jsonwith a CWD-relativereadFileSyncand caches nullon failure, so from the repo root six rules silently no-op and a stack trace
prints every run — a root symlink fixes both, and
minAppVersionis passedexplicitly as well. And
stylelint-config-obsidianmdtargetselectron >= 43while the directory reported against Obsidian 1.11.4 = Electron 39, so the
default would have missed
clip-pathentirely.The upstream stylelint config extends
stylelint-config-standard, which brought82 findings about blank lines and
#ffffffover#fff. This repository runs noformatter by decision, and 82 findings nobody intends to fix is the gate people
learn to skip. Those rules are off; the extension is kept so a new Obsidian
rule still arrives on its own.
Fixed: the blocker (
setCssStyles, byte-equivalent — the animation wasalways in the stylesheet), and
createDiv/createSpan/createSvgin place ofdocument.createElement. The SVG pair was nearly suppressed as a rulelimitation;
createSvgis a separate helper typed overSVGElementTagNameMapand does exactly this. The rule was right.
Refused, each suppressed next-line with the reason:
Vault.trashtwice —trashFile()honours a preference whose branches include permanent deletion, onpaths driven by another vault's delete;
globalThistwice, in a package thatalso runs under Node where
windowthrows;fetchthree times, for streaming,for abort, and for a bucket that must see no preflight; and the three CSS
findings.
docs/releasing.mdcarries the table and the arguments.BUILD VERIFICATION — the warning is not ours. The Version review said for
0.1.4 and 0.1.5 that the build output does not match the released
main.js.Checked rather than accepted: a clean clone of the mirror at tag
0.1.5,pnpm install && pnpm build, gives amain.jswhose sha256 equals both therelease-notes digest and the uploaded asset. All three identical. So
docs/positioning.mdwas left alone — weakening a claim that reproduces ondemand would be the wrong correction. Their harness almost certainly uses npm:
esbuild records each module's resolved path in the bundle, and those encode the
package manager's layout. The release notes now say so and ask for
--frozen-lockfile.0.2.1 carries nothing a user can see, and its changelog entry says so rather
than dressing the lint fix up as a bug fix. It points anyone on 0.1.5 at 0.2.0's
notes, where the two edit-loss fixes are.
Not yet done, and deliberately before any tag: the official Review branch
check against this branch. That is the one thing we cannot run ourselves, and a
tag is not reusable.
Changelog
NONE