Skip to content

Releases: intersystems/ipm

v0.10.10-beta.6

v0.10.10-beta.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Aug 16:45
737d1a5
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

v0.10.10-beta.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Aug 16:28
5a71f3c
Support Python 3.9 (#1229)

* Support Python 3.9

* Update docs for Python 3.9 support

v0.10.10-beta.4

v0.10.10-beta.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Aug 19:35
92758af
fix(shell): prevent crash when target namespace lacks IPM mappings (#…

v0.10.10-beta.3

v0.10.10-beta.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Aug 18:11
0f8c746
Add system requirement setting for %SYS namespace (#1226)

v0.10.10-beta.2

v0.10.10-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Aug 17:32
549a8b3
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

v0.10.10-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Aug 17:58
5af3bed
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

Choose a tag to compare

@isc-tleavitt isc-tleavitt released this 05 Aug 18:01
6b95dd1

[0.10.9] - 2026-08-05

Added

  • #1178: Add -password-env and -token-env modifiers to the repo command to read the password/token from a named environment variable (secure alternatives to -password and -token).

Changed

  • #1186: Change %IPM.Main:ShellScript() to return a status.

Fixed

  • #1207: Zero-byte files are now supported in IPM modules
  • #1209: Fix IPM installer failing on certain environments with (partially) installed older IPM versions
  • #1212: Fix improper parsing of module versions with dashes in the pre-release string

v0.10.9-beta.6

v0.10.9-beta.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Aug 18:51
6b95dd1
Update CHANGELOG for version 0.10.9 (#1216)

Update version date for 0.10.9 and add new features.

v0.10.9-beta.5

v0.10.9-beta.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Jul 14:58
3e7a5fc
Fix pre-release version parsing (#1214)

v0.10.9-beta.4

v0.10.9-beta.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Jul 21:06
3042a06
change ShellScript() to return a status (#1211)

* change ShellScript() to return a status

* restore terminating process by default, and return status otherwise