to select ↑↓ to navigate
Cloud

Cloud

Overview

Adding a pyproject.toml file to your Frappe app is now mandatory.
This file must declare the app’s supported Frappe versions using the following section:

[tool.bench.frappe-dependencies]

This allows Frappe Cloud to validate application compatibility during operations like:

  • bench update
  • App installation
  • App addition to a bench group

Required Configuration

Add a pyproject.toml file to the root directory of your app repository with content similar to:

[tool.bench.frappe-dependencies]
frappe = ">=16.0.0-dev,<=17.0.0-dev"

Explanation

  • tool.bench.frappe-dependencies
    Declares compatibility requirements for Frappe.
  • frappe
    Specifies the supported version range using standard version specifiers.

This ensures the platform can validate whether the app is compatible with the target bench version.


Common Errors

1️⃣ Missing pyproject.toml

Error Meaning

Indicates that no pyproject.toml file exists in the root of the application repository.

Resolution

Create the file and add the required dependency section.


2️⃣ Missing [tool.bench.frappe-dependencies] Section

Error Meaning

The pyproject.toml exists, but the required dependency section is not defined or not in the exact format as mentioned above.

Resolution

Add:

[tool.bench.frappe-dependencies]
frappe = "<version-range>"


3️⃣ Version Mismatch With Bench

Error Meaning

The app branch declares compatibility with a Frappe version different from the bench version.

Example scenario:

  • Bench group version → 15
  • App branch → declares develop (v16+)

This branch will be rejected.

Resolution

Ensure:

  • The declared version range matches the target bench version
  • Or switch to a compatible app branch

Best Practices

  • Always keep the version range updated when releasing new branches
  • Align branch naming with supported Frappe versions
  • Validate compatibility locally before pushing changes
  • Use semantic version ranges rather than hard pinning

Summary

The pyproject.toml dependency declaration enables automated compatibility checks across Frappe Cloud infrastructure.
Ensuring correct configuration prevents installation failures and version conflicts during bench operations.

Last updated 9 hours ago
Was this helpful?
Thanks!