Files
op-packages/minigate/CONTRIBUTING.md
T

1.9 KiB

Contributing to MiniGate

Thanks for considering a contribution. MiniGate is a small OpenWrt LuCI application, so focused and testable changes are easiest to review.

Useful Areas

  • OpenWrt and ImmortalWrt compatibility fixes
  • LuCI UI improvements
  • DDNS and ACME reliability
  • reverse proxy safety and generated Nginx configuration
  • login guard detection, nftables recovery, and ban-list handling
  • installation, upgrade, and release packaging
  • documentation and screenshots

Development Notes

Please keep changes compatible with /bin/sh on OpenWrt. Avoid Bash-only syntax in router-side scripts.

Before opening a pull request:

  1. Run shell scripts with sh where possible.
  2. Check that generated configuration paths are explicit and conservative.
  3. Test installation or upgrade on an OpenWrt/ImmortalWrt device or VM when the change affects runtime behavior.
  4. Update README or release notes when user-facing behavior changes.

Releases

Use the Asia/Shanghai publication date as YYYY.M.D. The first release on a date has no suffix; further releases use -1, -2, and so on. Tags start with v. Never replace an existing release with different code.

Update PKG_VERSION in Makefile and scripts/build-ipk.sh, and CURRENT_VERSION in root/usr/lib/minigate/update.sh together. Add the actual release notes in releases/v<VERSION>.md and update README download examples. Run node --test tests/install.test.cjs tests/update.test.cjs before pushing a commit containing [release] to main. The workflow validates the date, next sequence, and matching versions before building and publishing.

Pull Requests

Good pull requests usually include:

  • a short problem statement
  • what changed
  • how it was tested
  • screenshots for LuCI UI changes
  • any compatibility notes for opkg, apk, or SDK builds

Security-sensitive changes should follow SECURITY.md and avoid publishing exploit details before a fix is ready.