Skip to content

docs(mix): repair broken and stale links - #1012

Merged
leoafarias merged 1 commit into
mainfrom
chore/fix-links
Aug 8, 2026
Merged

docs(mix): repair broken and stale links#1012
leoafarias merged 1 commit into
mainfrom
chore/fix-links

Conversation

@leoafarias

Copy link
Copy Markdown
Member

Related issue

None.

Description

I audited every external URL in the repository (95 unique links, excluding lockfiles and templates) by actually requesting each one, and fixed the results that were broken or resolving through redirect chains.

Broken links (404)

Location Was Now
packages/mix_lint/README.md github.com/virtuallyio/mix github.com/btwld/mix
packages/mix/test/src/core/nested_style_variant_test.dart github.com/btwld/remix/issues/59 github.com/conceptadev/remix/issues/59
packages/mix/CHANGELOG.md github.com/leoafarias/mix/issues/59 github.com/conceptadev/mix/issues/59

The mix_lint one is user-facing on pub.dev. GitHub does not redirect issue paths for moved repositories, so those two had to use the canonical conceptadev names — see the open question below.

Stale links

  • Logo images and license badges in README.md, packages/mix/README.md, packages/mix_annotations/README.md, and packages/mix_generator/README.md were served from raw.githubusercontent.com/leoafarias/mix — a personal fork. The pub.dev listings for three published packages rendered their logo and licence badge from it. Now btwld/mix. (assets/dark.svg and assets/light.svg already exist in this repo.)
  • fluttermix.com/docs/* took three redirects (/docs/*/documentation/*/documentation/mix/*, plus apex → www). All now point directly at https://www.fluttermix.com/documentation/mix/*, which resolves in zero hops. This includes the ecosystem link, which now targets the renamed mix-winds page.
  • opensource.org/licenses/mit-license.phpopensource.org/license/mit and conventionalcommits.orgwww.conventionalcommits.org, following their upstream canonical moves.

Exports generator fix

Regenerating with melos run exports on main adds export 'src/core/providers/focus_highlight_mode_provider.dart';, which fails analysis:

warning - lib/mix.dart:40:1 - The member 'FocusHighlightModeProvider' can't be exported
as a part of a package's public API - invalid_export_of_internal_element

FocusHighlightModeProvider is @internal, but it lives in src/core/providers/ and the generator's heuristic only skips src/internal/. It was added in #1006 and the barrel was never regenerated, so the drift was latent. Adding it to excludedPaths — alongside the existing documented exclusions — makes melos run exports idempotent and analysis-clean.

Deliberately untouched

  • cdn.tailwindcss.com in example/real_tailwind/*.html — unpinned on purpose; pinning it would move the parity baselines.
  • example/assets/fonts/roboto/OFL.txt — a verbatim upstream licence document.
  • github.com/leoafarias in the plugin manifests — a personal profile link, correctly personal.
  • github.com/orgs/btwld/projects/6 in add_to_ai_initiatives_board.yml — returns 404 anonymously, but org projects are private by default and my token lacks read:project, so I could not confirm either way. Left alone.

Open question (not addressed here)

Every github.com/btwld/* link in this repo resolves through one permanent redirect to github.com/conceptadev/* — the repositories are canonically under conceptadev, while btwld/mix-docs is canonically btwld. The same pattern holds across remix, ack, naked_ui, and rockets in the docs repo. That is ~19 links here and ~80 in mix-docs, and which direction is correct is a branding decision, so I left them as btwld and only used conceptadev where btwld genuinely 404s. Happy to normalize either way.

Validation

  • Re-ran the full link check after the changes: no 404s remain except the unverifiable org-project URL and intentional templates.
  • melos run exports — regenerates with no drift.
  • fvm dart analyze in packages/mix — no issues (was 1 warning after regeneration).
  • melos run analyze:dart — all packages clean.
  • melos run ci — passed.
  • dart format --set-exit-if-changed on all changed Dart files — 0 changed.

Audited every external URL in the repository and fixed the ones that were
broken or resolving through redirect chains.

Broken (404):
- mix_lint README pointed Mix at github.com/virtuallyio/mix, a dead org.
- A test doc comment and a changelog entry referenced issue URLs under repo
  names that no longer resolve for issue paths.

Stale:
- The logo images and license badges in four READMEs were served from a
  personal fork (raw.githubusercontent.com/leoafarias/mix) rather than the
  project repository, so the pub.dev listings depended on that fork existing.
- fluttermix.com/docs/* links took three redirects to reach their target.
  They now point directly at www.fluttermix.com/documentation/mix/*.
- opensource.org and conventionalcommits.org links followed their upstream
  canonical moves.

Also fixes the exports generator. Running `melos run exports` on main added an
export for the @internal FocusHighlightModeProvider, which fails analysis with
invalid_export_of_internal_element; the path heuristic only skips src/internal/.
Adding it to excludedPaths makes regeneration idempotent and analysis-clean.

Parity fixtures pinning cdn.tailwindcss.com and the verbatim OFL font license
are intentionally untouched.
@leoafarias
leoafarias merged commit b7798e1 into main Aug 8, 2026
5 checks passed
@leoafarias
leoafarias deleted the chore/fix-links branch August 8, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant