Migration guide
This guide helps you migrate from the previous "raw requirements" system to workspace dependencies. See the main workspace dependencies guide for feature details.
Migration steps
1. Resolve conflicts
If you have a /dependencies folder at the workspace root, rename it. The workspace root /dependencies path is reserved for the new system.
Note: Folders like /f/dependencies or /u/username/dependencies are not affected.
2. Move dependency files
Move all your requirements.txt, package.json, composer.json files to the workspace /dependencies directory:
requirements.txt→/dependencies/<name>.requirements.inpackage.json→/dependencies/<name>.package.jsoncomposer.json→/dependencies/<name>.composer.json
Choose descriptive names like ml.requirements.in or api.package.json.
3. Update scripts
Add annotations to scripts that should use workspace dependencies:
# requirements: ml
// package_json: api
// composer_json: web
4. Set defaults (optional)
Create unnamed default files to set workspace-wide behavior:
/dependencies/requirements.in- Requirements mode default
This will be referenced by all scripts unless explicitly told otherwise. Choose one form per language.
Creation of workspace defaults will redeploy all existing runnables for given language!
5. Update CLI
Upgrade to the latest Windmill CLI version that supports workspace dependencies.
6. Test
Generate lockfiles and test your scripts:
wmill script generate-metadata script_path
wmill script run script_path
Troubleshooting
- Scripts fail: Check that dependency files contain all required packages
- CLI errors: Ensure you have the latest CLI version
- Permission errors: Workspace admin permissions required for dependency management
- Missing dependencies: Add missing packages to workspace dependency files
For detailed feature information, see the workspace dependencies guide.