Skip to content

docs: NOTICE provenance, Materials Project and orix credits, README and CITATION for 0.10.0 - #28

Merged
Paullo9 merged 20 commits into
mainfrom
issue-17-release-files
Oct 30, 2026
Merged

Paullo9 merged 20 commits into
mainfrom
issue-17-release-files

Conversation

@Paullo9

@Paullo9 Paullo9 commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Paul · project thread

Part of #17

This PR was stacked on #27. Now that #27 is merged, main is merged in and the base is main.

Done here

  • NOTICE provenance: the macTEM commits a58c84c and 9482831 are not in macTEM's public history. NOTICE, 9 source and test files, and the tools READMEs and docstrings now cite them as "macTEM before v1.0.0 (history squashed)", and the "(read by git show)" notes are gone. Two places still name a58c84c: string literals in tools/slice-2/pins.py and the matching notes in slice-2-pins.json. Changing them would move fixture bytes.
  • Materials Project: NOTICE and Tests/Fixtures/README.md credit the mp-import files under CC BY 4.0, with the source, licence link and the Jain et al. 2013 citation. This replaces the "licence terms to be confirmed" line.
  • orix: NOTICE has a new "orix (oracle only, GPL-3.0)" entry, and "copied or executed" now reads "copied into the library". orix is added to the CITATION references.
  • Licence: GPL-3.0-only everywhere. The NOTICE grant and the fixture README now say so too.
  • Fixture list: orix-misorientation-pins.json is added and the stray .keep is deleted. The README now lists 56 files, and 56 are tracked.
  • README:
    • The install pin is 0.10.0.
    • The Metal ACOM path replaces "accelerated (none yet)".
    • The dependency sentences name ImagoKit, Accelerate and Metal.
    • The module table is filled in up to 0.10.0, with "Since" versions taken from CHANGELOG.
    • The two Known limits lines are reworded.
    • CI and Docs badges are added, and the bug-report placeholder is bumped to 0.10.0.
  • CITATION.cff: adds version: 0.10.0 and date-released: 2026-10-22, and removes the ORCID TODO. From now on release-please bumps the CITATION version and the README pin (73764e8).
  • CHANGELOG:
    • Every version heading is now in the release-please form, with dates and compare links.
    • 0.0.3 gets an entry.
    • The internal references are gone (aa157ab).

Left open on #17

  • Swift Package Index badge: left out. The package first has to be submitted to SPI, which is a public listing and Paul's call. Until then the badge shows nothing.

No Swift changes except comments.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

claude added 12 commits October 28, 2026 14:40
Comments in DiffractoCore cited registration sections, review rounds and
work sessions that are not part of this repository. They now say what the
code does, or name the module that does it. Comment-only change.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment-only change in DiffractoScattering: registration sections and
review rounds removed, "slice 1" named as DiffractoCore.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment-only change in DiffractoGeometry: registration sections, review
rounds, finding numbers and work-session names removed; "slice 1/2/3b"
named as DiffractoCore, DiffractoScattering or the file that does it;
"the owner" reworded.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment-only change in DiffractoOrientation: registration sections,
roadmap task numbers and the study step removed.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment, print and test-name text in DiffractoCoreTests: registration
sections, review rounds, tiers and work-session names removed; a missing
mutation script no longer cited; "registered" values renamed expected or
documented. The D17 tolerance rule is now described in words. Also two
leftover registration notes in DiffractoGeometry and macTEM's ADR numbers
named as macTEM's. No assertion changes.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
…repo

Comment, MARK and test-name text in DiffractoGeometryTests and
DiffractoScatteringTests: registration sections, the old roadmap,
review rounds and finding numbers, tiers and missing mutation scripts
removed; the archived camera-length plan no longer cited; "registered"
values renamed documented, quoted or predicted; "the owner's data" is
the maintainer's. No assertion changes.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Comment, suite-name and known-issue text in DiffractoOrientationTests,
DiffractoKitParityTests and DiffractoKitTestSupport: registration
sections, amendments, gates and work-session names removed or named by
subject; "registered" values renamed stated, documented or predicted.
The apps-parity tests are left as they are: #18 retires them. No
assertion changes.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Pin generators and tools READMEs: registration sections, the private
design note, the old roadmap, review rounds and the missing mutation
scripts (tools/kit-0.0.4/mutants-*.py, tools/slice-3b/mutants.py,
tools/kit-0.2.0/mutants-policy.py) no longer cited; the mutation results
stay as measured facts. Package.swift no longer names the missing
tools/test.sh. Only comments, docstrings and README text change: string
literals the generators write into fixtures are left as they are, so a
regenerated fixture stays byte-identical.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
…reader

status.md is one screen without test counts, open-items.md one plain
list (the venv note moves to CONTRIBUTING.md, the app-adoption note is
added), parity.md and benchmarks.md drop references to material outside
the repo, and a short public ROADMAP.md names the items parity.md cites.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
macTEM's public history starts at v1.0.0, so its commits a58c84c and
9482831 cannot be found. NOTICE, the source comments and the tools now cite
"macTEM before v1.0.0 (history squashed)". NOTICE gains an orix entry (the
oracle for P26 and P36, no code copied into the library) and credits the
Materials Project fixtures under CC BY 4.0.

Part of #17

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
README: install pin 0.10.0, CI and docs badges, the Metal path and the
ImagoKit/Accelerate dependency, the module table up to 0.10.0 and two
Known limits lines reworded. CITATION gains version, date-released and orix,
and loses the ORCID TODO. The fixture README lists the orix misorientation
pins and credits the Materials Project files; the stray .keep is gone.

Part of #17

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd
@Paullo9 Paullo9 self-assigned this Oct 28, 2026
Base automatically changed from issue-16-public-text to main October 29, 2026 07:41
# Conflicts:
#	CITATION.cff
#	NOTICE
#	Sources/DiffractoCore/ReflectionList.swift
#	Sources/DiffractoGeometry/ElectronWavelength.swift
#	Sources/DiffractoGeometry/RingCalibration.swift
#	Sources/DiffractoGeometry/RingIndexing.swift
#	Tests/DiffractoGeometryTests/RingCalibrationTests.swift
#	Tests/DiffractoGeometryTests/RingFitCalibrationTests.swift
#	Tests/DiffractoGeometryTests/RingIndexingTests.swift
#	Tests/DiffractoKitParityTests/Geometry/RingCalibrationPinsTests.swift
#	Tests/Fixtures/README.md
#	tools/slice-3/README.md
Paullo9 and others added 3 commits October 29, 2026 22:33
…links and 0.0.3

Every version heading is `## [x.y.z](compare link) (date)`, the form
release-please writes from 0.11.0 on, so the file reads as one list.
0.3.0, 0.1.1 and 0.1.0 get their tag dates, 0.0.3 gets a pre-release
entry, and the "archived" lines and internal ask and task numbers are
gone. The CI tag check's regex already reads both heading forms
(`^## \[?v?x.y.z`), so ci.yml is unchanged; it reads 0.10.0 here.

Done: the CHANGELOG bullet of #17. Next: Paul merges #28.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both lines carry an x-release-please-version annotation and the files are
release-please extra-files, so the Release PR moves them with the
manifest. CITATION's date-released stays a hand edit in the Release PR.

Done: the CITATION 'bumped with every tag' bullet of #17. Next: Paul merges #28.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Paullo9 added a commit that referenced this pull request Oct 29, 2026
…-subject

Resolves the conflicts between the two PRs once: the renamed tools keep
#28's provenance wording ("macTEM before v1.0.0 (history squashed)"),
the fixture README keeps the renamed table with #28's Materials Project
credit, and the two old slice READMEs stay deleted (their text lives in
tools/pins/ring-calibration and tools/pins/ring-indexing). NOTICE and
README now name the tools/pins paths and pymatgen-core 2026.10.16.

Done: #18's NOTICE and README follow-ups. Next: Paul merges #28, then this.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Paullo9
Paullo9 merged commit bb3e09f into main Oct 30, 2026
6 checks passed
@Paullo9
Paullo9 deleted the issue-17-release-files branch October 30, 2026 08:48
Paullo9 pushed a commit that referenced this pull request Oct 30, 2026
main's #28 is already in this branch; its later line-wrap edits are superseded by the renamed files here, and the
retired tools/slice-3 and slice-3b READMEs stay deleted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWLQDNR7GTJSa5geSZ
Paullo9 added a commit that referenced this pull request Oct 30, 2026
… subject (#35)

* docs(core): drop references to documents outside the repo

Comments in DiffractoCore cited registration sections, review rounds and
work sessions that are not part of this repository. They now say what the
code does, or name the module that does it. Comment-only change.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* docs(scattering): drop references to documents outside the repo

Comment-only change in DiffractoScattering: registration sections and
review rounds removed, "slice 1" named as DiffractoCore.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* docs(geometry): drop references to documents outside the repo

Comment-only change in DiffractoGeometry: registration sections, review
rounds, finding numbers and work-session names removed; "slice 1/2/3b"
named as DiffractoCore, DiffractoScattering or the file that does it;
"the owner" reworded.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* docs(orientation): drop references to documents outside the repo

Comment-only change in DiffractoOrientation: registration sections,
roadmap task numbers and the study step removed.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* test(core): drop references to documents outside the repo

Comment, print and test-name text in DiffractoCoreTests: registration
sections, review rounds, tiers and work-session names removed; a missing
mutation script no longer cited; "registered" values renamed expected or
documented. The D17 tolerance rule is now described in words. Also two
leftover registration notes in DiffractoGeometry and macTEM's ADR numbers
named as macTEM's. No assertion changes.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* test(geometry, scattering): drop references to documents outside the repo

Comment, MARK and test-name text in DiffractoGeometryTests and
DiffractoScatteringTests: registration sections, the old roadmap,
review rounds and finding numbers, tiers and missing mutation scripts
removed; the archived camera-length plan no longer cited; "registered"
values renamed documented, quoted or predicted; "the owner's data" is
the maintainer's. No assertion changes.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* test(orientation, parity): drop references to documents outside the repo

Comment, suite-name and known-issue text in DiffractoOrientationTests,
DiffractoKitParityTests and DiffractoKitTestSupport: registration
sections, amendments, gates and work-session names removed or named by
subject; "registered" values renamed stated, documented or predicted.
The apps-parity tests are left as they are: #18 retires them. No
assertion changes.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* docs(tools): drop references to documents outside the repo

Pin generators and tools READMEs: registration sections, the private
design note, the old roadmap, review rounds and the missing mutation
scripts (tools/kit-0.0.4/mutants-*.py, tools/slice-3b/mutants.py,
tools/kit-0.2.0/mutants-policy.py) no longer cited; the mutation results
stay as measured facts. Package.swift no longer names the missing
tools/test.sh. Only comments, docstrings and README text change: string
literals the generators write into fixtures are left as they are, so a
regenerated fixture stays byte-identical.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* docs: rewrite status, open items, parity and benchmarks for a public reader

status.md is one screen without test counts, open-items.md one plain
list (the venv note moves to CONTRIBUTING.md, the app-adoption note is
added), parity.md and benchmarks.md drop references to material outside
the repo, and a short public ROADMAP.md names the items parity.md cites.

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* docs(geometry): drop references to archived notes outside the repo

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* docs: cite macTEM's squashed history by version, credit orix

macTEM's public history starts at v1.0.0, so its commits a58c84c and
9482831 cannot be found. NOTICE, the source comments and the tools now cite
"macTEM before v1.0.0 (history squashed)". NOTICE gains an orix entry (the
oracle for P26 and P36, no code copied into the library) and credits the
Materials Project fixtures under CC BY 4.0.

Part of #17

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* docs: README, CITATION and fixture list match 0.10.0

README: install pin 0.10.0, CI and docs badges, the Metal path and the
ImagoKit/Accelerate dependency, the module table up to 0.10.0 and two
Known limits lines reworded. CITATION gains version, date-released and orix,
and loses the ORCID TODO. The fixture README lists the orix misorientation
pins and credits the Materials Project files; the stray .keep is gone.

Part of #17

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* docs: join two dangling doc-comment fragments (SwiftLint comment_spacing)

Part of #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* Licence: GPL-3.0-only for DiffractoKit's own lines

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* docs: NOTICE grants GPL-3.0-only, matching the licence id

Part of #17

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VkKZEWxuR53HJvmXUenLwd

* test: the ellipse sweep fixture carries its own plants

slice-3b-sweep.json now records each ring's plant (size, radius, eps, theta, gap, seed) and fit1D's start and annulus, and
tools/slice-3b/sweep.py renders the 20 rings itself (a line-for-line Python port of EllipsePlant with no noise; every ring's
FNV-1a hash equals the Swift renderer's). Reason: the sweep test read its plants from slice-3b-apps.json, the apps-parity
dump that #18 retires. No number moved: every optimum, hash and count is byte-identical; only the plant fields were added
and the dump index dropped.

Part of #18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test: retire the apps-parity dumps

Deletes slice-2-apps.json, slice-3b-apps.json, slice-3b-apps-onone.json and slice-4-apps.json (about 15 MB) with their
tests (ScatteringPinsTests' testAppsBitForBit and the beta'' site-list test, EllipseAppsParityTests, Slice4AppsParityTests)
and generators (tools/slice-{2,3b,4}/apps-parity). Reason: they were bit-identity dumps of the apps' pre-port code
(mac4DSTEM 7d6fdbd1), holding the kit to frozen legacy output rather than to a reference, and regenerating them needed an
old app checkout. The Python pins (P4 to P6, P11, P14, P15) and the planted-truth tests hold the same functions.
docs/parity.md marks P7, P10 and P16 retired; the fixtures README drops the four rows (and gains the missing
orix-misorientation row).

Part of #18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor: name tools, fixtures and tests by subject

One move, no number changed: every fixture is byte-identical under its new name.

- Generators: tools/slice-1, slice-1b, slice-2, slice-3, slice-3b, slice-4, kit-0.0.4 and mactem-pieces become
  tools/pins/{cells, conventional-cell, structure-factors, ring-calibration, ring-indexing, ellipse, phase-vectors,
  ring-display}; the subject-named orix, symmetry (now orientation-symmetry), presets, mp-import, cif-symmetry and
  acom-matcher move under tools/pins too, so every fixture generator lives in one place. Each script's root path is one
  level deeper; every resolved path was checked.
- Fixtures: slice-*-pins.json become <reference>-<subject>-pins.json (pymatgen-cells, spglib-conventional-cell,
  numpy-structure-factor, numpy-ring-calibration, numpy-ring-indexing, scipy-ellipse-sweep, py4dstem-phase-vector); the
  review CIFs refuter_* are named by what they hold (magnesium_P1_origin_shifted.cif and so on). The fixture folders and
  FixtureDirs are unchanged.
- Tests: Slice1bSupport, KitAsks0100Tests, ToleranceFixesTests, ACOMKitAsksTests, PhaseVectorReviewFindingTests,
  RingFitAmendmentTests, PolicyFixesTests and Slice4PinsTests (with its G2 to G4 suites) are named after the API they
  test; consumer-check's Geometry004, MacTEMPieces and Release0100 files after their subject.
- docs/parity.md, the fixtures README and the "Generated by" lines of three generated sources follow.

Part of #18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor: one copy of the README example

tools/readme-consumer's target is now a symbolic link to Examples/diffracto-example, so the README's program exists once
in the repository (the README block aside) instead of three byte-identical times. SwiftPM refuses a target `path:`
outside the package root, so the link stands in for it; run.sh checks the link and compares the example with the
README, and the consumer package still builds from outside the kit against the public API only.

Part of #18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test: the real-pattern ellipse test runs where its data is

testRinglessFitOnARealMeanPatternFallsBackToTheConic was .disabled; it is now enabled when its file exists under
$MACEM_DATA (default ../data beside the checkout) and skipped with a reason otherwise, the kit's rule for real-data
tests. The file is still absent everywhere (its manifest line is pending), so CI skips it as before.

Part of #18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: the Python reference environment, once, with a requirements file per oracle

CONTRIBUTING.md describes the three venvs (pymatgen with spglib, orix, py4DSTEM) and how to build them from a fresh
clone with tools/pins/requirements/{pymatgen,orix,py4dstem}.txt, which pin the versions the committed fixtures were
made with. The pymatgen generators now name a venv called pymatgen instead of the orix one they ran in.

Part of #18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test: regenerate the pymatgen fixtures on pymatgen-core 2026.10.16

Reason: the fixtures recorded pymatgen-core 2026.9.23 (an earlier venv) while the reference environment holds 2026.10.16;
every fixture that records a pymatgen-core version now records 2026.10.16. Regenerated with tools/pins:
pymatgen-cells, spglib-conventional-cell, tetragonal, numpy-structure-factor, mp-import, presets, py4dstem-phase-vector,
symmetry and py4dstem-family-real pins. No number moved: a structural comparison of each old and new file finds only the
version, Python, timestamp and (phase-vector pins) generator-path fields changed. The generators' version asserts and the
tests that read the recorded versions follow (pymatgen-core 2026.10.16, Python 3.12, and NumPy 2.5.4 / SciPy 1.18.1 in
the py4DSTEM venv).

Part of #18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor: the phase-vector pin file type named by subject

Part of #18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: CHANGELOG headings in release-please form, with dates, compare links and 0.0.3

Every version heading is `## [x.y.z](compare link) (date)`, the form
release-please writes from 0.11.0 on, so the file reads as one list.
0.3.0, 0.1.1 and 0.1.0 get their tag dates, 0.0.3 gets a pre-release
entry, and the "archived" lines and internal ask and task numbers are
gone. The CI tag check's regex already reads both heading forms
(`^## \[?v?x.y.z`), so ci.yml is unchanged; it reads 0.10.0 here.

Done: the CHANGELOG bullet of #17. Next: Paul merges #28.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* ci: release-please bumps the CITATION version and the README install pin

Both lines carry an x-release-please-version annotation and the files are
release-please extra-files, so the Release PR moves them with the
manifest. CITATION's date-released stays a hand edit in the Release PR.

Done: the CITATION 'bumped with every tag' bullet of #17. Next: Paul merges #28.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
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.

2 participants