-
Notifications
You must be signed in to change notification settings - Fork 296
chore(nx): migrate to monorepo structure [WPB-22420] #19931
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…age view [WPB-22205] (#19844) * chore(e2e): Updated id for for image parent element in detail view for e2e test [WPB-22205] * Added @regression tag to wire cells test so that it runs with the regression suite
* fix: add guard on join/call buttons. * fix: return empty cleanup method
- Install Nx dependencies - Create nx.json with build caching configuration - Set up default targets and inputs [skip ci]
Preserves git history by using git mv. No code changes, pure directory restructure.
- Configure build, serve, and test targets - Set up TypeScript compilation with @nx/js:tsc - Define project metadata and tags
- Create shared tsconfig.base.json at root - Extend base config in server tsconfig - Maintain existing compiler options
- Add nx commands for server operations - Update build:prod to use nx run-many - Maintain backward compatibility with existing scripts
Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.3.1 to 11.3.2. - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](jprichardson/node-fs-extra@11.3.1...11.3.2) --- updated-dependencies: - dependency-name: fs-extra dependency-version: 11.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…19849) Bumps [@wireapp/commons](https://github.com/wireapp/wire-web-packages) from 5.4.9 to 5.4.10. - [Commits](https://github.com/wireapp/wire-web-packages/compare/@wireapp/commons@5.4.9...@wireapp/commons@5.4.10) --- updated-dependencies: - dependency-name: "@wireapp/commons" dependency-version: 5.4.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…19850) Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.0 to 4.28.1. - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](browserslist/browserslist@4.28.0...4.28.1) --- updated-dependencies: - dependency-name: browserslist dependency-version: 4.28.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Server successfully migrated to Nx monorepo structure: - Build target working - Serve target working - Tests passing - Git history preserved
Preserves git history with git mv. No code changes.
- Move resource/ directory - Move assets/ directory - Move test/ directory Git history preserved.
Preserves git history.
- babel.config.js - jest.config.ts - playwright.config.ts - postcss.config.js - setupTests.js Git history preserved.
Git history preserved.
- Extend from root tsconfig.base.json - Update outDir to dist/apps/webapp - Maintain all existing paths and options
- Configure webpack build with existing configs - Set up dev server with HMR - Configure Jest for unit tests - Configure Playwright for E2E tests - Add linting target
- Update DIST_PATH to point to dist/apps/webapp - Update ROOT_PATH to point to monorepo root - Update server config import path
- fix wrong src/ paths - create webapp package.json with nx scripts - Add workspace configuration - Add nx scripts for all operations - Add affected commands for CI optimization - Maintain all existing dependencies - Create shared jest.preset.js - Update webapp jest config to use preset - Fix module paths for monorepo structure
- Unify tsconfigs - Unify eslint configs - Fix all existing eslint issues - Run eslint --fix where possible - update .gitignore to ignore Nx cache and dist - update nvmrc to node 24 - fix unit test runs - move all existing scripts to use nx commands
…94] (#19846) * feat: add aria label and also title on the close screen share icon * feat: replace button with div and assigned role=button to it. Move inline css to styles.ts * feat: call controls were not working using keyboard.
Bumps [@wireapp/commons](https://github.com/wireapp/wire-web-packages) from 5.4.9 to 5.4.10. - [Commits](https://github.com/wireapp/wire-web-packages/compare/@wireapp/commons@5.4.9...@wireapp/commons@5.4.10) --- updated-dependencies: - dependency-name: "@wireapp/commons" dependency-version: 5.4.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.0 to 4.28.1. - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](browserslist/browserslist@4.28.0...4.28.1) --- updated-dependencies: - dependency-name: browserslist dependency-version: 4.28.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
|
FYI: You'll need to update the dotenv config in From config({path: './test/e2e_tests/.env'});to import {resolve} from 'node:path';
config({path: resolve(__dirname, './test/e2e_tests/.env')});dotenv uses the CWD as base by default which changed due to the monorepo migration. Resolving based of the dirname couples it to the file position instead. (I'd prefer to use |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
|




PR Summary: Nx Monorepo Migration
Overview
This PR migrates the
wire-webapprepository from a standard Yarn workspace to an Nx monorepo (v22.3.3). This is a major structural refactoring that introduces Nx's build system, improved caching, and better project organisation.Major Technical Changes
1. Nx Monorepo Setup
New Configuration Files
nx.jsontsconfig.base.jsonjest.preset.jseslint.config.ts.eslintrc.js)lint-staged.config.jsRoot Project Configuration
project.json- Workspace tools project with targets for:2. Directory Restructuring
The repository structure has been reorganised to follow Nx conventions:
Key Moves:
server/→apps/server/src/→apps/webapp/src/test/→apps/webapp/test/apps/webapp/(e.g.,webpack.config.js,jest.config.ts)3. Application Project Configurations
Webapp Application (
apps/webapp/project.json)buildserver:build)teste2elintstylelintandtype-check)stylelinttype-checkcheck-circulartranslate-*configureServer Application (
apps/server/project.json)buildpackageservetesttype-check4. Package Manager Upgrade
server/yarn.lockyarn.lock(consolidated)5. TypeScript Configuration Changes
New Files
tsconfig.base.json- Workspace-wide base config with path mappingsapps/webapp/tsconfig.build.json- Webapp build configapps/webapp/tsconfig.eslint.json- ESLint type-aware lintingapps/server/tsconfig.json- Server TypeScript configRoot
tsconfig.jsonChangesextends: "./tsconfig.base.json"6. ESLint Migration to Flat Config (ESLint 9+)
The old
.eslintrc.jshas been replaced witheslint.config.ts:Key Features:
apps/webapp7. CI/CD Pipeline Updates
GitHub Workflows
All workflows in
.github/workflows/updated:ci.yml- Updated for Nx commandscreate_docker_image.yml- Docker build adjustmentsdeploy-to-test-env.yml- Deployment path updatesplaywright-*.yml- E2E test configuration updatespublish.yml- Release workflow updatesprecommit*.yml- Pre-commit workflow adjustmentsCodecov Configuration
codecov.ymlupdated with new coverage paths:coverage/apps/webapp/coverage/apps/server/Jenkinsfile
Updated to work with new Nx-based build commands.
8. Build System Changes
Webpack Configuration
apps/webapp/webpack.config.jswebpack.config.common.jsrefactored9. Nx Caching and Performance
The
nx.jsonconfiguration enables intelligent caching10. Workspace Configuration
Root
package.jsonChanges@nx/*)["apps/*"](ready forlibraries/*)bundle:dev→nx build webapp --configuration=developmentbundle:prod→nx build webapp --configuration=productionlint→nx run-many -t lint --alltest→nx run-many -t test --alltype-check→nx run-many -t type-check --all11. File-Specific Changes
Deleted Files
.eslintrc.js- Replaced byeslint.config.ts.lintstagedrc.json- Replaced bylint-staged.config.jsserver/yarn.lock- Consolidated into rootyarn.lockProcfile- Moved toapps/server/tsconfig.build.json- Moved/replaced by app-specific configsNew Files
apps/webapp/.gitignore- Webapp-specific ignoresapps/webapp/bin/transalations_generate_types.js- Translation type generation (moved)apps/webapp/bin/translations_extract_formatter.js- Translation extraction formatter (moved)12. Test Configuration Updates
Jest
jest.preset.js- Shared preset for all projectsapps/webapp/jest.config.ts- Webapp Jest configapps/server/jest.config.js- Server Jest configPlaywright
apps/webapp/playwright.config.ts- E2E test configuration updates13. Additional Configuration Updates
.nvmrc.gitignore.prettierignore.elasticbeanstalk/config.yml.github/labeler.ymldocs/ADRs/2025-12-29-nx-monorepo-migration.mdBenefits of This Migration
apps/andlibraries/Security Checklist (required)
Accessibility (required)
Standards Acknowledgement (required)
Screenshots or demo (if the user interface changed)
Notes for reviewers