Marc Mintel f48d89c368
All checks were successful
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 6s
Monorepo Pipeline / 🧪 Test (push) Successful in 56s
Monorepo Pipeline / 🧹 Lint (push) Successful in 2m22s
Monorepo Pipeline / 🏗️ Build (push) Successful in 3m51s
Monorepo Pipeline / 🚀 Release (push) Has been skipped
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been skipped
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been skipped
chore: comprehensive commit of all debugging, infrastructure, and extension fixes
Summary of changes:
- Corrected Directus extensions to use 'vue-router' for 'useRouter' instead of '@directus/extensions-sdk' (Fixed runtime crash).
- Standardized extension folder structure and moved built extensions to the root 'directus/extensions' directory.
- Updated 'scripts/sync-extensions.sh' and 'scripts/validate-extensions.sh' for better extension management.
- Added 'scripts/validate-sdk-imports.sh' as a safeguard against future invalid SDK imports.
- Integrated import validation into the '.husky/pre-push' hook.
- Standardized Docker restart policies and network configurations in 'cms-infra/docker-compose.yml'.
- Updated tracked 'data.db' with the correct 'module_bar' settings to ensure extension visibility.
- Cleaned up legacy files and consolidated extension package source code.

This commit captures the full state of the repository after resolving the 'missing extensions' issue.
2026-02-14 01:44:18 +01:00
2026-02-09 22:26:16 +01:00
2026-02-13 14:38:01 +01:00

Mintel Monorepo

This monorepo is the central "factory" for all Mintel client websites. It provides a standardized, versioned core of configurations, utilities, and infrastructure templates to ensure consistency, security, and rapid deployment across the entire portfolio.

🏗 Project Structure

  • apps/: Client website implementations (e.g., sample-website). These are consumers of the shared packages.
  • packages/: Shared, versioned npm packages under the @mintel namespace.

🚀 Getting Started

Prerequisites

  • pnpm (v10+)
  • Node.js (v20+)
  • Access to the private registry: https://npm.infra.mintel.me

Installation

pnpm install

Development

To run development mode for all shared packages:

pnpm dev

Building

To build all shared packages:

pnpm build

🛠 Creating a New Client Project

Never copy-paste files manually. Use the Mintel CLI to scaffold a new project with all best practices pre-configured:

pnpm --filter @mintel/cli start init apps/client-name.com

This command automatically:

  1. Sets up the directory structure.
  2. Links all @mintel shared packages.
  3. Configures next-intl (i18n) and Sentry.
  4. Injects Docker and Gitea Actions deployment workflows.

🔄 Release Cycle (Monorepo)

We use Changesets to manage the versioning and publishing of shared packages.

1. Documenting Changes

When you modify a package in packages/*, create a changeset:

pnpm changeset

Follow the prompts to select the package and the version bump type (patch, minor, major).

2. Versioning

When ready to release, bump the versions:

pnpm version-packages

This updates package.json files and generates CHANGELOG.md entries.

3. Publishing

The release to the private registry is automated via Gitea Actions. On every push to main, the release.yml workflow runs pnpm release. If new versions are detected, they are published to https://npm.infra.mintel.me.

🌐 Infrastructure & Deployment

Client websites scaffolded via the CLI use a tag-based deployment strategy:

  • Push to main: Deploys to the testing environment.
  • Git Tag v*.*.*-rc.*: Deploys to the staging environment.
  • Git Tag v*.*.*: Deploys to the production environment.

See the @mintel/infra package for detailed template documentation.

Description
No description provided
Readme 20 MiB
Languages
TypeScript 92.8%
JavaScript 4.2%
Shell 1.8%
Dockerfile 0.5%
CSS 0.4%
Other 0.3%