Skip to content

fix: bump is-email resolution to 1.x, 0.1.1 is also curation-blocked - #1388

Merged
abueide merged 2 commits into
masterfrom
fix-is-email-curation
Jul 17, 2026
Merged

fix: bump is-email resolution to 1.x, 0.1.1 is also curation-blocked#1388
abueide merged 2 commits into
masterfrom
fix-is-email-curation

Conversation

@abueide

@abueide abueide commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Same pattern as #1386's axios fix: is-email@0.1.1 (the version #1385 picked as "newest within the same major") is also curation-blocked - every 0.x release is.

Unlike axios, this one is a real (narrow) behavior change

is-email is bundled into the shipped @segment/analytics-next bundle via @segment/facade (a real runtime dependency, not dev tooling), used for email-trait detection in identify/track/page/group processing.

  • is-email@0.1.1's matcher: /.+@.+\..+/ - very loose, matches almost anything shaped like x@y.z
  • is-email@1.0.2 (the only available non-blocked version): a proper RFC-5321-style pattern, plus a 320-character cap

So this makes that internal detection meaningfully stricter. Added as its own changeset (.changeset/bump-is-email-curation.md) documenting the behavior change, rather than folding it into the mechanical bump commits like the other 40 packages.

A second real break found via CI: wait-on incompatible with axios 1.x

wait-on@6.0.1 (used by jest-dev-server, dev-only) does a hardcoded require('axios/lib/adapters/http') - an internal axios 0.x file path that doesn't exist in the 1.x rewrite (#1386). No curation-approved axios version has that path anymore, so this broke unconditionally once axios was forced to 1.x. Bumped wait-on itself to 9.0.10 - its public API (waitOn(opts, callback)) is unchanged, and it's dev-only (no published-package impact).

Verified locally

  • Full browser test suite: 70/70 suites, 841/845 tests
  • e2e-tests/performance (the suite that caught the wait-on/axios break): 2/2
  • Full make ci for browser green end to end
  • Confirmed the is-email fix against real curated Artifactory via a manual release.yml trigger on this branch: the test job (Node 20) installs cleanly

Test plan

  • Confirm the publish job's install (Node 24) also resolves cleanly once merged - a scratch-branch dispatch can't reach that job (the production environment correctly rejects non-master deployments), so this can only be confirmed after merge
  • CI green across all workspaces

Same pattern as #1386's axios fix: `is-email@0.1.1` (the version #1385
picked as "newest within the same major") is also curation-blocked -
every 0.x release is. Unlike axios and the other 40 packages in that
PR, this one is a real behavior change: is-email is bundled into the
shipped @segment/analytics-next bundle via @segment/facade (a real
runtime dependency, not dev tooling), used for email-trait detection
in identify/track/page/group processing.

0.1.1's matcher (/.+@.+\..+/) is very loose - matches almost anything
shaped like x@y.z. 1.0.2 (the only available non-blocked version) uses
a proper RFC-5321-style pattern plus a 320-character cap, so this
makes that internal detection meaningfully stricter. Documented as its
own changeset rather than folding it into the mechanical bump commits,
since it's the one exception among all the curation-driven bumps that
touches real shipped behavior.

Verified locally: full browser test suite (70/70 suites, 841/845
tests) still passes.
@tvs-twilio-segment

tvs-twilio-segment Bot commented Jul 17, 2026

Copy link
Copy Markdown

✅ TVS Validation Passed

View full report

Show details

All validation checks have successfully completed.

@changeset-bot

changeset-bot Bot commented Jul 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 5af61b5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@segment/analytics-next Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

CI caught a real break from the axios bump (#1386): wait-on@6.0.1
(used by jest-dev-server, dev-only) does a hardcoded
`require('axios/lib/adapters/http')` - an internal axios 0.x file
path that doesn't exist in the 1.x rewrite. Forcing axios to 1.x for
the curation-blocked resolutions broke wait-on unconditionally,
regardless of which axios version it resolved to, since no
curation-approved axios version has that internal path anymore.

Bumps wait-on itself to 9.0.10 (its public API - waitOn(opts,
callback) - hasn't changed) rather than trying to keep it on an old,
curation-blocked axios. Dev-only, no published-package impact.

Verified locally: e2e-tests/performance passes again (2/2), and full
`make ci` for browser is green end to end.
@abueide
abueide enabled auto-merge (squash) July 17, 2026 20:36
@abueide
abueide merged commit b4fd75d into master Jul 17, 2026
35 checks passed
@abueide
abueide deleted the fix-is-email-curation branch July 17, 2026 20:37
@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.59%. Comparing base (f19b9be) to head (6332540).
⚠️ Report is 1 commits behind head on master.

⚠️ Current head 6332540 differs from pull request most recent head 5af61b5

Please upload reports for the commit 5af61b5 to get more accurate results.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1388      +/-   ##
==========================================
+ Coverage   89.74%   91.59%   +1.85%     
==========================================
  Files          46      127      +81     
  Lines        1375     4142    +2767     
  Branches      322     1033     +711     
==========================================
+ Hits         1234     3794    +2560     
- Misses        141      348     +207     
Flag Coverage Δ
browser 92.51% <ø> (?)
core 90.07% <ø> (ø)
node 89.43% <ø> (ø)

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.

2 participants