mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-18 16:02:10 +00:00
9de38f9a09
* feat(forks): handle triggers and schedules in wmill workspace merge Closes #9001. Brings CLI parity with the merge UI by routing trigger and schedule diffs through the existing workspace_diff tally infrastructure and lifting the deploy logic into the shared windmill-utils-internal module. - Backend: extend tally + compare to all 10 trigger kinds + schedule; new compare_two_trigger_or_schedule helper using to_jsonb minus runtime ignore set; CompareSummary gains schedules_changed/triggers_changed. - Operational-state invariant: fork operations never flip target's mode/enabled. Triggers strip mode/enabled in both UI and CLI deploy payloads (preserved by is_mode_unspecified on backend). Schedules drop the setScheduleEnabled mirror entirely on merge — EditSchedule lacks enabled by design. - Shared module: DeployKind extended with schedule + per-kind triggers; DeployProvider gains per-kind dispatch methods. - Frontend: ~600 lines of client-side trigger-diff machinery deleted; rows flow through comparison.diffs like every other kind. Diff drawer returns full GET response stripped of runtime fields, matching backend semantics. Default selection excludes triggers/schedules (opt-in). - CLI (merge.ts): per-kind provider, GCP-specific transforms (audience reset, base_endpoint with /api stripped to match frontend), summary table rows for Schedules/Triggers, default-deselect mirroring the UI. - Bumps windmill-utils-internal to 1.5.0 (new exports for trigger per-kind dispatch); frontend depends on ^1.5.0. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(enterprise): clarify [ee] prefix applies whenever an EE companion PR exists Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: update ee-repo-ref to 6ee680c25e3413d928fc22002be6deb118092668 This commit updates the EE repository reference after PR #557 was merged in windmill-ee-private. Previous ee-repo-ref: ad35a056627656fd426fb19856ea945955d4727f New ee-repo-ref: 6ee680c25e3413d928fc22002be6deb118092668 Automated by sync-ee-ref workflow. * fix(forks): preserve target state on merge update, mirror source on create Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(forks): strip server-managed trigger fields and honor --include with --skip-conflicts Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com> Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2.3 KiB
2.3 KiB
Enterprise (EE) Development
File Conventions
- Enterprise files use the
*_ee.rssuffix - Source lives in
windmill-ee-private(sibling repo), symlinked into each crate'ssrc/ _ee.rsfiles are gitignored in the main windmill repo — tracked only inwindmill-ee-private- Use feature flags:
#[cfg(feature = "enterprise")]for enterprise logic - The
privatefeature flag gates compilation of*_ee.rsfiles - The
licensefeature flag gates features that require a valid license key at runtime - Isolate enterprise code in separate modules
Finding the EE Repo
- Standard location:
~/windmill-ee-private - Worktree location:
~/windmill-ee-private__worktrees/<branch-name>/
Detecting EE Changes
The *_ee.rs files in the windmill repo are symlinks — changes won't appear in git diff of the windmill repo. Check the EE repo directly: git -C <ee-path> status --short
EE PR Workflow (MUST DO whenever the change has an EE companion PR)
If your work requires any change in windmill-ee-private (modifying *_ee.rs
files, adding new ones, adjusting EE-only modules, etc.) — i.e. you need to
open a companion PR on windmill-ee-private — then the windmill (OSS) PR
counts as an EE PR even when its own git diff only touches
backend/ee-repo-ref.txt. The symlinked *_ee.rs files won't appear in the
OSS diff, but the OSS build pulls them in via the EE ref, so reviewers need
to know.
- Prefix the windmill PR title with
[ee]:[ee] <type>: <description> - Create a matching branch in
windmill-ee-private(same branch name) - Commit and push the
_ee.rschanges in that branch - Create a companion PR on
windmill-ee-privatewith a link to the windmill PR (no[ee]prefix on this one) - Update
ee-repo-ref.txt: Runbash write_latest_ee_ref.shfrombackend/- Verify it wrote the correct commit hash from your branch, not from main (the script may fall back to
~/windmill-ee-privateon main) - If wrong, manually write the correct hash
- Verify it wrote the correct commit hash from your branch, not from main (the script may fall back to
- Commit
ee-repo-ref.txtin the windmill repo so CI picks up the correct EE ref
Validation
# EE code (always include private to compile *_ee.rs files)
cargo check --features enterprise,private
# EE code that also requires license validation
cargo check --features enterprise,private,license