Skip to main content

Guidelines for Authoring Frappe Marketplace Apps

This guide provides recommendations and requirements for publishers developing Frappe apps intended for the Frappe Cloud Marketplace.

If you are new to Frappe app development, you can learn more through the Frappe Framework documentation and follow the official tutorial to get started.

App Development Guidelines

1. Add a Settings Doctype

It is recommended to include a settings doctype in your app to manage and configure the global behaviour of your app’s functionality.

2. Support Current Frappe and ERPNext Versions

Ensure that your app supports the current stable version of Frappe Framework and ERPNext (if your app depends on ERPNext).

If your app requires version-specific functionality, you can check the installed Frappe version in your Python code and handle logic accordingly.

from frappe import __version__ as frappe_version
from semantic_version import Version

if Version(frappe_version).major >= 13:
    # version 13 or above
    pass
else:
    # version 12 or below
    pass

3. Avoid Overriding Core Frappe Functionalities

Do not override the default functionalities provided by Frappe Framework.

For example, Frappe provides built-in authentication pages such as:

  • /login for login and signup functionality
  • /update for password reset functionality

If you override these core features, you will need to implement and maintain their functionality separately.

4. Use Framework Hooks for Extensions

Instead of overriding core functionality, extend Frappe features using the hooks provided by the framework.

Linters and Server Tests CI

For Marketplace approval, your app repository must have a passing GitHub Actions workflow or similar CI setup.

Most new apps include a basic CI configuration by default. You can use workflows such as:

  • ci.yml
  • linters.yml

as a reference and customize them based on your app requirements.

Why CI Is Required

A CI pipeline helps verify code quality, run automated tests, and ensure that the app meets Marketplace publishing standards.

Run Semgrep Locally

It is recommended to run Semgrep locally before submitting your app. Semgrep helps identify potential security issues and code quality problems.

Installation and Setup

$ pip install semgrep
$ git clone --depth 1 https://github.com/frappe/semgrep-rules.git frappe-semgrep-rules
$ semgrep --config ./frappe-semgrep-rules/rules --config r/python.lang.correctness .

Summary

Following these guidelines helps ensure your Frappe app is compatible, maintainable, secure, and ready for publishing on the Frappe Cloud Marketplace.

Rating: 0 / 5 (0 votes)