* Add CI check for broken mattermost.com links in webapp
Add a script that scans the webapp source files for links to mattermost.com
domains and tests each unique URL for 404s. This helps detect broken
documentation and marketing links early.
- New script: webapp/scripts/check-external-links.mjs
- New npm target: check-external-links
- New CI job in webapp-ci.yml to run on every commit
* Add --markdown flag for GitHub Actions job summary
* Fix job summary: use pipefail and suppress progress output
* Require mattermost.com links to use /pl/ permalink format
* Require all mattermost.com links (including subdomains) to use /pl/
* Allow exceptions for push servers and root domain
* Make non-permalink URLs warnings instead of errors
* Add User-Agent header and retry GET on 403
* Follow redirects when checking URLs
Check the final destination of redirects to catch broken links that
redirect to error pages. If a redirect response has the Cloudflare
cf-mitigated header, assume the URL is OK and stop following.
* Simplify link checker code
- Combine PUSH_SERVER_PATTERN and HPNS_PATTERN into single regex
- Simplify validatePermalink to return boolean (reason was unused)
- Consolidate Cloudflare header checks in processResponse
* replace broken links with valid ones
* updates
* Port scripts/update-versions to a shell script
* Update the scripts to change the version to use jq
* Add the shared package
* Update webapp/scripts/CLAUDE.OPTIONAL.md
* Update webapp/scripts/CLAUDE.OPTIONAL.md
* Add CLAUDE.md documentation files for webapp directories
- Add root webapp CLAUDE.md with overview and build commands
- Add channels CLAUDE.md with architecture and testing info
- Add documentation for actions, components, selectors, utils
- Add documentation for sass, tests, and mattermost-redux
- Add platform documentation for client and types
- Update .gitignore
* Add CLAUDE docs and allow tracking
* Clarify CLAUDE instructions for i18n workflow
* Refactor webapp/CLAUDE.md into a nested hierarchy
Decomposed the monolithic webapp/CLAUDE.md into focused, context-aware
files distributed across the directory structure:
- webapp/CLAUDE.md (Root overview)
- webapp/channels/CLAUDE.md (Channels workspace)
- webapp/channels/src/components/CLAUDE.md
- webapp/channels/src/actions/CLAUDE.md
- webapp/channels/src/selectors/CLAUDE.md
- webapp/channels/src/packages/mattermost-redux/CLAUDE.md
- webapp/platform/CLAUDE.md (Platform workspace)
- webapp/platform/client/CLAUDE.md
* Move files to optional, then add script to move them to proper claud.md
* Ensure all packages remove a node_modules in their folder when cleaning
* Upgrade typescript to 5.6.3 and move to root package.json
Note that this currently fails to build the types package due to
@types/node which I'm going to try to remove
* Update @types/node to 20.11 to match .nvmrc
* Upgrade zen-observable to 0.10.0
It looks like localforage-observable uses its own version
of zen-observable because it hasn't been updated in years.
This seems like something we probably should remove.
* Update yargs to 17.7.2
* Update webpack-dev-server to 5.1.0
* Remove webpack-bundle-analyzer since we haven't used it in years
* Update webpack to 5.95.0
* Update web-vitals to 4.2.4
* Update turndown to 7.2.0
* Update tinycolor2 to 1.6.0
* Update timezones.json to 1.7.0
* Update stylelint to 16.10.0, stylelint-config-recommended-scss to 14.1.0, and stylelint-scss to 6.8.1
* Update webpack-cli to 5.1.4
* Update style-loader to 4.0.0
* Change all Webpack scripts to be ES modules
* Update strip-ansi to 7.1.0
This is a build script dependency
* Update chalk to 5.3.0
This is a build script dependency
* Update concurrently to 9.0.1
This is a build script dependency
* Update smooth-scroll-into-view-if-needed to 2.0.2
* MM-48205 Update serialize-error to 11.0.3
We didn't update this before because it's an ES module which caused Jest to complain. We can fix that by making Jest transform the it
* Update semver to 7.6.3
* Update types for semver, tinycolor2, turndown, and webpack
* Fix type issues: change Props to a type
* Fix type issues: invalid HTML attributes
* Remove unneeded option from Webpack config
* MM-53989 Update to Node 18 and NPM 9
* MM-53989 Remove skip_integrity_check.js
* Force e2e-test/cypress to use its version of TS for types package
* Update .nvmrc
* Update .nvmrc lineending
* Update server.override.yml
---------
Co-authored-by: M-ZubairAhmed <m-zubairahmed@protonmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
* Remove build references
* Remove playbooks webapp and server, and add the prepackaged plugin
* Remove translations
* Add ProductSettings to the playwright type
* Restore playbooks as a prepackaged plugin for cypress e2e tests
* Prevent boards product from being included automatically
* Fix config diff test
* Update prepackaged plugin version
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
* Readd boards/dist to the gitignore
* Does not enable the focalboard plugin by default
* Update plugin version to v7.10.3
---------
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>