Skip to content

0.10.6: the reproducibility badge is a quiet pill - #56

Merged
s4mstruthers merged 10 commits into
mainfrom
polish-0.10.6
Oct 11, 2026
Merged

s4mstruthers merged 10 commits into
mainfrom
polish-0.10.6

Conversation

@s4mstruthers

Copy link
Copy Markdown
Owner

What you will notice

  • The reproducibility badge no longer takes the title's width. In 0.10.5 the title row gave the badge and the stretch all the room, so "Discover and check" collapsed to a letter. The title now keeps its natural width and only elides when the header is genuinely short of room.
  • It is a quiet pill: a soft tint of its tone with a dot and a few words ("● Reproducible", "● 2 changes since", "● Differs from the record", "● Not recorded"), the full sentence and the changes on hover, a click for the record. Short of room, it keeps only its dot.
  • Releases are archived on Zenodo; the all-versions DOI goes into CITATION.cff (and from there into the app's citations, reports and README) once the first archive exists. That commit lands on this branch when the record appears, or as a follow-up.

Verification

  • test_flow.py, test_flow_gui.py, test_studio_gui.py: 104 passed, 2 skipped. The badge test now also checks the collapse to a dot at a narrow window.
  • Rendered offscreen at wide and narrow widths.

🤖 Generated with Claude Code

s4mstruthers and others added 10 commits October 11, 2026 07:23
…e room

A soft tint with a dot and a few words, the sentence on hover; it keeps
its natural place beside the title and collapses to its dot when the
header is short of room. Before, it took the title's width.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
.zenodo.json describes the software for Zenodo's archive of each release.
The app's citations and BibTeX take the all-versions DOI from CITATION.cff
once it is there; the README says how to cite.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 153c4e2)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…could not parse the file

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The rounding was in the app stylesheet while the colours were set on the
badge itself; on the native macOS style that gave a square frame. The
whole rule is on the badge now, fully rounded.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… a view until kept

Connections ▸ Install… no longer needs a Python install.  The downloaded app
carries pip (collect_all in the spec), runs it in a copy of itself
(OpenProcess --pip install …, dispatched before Qt is imported) and installs
ready-built wheels into a folder of the user's own, which openprocess.packages
puts on the import path at start-up and right after an install, so the boxes
that need the package come alive without a restart.  PM4Py is left to a
Python install (parts of it are built from source, which would need pip to
start a Python, and the app's executable would open a window).

Open as log › and Open as model › no longer write a file into the folder the
moment they open: the page is a view of the box's result, with Keep in folder
for when you want a file, and ✕ closes it without a question and leaves
nothing in the sidebar.  Files you opened yourself still close to a lighter
row; deleting stays an explicit Move to Bin.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A QLabel's background is only rounded when the same rule sets a border (even
none); the Connections chips also set their background in a widget-level
stylesheet with no radius at all.  Both rules now carry border, radius and
padding, so "not installed", "none yet" and the Learn chips are pills like
the reproducibility badge.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…dard library

The status chips were styled labels, and a label's background and corner
radius come from the style's box model, which polishes when it likes: the
downloaded app showed three square chips beside one round one.  Chip is a
widget that draws a pill from its font metrics, so Connections (not
installed, installing…, ready) and the Learn chips look the same everywhere;
the #statusChip rules go.

Plot failed after installing matplotlib from Connections: the bundled Python
had no unittest, because PyInstaller packs only what the app imports.  The
spec now lists every standard library module (openprocess.packages.
stdlib_modules, minus test suites, IDEs, toys and the dead batteries), so a
package installed later can import what it likes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Plot's inputs are all optional, so a Plot just added to the canvas ran on
nothing and showed a red Failed with a traceback.  A box that has input
ports, none of them connected, now sits idle with "Connect scores or tables",
the way a box missing a required input already did.  Boxes with no inputs at
all still run.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A new type, Column, is a plain string to a box's function and a setting
kind to the app: the side panel shows it as a list of the columns of the
tables connected to the box, once they have run (columns_connected), with
"—" for no column at all; a name can still be typed, and the field says why
the list is empty before anything is connected.  Plot's x and y are
Column settings now.  As with every other kind, the type hint is the whole
of what a box author writes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@s4mstruthers
s4mstruthers merged commit d96e98a into main Oct 11, 2026
7 checks passed
@s4mstruthers
s4mstruthers deleted the polish-0.10.6 branch October 11, 2026 07:16
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