Contributing to eSim

June 9, 2026 ยท View on GitHub

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

RoleNameAffiliation
Developed byFOSSEE TeamIIT Bombay
Original AuthorFahim KhaneSim / FOSSEE, IIT Bombay
Lead MaintainerSumanto KarFOSSEE, IIT Bombay
Core MaintainerRahul PaknikarFOSSEE, IIT Bombay
Core MaintainerPranav PFOSSEE, 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.rocks โ€” View full list on GitHub โ†’

๐ŸŒŸ Community Contributors

Contributors with 5โ€“9 commits (click to expand)
ContributorCommitsGitHub
Maanit9GitHub
Myo Thinzar9GitHub
Partha Pratim Nath9GitHub
Sakhi Sharma9GitHub
Temshinaro Jamir9GitHub
Xoher9GitHub
Abhishek Shakya8GitHub
Aishwarya Sinha8GitHub
Aman Shukla8GitHub
Chandru8GitHub
SAGARIKAA8GitHub
Sakshi Pandey8GitHub
Shaili Sahu8GitHub
Anish R. Khapare8GitHub
Deen Efil8GitHub
Priyanka8GitHub
Vivek Kumar7GitHub
Bladen Martin7GitHub
Jay Mistry7GitHub
Vanshika Tanwar7GitHub
Varadha7GitHub
Suprraja7GitHub
Taeolis7GitHub
Arpit Sharma6GitHub
Gaurav Supal6GitHub
Jayanth6GitHub
Manimaran K6GitHub
Rachith H6GitHub
Tanay Mathur6GitHub
Maddy6GitHub
Abhishek Soni5GitHub
Barun5GitHub
Varad Patil5GitHub
Yash Kiran Ekhande5GitHub
Krishna Goutam5GitHub
Rohinthram5GitHub
Contributors with 1โ€“4 commits (click to expand)
ContributorCommitsGitHub
Akshay Rukade4GitHub
Vatsal Patel4GitHub
Ankur Gupta3GitHub
E Balakrishna3GitHub
Gaurav Gupta3GitHub
Harshit Singh Negi3GitHub
Pranav Karuvally3GitHub
Abinash Singh2GitHub
Harvi2GitHub
Kavya Manohar2GitHub
Pyae Sone2GitHub
S. Shiva Krishna Reddy2GitHub
Sangavi GR2GitHub
Manasi Yadav2GitHub
Aditya Bhattacharya1GitHub
Ashwith Rego1GitHub
Boddu Ajay1GitHub
Charaan1GitHub
GiGi Koneti1GitHub
Kusum Kisori1GitHub

| 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)

#ContributorCommitsGitHub
1Saurabh Bansode49GitHub
2Athul George37GitHub
3Nil Shah36GitHub
4Shanthi Priya36GitHub
5Anjali Jaiswal35GitHub
6Pranav P34GitHub
7Annesha Dey33GitHub
8Sunil Shetye33GitHub
9Hariom Thakur28GitHub
10Aditya Minocha23GitHub
11R. Krishnan23GitHub
12Ganderla Chaithanya22GitHub
13Anwesha21GitHub

๐Ÿ“ˆ 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

TypeDescriptionDifficulty
๐Ÿ› Bug FixesFix reported issues from the issue trackerโญ โ€“ โญโญ
โœจ New FeaturesImplement new functionality or enhance existing modulesโญโญ โ€“ โญโญโญ
๐Ÿ“ DocumentationImprove docs, docstrings, README, or Sphinx docs in docs/โญ
๐Ÿงช TestingAdd test cases or report bugs with reproducible stepsโญ โ€“ โญโญ
๐ŸŽจ UI/UXImprove the PyQt6 user interface and user experienceโญโญ
๐Ÿ“š ExamplesAdd new example circuits to the Examples/ directoryโญ
๐Ÿ“ฆ PackagingHelp with Flatpak, Snap, AppImage, or Docker buildsโญโญโญ
๐ŸŒ IntegrationImprove KiCad, Ngspice, GHDL, or Makerchip integrationโญโญโญ

๐Ÿ”ง Development Setup

Prerequisites

ToolVersionPurpose
Python3.6+Core application runtime
PyQt6โ‰ฅ 6.5.0GUI framework
KiCadLatestSchematic & PCB editor
Ngspice35+Circuit simulation engine
GitLatestVersion 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

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

RuleDetails
Reference an issueEvery PR must link to an existing GitHub issue
One commit per PRSquash multiple commits before submitting
Clear subject lineFormat: Fixes issue #N - Brief description
Add a bodyExplain what you changed and why

๐ŸŽจ Code Style

eSim follows PEP 8 โ€” the Python community's style guide.

RuleDetails
StylePEP 8 compliant
Indentation4 spaces (no tabs)
Line lengthMax 79 characters
DocstringsRequired for all public functions and classes
ImportsGroup by stdlib โ†’ third-party โ†’ local; one per line
Namingsnake_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

ChannelLink
๐Ÿ“ง Emailcontact-esim@fossee.in
๐Ÿ’ฌ Forumforums.fossee.in
๐ŸŒ Websiteesim.fossee.in
๐Ÿ“š Dev Docsesim.readthedocs.io

Thank you for contributing to eSim! โค๏ธ
Every contribution, no matter how small, makes a difference.