Skip to content

Latest commit

 

History

History
524 lines (430 loc) · 29.9 KB

File metadata and controls

524 lines (430 loc) · 29.9 KB

Contributing to eSim

Thank you for your interest in contributing to eSim! 🎉 Every contribution — whether it's a bug fix, new feature, documentation improvement, or example circuit — helps make eSim better for everyone.

Open Issues Open PRs Good First Issues Contributors Code Style


📋 Table of Contents


🏆 Our Contributors

A huge thank you to all 149+ amazing people who have built eSim since 2015! 🎉

🏛️ Project Leads

Role Name Affiliation
Developed by FOSSEE Team IIT Bombay
Original Author Fahim Khan eSim / FOSSEE, IIT Bombay
Lead Maintainer Sumanto Kar FOSSEE, IIT Bombay
Core Maintainer Rahul Paknikar FOSSEE, IIT Bombay
Core Maintainer Pranav P FOSSEE, IIT Bombay

🥇 Core Maintainers

Sumanto Kar
🥇 Sumanto Kar

Lead Maintainer · 320 commits
GitHub
Rahul Paknikar
🥈 Rahul Paknikar

265 commits
GitHub
Fahim Khan
🥉 Fahim Khan

244 commits
GitHub

All Contributors Mosaic

All Contributors

Auto-generated via contrib.rocksView full list on GitHub →

🌟 Community Contributors

Contributors with 5–9 commits (click to expand)
Contributor Commits GitHub
Maanit 9 GitHub
Myo Thinzar 9 GitHub
Partha Pratim Nath 9 GitHub
Sakhi Sharma 9 GitHub
Temshinaro Jamir 9 GitHub
Xoher 9 GitHub
Abhishek Shakya 8 GitHub
Aishwarya Sinha 8 GitHub
Aman Shukla 8 GitHub
Chandru 8 GitHub
SAGARIKAA 8 GitHub
Sakshi Pandey 8 GitHub
Shaili Sahu 8 GitHub
Anish R. Khapare 8 GitHub
Deen Efil 8 GitHub
Priyanka 8 GitHub
Vivek Kumar 7 GitHub
Bladen Martin 7 GitHub
Jay Mistry 7 GitHub
Vanshika Tanwar 7 GitHub
Varadha 7 GitHub
Suprraja 7 GitHub
Taeolis 7 GitHub
Arpit Sharma 6 GitHub
Gaurav Supal 6 GitHub
Jayanth 6 GitHub
Manimaran K 6 GitHub
Rachith H 6 GitHub
Tanay Mathur 6 GitHub
Maddy 6 GitHub
Abhishek Soni 5 GitHub
Barun 5 GitHub
Varad Patil 5 GitHub
Yash Kiran Ekhande 5 GitHub
Krishna Goutam 5 GitHub
Rohinthram 5 GitHub
Contributors with 1–4 commits (click to expand)
Contributor Commits GitHub
Akshay Rukade 4 GitHub
Vatsal Patel 4 GitHub
Ankur Gupta 3 GitHub
E Balakrishna 3 GitHub
Gaurav Gupta 3 GitHub
Harshit Singh Negi 3 GitHub
Pranav Karuvally 3 GitHub
Abinash Singh 2 GitHub
Harvi 2 GitHub
Kavya Manohar 2 GitHub
Pyae Sone 2 GitHub
S. Shiva Krishna Reddy 2 GitHub
Sangavi GR 2 GitHub
Manasi Yadav 2 GitHub
Aditya Bhattacharya 1 GitHub
Ashwith Rego 1 GitHub
Boddu Ajay 1 GitHub
Charaan 1 GitHub
GiGi Koneti 1 GitHub
Kusum Kisori 1 GitHub

| Mudit Joshi | 1 | GitHub | | Naman Patel | 1 | GitHub | | Pavan Mantri | 1 | GitHub | | Pavithra W | 1 | GitHub | | Raksha Dave | 1 | GitHub | | Rudra Mani Upadhyay | 1 | GitHub | | Shravan A Y | 1 | GitHub | | Vikas Mulaje | 1 | GitHub | | Aamir Thekiya | 1 | GitHub | | Bhavya Bhardwaj | 1 | GitHub | | Mahak Gupta | 1 | GitHub | | Nuh Too Wai | 1 | GitHub |

🥉 Active Contributors (10–19 commits)


Ankush

19

Anup K. Pandey

19

G Jaswanth

19

E Kamalesh

18

Sai Charan

18

Mausam

17

Ajay Boddu

15

PSR

15

Komal Sheth

15

Dilip Boidya

15

Nishit Bayen

14

Suchinton

13

Karthick N.

13

Sabarish M.

12

Harshal

11

D Tharun

11

Jovin P John

11

Madhav K.

11

Ragul

11

Jawwaad

10

Nirmitha N

10

Pavan

10

Senbagaseelan

10

Tanisha

10

Ashok Kumar

10

🥈 Major Contributors (20+ commits)

# Contributor Commits GitHub
1 Saurabh Bansode 49 GitHub
2 Athul George 37 GitHub
3 Nil Shah 36 GitHub
4 Shanthi Priya 36 GitHub
5 Anjali Jaiswal 35 GitHub
6 Pranav P 34 GitHub
7 Annesha Dey 33 GitHub
8 Sunil Shetye 33 GitHub
9 Hariom Thakur 28 GitHub
10 Aditya Minocha 23 GitHub
11 R. Krishnan 23 GitHub
12 Ganderla Chaithanya 22 GitHub
13 Anwesha 21 GitHub

📈 Repository Growth & Activity

Star History Chart

eSim Repo Stats


🚀 Getting Started

  1. Find an issue — Browse the issue tracker for bugs or features you'd like to work on
  2. Claim it — Comment on the issue with "I would like to work on this" so maintainers can assign it to you
  3. Fork & code — Follow the Pull Request Workflow below
  4. Submit a PR — Every pull request must reference an issue

💡 First-time contributor? Look for issues labeled good first issue — these are beginner-friendly tasks curated by maintainers.


🤝 Ways to Contribute

Type Description Difficulty
🐛 Bug Fixes Fix reported issues from the issue tracker ⭐ – ⭐⭐
New Features Implement new functionality or enhance existing modules ⭐⭐ – ⭐⭐⭐
📝 Documentation Improve docs, docstrings, README, or Sphinx docs in docs/
🧪 Testing Add test cases or report bugs with reproducible steps ⭐ – ⭐⭐
🎨 UI/UX Improve the PyQt6 user interface and user experience ⭐⭐
📚 Examples Add new example circuits to the Examples/ directory
📦 Packaging Help with Flatpak, Snap, AppImage, or Docker builds ⭐⭐⭐
🌐 Integration Improve KiCad, Ngspice, GHDL, or Makerchip integration ⭐⭐⭐

🔧 Development Setup

Prerequisites

Tool Version Purpose
Python 3.6+ Core application runtime
PyQt6 ≥ 6.5.0 GUI framework
KiCad Latest Schematic & PCB editor
Ngspice 35+ Circuit simulation engine
Git Latest Version control

Setup Steps

# 1. Fork the repository on GitHub, then clone your fork
git clone https://github.com/<your-username>/eSim.git
cd eSim

# 2. Install Python dependencies
pip install -r requirements.txt

# 3. (Optional) Install additional tools for full functionality
# See INSTALL file for KiCad, Ngspice, and GHDL setup

📬 Pull Request Workflow

flowchart LR
    A["🍴 Fork"] --> B["🌿 Branch"]
    B --> C["💻 Code"]
    C --> D["✅ Commit"]
    D --> E["⬆️ Push"]
    E --> F["📬 PR"]

    style A fill:#6c5ce7,color:#fff
    style B fill:#00b894,color:#fff
    style C fill:#0984e3,color:#fff
    style D fill:#fdcb6e,color:#333
    style E fill:#e17055,color:#fff
    style F fill:#d63031,color:#fff
Loading

Step-by-Step

1. Fork & Clone

# Fork via GitHub UI, then:
git clone https://github.com/<your-username>/eSim.git
cd eSim

2. Create a Feature Branch

# Always branch from master — never commit directly to master
git checkout -b fix/issue-42-rectifier-bug

Branch naming convention:

  • fix/issue-<number>-short-description — for bug fixes
  • feature/issue-<number>-short-description — for new features
  • docs/short-description — for documentation changes

3. Make Your Changes

  • Write clean, well-commented code
  • Follow the Code Style guidelines
  • Test your changes locally

4. Commit Your Changes

git add <path-to-changed-files>
git commit -m "Fixes issue #42 - Fix half-wave rectifier simulation error"

⚠️ One commit per pull request. If you have multiple commits, squash them before submitting.

5. Push & Open a PR

git push origin fix/issue-42-rectifier-bug

Then open a Pull Request on GitHub targeting the master branch.


📝 Commit Guidelines

Commit Message Format

Fixes issue #<issue_number> - <one-line summary of what you did>

<optional detailed description>
- What was the problem?
- What did you change?
- Why this approach?

Examples

Fixes issue #42 - Fix AC analysis crash when frequency range is empty

The AC analysis module threw an unhandled exception when the user
left the frequency range fields blank. Added input validation in
Analysis.py to show an error dialog instead of crashing.
Fixes issue #87 - Add 4-bit counter example circuit

Added a new example project under Examples/4_bit_counter with
schematic, netlist, and simulation configuration files.

Rules

Rule Details
Reference an issue Every PR must link to an existing GitHub issue
One commit per PR Squash multiple commits before submitting
Clear subject line Format: Fixes issue #N - Brief description
Add a body Explain what you changed and why

🎨 Code Style

eSim follows PEP 8 — the Python community's style guide.

Rule Details
Style PEP 8 compliant
Indentation 4 spaces (no tabs)
Line length Max 79 characters
Docstrings Required for all public functions and classes
Imports Group by stdlib → third-party → local; one per line
Naming snake_case for functions/variables, PascalCase for classes

Linting

# Check your code before submitting
flake8 src/

🐛 Reporting Bugs

Found a bug? Please open an issue with:

  1. Title — Clear, concise summary of the problem
  2. Environment — OS, Python version, eSim version
  3. Steps to reproduce — Exact steps to trigger the bug
  4. Expected behavior — What should happen
  5. Actual behavior — What actually happens
  6. Screenshots/Logs — If applicable, attach console output or screenshots

💡 Requesting Features

Have an idea for a new feature? Open an issue with:

  1. Title — Prefix with [Feature Request]
  2. Problem — What problem does this solve?
  3. Proposed solution — How should it work?
  4. Alternatives considered — Any other approaches you thought of?
  5. Additional context — Mockups, references, or related issues

💬 Community

Channel Link
📧 Email contact-esim@fossee.in
💬 Forum forums.fossee.in
🌐 Website esim.fossee.in
📚 Dev Docs esim.readthedocs.io

Thank you for contributing to eSim! ❤️
Every contribution, no matter how small, makes a difference.