Skip to content

feat(provision): add the log_scale_on_start column - #15

Merged
mrcsin merged 1 commit into
masterfrom
on-start-columns
Oct 6, 2026
Merged

mrcsin merged 1 commit into
masterfrom
on-start-columns

Conversation

@mrcsin

@mrcsin mrcsin commented Oct 6, 2026

Copy link
Copy Markdown
Member

Problem

SemiPlot draws a pen on a log10 Y axis when the operator asks for one (Semiteq/SemiPlot#72). The
axis type a pen opens with is a start value stored beside the pen's other settings, so it needs a
semiplot_tags column the semiplot role may update.

Change

  • log_scale_on_start boolean NOT NULL DEFAULT false, declared after the start scale pair and
    added to plotEditableTagColumns: the column grant and the tail check's write probe cover it.
    The registrar is unchanged; a registered pen opens on a linear axis.
  • The CI step, renamed Register pens and probe the semiplot_tags constraints, also runs as
    semiplot on pen 0: a paired scale is accepted, (5, NULL) and (5, 1) fail with 23514, a
    NULL flag fails with 23502.
  • The grant and probe tests build their expected text from plotEditableTagColumns;
    TestSemiplotTagsColumns keeps the column contract spelled out.
  • Docs: the semiplot_tags row says what a start value is and that "Restore initial scale"
    returns to the scale pair and the log flag only; "nine" settings columns; the version rule
    starts with the first installation, and a database provisioned before then is recreated;
    docs/deployment.md names the flag. The plan moves to docs/plans/completed/.

Verification

  • go test -count=1 ./..., go vet ./..., golangci-lint run: pass, 0 issues.
  • The changed CI step ran against a throwaway PostgreSQL 17 during review: it passes on this
    schema and fails on each of four mutated schemas (NOT NULL dropped, pairing dropped, order
    dropped, a self-comparing CHECK). The linux job on this pull request is the gate.
Per-task commits before collapse
ab93df4 docs(plans): record the on-start run and its checks
55f8e5f ci(provision): name the constraint probe in the step
6c5c70a docs(provision): scope the restore to the scale
51b69ec test(provision): build grant text from column list
bd9b7a7 fix(docs): address review findings
91204d6 docs(plans): mark the on-start acceptance checks done
2ff2509 feat(provision): add the log_scale_on_start column

SemiPlot draws a pen on a log10 Y axis when the operator asks for one
(Semiteq/SemiPlot#72). The axis type a pen opens with is a start value
stored beside the pen's other settings, so it lives in semiplot_tags.

Add log_scale_on_start boolean NOT NULL DEFAULT false after the start
scale pair and put it in plotEditableTagColumns, so the semiplot column
grant and the tail check's write probe cover it. The registrar needs no
change: a registered pen takes the default and opens on a linear axis.
No CHECK ties the flag to a positive minimum; SemiPlot's editor refuses
that combination.

The CI register step now also probes the table as semiplot: a paired
scale is accepted, a half-set or inverted pair fails the scale-pair
CHECK, and a NULL flag fails NOT NULL. The grant and probe tests build
their expected text from plotEditableTagColumns, so a new column touches
the SQL, that list and TestSemiplotTagsColumns.

The docs state what a start value is, that "Restore initial scale"
returns to the scale pair and the log flag only, that the schema version
rule starts with the first installation, and that a database provisioned
before then is recreated rather than provisioned again.
@mrcsin
mrcsin marked this pull request as ready for review October 6, 2026 15:01
@mrcsin
mrcsin merged commit 556ea50 into master Oct 6, 2026
2 checks passed
@mrcsin
mrcsin deleted the on-start-columns branch October 6, 2026 15:02
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