Skip to content

Port ChipDesigner to Pharo 13 - #8

Open
ViezeVingertjes wants to merge 25 commits into
pavel-krivanek:masterfrom
ViezeVingertjes:feature/pharo-13
Open

ViezeVingertjes wants to merge 25 commits into
pavel-krivanek:masterfrom
ViezeVingertjes:feature/pharo-13

Conversation

@ViezeVingertjes

@ViezeVingertjes ViezeVingertjes commented Jun 18, 2026

Copy link
Copy Markdown

Port Pharo Chip Designer to Pharo 13 stable, with forward compatibility for Pharo 14.

  • Replace removed Array2D with ChDCellGrid
  • Migrate UI to Pharo 13 APIs: SpRequestDialog, Spec2 popover context menu, Announcer>>when:do:for:
  • Add ChDResources for graphics/levels asset paths, with env var, explicit Playground setup, and package-based auto-discovery
  • Add headless test runner, CI workflow (pharo13-tests.yml), and smoke-open startup check
  • Fix junction wiring, generator region state, and test helpers uncovered during the port
  • Update README with simplified load steps (Library menu, two Playground snippets)

92 tests pass on Pharo 13.
Manual testing all went smoothly, so should be good for years to come.

Also resolves #7

The horizontal branch of updateCompactRegions linked neighbor slots with
compactUp (always nil) instead of the shared compact strip.
Input pads now use the normal region state instead of atRandom on
every read, so highlights and simulation stay consistent.
Pharo 13 dropped Array2D from core; add a minimal row-major grid with
flatContents for decode and region scans, plus unit and decode tests.
SpVersatileDialogPresenter was removed; use Spec2 request dialogs with
factory methods and openModal, plus unit tests for dialog configuration.
Replace openWithSpecAt: with asPopover popupPointingTo: for Pharo 13 Spec2.
Replace broken mcWorkingCopy ancestry lookups with repo-root resolution
via PHARO_CHIPDESIGNER_ROOT or an explicit repositoryRoot for tests.
Update README load instructions, headless test section, and baseline note.
Introduce ChDTestRunner for in-image SUnit execution and shell/CI scripts
using Stdio and PHARO_CHIPDESIGNER_ROOT.
Replace non-existent pharo-project/pharo-actions/setup-pharo with
demarey/pharo-setup-gha, which installs Pharo 13 and sets PHARO.
Use PHARO on CI, PHARO_VM/PHARO_IMAGE locally, and derive the tonel
path from PHARO_CHIPDESIGNER_ROOT instead of a hardcoded machine path.
Use an explicit export flag for dialog sizing and normalize import title
capitalization; extend dialog tests for extent and export mode.
Centralize asset folder paths and update graphics provider, ChipDesigner,
and resource tests to use the new accessors.
Test result reporting belongs in tools/run-tests.st only.
Merge overlapping env-based repo root and cells.png existence checks
into one integration test.
Ignore Pharo image logs and caches; delete temp prove script and
commented mcWorkingCopy code in ChipDesigner.
Reject non-positive row or column counts at creation and add tests.
Replace bare error: with a dedicated exception and treat empty
PHARO_CHIPDESIGNER_ROOT as unconfigured.
Replace the common platform with pharo13.x so older Pharo versions
do not silently load an incompatible package set.
Add a tests Metacello group that loads the runner without pulling test
infrastructure into interactive images that only load ChipDesigner.
Extend baseline and test runner for pharo14.x and the new CLI, use
OSEnvironment with a Pharo 13 fallback for resource path lookup.
Document resource root options, Metacello default vs tests groups,
and CI/local test environment variables.
Pharo 13 Announcer requires when:do:for: for subscriptions that use
unsubscribe:, and ChDCellGrid needs do: after replacing Array2D.
Resolve graphics from PHARO_CHIPDESIGNER_ROOT, an explicit repositoryRoot,
or the loaded ChipDesigner package location on any OS. Clarify README steps
for Playground setup and add a headless smoke-open check.
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