From d680a1f8ce63ad9132a353e118c77765db4322f2 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 29 Jul 2026 15:51:46 +0000 Subject: [PATCH 1/4] fix: normalize Windows backslashes in migration and seed component paths On Windows, makePathRelative() returns paths with backslashes (e.g. resources\database\migrations\). When concatenated with a forward-slash separator and passed to listChangeDelims (which only treats / as a delimiter), the backslashes survive into the component path string, producing malformed class names like resources\database\migrations\.2026_06_23_201258_security that BoxLang's [bx] resolver cannot locate. Normalize the directory value with replace(..., "\", "/", "all") in both findAll() and findSeeds() before building componentPath, so the path is always forward-slash-delimited regardless of OS. --- models/MigrationService.cfc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/MigrationService.cfc b/models/MigrationService.cfc index d4d76a5..386a055 100644 --- a/models/MigrationService.cfc +++ b/models/MigrationService.cfc @@ -312,7 +312,7 @@ component accessors="true" { componentName: componentName, absolutePath: file.directory & "/" & file.name, componentPath: listChangeDelims( - directory & "/" & componentName, + replace( directory, "\", "/", "all" ) & "/" & componentName, ".", "/", false @@ -389,7 +389,7 @@ component accessors="true" { { "componentName": componentName, "componentPath": listChangeDelims( - variables.seedsDirectory & "/" & componentName, + replace( variables.seedsDirectory, "\", "/", "all" ) & "/" & componentName, ".", "/", false From ae09f5e947d0978945e0b11f2c078b8f6a187eb8 Mon Sep 17 00:00:00 2001 From: lmajano <137111+lmajano@users.noreply.github.com> Date: Wed, 29 Jul 2026 15:52:40 +0000 Subject: [PATCH 2/4] Apply cfformat changes --- models/MigrationService.cfc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/models/MigrationService.cfc b/models/MigrationService.cfc index 386a055..33d77c4 100644 --- a/models/MigrationService.cfc +++ b/models/MigrationService.cfc @@ -389,7 +389,12 @@ component accessors="true" { { "componentName": componentName, "componentPath": listChangeDelims( - replace( variables.seedsDirectory, "\", "/", "all" ) & "/" & componentName, + replace( + variables.seedsDirectory, + "\", + "/", + "all" + ) & "/" & componentName, ".", "/", false From 1d9c13556cf9b5351eaf23747d0e10241ae447b5 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 29 Jul 2026 15:53:36 +0000 Subject: [PATCH 3/4] docs: add v5.1.2 changelog entry for Windows path fix --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 760a676..0b9834a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# v5.1.2 +## 29 Jul 2026 — 00:00:00 UTC + +### fix + ++ __MigrationService:__ Normalize Windows backslashes in migration and seed component paths to prevent `ClassNotFoundBoxLangException` on Windows ([d680a1f](https://github.com/coldbox-modules/cfmigrations/commit/d680a1f)) + + # v5.1.1 ## 06 Apr 2026 — 19:58:21 UTC From c90b75f79b1ea4fab7e59b27d1508943d7883f7e Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 29 Jul 2026 15:56:04 +0000 Subject: [PATCH 4/4] Revert "docs: add v5.1.2 changelog entry for Windows path fix" This reverts commit 1d9c13556cf9b5351eaf23747d0e10241ae447b5. --- CHANGELOG.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b9834a..760a676 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,3 @@ -# v5.1.2 -## 29 Jul 2026 — 00:00:00 UTC - -### fix - -+ __MigrationService:__ Normalize Windows backslashes in migration and seed component paths to prevent `ClassNotFoundBoxLangException` on Windows ([d680a1f](https://github.com/coldbox-modules/cfmigrations/commit/d680a1f)) - - # v5.1.1 ## 06 Apr 2026 — 19:58:21 UTC