Releases: intersystems/ipm
Releases · intersystems/ipm
Release list
v0.10.10-beta.6
Various sync fixes from testing with a real (messy) package (#1223)
* Fix sync dropping all changes when SourcesRoot is "."
A module with <SourcesRoot>.</SourcesRoot> keeps its sources at the module
root. Resource paths are composed as SourcesRoot_"/"_Directory, so they reach
the sync pipeline as "./cls/Foo.cls", while WalkAndHashDirs and the FileHash
baseline key the same file as "cls/Foo.cls". NormalizePath did not collapse "."
segments, so no changed path ever matched the reverse index: nothing was
dispatched to a processor, SyncCompile was skipped (loadItems = 0), and yet
step 9 still printed "Updated:" and committed the new hashes. Every edit in
such a module was silently dropped, reported as a success, and never retried.
Three changes:
- NormalizePath now drops "." path segments, so both spellings collapse to the
same key. A bare "." (SourcesRoot with no Directory) normalizes to "".
- New CanonicalDocName upper-cases the extension of a document name, and both
producers of document names route through it. The storedPaths fallback in
SyncBuildReverseIndex looked up names from RelPathToDocName ("Foo.Bar.CLS")
in an array keyed by ResolveChildren ("Foo.Bar.cls"), so it could never
recover a path the primary index missed.
- A changed path that routes to no resource is now reported as a warning and
removed from the change set before CommitChanges, so it is not reported as
"Updated:" and is re-detected on the next sync instead of being lost.
Tests: unit coverage for the new normalization cases and CanonicalDocName, plus
a sync-dot-root integration fixture and TestSyncWithDotSourcesRoot, which
asserts the edit is live in the namespace rather than merely reported — a green
sync report was exactly the symptom. Verified that the new integration test
fails on the pre-fix source with "Edit is compiled and live on the server" and
passes with it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* fix(sync): track failed syncs to retry even if file is net unchanged
* fix(sync): unit test runs once under correct resource
* feat(sync): run deferred tests on the next sync -test
A plain `sync` commits the changed file's hash, so change detection would
never look at that file again and an edit to a unit test synced without
-test stayed untested indefinitely.
Flag those paths instead (FileHash.TestPending, mirroring SyncFailed):
sync collects the changed paths owned by a test-phase UnitTest resource,
marks them, and says so. ComputeChanges forces marked rows back into the
change set only when the sync runs tests, and CommitChanges clears the
flag once they have run.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* docs(sync): tighten comments per PR review
Drop backwards-looking/negative-space narration, the intra-release issue
reference, and the pre-property backward-compatibility notes; state what
the code does and why instead.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* docs: add comment guidelines and load AGENTS.md for Claude Code
Collect the comment/doc conventions raised in review (#1223) into a
Comments & Documentation section. Add a CLAUDE.md that imports AGENTS.md
so Claude Code picks the guidelines up automatically; AGENTS.md remains
the single source of truth.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* docs: clarify PR number use
Don't want to throw Claude off on changelogs.
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
v0.10.10-beta.5
Support Python 3.9 (#1229) * Support Python 3.9 * Update docs for Python 3.9 support
v0.10.10-beta.4
fix(shell): prevent crash when target namespace lacks IPM mappings (#…
v0.10.10-beta.3
Add system requirement setting for %SYS namespace (#1226)
v0.10.10-beta.2
fix(perf): studio project creation was slow (#1225) We noted significant delays in dev mode container build, leading us to not build in dev mode. This is now more relevant because sync only works on dev mode (reasonably). Only checking the project at the end saves a ton of time/effort.
v0.10.10-beta.1
Add "Sync" command (#1205) * Initial implementation of sync * Remove debug code and add better output * Fix some small issues * Reorder operations * Add more tests * Cut test time by half through native copy of the test fixture * Fix regression * Improve testing and fix small bug * Correctly batch sync tests * Refactor * Fix minor issues * First part of rework to use BFS * Use BFS directory scanning * Drop the unused mtime/size properties * Refactor * Refactor to improve performance, reduce false positive warnings, and flesh out verbose mode output * Handle sync IPM edge case with % classes * Even more speedup * Fix casing bug and merge walk+hash in Python * Fix a few small issues and add some unit tests * Only support canonical paths * Hash in parallel * Refactor sync to be an actual lifecycle phase * Fix a few small issues and improve tests * Better UX for deletes * Remove extra newline and improve module.xml in test * Try different container image * Revert image change * Try different fix * Use the new dockerfile in the main workflow too * Use the old script location for 2025.3 * Add test case for xml classes * Add better dependency handling and test case * Add summary section to sync * Refactor sync into its own file and fix minor issues * Fix bad rebase * Refactor and minor fix * Improve comments * Remove redundant code and reorganize * Address review comments about preload, FileHash index, and unchecked statuses * Remove unused includes and standardize warning case
v0.10.9
v0.10.9-beta.6
Update CHANGELOG for version 0.10.9 (#1216) Update version date for 0.10.9 and add new features.
v0.10.9-beta.5
Fix pre-release version parsing (#1214)
v0.10.9-beta.4
change ShellScript() to return a status (#1211) * change ShellScript() to return a status * restore terminating process by default, and return status otherwise