Skip to content

Commit a807820

Browse files
committed
docs: purge live-doc product-brand mentions; consolidate v0.1.x migration map
User-facing prose, examples, and command shapes no longer name the deprecated qcodes integration anywhere; the only places where the old identifiers survive are intentional search anchors for upgraders. - README.md: replace 'previous nqctl baseline' with a neutral amortisation phrasing; the install / configure / embedded-Python / Developing sections were already qcodes-free. - docs/quickstart_simulator.md: rewrite for the public-PyPI 0.2.0 install path; replace the broken 'QCodes smoke' section with a real NanonisController example; drop the deleted trajectory monitor section and the dead notebook / trajectory_model.md references. - docs/extension_workflow.md: rename the legacy 'QCodes driver' section to 'embedded Python API'; drop the 'CLI/QCodes' label. - docs/architecture.md: drop the gratuitous '(no qcodes dependency)' parenthetical from the controller component description. - CHANGELOG 0.2.0: restructure the entry so the narrative no longer uses the qcodes brand, and consolidate every v0.1.x symbol / package / class name that an upgrader might grep for into a single dedicated Migration map at the bottom of the 0.2.0 section. - Delete PLAN.md (obsolete 0.1.x bridge-thesis design doc that no longer matches the v0.2.0 product shape). - Delete the obsolete private-index release infrastructure that the v0.1.x flow assumed: docs/release_private_index.md, .github/workflows/publish-private.yml, and the three contract tests that pinned the old shape (test_release_docs, test_release_checklist_ contract, test_publish_workflow_contract). v0.2.0 ships to public PyPI; the old runbook was misleading. - Rename tests/test_qcodes_driver.py -> tests/test_controller.py and tests/test_qcodes_extensions.py -> tests/test_controller_extensions.py; rename the lone test_qcodes_methods... function inside; drop the dead 'qcodes is not installed' skip markers in test_controller.py and test_simulator_integration.py (we no longer depend on that package). - Whitelist test_controller.py and test_smoke.py in .gitignore so CI picks them up alongside test_controller_extensions and test_daemon. Verification: ruff/black/mypy all green; pytest 82 passed + 1 simulator-gated skip locally.
1 parent 330258d commit a807820

16 files changed

Lines changed: 1116 additions & 825 deletions

.github/workflows/publish-private.yml

Lines changed: 0 additions & 251 deletions
This file was deleted.

.gitignore

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@ tests/**
1616
!tests/read_client_demo.py
1717
!tests/guarded_write_demo.py
1818
!tests/test_cli.py
19-
!tests/test_qcodes_extensions.py
19+
!tests/test_controller.py
20+
!tests/test_controller_extensions.py
2021
!tests/test_safety_policy.py
2122
!tests/test_parameter_manifest_generator.py
2223
!tests/test_docs_parameters_manifest.py
2324
!tests/test_public_api_contract.py
2425
!tests/test_default_file_resolution.py
25-
!tests/test_release_docs.py
26-
!tests/test_release_checklist_contract.py
2726
!tests/test_ci_workflow_contract.py
28-
!tests/test_publish_workflow_contract.py
27+
!tests/test_smoke.py
2928
!tests/test_daemon.py
3029
artifacts/

CHANGELOG.md

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,26 @@ All notable changes to this project are documented in this file.
66

77
## [0.2.0] - 2026-06-30
88

9-
This release renames the project and is intentionally **breaking**. The
10-
package is now `nspmctl` (was `nanonis-qcodes-controller`) and the CLI
11-
command is now `nspmctl` (was `nqctl`). All command names, argument shapes,
12-
and JSON response schemas of the surviving subcommands are preserved.
9+
This release rebuilds the project around a single thesis: a thin, fast
10+
CLI over `nanonis-spm` for agent-driven Nanonis SPM controller
11+
automation. It is intentionally **breaking**. The package, CLI command,
12+
and internal API surface are all renamed; everything not on that
13+
critical path was cut. Command names, argument shapes, and JSON
14+
response schemas of the surviving subcommands are preserved.
1315

1416
### Breaking changes
15-
- Renamed PyPI package `nanonis-qcodes-controller` -> `nspmctl`.
16-
- Renamed CLI command `nqctl` -> `nspmctl`.
17-
- Renamed Python package `nanonis_qcodes_controller` -> `nspmctl`.
18-
- Renamed internal subpackage `nanonis_qcodes_controller.qcodes_driver` ->
19-
`nspmctl.controller`.
20-
- Removed Python class `QcodesNanonisSTM`. The replacement
21-
`nspmctl.controller.NanonisController` has the same constructor /
22-
method surface but no qcodes Instrument base.
23-
- Removed the qcodes runtime dependency entirely; the `[qcodes]` extra is
24-
gone. `nanonis-spm` is now a hard runtime dependency (it used to live in
25-
the `[nanonis]` extra).
26-
- Removed the trajectory subsystem entirely. The following `nqctl`
27-
subcommands no longer exist (the agent contract on get/set/ramp/act
28-
payloads also no longer contains the `"trajectory"` block):
17+
- Renamed PyPI package, Python package, CLI command, and instrument
18+
class. See the migration map at the bottom of this entry.
19+
- The previous embedded instrument wrapper no longer derives from an
20+
external framework base class; it is now a plain class with the same
21+
constructor and method surface.
22+
- The heavy optional framework integration that used to back the
23+
embedded driver is gone; `nanonis-spm` is now a hard runtime
24+
dependency (previously gated behind an extra).
25+
- Removed the trajectory subsystem entirely. The following CLI
26+
subcommands no longer exist (the agent contract on
27+
`get`/`set`/`ramp`/`act` payloads also no longer contains the
28+
`"trajectory"` block):
2929
- `trajectory tail`, `trajectory follow`
3030
- `trajectory action list`, `trajectory action show`
3131
- `trajectory monitor config show|set|clear`
@@ -74,6 +74,20 @@ TCP connect + one Bias_Get + close). After the daemon eats the import
7474
and connect once, warm CLI calls converge toward the loopback IPC +
7575
Python startup floor (~80-100 ms).
7676

77+
### Migration from v0.1.x
78+
79+
| Old (v0.1.x) | New (v0.2.0) |
80+
|-------------------------------------------------------------------------|---------------------------------------------------------------|
81+
| `pip install nanonis-qcodes-controller` | `pip install nspmctl` |
82+
| `nqctl <subcommand>` | `nspmctl <subcommand>` |
83+
| `import nanonis_qcodes_controller` | `import nspmctl` |
84+
| `from nanonis_qcodes_controller.qcodes_driver import QcodesNanonisSTM` | `from nspmctl.controller import NanonisController` |
85+
| `nanonis_qcodes_controller.config.load_settings` | `nspmctl.config.load_settings` |
86+
| `nanonis_qcodes_controller.client.create_client` | `nspmctl.client.create_client` |
87+
88+
The new `NanonisController` keeps the same constructor signature and
89+
method names; the only required edit is the import line.
90+
7791
## [0.1.10] - 2026-02-26
7892

7993
### Added

0 commit comments

Comments
 (0)