Skip to content

Test and publish an extension

Test the installed application against the exact Yukon, Frappe, Python, and SDK versions in the compatibility matrix.

Required test coverage

  • manifest validation, including namespace and entrypoint failures;
  • enabled and disabled behavior;
  • a user with each required role and a user without it;
  • document permission denial at every interactive endpoint;
  • route activation failure, followed by recovery after the release is corrected and the page is reloaded;
  • loading, empty, error, retry, and permission-denied UI;
  • keyboard navigation, focus visibility, narrow screens, and contrast;
  • invalid, replayed, and cross-tenant webhooks when applicable;
  • retry, timeout, rate-limit, deduplication, and partial provider failure;
  • migration from the previous released version;
  • disablement and uninstall behavior.

Prepare a release

  1. Use semantic versioning and make the manifest version match the package and release tag.
  2. Pin or bound dependencies intentionally and produce a dependency bill of materials when requested.
  3. Document data collected, external processors, credentials, permissions, queues, retention, disablement, and uninstall behavior.
  4. Verify every asset is same-origin and every route stays in the assigned namespace.
  5. Confirm source ownership, licences, and required notices.
  6. Publish beta or experimental work disabled by default.
  7. Provide release notes and a support contact.

When reporting a frontend activation problem, include the extension ID, version, entrypoint, Yukon version, browser version, steps to reproduce, and a sanitized error. Never attach tokens, customer records, full production logs, or unredacted screenshots.