Skip to content

Replace unmaintained dagre with @dagrejs/dagre#387

Closed
blaipr wants to merge 1 commit into
ctrliq:mainfrom
blaipr:feature/dagrejs-dagre
Closed

Replace unmaintained dagre with @dagrejs/dagre#387
blaipr wants to merge 1 commit into
ctrliq:mainfrom
blaipr:feature/dagrejs-dagre

Conversation

@blaipr

@blaipr blaipr commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

📋 Suggested merge order for all 15 open PRs

Same list on every PR. Hard requirement: #381 before #382/#383/#384. Per-PR rebase/conflict notes are below the list.

  1. Merge PR Fix cross-test mock leak behind the flaky parallel test failures #388 - Fix cross-test mock leak behind the flaky parallel test failures
  2. Merge PR Upgrade twisted, kubernetes, pyyaml, Cython and Django to latest allowed versions #374 - Upgrade twisted, kubernetes, pyyaml, Cython and Django to latest allowed versions
  3. Merge PR Upgrade django-oauth-toolkit 1.7.1 to 3.3.0 #376 - Upgrade django-oauth-toolkit 1.7.1 to 3.3.0
  4. Merge PR Remove EOL msrestazure, msrest and adal dependencies #386 - Remove EOL msrestazure, msrest and adal dependencies
  5. Merge PR Build Activity Stream links for inventory source sync schedules #389 - Build Activity Stream links for inventory source sync schedules
  6. Merge PR Upgrade Lingui from v5 to v6 #377 - Upgrade Lingui from v5 to v6
  7. Merge PR Upgrade ESLint from 8 to 9 with flat config #378 - Upgrade ESLint from 8 to 9 with flat config
  8. Merge PR Upgrade styled-components from 5 to 6 #380 - Upgrade styled-components from 5 to 6
  9. Merge PR Replace unmaintained dagre with @dagrejs/dagre #387 - Replace unmaintained dagre with @dagrejs/dagre ⬅️ this PR
  10. Merge PR Begin react-router 5 → 6 migration via react-router-dom-v5-compat #381 - Begin react-router 5 → 6 migration via react-router-dom-v5-compat
  11. Merge PR react-router migration batch 1: shared components, contexts and hooks #382 - react-router migration batch 1: shared components, contexts and hooks
  12. Merge PR react-router migration batch 2: screen directories (all except Inventory and Setting) #383 - react-router migration batch 2: screen directories (all except Inventory and Setting)
  13. Merge PR react-router migration batch 3: Inventory and Setting screens #384 - react-router migration batch 3: Inventory and Setting screens
  14. Merge PR Add React Testing Library migration infrastructure and first conversions #385 - Add React Testing Library migration infrastructure and first conversions
  15. Merge PR Surface an error when the webhook credential type lookup returns nothing #390 - Surface an error when the webhook credential type lookup returns nothing

⚠️ Merge-order notes (no hard dependency):

  1. Lockfile club: Upgrade Lingui from v5 to v6 #377, Upgrade ESLint from 8 to 9 with flat config #378, Upgrade styled-components from 5 to 6 #380, Begin react-router 5 → 6 migration via react-router-dom-v5-compat #381 and Replace unmaintained dagre with @dagrejs/dagre #387 each regenerate package-lock.json; whichever merges after another needs a trivial npm install regen.
  2. Possible one-hunk conflict with Upgrade ESLint from 8 to 9 with flat config #378 in src/components/Workflow/WorkflowUtils.js: Upgrade ESLint from 8 to 9 with flat config #378 rewrites the eslint-disable comment on line 1, this PR rewrites the dagre import on line 3. If git flags it, keep both changes.

SUMMARY

dagre 0.8.5 (last release 2018, unmaintained) → @dagrejs/dagre 3.0.0, the maintained continuation by the same project organization. The workflow visualizer is the only consumer, via exactly two APIs — dagre.graphlib.Graph and dagre.layout — both unchanged in the fork, so the swap is one import line.

Two cosmetic differences absorbed:

  • the layout now leaves internal rank/order metadata on the node objects, and sibling order within a rank (which parallel branch renders on top in the visualizer) is decided differently — both arbitrary layout details, so the WorkflowUtils layout test now asserts geometry (x/y/width/height) without coupling to library internals
  • licenses/ui: dagre.txtdagrejs-dagre.txt (same MIT text, same original copyright)

This closes the last 'no newer release exists' item from the dependency audit.

Independent of all open PRs (same package-lock.json regen caveat as the other UI PRs).

ISSUE TYPE

  • Bug, Docs Fix or other nominal change

COMPONENT NAME

  • UI

ASCENDER VERSION

awx: 25.4.1.dev5+gcda0899.d20260610

ADDITIONAL INFORMATION

npm --prefix awx/ui run lint     # clean
npm --prefix awx/ui run test     # 544 suites passed (1 skipped), 2855 tests passed (19 skipped)
npm --prefix awx/ui run build    # production build succeeds
py.test awx/main/tests/functional/test_licenses.py   # 1 passed

dagre 0.8.5 (2018) is unmaintained; @dagrejs/dagre is the maintained
continuation by the same project organization. The workflow visualizer
is the only consumer and uses exactly two APIs (graphlib.Graph and
layout), both unchanged in the fork.

Differences absorbed:
- the layout now leaves internal rank/order metadata on node objects,
  and sibling order within a rank (which parallel branch renders on
  top) is decided differently - both arbitrary, so the WorkflowUtils
  layout test now asserts geometry without library internals
- licenses/ui: dagre.txt -> dagrejs-dagre.txt (same MIT license,
  same original copyright)
@blaipr

blaipr commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #391, which combines this PR with the other two package-lock-regenerating toolchain upgrades (#377/#378/#387). The three were mutually conflicting on the lockfile (npm inserts their entries at the same alphabetical positions), so combining them is what makes the whole queue mergeable in any order. Content and verification are unchanged — see #391.

@blaipr blaipr closed this Jun 11, 2026
@blaipr blaipr deleted the feature/dagrejs-dagre branch June 11, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant