Skip to content

chore: cleanup docs, profiling config, and tests - #58

Merged
scolladon merged 2 commits into
mainfrom
chore/remove-alm-references
Aug 17, 2026
Merged

chore: cleanup docs, profiling config, and tests#58
scolladon merged 2 commits into
mainfrom
chore/remove-alm-references

Conversation

@scolladon

@scolladon scolladon commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Explain your changes


Removes every ALM reference from the repository. ALM was never a product concept — it was leftover naming from a private Salesforce environment. A full sweep confirms zero occurrences in src/, messages/, CHANGELOG.md, CONTRIBUTING.md, DESIGN.md, RUN_BOOK.md, package.json, or the CI workflows, and the phrase "Application Lifecycle Management" appears nowhere.

Every occurrence was one of two data values, so no runtime behaviour changes — nothing under src/ is touched.

1. sf CLI org aliasesprofiling/profiling.config.json, profiling/PROFILING.md

Was Now
alm-xrmru source-org-a
alm-prod source-org-b
alm-dev source-org-c
alm-devops analytics-org

2. CRM Analytics dataset namesREADME.md, three test files

Was Now
ALM_LightningPageView LightningPageView
ALM_Accounts Accounts
ALM_ImportedAccounts ImportedAccounts
ALM_UserLogin Test_UserLogin
ALM_USERS Test_USERS
ALM_X Test_X

The README examples drop the prefix entirely so they read as generic, publishable config. Test fixtures adopt the Test_ prefix that profiling/profiling.config.json already used for Test_LightningPageView / Test_User, rather than inventing a new convention.

Recorded profiling measurements (timings, RSS, part counts) are a historical record and were left untouched.

Does this close any currently open issues?


No.

  • Unit tests added to cover the fix.
  • NUT tests added to cover the fix.

No new tests: this renames string literals in existing fixtures only. Two of those literals are load-bearing assertions (expect(sut.reason).toContain(...) in schema-check.test.ts and expect((err as Error).message).toContain(...) in sobject-row-projection.test.ts), which were renamed in lockstep with their fixtures.

Any particular element that can be tested locally


No new parameters and no behaviour change to any existing one.

# No ALM references remain in tracked files (expect: no output)
git ls-files -z | xargs -0 grep -nE '\bALM_|\balm-(prod|dev|devops|xrmru)\b'

npm run test:unit:coverage   # 917 tests pass, coverage 100/100/100/100
npm run lint                 # biome: 106 files checked, clean

Any other comments


Action required before the next profiling run. The profiling/ org aliases are live infrastructure — sf must be able to resolve the new names or profiling/prepare.sh will fail:

sf alias set source-org-a=<xrmru-username>
sf alias set source-org-b=<prod-username>
sf alias set source-org-c=<dev-username>
sf alias set analytics-org=<devops-username>

profiling/prepare.sh itself needed no change — it references entry names (pageviews-xrmru, pageviews-prod) and CSV filenames, never an org alias.

Deliberately left alone:

  • src/domain/metadata-types.tsfiscalMonthOffset, a substring false positive and the only alm match in all of src/
  • Five occurrences of the word "almost" across tests and docs
  • Entry names (pageviews-xrmru, users-xrmru-file) and fixture payloads (XRMRU, 00Dxrmru) — these are labels and test data, not ALM references. Side effect: profiling/PROFILING.md now has rows reading pageviews-xrmru | source-org-a. Happy to genericize those in a follow-up if wanted.
  • Locally-excluded working configs (supervision.config.json, recovery.json, crma-load.config.json, lpv.config.json) — out of scope, and editing them would change what a local run actually does.

Second commit: build: dependency bumps

Rebased onto main (#55). That commit turned npm outdated into a blocking drift gate, which main could not pass — 11 pins had fallen behind latest, so every PR was red. osv-scanner was also failing on two advisories. Neither was caused by the ALM rename (that commit touches 6 files of string literals and no dependency file), but both are fixed here so this PR can go green.

Advisories cleared (npm audit fix, lockfile only — npm audit now reports 0):

Package Advisory Fix
js-yaml (dev, transitive) GHSA-5p4m-2wfm-xmqj (7.5) 4.3.0 → 4.3.1
nanoid (dev, transitive) GHSA-2v37-7h3g-55p8 (8.2) 3.3.16 → 3.3.18

Pins moved to latest per the CONTRIBUTING rule that pins track current latest; all stay exact, no ranges introduced:

@salesforce/core 9.1.0→9.1.2 · @biomejs/biome 2.5.7→2.5.8 · @commitlint/cli 21.2.1→21.2.2 · @commitlint/config-conventional 21.2.0→21.2.2 · @oclif/plugin-help 6.2.56→6.2.58 · @types/node 26.1.2→26.2.0 · jscpd 5.0.14→5.0.15 · knip 6.32.0→6.32.2 · pkg-pr-new 0.0.87→0.0.88 · @stryker-mutator/core + @stryker-mutator/vitest-runner 9.6.1→10.0.0 (major)

npm outdated now exits 0.

Pre-existing issue found, deliberately not fixed here

Mutation testing is already broken on main, independent of this PR. Stryker crashes during sandbox setup:

TypeError: ts.parseConfigFileTextToJson is not a function
    at TSConfigPreprocessor.rewriteTSConfigFile (@stryker-mutator/core/dist/src/sandbox/ts-config-preprocessor.js:46)

Stryker's TSConfigPreprocessor calls a TypeScript API that typescript@7 no longer exposes. I verified this is not a regression from the major bump by pinning back to 9.6.1 and reproducing the identical crash. The mutation-testing job is continue-on-error and skips when src/ is untouched, so it does not block. Worth its own issue.

Conflict note: dependabot #57 (build: bump the npm group across 1 directory with 70 updates) rewrites package-lock.json wholesale and will now conflict with this PR. One of the two should be rebased or closed.

@github-actions

github-actions Bot commented Aug 17, 2026

Copy link
Copy Markdown

Performance Comparison (same runner)

Improvements

Benchmark Base PR Ratio Change
throughput-fanout-1-channels 13906 18426 0.75 +24.5%

Stable

Benchmark Base PR Ratio Change
watermark-parse-valid 8107144 9447236 0.86 +14.2%
watermark-to-soql 8332417 9502963 0.88 +12.3%
watermark-store-create-5 1033667 1136576 0.91 +9.1%
watermark-store-get-5 19577879 18699178 1.05 -4.7%
watermark-store-set-5 2521359 2554759 0.99 +1.3%
watermark-store-create-20 188123 198085 0.95 +5%
watermark-store-get-20 19613502 18653283 1.05 -5.1%
watermark-store-set-20 851046 834318 1.02 -2.0%
watermark-store-create-50 72871 84094 0.87 +13.3%
watermark-store-get-50 19643876 18669608 1.05 -5.2%
watermark-store-set-50 404429 378437 1.07 -6.9%
throughput-gzip-chunking-small 1860 2222 0.84 +16.3%
throughput-gzip-chunking-medium 217 224 0.97 +3.1%
throughput-gzip-chunking-large 9 10 0.90 +10%
throughput-fanout-3-channels 16563 20247 0.82 +18.2%
throughput-fanout-5-channels 14946 15465 0.97 +3.4%
throughput-augment-small 420865 411231 1.02 -2.3%
throughput-augment-medium 43115 42268 1.02 -2.0%
throughput-augment-large 4036 3864 1.04 -4.5%
throughput-channel-push-consume-1k 5618 5559 1.01 -1.1%
throughput-channel-push-consume-10k 560 551 1.02 -1.6%
watermark-parse-valid (mean) 0.0001ms 0.0001ms 1.00 -0%
watermark-to-soql (mean) 0.0001ms 0.0001ms 1.00 -0%
watermark-store-create-5 (mean) 0.001ms 0.0009ms 0.90 -10%
watermark-store-get-5 (mean) 0.0001ms 0.0001ms 1.00 -0%
watermark-store-set-5 (mean) 0.0004ms 0.0004ms 1.00 -0%
watermark-store-create-20 (mean) 0.0053ms 0.005ms 0.94 -5.7%
watermark-store-get-20 (mean) 0.0001ms 0.0001ms 1.00 -0%
watermark-store-set-20 (mean) 0.0012ms 0.0012ms 1.00 -0%
watermark-store-create-50 (mean) 0.0137ms 0.0119ms 0.87 -13.1%
watermark-store-get-50 (mean) 0.0001ms 0.0001ms 1.00 -0%
watermark-store-set-50 (mean) 0.0025ms 0.0026ms 1.04 +4.0%
throughput-gzip-chunking-small (mean) 0.5375ms 0.4501ms 0.84 -16.3%
throughput-gzip-chunking-medium (mean) 4.6134ms 4.4578ms 0.97 -3.4%
throughput-gzip-chunking-large (mean) 111.9358ms 102.5235ms 0.92 -8.4%
throughput-fanout-1-channels (mean) 0.0719ms 0.0543ms 0.76 -24.5%
throughput-fanout-3-channels (mean) 0.0604ms 0.0494ms 0.82 -18.2%
throughput-fanout-5-channels (mean) 0.0669ms 0.0647ms 0.97 -3.3%
throughput-augment-small (mean) 0.0024ms 0.0024ms 1.00 -0%
throughput-augment-medium (mean) 0.0232ms 0.0237ms 1.02 +2.2%
throughput-augment-large (mean) 0.2478ms 0.2588ms 1.04 +4.4%
throughput-channel-push-consume-1k (mean) 0.178ms 0.1799ms 1.01 +1.1%
throughput-channel-push-consume-10k (mean) 1.7855ms 1.8165ms 1.02 +1.7%

@scolladon
scolladon force-pushed the chore/remove-alm-references branch from 28d6e33 to ab6f94c Compare August 17, 2026 10:12
@github-actions

Copy link
Copy Markdown

Preview build for this pull request:

sf plugins install https://pkg.pr.new/dataset-loader@5483178

@scolladon scolladon changed the title chore: remove ALM references from docs, profiling config, and tests chore: cleanup docs, profiling config, and tests Aug 17, 2026
@scolladon
scolladon merged commit 5039257 into main Aug 17, 2026
21 checks passed
@scolladon
scolladon deleted the chore/remove-alm-references branch August 17, 2026 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant