2 Patch Stack
Ulysia edited this page 2026-10-06 16:54:35 +02:00

Generated from the patch files in patches/ at commit f31ec6a. Regenerated on every publish; edits made here are overwritten.

The parent repository is upstream Docmost, kept pristine. Everything this fork changes in core lives in the patches below, applied in order at build time — inside the Docker image, or with scripts/apply-patches.sh for local development. Why each one exists is on the Patches page; this page is the mechanical inventory.

Upstream pin 7bef7b1a (from upstream.pin)
Patches 9
Generated at f31ec6a

The stack

# Patch Files Created Lines
0001 0001-bases-date-time-picker.patch 2 0 +176 / -45
0002 0002-freenterprise-branding.patch 1 0 +12 / -3
0003 0003-formula-editor-dark-mode.patch 3 0 +35 / -14
0004 0004-dark-mode-default.patch 2 0 +32 / -1
0005 0005-base-row-pages-schema.patch 2 1 +53 / -0
0006 0006-sidebar-create-base-or-board.patch 5 1 +152 / -28
0008 0008-lock-externally-synced-groups.patch 7 0 +112 / -11
0009 0009-group-driven-workspace-roles.patch 14 1 +365 / -12
0010 0010-openapi-swagger.patch 4 0 +25 / -1

Numbers are not contiguous: there is no 0007. The order is the filename order, and it is load-bearing.

Files more than one patch touches

These are why the order matters. A later patch's context includes the earlier patch's changes, so they only apply on top of each other — and regenerating one with a plain git diff HEAD would capture both. Use scripts/gen-patch.sh, which diffs against the index with the lower patches staged.

File Patches
apps/client/src/features/group/components/group-details.tsx 0008, 0009
apps/client/src/features/group/components/group-list.tsx 0008, 0009
apps/client/src/features/group/types/group.types.ts 0008, 0009
apps/server/src/core/group/services/group-user.service.ts 0008, 0009
apps/server/src/core/group/services/group.service.ts 0008, 0009
apps/server/src/database/types/db.d.ts 0005, 0009

Per patch

0001-bases-date-time-picker.patch

  • apps/client/src/ee/base/components/cells/cell-date.tsx
  • apps/client/src/ee/base/components/row-detail-modal/fields/field-date.tsx

0002-freenterprise-branding.patch

  • apps/client/src/ee/licence/components/license-details.tsx

0003-formula-editor-dark-mode.patch

  • apps/client/src/ee/base/components/formula/formula-input.tsx
  • apps/client/src/ee/base/components/formula/function-palette.tsx
  • apps/client/src/ee/base/styles/formula.module.css

0004-dark-mode-default.patch

  • apps/client/index.html
  • apps/client/src/main.tsx

0005-base-row-pages-schema.patch

  • apps/server/src/database/migrations/20260813T120000-base-row-pages.ts — created
  • apps/server/src/database/types/db.d.ts

0006-sidebar-create-base-or-board.patch

  • apps/client/src/ee/base/types/base.types.ts
  • apps/client/src/features/page/tree/components/create-page-menu.tsx — created
  • apps/client/src/features/page/tree/components/space-tree-row.tsx
  • apps/client/src/features/page/tree/hooks/use-tree-mutation.ts
  • apps/client/src/features/space/components/sidebar/space-sidebar.tsx

0008-lock-externally-synced-groups.patch

  • apps/client/src/features/group/components/group-action-menu.tsx
  • apps/client/src/features/group/components/group-details.tsx
  • apps/client/src/features/group/components/group-list.tsx
  • apps/client/src/features/group/components/group-members.tsx
  • apps/client/src/features/group/types/group.types.ts
  • apps/server/src/core/group/services/group-user.service.ts
  • apps/server/src/core/group/services/group.service.ts

0009-group-driven-workspace-roles.patch

  • apps/client/src/features/group/components/group-details.tsx
  • apps/client/src/features/group/components/group-list.tsx
  • apps/client/src/features/group/queries/group-query.ts
  • apps/client/src/features/group/services/group-service.ts
  • apps/client/src/features/group/types/group.types.ts
  • apps/client/src/features/user/types/user.types.ts
  • apps/client/src/features/workspace/components/members/components/workspace-members-table.tsx
  • apps/server/src/core/group/services/group-user.service.ts
  • apps/server/src/core/group/services/group.service.ts
  • apps/server/src/core/workspace/services/workspace.service.ts
  • apps/server/src/database/migrations/20260814T090000-group-workspace-role.ts — created
  • apps/server/src/database/repos/group/group.repo.ts
  • apps/server/src/database/repos/user/user.repo.ts
  • apps/server/src/database/types/db.d.ts

0010-openapi-swagger.patch

  • apps/server/nest-cli.json
  • apps/server/package.json
  • apps/server/src/main.ts
  • pnpm-workspace.yaml

Maintaining them

Script Does
scripts/check-upstream.sh The one entry point: pin invariant, the EE test suite, then patch verification
scripts/verify-patches.sh Applies the stack the way the Docker build does, checks created files exist, typechecks server and client
scripts/apply-patches.sh Applies (or --reverts) the stack in a working tree, for pnpm dev
scripts/gen-patch.sh Regenerates one patch correctly: prepare, hand-edit, write

CI runs the same checks as a gate: the image is only built and published if they pass.