Repository navigation
Extract Intercompany into one app with country compilation symbols - #13462
Draft
Alexander Yakunin (Alexander-Ya) wants to merge 16 commits into
Draft
Alexander Yakunin (Alexander-Ya) wants to merge 16 commits into
Alexander Yakunin (Alexander-Ya) wants to merge 16 commits into
Conversation
Copy the Intercompany extraction from PR #13232 as one commit. Consolidate localized integrations with metadata-driven country preprocessor symbols, shared build resolution, CLEAN-baseline preservation, generated AL-Go settings, and focused PowerShell tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Alexander Yakunin (Alexander-Ya)
temporarily deployed
to
triage
October 30, 2026 08:53 — with
GitHub Actions
Inactive
Contributor
|
Could not find a linked work item. Please link one in either of these ways: (1) link an ADO work item using the pattern 'AB#' followed by the work item number - you may use the 'Fixes' keyword to automatically resolve it when the pull request is merged, e.g. 'Fixes AB#1234'; or (2) link a GitHub issue of type 'Task' using the pattern 'Fixes #' followed by the issue number, e.g. 'Fixes #1234'. |
Co-authored-by: Alexander-Ya <179119309+Alexander-Ya@users.noreply.github.com>
…res/Intercompany-country-compilation
…res/Intercompany-country-compilation
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Alternative to #13232, copied from its head
035b0e73eb28d118a073023750393707b88c0746and squashed into one commit. The original PR and branch remain unchanged.Retain the Intercompany extraction, but consolidate the four new localization apps into the shared Intercompany app. Application continues to depend on one Intercompany app, allowing localized public symbols to be exposed through its existing propagated dependencies.
Benefits compared with separate country apps
Trade-off: this produces country-specific binaries, not a universal package, and each localization still requires validation. Country-only APIs remain available only in the relevant builds. Localizations share the main app's release lifecycle instead of being independently deployable.
Country compilation design
build/projects.jsonowns a newcountryPreprocessorSymbolsmapping on each applicable application. A shared resolver validates country keys and uppercase feature-qualified symbols, then resolves the symbols for an application or workspace.INTERCOMPANY_APACINTERCOMPANY_NAINTERCOMPANY_ITINTERCOMPANY_NOIntercompany/app/src/Localization, preserving their object IDs, names, and complete bodies. Each file is enclosed by its corresponding compilation guard, including the localization permission objects.This is one source project and app identity with country-specific compiled packages, not one universal binary.
Linked work
#13232 - original Intercompany extraction PR, left unchanged.
No separate GitHub issue or ADO work item was supplied for this alternative design.
How I validated this
What I tested and the outcome (required — be specific: scenarios, commands, screenshots for UI changes)
Invoke-Pester -Path .\build\scripts\tests\CountryPreprocessorSymbols.Test.ps1,.\build\scripts\tests\CountryProjectSettings.Test.ps1,.\build\scripts\tests\TestPreprocessorSymbols.Test.ps1 -PassThru -Output Minimal: passed, 40 tests..\build\scripts\Update-CountryProjectSettings.ps1 -Validate: passed for all 23 country projects.git diff --cached --check features/Extract-Intercompany-module-into-app: passed for the new consolidation delta.git diff --cached --check: reports five inherited trailing-whitespace findings, confirmed to exist in the original extraction: one insrc/Layers/GB/BaseApp/Purchases/Posting/PurchPost.Codeunit.aland four insrc/Layers/W1/BaseApp/.github/skills/al-extraction/SKILL.md. These unrelated lines were left unchanged.LOCAL_DEV_ENV.mdis left to the user's validation workflow.Pending: Default and Clean country builds, aggregate Application API compatibility checks, and localized Intercompany runtime scenarios.
Risk & compatibility
The original extraction's schema ownership moves remain unchanged. The consolidation preserves localized AL behavior and existing object identities but compiles the localized objects into Intercompany instead of the four newly introduced apps.
This assumes the separate localization apps from #13232 have not shipped. No uninstall/upgrade path from deployed versions of those experimental app identities is introduced.
Country compilation symbols must remain stable for each localization. CLEAN and CLEANSCHEMA symbols remain independent version-cleanup controls; removing them for baseline comparison must not remove country symbols.