Skip to content

kodlyft/ksa

Repository files navigation

KSA

Regional VAT & tax compliance for Saudi Arabia, built on Frappe / ERPNext.

CI Linters Release License: MIT Conventional Commits


Overview

KSA is a Frappe app that adds Kingdom of Saudi Arabia VAT and tax compliance capabilities on top of Frappe / ERPNext. It is designed to be installed on any Frappe bench and configured per company.

Requirements

Dependency Version
Frappe Framework v16
ERPNext v16 (optional)
Python >= 3.14

Installation

Install with the bench CLI:

cd $PATH_TO_YOUR_BENCH
bench get-app https://github.com/kodlyft/ksa --branch develop
bench --site your-site.com install-app ksa

Development

This app uses pre-commit for formatting and linting. After cloning:

cd apps/ksa
pip install pre-commit
pre-commit install
pre-commit install --hook-type commit-msg

Configured hooks:

  • ruff: Python linting, import sorting, and formatting
  • prettier: JS / Vue / SCSS formatting
  • eslint: JavaScript linting
  • Frappe semgrep rules: vendored static-analysis rules (see .semgrep)
  • commitlint: enforces Conventional Commits

Continuous Integration

This repository ships a full CI/CD suite via GitHub Actions:

Workflow Trigger Purpose
ci.yml push to develop, PRs Installs the app on a fresh bench and runs unit tests
linter.yml PRs Pre-commit, Frappe semgrep rules, and pip-audit dependency scan
semantic-commits.yml PRs Validates commit titles against Conventional Commits
release.yml push to develop Automated semantic versioning + GitHub releases

Dependabot keeps GitHub Actions and Python dependencies up to date weekly.

Contributing

Contributions are welcome! Please read the Contributing Guide and our Code of Conduct before opening a pull request.

License

MIT © Kodlyft

About

A regional app for KSA

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors