Skip to content

MCR-3814 Migrate texteditor Vue app to the mycore-vue toolchain - #3113

Open
sebhofmann wants to merge 1 commit into
issues/MCR-3811-Create_mycore-vue_module_with_shared_toolchain_and_MCRVueRootServletfrom
issues/MCR-3814-Migrate_texteditor_Vue_app_to_the_mycore-vue_toolchain
Open

MCR-3814 Migrate texteditor Vue app to the mycore-vue toolchain#3113
sebhofmann wants to merge 1 commit into
issues/MCR-3811-Create_mycore-vue_module_with_shared_toolchain_and_MCRVueRootServletfrom
issues/MCR-3814-Migrate_texteditor_Vue_app_to_the_mycore-vue_toolchain

Conversation

@sebhofmann

@sebhofmann sebhofmann commented Aug 18, 2026

Copy link
Copy Markdown
Member

Link to jira.

Stacked pull request. builds on #3112 (MCR-3811), #3114 (MCR-3815) builds on this one. Review the diff of this PR only; the base branch already contains the PRs below it.

Part of the epic MCR-3810.

Moves the texteditor app onto the shared toolchain from MCR-3811. Sources, output directory and therefore the app
URL are unchanged. The app loses its own package.json, yarn.lock and node_modules; its vite.config.ts
becomes a vite.config.mts built on defineMCRVueApp, and mycore-webtools points its frontend-maven-plugin
execution at mycore-vue.

Pull Request Checklist (Author)

Please go through the following checklist before assigning the PR for review:

Ticket & Documentation

  • The issue in the ticket is clearly described and the solution is documented.
  • Design decisions (if any) are explained.
  • The ticket references the correct source and target branches.
  • The fixed-version is correctly set in the ticket and matches the PR's target branch (main).

Feature & Improvement Specific Checks

  • Instructions on how to test or use the feature are included or linked (e.g. to documentation).
  • For UI changes: before & after screenshots are attached.
  • New features or migrations are documented.
  • Does this change affect existing applications, data, or configurations?
    • Yes: Is a migration required? If yes, describe it.
    • Breaking change is marked in the commit message.

Bugfix-Specific Checks

  • Affected version is listed in the ticket.
  • Minimal code changes were made (no refactoring).
  • This PR truly fixes only the reported bug.
  • No breaking changes are introduced.
  • A relevant test was added (if feasible).

Testing

  • I have tested the changes locally.
  • The feature behaves as described in the ticket.
  • Were existing tests modified?
    • Yes: explain the changes for reviewers.

MCR Conventions & Metadata

  • MCR naming conventions are followed
  • If the public API has changed:
    • Old API is deprecated or a migration is documented.
    • If not, no action needed.
  • Java license headers are added where necessary.
  • Javadoc is written for non-self-explanatory classes/methods (Clean Code).
  • All configuration options are documented in Javadoc and mycore.properties.
  • No default properties are hardcoded — all set via mycore.properties.

Multi-Repo Considerations

  • Is an equivalent PR in MIR required?
    • If yes, is it already created?

No MIR change required for this PR.

@sebhofmann
sebhofmann force-pushed the issues/MCR-3814-Migrate_texteditor_Vue_app_to_the_mycore-vue_toolchain branch from de910b1 to af9dd0f Compare August 18, 2026 14:06
@sebhofmann
sebhofmann force-pushed the issues/MCR-3814-Migrate_texteditor_Vue_app_to_the_mycore-vue_toolchain branch from af9dd0f to 9e1c45d Compare August 18, 2026 14:33
@sebhofmann
sebhofmann marked this pull request as ready for review August 19, 2026 08:20
@sebhofmann
sebhofmann force-pushed the issues/MCR-3814-Migrate_texteditor_Vue_app_to_the_mycore-vue_toolchain branch from 9e1c45d to f23ea64 Compare August 19, 2026 08:50
The texteditor now builds with the shared toolchain in mycore-vue. Sources,
output directory and therefore the app URL and the MCRVueRootServlet mapping
are unchanged.

Toolchain upgrade for this app: vite 6.4 to 8.2, @vitejs/plugin-vue 5.2 to
6.0, vue-tsc 2.2 to 3.3. No template or type-check changes were needed.

- mycore-vue gets the scripts build:texteditor, build-only:texteditor,
  type-check:texteditor and dev:texteditor. build:texteditor keeps the
  previous behaviour of type checking before building.
- The app keeps a single tsconfig.json, which extends the shared one and
  points TypeScript at the shared node_modules via typeRoots and paths.
  TypeScript resolves modules by walking up from the importing file, so
  without that it never finds the shared toolchain. The @types entry has to
  come first, otherwise prismjs resolves to its javascript and its @types
  package is never looked at. tsconfig.app.json and tsconfig.node.json are
  gone with it.
- The app's env.d.ts references the new mycore-vue/env.d.ts, which is the
  only place where the vite/client types resolve.
- vite.config.ts becomes vite.config.mts on top of defineMCRVueApp. The .mts
  extension is required, because without the app package.json nothing
  declares "type": "module" any more.
- mycore-webtools replaces the executions yarn-install-texteditor and
  yarn-build-texteditor by a single build execution with workingDirectory
  mycore-vue.
- The app's package.json and yarn.lock are removed. Its dependencies were
  already part of the central package.json.

noUnusedLocals, noUnusedParameters and noFallthroughCasesInSwitch are dropped
from the shared tsconfig again. They were stricter than what the apps were
compiled with so far, and tightening that belongs in its own ticket.
@sebhofmann
sebhofmann force-pushed the issues/MCR-3814-Migrate_texteditor_Vue_app_to_the_mycore-vue_toolchain branch from f23ea64 to 9e34ab8 Compare August 20, 2026 08:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant