Skip to content

🀝 Contributing to TFTP Router Flasher

Thank you for your interest in contributing! Whether you're fixing bugs, improving documentation, testing on new hardware, or adding features β€” your help is welcome and appreciated.


πŸ“¦ Project Scope

TFTP Router Flasher is a cross-platform CLI tool for flashing firmware to routers via TFTP, especially in recovery mode. It aims to be:

  • Lightweight and dependency-minimal
  • Compatible with Linux and macOS
  • Easy to install and use
  • Safe and transparent for users

🧰 How to Contribute

πŸ› Report Bugs

  • Search issues first to avoid duplicates
  • Include:
  • OS and Python version
  • Router model (if relevant)
  • Steps to reproduce
  • Logs or error messages

✨ Suggest Features

  • Open an issue with a clear description
  • Explain the use case and why it’s valuable
  • Bonus: suggest how it could be implemented

πŸ› οΈ Submit Code

  1. Fork the repo
  2. Create a new branch (feature/my-feature or fix/my-bug)
  3. Make your changes
  4. Run tests (if applicable)
  5. Submit a pull request with a clear summary

πŸ“š Improve Docs

  • Typos, formatting, or clarity improvements are always welcome
  • You can edit README.md, CONTRIBUTING.md, or add new docs under /docs

πŸ§ͺ Development Setup

git clone https://github.com/vr-ski/tftp-router-flasher.git
cd tftp-router-flasher
python -m venv .venv
source .venv/bin/activate
pip install -e .

To run the CLI:

tftp-router-flasher --help

To run tests (if available):

pytest tests/

🧼 Code Style

  • Follow PEP8
  • Use 4-space indentation
  • Keep functions small and focused
  • Prefer logging over print statements
  • Use descriptive variable and function names

πŸ“„ License and Attribution

By contributing, you agree that your code will be released under the GPL-2.0 License. This project is inspired by arescue by Joonas Nissinen, originally licensed under GPL-2.0.


πŸ™Œ Thank You

Your contributions help keep this project alive and useful. If you’ve tested this tool with a new router model or platform, please share your experience!