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¶
- Use semantic versioning and make the manifest version match the package and release tag.
- Pin or bound dependencies intentionally and produce a dependency bill of materials when requested.
- Document data collected, external processors, credentials, permissions, queues, retention, disablement, and uninstall behavior.
- Verify every asset is same-origin and every route stays in the assigned namespace.
- Confirm source ownership, licences, and required notices.
- Publish beta or experimental work disabled by default.
- 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.