Skip to main content
Thank you for your interest in contributing to ERPNext! This guide will help you get started with contributing to the project, whether through bug reports, feature requests, or code contributions.

Code of Conduct

ERPNext follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
If you encounter abusive, harassing, or otherwise unacceptable behavior, please report it to the project team at [email protected].

Community Standards

We are committed to providing a welcoming and inclusive environment for everyone. Contributors are expected to:
  • Use welcoming and inclusive language
  • Be respectful of differing viewpoints and experiences
  • Gracefully accept constructive criticism
  • Focus on what is best for the community
  • Show empathy towards other community members

Getting Help

The Issue list is not the right place to ask questions or start general discussions.
For questions and discussions, please use the ERPNext Forum instead of creating GitHub issues.

Setting Up Development Environment

1

Install Bench

Follow the Installation Steps to setup bench and start the server:
bench start
2

Create a New Site

In a separate terminal window, create a new site:
bench new-site erpnext.localhost
3

Get and Install ERPNext

Clone the ERPNext repository and install it:
# Get the ERPNext app
bench get-app https://github.com/frappe/erpnext

# Install the app
bench --site erpnext.localhost install-app erpnext
4

Access the Application

Open http://erpnext.localhost:8000/app in your browser to see the application running.

Reporting Issues

General Issue Guidelines

Before creating an issue, please follow these guidelines:
  1. Search existing Issues: Before raising an issue, search if it has been raised before. Add a 👍 reaction or provide additional help if the issue already exists
  2. Report each issue separately: Don’t combine multiple, unrelated issues in one report
  3. Be Brief: Use screenshots and bullet points instead of long descriptive paragraphs
If your issue is not clear or does not meet the guidelines, it may be closed. You can supply the requested information and re-open it.

Bug Reports

When reporting a bug, include the following information:
1

Clear Title

Use a descriptive title like “Unable to submit Purchase Order without Basic Rate” instead of just “Cannot Submit”.
2

Steps to Reproduce

Provide a clear list of steps needed to reproduce the bug. If we cannot reproduce it, we cannot fix it.Example:
  1. Go to Purchase Order
  2. Add an item without setting Basic Rate
  3. Click Submit
  4. Error occurs
3

Version Number

Include your ERPNext version number. Many bugs are already fixed in the latest version.
4

Screenshots or Screencasts

Add screenshots with annotations or use LiceCAP to create a .gif screencast showing the issue.
The developer does not have access to your machine, so you must provide all relevant information in your bug report.

Feature Requests

When requesting a new feature:
  1. Clarity: Clearly specify how you want the feature to behave
    • ❌ Bad: “I would like multiple PDF formats”
    • ✅ Good: “Ability to add multiple print formats for customers with different languages”
  2. Solution: Try to identify how the feature should work and look
  3. Mockups: Include mockups or wireframes to illustrate your requirements
Feature requests help create a roadmap for future development. Be as specific as possible about your use case.

Pull Requests

Before Opening a PR

Ensure you’ve completed the following before opening a pull request:
1

Choose the Right Branch

Select which branch your PR should be merged into (usually develop for new features).
2

Follow Naming Convention

PR names should follow the conventional commits format.Examples:
  • feat: add multi-currency support to quotations
  • fix: resolve stock balance calculation error
  • refactor: optimize sales order query performance
3

Run All Tests

Ensure all tests pass locally, including UI and unit tests.
4

Server-Side Logic

All business logic and validations must be implemented on the server-side.
5

Update Documentation

Update any necessary documentation related to your changes.
6

Link Related Issues

Put closes #XXXX in your PR description to auto-close the related issue.

PR Description Requirements

Your pull request description should include:
  • Explanation of Changes: Describe what problem your PR solves and why the change is necessary
  • Screenshots/GIFs: For UI changes, include before/after screenshots or recordings
  • Testing Details: Explain how you tested the changes
Pull requests without adequate descriptions or that don’t follow the guidelines may be closed.

Pre-commit Hooks

ERPNext uses pre-commit hooks to maintain code quality. These will run automatically when you commit:
  • Trailing whitespace removal
  • YAML validation (check-yaml)
  • Merge conflict detection
  • AST validation for Python files
  • JSON and TOML validation
  • Debug statement detection
  • Prettier for JavaScript, Vue, and SCSS files
  • ESLint for JavaScript files
  • Ruff for Python linting and formatting
Your commits will be blocked if pre-commit hooks fail. Fix the issues and commit again.

Branch Protection

Direct commits to the develop branch are blocked. All changes must go through pull requests.

Additional Resources

For detailed contribution guidelines, visit:
If you discover a security vulnerability, please report it through the proper channels:Do not create public GitHub issues for security vulnerabilities.
Help translate ERPNext into your language:

Build docs developers (and LLMs) love