Commit graph

148 commits

Author SHA1 Message Date
sabril
0b0658bdd0
chore: upgrade playwright to 1.57 and its dependencies (#34769)
Some checks are pending
API / build (push) Waiting to run
Server CI / Compute Go Version (push) Waiting to run
Server CI / Check mocks (push) Blocked by required conditions
Server CI / Check go mod tidy (push) Blocked by required conditions
Server CI / check-style (push) Blocked by required conditions
Server CI / Check serialization methods for hot structs (push) Blocked by required conditions
Server CI / Vet API (push) Blocked by required conditions
Server CI / Check migration files (push) Blocked by required conditions
Server CI / Generate email templates (push) Blocked by required conditions
Server CI / Check store layers (push) Blocked by required conditions
Server CI / Check mmctl docs (push) Blocked by required conditions
Server CI / Postgres with binary parameters (push) Blocked by required conditions
Server CI / Postgres (push) Blocked by required conditions
Server CI / Postgres (FIPS) (push) Blocked by required conditions
Server CI / Generate Test Coverage (push) Blocked by required conditions
Server CI / Run mmctl tests (push) Blocked by required conditions
Server CI / Run mmctl tests (FIPS) (push) Blocked by required conditions
Server CI / Build mattermost server app (push) Blocked by required conditions
Web App CI / check-lint (push) Waiting to run
Web App CI / check-i18n (push) Blocked by required conditions
Web App CI / check-types (push) Blocked by required conditions
Web App CI / test (platform) (push) Blocked by required conditions
Web App CI / test (mattermost-redux) (push) Blocked by required conditions
Web App CI / test (channels shard 1/4) (push) Blocked by required conditions
Web App CI / test (channels shard 2/4) (push) Blocked by required conditions
Web App CI / test (channels shard 3/4) (push) Blocked by required conditions
Web App CI / test (channels shard 4/4) (push) Blocked by required conditions
Web App CI / upload-coverage (push) Blocked by required conditions
Web App CI / build (push) Blocked by required conditions
* chore: upgrade playwright to 1.57 and its dependencies

* bump webapp's npm to accept ^11.0.0

* updated per comment

* fix failed tests
2026-01-09 10:48:19 +08:00
Harrison Healey
c89450e2cf
Update to Jest 30 (#34011)
* Unify version of Jest in subpackages

* Upgrade @types/jest

* Update jest and jest-watch-typeahead

* Add nock and node-fetch to client package

* Update snapshots for new version of Jest

* Replace renamed test assertions

* Update more snapshots

* Update type definitions to fix dependency install issues

* Re-add --coverage to CI tests

* Revert "Re-add --coverage to CI tests"

This reverts commit b59a66eb09.

* Update snapshots in components package

* Remove nock.disableNetConnect from Client4 tests

* Standardize how we mock fetch in different test environments

* Add --forceExit and --verbose to test-ci

* Try --no-watchAll?
2025-11-12 18:05:50 +00:00
Devin Binnie
1e14ed7f87
[MM-66358] AI-enabled rewriting of messages (#34407)
* [MM-66358] AI-enabled rewriting of messages

* Fixes and PR feedback

* Fix i18n

* Remove extraneous logger calls

* Update icons

* UX feedback

* Fix lint

* Couple more UX fixes
2025-11-11 14:14:21 +00:00
Harrison Healey
535d93ee98
MM-45255 Update web app to React 18 (#33858)
* Dependencies: Remove unused dependency on @mattermost/dynamic-virtualized-list

* Update Components package to React 18 and new version of RTL

* Upgrade React, React Redux, RTL, and associated libraries

I had to upgrade React Redux for the new version of React, and that
brought with it new versions of associated packges (Redux, Reselect,
Redux Thunk). A few other libraries needed to be updated or have their
explicit dependencies overridden for the new version of Redux as well.

To note for future dependency upgrades, redux-mock-store is deprecated,
and redux-batched-actions and redux-persist are inactive.

For RTL:
1. `@testing-library/react-hooks` has been rolled into
   `@testing-library/react`, and its interface has changed.
2. I had to make some changes to get TS to use the types for the new
   methods added to `expect`.

* Dependencies: Fix dom-accessibility-api patch from #33553

* Tests: Fix tests that use jest.spyOn with react-redux

* Functional: Remove usage of defaultProps on function components

* Tests: Remove usage of react-dom/test-utils

* Functional: Rename conflicting context prop on Apps components

* Tests: Always await on userEvent calls

* Functional: Patch react-overlays to fix pressing escape in unit tests

I did something similar in React Bootstrap a few weeks ago.

See https://github.com/mattermost/react-bootstrap/pull/5

* Tests: Prevent tests from fetching from real URLs

* Tests: Update snapshots changed by upgrading react-redux and styled-components

* Functional: Stop passing deprecated pure parameter to connect

* Tests: Change how we intercept console errors in tests to preserve stack traces

* Tests: Fix incorrect usage of act in Enzyme tests

These tests are a mix of:
1. Not calling act when performing something that will update the DOM (like clicking on a button or invoking a method) which either caused warnings or failed snapshots as changes weren't visible.
2. Calling act in weird ways (such as wrapping mount in an async act) which caused Enzyme to not function

Some of these changes just silence warnings, but most of them are required to make the test even run

* Tests: Fix incorrect usage of act in RTL tests

* Tests: Fix a few minor issues in tests

* Functional: Add note for why we're not using ReactDOM.createRoot

* Functional: Fix focus trap infinite recursion in test

* Types: Replace removed React.SFC

* Types: Fix type of functions in FormattedMessage values prop

* Functional: Fix DropdownInputHybrid placeholder

* Types: Patch type definitions of react-batched-actions

* Types: Fix mattermost-redux build failing due to type check in Redux Dev Tools

* Dependencies: Add type definitions for react-is

* Types: Update types around ReactNode and ReactElement

React's gotten more strict with these, so we need to be more careful with what
we return from a render method. In some of these places, we also misused some
types, so hopefully I've sorted those out.

* Types: Explicitly added types to all instances of useCallback

* Types/Tests: Update typing of Redux actions and hooks

useDispatch is sort of stricter now, but it doesn't seem to rely on the global type of `Dispatch` any more, so I ended up having to add an extra overload to make that work.

* Tests: Update new tests in useChannelSystemPolicies for new version of RTL

These were added on master after I updated RTL on the branch

* Tests: Update action used to test initial store state

* Functional: Remove remnants of code for hot reloading Redux store

* Types/Tests: Update typing around React Router

* Types/Functional: Update typing involving the FormattedMessage values prop

There's a couple functional changes to ensure that the value passed is either a valid string or Date

* Types: Misc fixes

* Functional: Don't pass unused props to ChannelHeader

* Functional: Ensure plugin setting text is rendered before passing to Setting component

The previous version might've allowed MessageDescriptors to be passed unformatted
into the Setting component (which would then be rendered in the DOM). As best as
I can tell, we never actually did that, so this shouldn't change anything in practice.

* Tests: Make tests for identifyElementRegion more reliable

* Tests: Update recent tests for new version of RTL

* E2E: Make editLastPostWithNewMessage more reliable

* Downgrade React to 18.2.0 and manually dedupe React versions

18.2.0 and 18.3.0 are nearly identical to one another, except 18.3.x includes
warnings when using any API that will be removed in React 19. I don't want to
flood the console and test logs with warnings for things we're not addressing
for the time being.

Also, they didn't export act from React itself until 18.3.1 for some reason
(despite the old import path printing a warning), so I needed to revert the
changes to its import path.

To get this all to work, for some reason, I had to manually delete all the
entries for `react` and `react-dom` from the lockfile to get NPM to use a
single version of React and ReactDOM everywhere. I did discover `npm dedupe`
in the process, but that didn't solve this problem where I was trying to
consistently downgrade everything.

* Revert changes to notice file build tool to speed up CI

* Add explicit version of types/scheduler

The version of `@types/react` that we use says it works with any version of
`@types/scheduler` which causes NPM to install a newer version of it which
is missing a file of types that it needs.

* Update new test to await on userEvent

* Fix Playwright test that relied on autogenerated class name

* Tests: Disable test for identifyElementRegion

* Functional: Change DynamicVirtualizedList ListItem to use useLayoutEffect

In a previous commit, I changed the RHS to use the monorepo
DynamicVirtualizedList instead of the old version that lived in its own repo.
That caused the RHS to no longer scroll to the bottom on initial mount or be
able to render additional pages (even though the posts are loaded). This seems
like it has to do with the improved size calculation that Zubair made because
that's the main difference in the monorepo version of that component.

For some reason I don't entirely understand, changing to useLayoutEffect seems
to fix that. I think that's because the old measurement code is written as a
class component, and useLayoutEffect fires at the same time as
componentDidMount/componentDidUpdate.

* Types: Revert some type changes to reduce test log output

* Functional: Fix places where useSelector returned new results when called with the same arguments

I wasn't planning on fixing this now, but I think the increased length of the warning logs in the tests are causing
the GitHub action for the unit tests to abort as it reaches around 10000 lines long.

* Tests: Fix place where mocked selector returned new results when called with the same arguments

Same reason as before, but this one only occurred because of a test's mocked selector. I replaced it with
a real one to get around that.

* Tests: Fail tests when selector returns new results when called with the same arguments

* Attempt to fix web app unit tests failing in CI

* Change CI tests to set workerIdleMemoryLimit instead of reducing maxWorkers

* Increase workerIdleMemoryLimit in CI

* Revert changes to test-ci command and revert changes to how unit test logs are collected

* Unrevert changes to test logging, re-add workerIdleMemoryLimit, and try disabling test coverage

* Actually disable coverage

* Fix flaky test

* Update a couple new tests to fit PR and remove an unnecessary act

* Replace bad mock in new unit test

* Fix types of new code

* Remove mock from new unit test
2025-10-07 11:11:12 -04:00
Harrison Healey
7dc6982472
Update React Bootstrap fork to support React 18 (#33661)
* Update React Bootstrap fork to support React 18

* Fix mismatched versions

* Change react-bootstrap version back to 0.34 branch
2025-08-20 18:27:13 -04:00
Harrison Healey
51d0508c3f
MM-51230 Remove unused react-contextmenu dependency (#33671) 2025-08-19 19:00:54 -04:00
Ibrahim Serdar Acikgoz
35e06a2ee8
[MM-64422] Update icons for CEL Table Editor (#31213) 2025-05-30 22:39:24 +02:00
M-ZubairAhmed
502506a517
[MM-55277] Team's menu doesn't follow standard accessible keyboard behavior (#29917) 2025-04-18 19:18:54 +05:30
Julien Tant
1b29abd857
Add typescript-eslint-language-service (#30015) 2025-02-04 15:29:29 -07:00
Harrison Healey
86aad9d0a5
Add platform/mattermost-redux package for publishing (#30020)
* Replace key-mirror with mattermost-redux/utils/key_mirror

At some point, we made our own version for mattermost-redux with proper type definitions
but we seem to have forgotten to use that everywhere in the web app.

* Remove Rudder reference from mattermost-redux

* Remove Giphy API from mattermost-redux

* Remove mattermost-webapp refernces from Client and Types packages

* Create platform/mattermost-redux without moving its source files

* Don't build mattermost-redux automatically

* Copy changes to package.json from platform/mattermost-redux to other packages

The changes to the typesVersions and exports fields are to make it
easier for tooling to know to make it so that importing a folder imports
the index file inside that folder since that's not standard to all
CommonJS packages.

The added type field is just a good pracice.

* Explicitly type re-exported selectors

For some reason, the types generated by the previous version of this didn't work
when mattermost-redux was built as a standalone package. Explicitly typing these
is a bit more verbose, but it fixes things.

* Fix import loop in selectors introduced by last commit

* Update package versions to 10.6.0

* Add explicit dependencies to mattermost-redux package

* Remove check and run scripts from mattermost-redux package

* Revert changes to NOTICE.txt
2025-02-04 22:26:46 +00:00
Harrison Healey
c519bee236
Fixathon: Web app dependency updates part 2 (Sass) (#29037)
* Update sass-loader@16.0.2

* Update sass part 1 (actually update it)

* Update scss files to remove at-charset and use at-use instead of at-import

at-charset hasn't been needed since we switched to dart-sass, and
at-import is now deprecated. Most of this was done using sass-migrator.

We still use at-import for files imported from node_modules, but sass
doesn't seem to complain about that

* Inline at-extend rule that was causing an error

* Remove or inline at-use rules in components package
2024-11-15 12:23:11 -05:00
Claudio Costa
3af3af0b25
[MM-60792] Add support for loading experimental (e.g., in progress) languages (#29009)
* Add support for loading experimental (e.g., in progress) languages

* Fix e2e config

* Improve language labels

* Improvements
2024-11-14 15:02:00 -06:00
Harrison Healey
4136343476
Fixathon: Web app dependency updates part 1 (#29036)
* 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
2024-11-06 13:40:19 -05:00
Pablo Vélez
87cc13c590
Fixathon ICU - remove npm vulnerabilities from production version (#28999)
* fix high vulnerability present in braces

* remove vulnerabilities from pdfjs-dis and update types for node and react

* adapt the pdf preview file to the lib new version

* lock the estree version to a compatible version

* use minified version of worker and adjust webpack to support extension for ESM module process

* get working the pdf preview

* adjust jest to use babel correctly

* override asn1.js lib to keep working version

* upgrade semver version to a secure version

* remove no longer needed changes

* fix linter issues

* fix merge conflicts

* sync package-lock

* fix conflicts

* adjust lock to npm ci
2024-11-05 13:41:29 +01:00
Harrison Healey
c0874455f3
Disable legacy-peer-deps and manually override mismatched dependencies (#27677)
* Disable legacy-peer-deps and manually override mismatched dependencies

* Switch to overriding dependencies of individual packages
2024-07-18 15:36:02 -04:00
Harrison Healey
8c3ab07d49
Patch eslint-plugin-react-hooks to properly handle class properties (#26493)
* Update package-lock.json for some reason

* Patch eslint-plugin-react-hooks

* Disable fixed ESLint rule temporarily
2024-03-18 14:24:15 -04:00
M-ZubairAhmed
79b1e9d200
[MM-56594] Upgrade from Node-18.10(Maintaince) to Node-20.11(LTS) (#26335) 2024-03-18 11:22:46 +00:00
Harrison Healey
4d03becdd1
MM-52624/MM-57094 Update ESLint and our ESLint plugin (#26398)
* Update ESLint and plugins

* Move most channels-specific ESLint configuration into ESLint plugin

* Add ESLint to types and client packages

* Add ESLint to components package
2024-03-13 22:07:28 +00:00
Harrison Healey
67f815e373
MM-57093 Update SCSS, Stylelint, and related packages (#26296)
* Update Stylelint and related packages

* Autofix CSS files

* Fix scss/no-global-function-names

* Fix scss/operator-no-unspaced

* Fix scss/comment-no-empty

* Disable scss/at-extend-no-missing-placeholder

* Update libraries for loading sass

* Fix Rollup not emitting the CSS for the components package to the right place

* Add plugin to re-add stylistic Stylelint rules

* Actually import Stylelint plugin
2024-03-13 17:00:57 -04:00
Harrison Healey
5740b43922
Upgrade web app and pacakges to TypeScript 5.3.3 (#26354) 2024-03-04 16:07:39 -05:00
Harrison Healey
eac9a39677
Allow NPM v10 when working on the web app (#25959) 2024-01-19 09:43:51 -05:00
Daniel Espino García
fde9e179be
Update typescript dependencies and some other updates (#25535)
* Update typescript dependencies and some other updates

* Fix lint

* Fix tests

* Address feedback

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-12-04 15:29:42 +01:00
M-ZubairAhmed
5a14575dee
snapshot (#25411) 2023-11-13 15:13:58 -05:00
Harrison Healey
ff929e4a15
Move the shared ESLint plugin/config into the monorepo (#24670)
* Move the shared ESLint plugin/config into the monorepo

* Add peer dependencies to ESLint plugin
2023-10-05 14:47:51 -04:00
Harrison Healey
8235b5bb44
MM-53989 Upgrade to Node 18 and NPM 9 (#24283)
* 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>
2023-08-28 14:37:05 -04:00
Miguel de la Cruz
44a99d1736
Move playbooks to plugin (#23732)
* 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
2023-06-14 23:33:26 +02:00
Miguel de la Cruz
1215584665
Prevent boards product from being included automatically (#23539)
* 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>
2023-06-12 18:51:43 +02:00
Harrison Healey
dfdc0e28d0
MM-52536 Webpack unification part 2 (#23557)
* Remove unused bundle-loader

* Remove broken webpack-live-reload-plugin

* Remove unused terser-webpack-plugin

* Remove unused dotenv-webpack

* Update and share type definition for Webpack global values

* Share eslint-import-resolver-webpack

* Remove unused pmmmwh/react-refresh-webpack-plugin

* Remove webpack-cli/serve since it's already part of webpack-cli

* Remove unused Webpack packages from Components

* Share and update style-loader

* Remove unused image-webpack-loader from Boards
2023-06-12 11:50:34 -04:00
Harrison Healey
11c0a861b2
MM-52539 Unify versions of Babel used throughout web app and remove unneeded libraries (#23543)
* Remove unneeded Babel plugins and update Babel preset

* Remove unneeded babel/cli package

* Update and share Babel and presets

* Update and share babel-plugin-styled-components

* Update and share babel-plugin-formatjs

* Update and share babel-plugin-typescript-to-proptypes

* Update and share babel-loader

* Remove all Babel-related ESLint libraries

* Remove unused babel-jest from Playbooks

* MM-51968 Remove unused Babel libraries from Boards

* Update snapshots because of course I have to

* Update snapshot
2023-06-08 17:05:21 -04:00
Harrison Healey
3b5e556e1c
MM-52438 Clean up web app CI and only run when web app code is changed (#23232)
* MM-52438 Only run web app CI for PRs with web app changes

* MM-52438 Don't wait to run web app tests in CI

* MM-52438 Remove commented out caching

* MM-52438 Reuse steps to set up webapp environment

* MM-52438 Add test-ci script to root package.json

* Simplify path filter
2023-05-17 13:59:34 -04:00
M-ZubairAhmed
9aeaaa64de
in (#23388) 2023-05-15 16:31:16 -04:00
Harrison Healey
c35d738e04
MM-52536 Webpack unification part 1 (#23322)
* MM-52536 Update Webpack and use the same version for all products

* Switch Channels to use asset modules

* Remove unused module configuration from Boards/Playbooks

* Remove file-loader and html-loader

* Unify versions of CSS-related loaders

* Remove unused webpack-node-externals dependency

* Add missing MiniCssExtractPlugin to Boards/Playbooks production builds
2023-05-10 15:20:16 -04:00
M-ZubairAhmed
2119bc0901
MM-51974 : Unify "react-intl" related dependencies versions across products (#22894)
Picks out formatjs-eslint-plugin to webapp root. Updates react-intl to 6.3.2 in all products. Executed i18n-extract and checked if any translations got changed. Although it was a major version update, the only breaking change was for a vue peer dependency. Adds "*" to take whatever dependency rule to products and declare the react-intl as the root package. Fixes a few lint and type errors cropped in due to the update No-ID rule removed from playbooks in preparation for unifying practices across products. Lastly, a few missing translations in Playbooks added
2023-04-16 05:19:08 +05:30
M-ZubairAhmed
241376b315
MM-52165 : Remove 50% maxWorker on Channels test run (#22962)
* test

* remove boards maxWorkers

---------

Co-authored-by: Caleb Roseland <caleb@calebroseland.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2023-04-14 15:12:00 -04:00
M-ZubairAhmed
dd67376097
engines (#22875) 2023-04-10 10:14:35 -04:00
M-ZubairAhmed
9bffaeae42
MM-51846 : Upgrade Esint from 7 to 8+ (#22753) 2023-04-07 03:50:01 +05:30
Doug Lauder
c943ed6859
Mono repo -> Master (#22553)
Combines the following repositories into one:

https://github.com/mattermost/mattermost-server
https://github.com/mattermost/mattermost-webapp
https://github.com/mattermost/focalboard
https://github.com/mattermost/mattermost-plugin-playbooks
2023-03-22 17:22:27 -04:00
Christopher Speller
d8bd57901e
Removing webapp 2017-09-06 23:11:58 -07:00
Joram Wilander
257edc9ea3 Experimental implementation for webapp plugins (#7185)
* Start of experimental implementation for webapp plugins

* Updates to webapp plugin architecture

* Update pluggable test

* Remove debug code
2017-08-29 09:54:02 -04:00
Christopher Speller
5872a294aa Updating client dependancies. (#7253) 2017-08-21 10:18:40 -04:00
Christopher Speller
fd1301779f
Merge branch 'release-4.1' 2017-08-17 09:35:36 -07:00
Harrison Healey
32265df8be PLT-7353 Fixed being unable to use quotes in links (#7171) 2017-08-16 11:04:29 -04:00
Joram Wilander
3ff4719d46 Update mattermost-redux to webapp-4.1 branch (#7170) 2017-08-11 00:41:59 +08:00
Harrison Healey
9c037dd18a PLT-7250 Updated marked to better handle trailing periods on URLs (#7098) 2017-08-03 08:52:18 -04:00
Harrison Healey
2d43e99757 PLT-7032/PLT-7155 Updated marked to fix empty table cells and code block whitespace (#7015) 2017-07-27 17:17:03 -04:00
Joram Wilander
5ae701d133 Update mattermost-redux to master (#6982) 2017-07-20 08:56:23 -04:00
Christopher Speller
9731eb4764 Upgrading client dependancies. (#6987) 2017-07-20 08:55:39 -04:00
Christopher Speller
97f34e483b
Merge branch 'release-4.0' 2017-07-18 15:45:23 -07:00
Harrison Healey
22d34476e5 PLT-7133 Updated marked to fix escaping of autolinked email addresses (#6942) 2017-07-15 01:47:13 +08:00
Joram Wilander
45e7ad0c34 Fix out of order posts for admins plus two minor fixes (#6886) 2017-07-11 01:58:01 +08:00