Max Peintner
|
312b7b6010
|
chore: 🚀 Migrate monorepo from Yarn to pnpm + Turbo integration + Configuration cleanup (#10165)
This PR modernizes the ZITADEL monorepo build system by migrating from
Yarn to pnpm, introducing Turbo for improved build orchestration, and
cleaning up configuration inconsistencies across all apps and packages.
### 🎯 Key Improvements
#### 📦 **Package Manager Migration (Yarn → pnpm)**
- **Performance**: Faster installs with pnpm's efficient symlink-based
node_modules structure
- **Disk space**: Significant reduction in disk usage through
content-addressable storage
- **Lockfile**: More reliable dependency resolution with pnpm-lock.yaml
- **Workspace support**: Better monorepo dependency management
#### ⚡ **Turbo Integration**
- **Build orchestration**: Dependency-aware task execution across the
monorepo
- **Intelligent caching**: Dramatically faster builds on CI/CD and local
development
- **Parallel execution**: Optimal task scheduling based on dependency
graphs
- **Vercel optimization**: Enhanced build performance and caching on
Vercel deployments
#### 🧹 **Configuration Cleanup & Unification**
- **Removed config packages**: Eliminated `@zitadel/*-config` packages
and inlined configurations
- **Simplified dependencies**: Reduced complexity in package.json files
across all apps
- **Consistent tooling**: Unified prettier, ESLint, and TypeScript
configurations
- **Standalone support**: Improved prepare-standalone.js script for
subtree deployments
### 📋 Detailed Changes
#### **🔧 Build System & Dependencies**
- ✅ Updated all package.json scripts to use `pnpm` instead of `yarn`
- ✅ Replaced `yarn.lock` with pnpm-lock.yaml and regenerated
dependencies
- ✅ Added Turbo configuration (turbo.json) to root and individual
packages
- ✅ Configured proper dependency chains: `@zitadel/proto#generate` →
`@zitadel/client#build` → `console#build`
- ✅ Added missing `@bufbuild/protobuf` dependency to console app for
TypeScript compilation
#### **🚀 CI/CD & Workflows**
- ✅ Updated all GitHub Actions workflows to use `pnpm/action-setup@v4`
- ✅ Migrated build processes to use Turbo with directory-based filters
(`--filter=./console`)
- ✅ **New**: Added `docs.yml` workflow for building documentation
locally (helpful for contributors without Vercel access)
- ✅ Fixed dependency resolution issues in lint workflows
- ✅ Ensured proto generation always runs before builds and linting
#### **📚 Documentation & Proto Generation**
- ✅ **Robust plugin management**: Enhanced plugin-download.sh with retry
logic and error handling
- ✅ **Vercel compatibility**: Fixed protoc-gen-connect-openapi plugin
availability in Vercel builds
- ✅ **API docs generation**: Resolved Docusaurus build errors with
OpenAPI plugin configuration
- ✅ **Type safety**: Improved TypeScript type extraction patterns in
Angular components
#### **🛠️ Developer Experience**
- ✅ Updated all README files to reference pnpm commands
- ✅ Improved Makefile targets to use Turbo for consistent builds
- ✅ Enhanced standalone build process for login app subtree deployments
- ✅ Added debug utilities for troubleshooting build issues
#### **🗂️ File Structure & Cleanup**
- ✅ Removed obsolete configuration packages and their references
- ✅ Cleaned up Docker files to remove non-existent package copies
- ✅ Updated workspace references and import paths
- ✅ Streamlined turbo.json configurations across all packages
### 🎉 Benefits
1. **⚡ Faster Builds**: Turbo's caching and parallel execution
significantly reduce build times
2. **🔄 Better Caching**: Improved cache hits on Vercel and CI/CD
environments
3. **🛠️ Simplified Maintenance**: Unified tooling and configuration
management
4. **📈 Developer Productivity**: Faster local development with optimized
dependency resolution
5. **🚀 Enhanced CI/CD**: More reliable and faster automated builds and
deployments
6. **📖 Better Documentation**: Comprehensive build documentation and
troubleshooting guides
### 🧪 Testing
- ✅ All apps build successfully with new pnpm + Turbo setup
- ✅ Proto generation works correctly across console, login, and docs
- ✅ GitHub Actions workflows pass with new configuration
- ✅ Vercel deployments work with enhanced plugin management
- ✅ Local development workflow verified and documented
This migration sets a solid foundation for future development while
maintaining backward compatibility and improving the overall developer
experience.
---------
Co-authored-by: Elio Bischof <elio@zitadel.com>
|
2025-07-16 09:10:19 +02:00 |
|
Max Peintner
|
40ad36f5fd
|
chore(console): buf stub build (#5215)
* buf gen yaml
* dep, buildcmd
* deps
* buf yml
* buf work
* gen yml
* buf
* buf mod update
* path
* chore: fix buf
* npm package
* build as prodbuild
* trigger
* temp rm basepath
* base href
* generate as prelint
* proto proto
* rm unused gitignore
---------
Co-authored-by: Florian Forster <florian@zitadel.com>
Co-authored-by: Livio Spring <livio.a@gmail.com>
|
2023-02-17 14:09:11 +00:00 |
|
Max Peintner
|
08ae39ae19
|
feat: rehauled console (#3525)
* new console
* move npm ci to angular build
* rel path for assets
* local grpc copy
* login policy, rm clear views, features rel path
* lock
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
|
2022-04-28 10:35:02 +00:00 |
|
Max Peintner
|
33ae935bf6
|
fix(console): angular 13, grpc web 1.3.0, dependencies (#2688)
* cli core, migrations
* material
* input directive
* fresh lock
* update oidc lib
* use angular-eslint next for ng 13
* clean lock
* change qrcode lib, env
* eslint
* deps
* grpc libs update, grpc web 1.0.3, rev env
* remove grpc-web from build/zitadel/Dockerfile
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
|
2021-11-29 10:31:56 +01:00 |
|
Max Peintner
|
8a098bb165
|
chore(console): gen proto on npm postinstall, ignore generated output (#266)
* proto gen
* fix: remove type from project lists (#256)
* fix: remove type from project lists
* Update user-detail.component.ts
* fix: remove add project
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
* fix project view model
* regen mgmt proto
* rm orgid from route, switch to project view
* chore(deps-dev): bump @types/jasmine from 3.5.10 to 3.5.11 in /console (#252)
Bumps [@types/jasmine](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jasmine) from 3.5.10 to 3.5.11.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jasmine)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#251)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.901.7 to 0.901.9.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump moment from 2.26.0 to 2.27.0 in /console (#250)
Bumps [moment](https://github.com/moment/moment) from 2.26.0 to 2.27.0.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.26.0...2.27.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump karma from 5.0.9 to 5.1.0 in /console (#218)
Bumps [karma](https://github.com/karma-runner/karma) from 5.0.9 to 5.1.0.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v5.0.9...v5.1.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump ngx-moment from 3.5.0 to 4.0.1 in /console (#219)
Bumps [ngx-moment](https://github.com/urish/ngx-moment) from 3.5.0 to 4.0.1.
- [Release notes](https://github.com/urish/ngx-moment/releases)
- [Changelog](https://github.com/urish/ngx-moment/blob/master/CHANGELOG.md)
- [Commits](https://github.com/urish/ngx-moment/compare/3.5.0...4.0.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* chore(deps-dev): bump @angular/language-service in /console (#217)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 9.1.10 to 9.1.11.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/9.1.11/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* chore(deps-dev): bump @angular/cli from 9.1.7 to 9.1.9 in /console (#249)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 9.1.7 to 9.1.9.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v9.1.7...v9.1.9)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* set partial user profile
* fix org routing
* auth user loginnames, i18n
* fix clipboard, secret regeneration
* project role required field
* show change editor
* show granted project grid, remove add button
* hide meta overflow
* username validation
* common pwd validators
* fix org create pwd validation
* show 2fa error
* add postinstall script
* fix: postinstall script ref
* setup go env for proto gen
* revert i18n
* set gopath manually
* test
* test
* test
* trial
* test
* hop
* protoc
* test
* test
* path
* path
* path
* wat
* path
* try a hardcoded approach
* remove failing steps
* test
* test
* chore: gitignore
* chore: build file for grpc-web
* chore: delete files
* chore: reduce package.json
* chore: test angular build
* download protoc
* use sudo
* full pipeline
* test
* protoc in lint
* remove lint
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Florian Forster <florian@caos.ch>
|
2020-07-07 15:21:18 +02:00 |
|
Florian Forster
|
92a294f5c8
|
feat(console): integrate frontend (#95)
* feat: console frontend
* chore(dependabot): cycle and npm
* chore: rename citadel to zitadel, remove generated files
* chore: delete go files
* chore(frontend): ci steps
* chore: remove docker and envoy files
* chore: remove docker file
* chore: working dir
* chore: run proto build
* add console start
* chore: restructure folders
* chore: remove gui build
* statikFs
* generate proto for console
* add statik import
* import
* chore: try statik
* chore: path
* chore: path
* chore: script in root
* chore: order build steps
* chore: go get
* chore: folder traversal
* chore: non empty test file
* chore: gitignore
* chore: gitignore
* chore: statik path
* chore: switch to failing FE build
* fix: build
* fix: project-grant-test
* fix: rm test
* add statik.go
* go mod tidy
* chore: place test, seperate test from build
* chore: lint all the world
* chore: ci the world instead
* chore: tune docker
* chore: undo container test
* chore: fix run
* chore: docker build
* chore: test docker build
* chore: go build flags
* finaly
* fix caos_local
* go mod
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: Max Peintner <max@caos.ch>
|
2020-05-13 14:41:43 +02:00 |
|