Conversation
Good Sense Reviewer - Round 1Recommendation: Request ChangesWhat this PR doesThis PR starts retiring GetAddress.io UK Postcodes. It marks runtime objects obsolete, adds staged cleanup guards, removes permissions during cleanup, and removes the test app. The page, codeunit, and table obsoletion sequence is consistent, and both GB application build modes pass. However, the clean build still compiles page extensions 50000-50011. Stripping their logic does not remove the object-ID collision, and the remaining role-center action has no behavior. Problem-solution fitFit: Partial Staged retirement fits the discontinued extension, but the change retains the exact page-extension object IDs that can collide with PTE objects. The main problem therefore remains in the clean artifact. SuggestionsS1 (🔴 High): Retired page extensions keep conflicting object IDs Risk assessment and necessityRisk: The GB default and clean application builds pass, and no report layout or BaseApp event publisher is involved. The remaining clean-mode page extensions still claim PTE-range IDs, and one exposes a no-op action; broader unit-test checks are still pending. Necessity: Retiring this unused extension and preserving its table schema during the transition is justified. The scope must also remove or renumber the clean-mode page extensions, or otherwise eliminate their collision surface.
|
These staged page extensions used customer/PTE object IDs (50000-50011) and only existed in the Clean build. The postcode lookup functionality already lives in the GB BaseApp, so they are redundant. Removing them eliminates the PTE ID-range collision in the CLEAN30 build and the dead role-center action. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fixed, page extensions removed |
Good Sense Reviewer - Round 2Recommendation: AcceptWhat this PR doesThis PR retires GetAddress.io UK Postcodes and now removes the twelve page extensions that occupied object IDs 50000-50011. The new commit directly resolves the previous collision. All twelve declarations are deleted, no objects remain in the 50000 range, and no new round-2 changes fall outside those deletions. Status of previous suggestions
New observations (commits since round 1)None - changes only addressed the previous suggestion. Risk assessment and necessityRisk: The round-2 change only deletes stateless page extensions from an app that is being retired. Persistent tables remain staged for later schema cleanup. Verification, analyzer, link, and CodeQL checks passed; the GB default and clean builds were still running at review time. Necessity: Removing these page extensions is necessary because stripping their logic did not release their PTE-range object IDs. The deletion scope directly removes the collision without deleting persistent schema.
|
What & why
Marking GetAddress.io objects as obsolete
Linked work
Fixes AB#649616
How I validated this
What I tested and the outcome (required — be specific: scenarios, commands, screenshots for UI changes)
Risk & compatibility
Low, the app is already not installed on any new tenant and uninstalled from existing tenants on 28.3