The page a person actually uses, and what pressing every button found - #31
Merged
Conversation
Three days of work on the half an operator looks at. Two decisions, twenty-one
items, and three defects that only turned up by using the thing.
## A project is the axis (DR-0027)
The page grouped by *feature*: one page holding every project's errors, another
holding every project's advisories. That is a wall at two projects and unusable
at ten, and it is not how anybody works — you work on a client, not on a column.
Each project now has its own five views, and the feature pages that spanned
projects are gone.
## The row is the subject (DR-0028)
The dependency view was **11,330 px, 12.6 screens, 2,830 words and 26 folds** for
twenty-six packages, with the outcome of an upgrade six screens away from the
advisory it answers. One package is now one row carrying every version of it that
is pinned, grouped by what can be done about it: **1,634 px**.
The same decision applied to the two views opened daily, where it found two
contradictions nothing was testing. The front door said **Nothing needs you** in
its headline and *2 waiting on you* in the row two lines below — both numbers
right, one name for them wrong. And the rail counted findings while the view it
linked to counted packages.
One measurement in that item falsified its own gate: the instance report got 3%
*taller*, and the gate said it would shrink. Recorded rather than chased —
DR-0028 is about what a page is made of, not how tall it is.
## The button DR-0026 always described
DR-0026 says an instance may try an upgrade and may not open one — *open stays a
button somebody presses*. The button had nowhere to press: the process that
renders the page refuses to hold a credential that can push, and the files a
clean verification produced were thrown away on the way out. So forty-one green
verdicts sat on a page correctly telling the reader nothing had been opened.
The verification now keeps what passed — the files and the commit it ran at — the
page writes down that a person asked, and the dispatcher opens it. The two
processes stay apart; nothing crossed to make this work.
## Three defects found by using it, not by reading
**Clicking.** An operator clicked a link and got `{"detail":"Not Found"}`. Three
broken relative URLs, and *seven dead forms* on a project's settings — every
administration control there posted into a 404. A dead link announces itself; a
dead button does not. The guard that existed for exactly this walked a
hand-written tuple of seven paths and had never been told about the five views
per project added since.
**Pressing.** Nothing had ever submitted a form and looked at what came back. A
`POST` answers with a document too, at the URL the form posted to, and eight of
thirty-five buttons answered with navigation that 404'd — a document built for one
URL served at another. The worst one was not a link: `rotate-secret` printed **a
single character** of the new webhook secret and type-checked, so pressing it
stopped the tracker's webhook and left nothing to replace it with.
**Asking.** `opened_where` was written when a pull request was opened and never
read back, so a merged one kept asking for a review that had happened and one a
person closed without merging displayed their explicit "no" as work they owed,
for ever. The error half has had that watcher since item 121; this is the same
split, one noun along.
## Also
A red baseline is measured once per project instead of once per upgrade — fifty
identical *your suite was already failing* verdicts in an hour became one. A
published version older than the one you pin is not a fix you can take. A
verification cleans up after itself. The page says what it is doing while the
four minutes pass.
Every test in here was verified by reintroducing the defect it covers.
`ruff check .`, `mypy .` and 2,320 tests are green in this tree.
Signed-off-by: Javier Miralles Rancaño <68760931+FlagshipDev@users.noreply.github.com>
| shown = view(session, settings, slug, acting=acting, **answered) # type: ignore[operator] | ||
| if shown is None: | ||
| raise HTTPException(status_code=404) | ||
| return HTMLResponse(shown, headers=page.HEADERS) |
Comment on lines
+1332
to
+1338
| page.instance( | ||
| session, | ||
| settings, | ||
| error_reporting=_reporting_enabled, | ||
| acting=acting, | ||
| said=said, | ||
| ), |
| shown = page.item(session, settings, item_id, acting=acting, said=said) | ||
| if shown is None: # pragma: no cover - it existed a line ago | ||
| raise HTTPException(status.HTTP_404_NOT_FOUND, "Not Found") | ||
| return HTMLResponse(shown, headers=page.HEADERS) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three days of work on the half an operator looks at. Two decisions, twenty-one
items, and three defects that only turned up by using the thing.
A project is the axis (DR-0027)
The page grouped by feature: one page holding every project's errors, another
holding every project's advisories. That is a wall at two projects and unusable
at ten, and it is not how anybody works — you work on a client, not on a column.
Each project now has its own five views, and the feature pages that spanned
projects are gone.
The row is the subject (DR-0028)
The dependency view was 11,330 px, 12.6 screens, 2,830 words and 26 folds for
twenty-six packages, with the outcome of an upgrade six screens away from the
advisory it answers. One package is now one row carrying every version of it that
is pinned, grouped by what can be done about it: 1,634 px.
The same decision applied to the two views opened daily, where it found two
contradictions nothing was testing. The front door said Nothing needs you in
its headline and 2 waiting on you in the row two lines below — both numbers
right, one name for them wrong. And the rail counted findings while the view it
linked to counted packages.
One measurement in that item falsified its own gate: the instance report got 3%
taller, and the gate said it would shrink. Recorded rather than chased —
DR-0028 is about what a page is made of, not how tall it is.
The button DR-0026 always described
DR-0026 says an instance may try an upgrade and may not open one — open stays a
button somebody presses. The button had nowhere to press: the process that
renders the page refuses to hold a credential that can push, and the files a
clean verification produced were thrown away on the way out. So forty-one green
verdicts sat on a page correctly telling the reader nothing had been opened.
The verification now keeps what passed — the files and the commit it ran at — the
page writes down that a person asked, and the dispatcher opens it. The two
processes stay apart; nothing crossed to make this work.
Three defects found by using it, not by reading
Clicking. An operator clicked a link and got
{"detail":"Not Found"}. Threebroken relative URLs, and seven dead forms on a project's settings — every
administration control there posted into a 404. A dead link announces itself; a
dead button does not. The guard that existed for exactly this walked a
hand-written tuple of seven paths and had never been told about the five views
per project added since.
Pressing. Nothing had ever submitted a form and looked at what came back. A
POSTanswers with a document too, at the URL the form posted to, and eight ofthirty-five buttons answered with navigation that 404'd — a document built for one
URL served at another. The worst one was not a link:
rotate-secretprinted asingle character of the new webhook secret and type-checked, so pressing it
stopped the tracker's webhook and left nothing to replace it with.
Asking.
opened_wherewas written when a pull request was opened and neverread back, so a merged one kept asking for a review that had happened and one a
person closed without merging displayed their explicit "no" as work they owed,
for ever. The error half has had that watcher since item 121; this is the same
split, one noun along.
Also
A red baseline is measured once per project instead of once per upgrade — fifty
identical your suite was already failing verdicts in an hour became one. A
published version older than the one you pin is not a fix you can take. A
verification cleans up after itself. The page says what it is doing while the
four minutes pass.
Every test in here was verified by reintroducing the defect it covers.
ruff check .,mypy .and 2,320 tests are green in this tree.Signed-off-by: Javier Miralles Rancaño 68760931+FlagshipDev@users.noreply.github.com