📖
eVOLVER
  • eVOLVER Documentation Wiki
  • General
    • About Us
    • eVOLVER Community
      • Code of Conduct
  • Getting Started
    • Buying eVOLVER
    • Part Sourcing
    • Unboxing and Setting Up
    • Software Installation
      • DPU Installation
      • Electron App (GUI) Installation
    • Configuring Computer and Networking
      • Router Setup
    • Calibrations
      • Temperature Calibration
      • Optical Density Calibration
      • Pump Calibration
      • Manual Calibration - calibrate.py
  • Upgrade Base eVOLVER Hardware
  • Experiments
    • Starting an Experiment
      • Carboy Media Prep
      • Preparing Vials
      • Setup Waste Carboy
      • Sterilizing Lines
      • Loading Vials and Setting Initial Conditions
      • OD Blank
      • GUI Start Guide
      • Command Line Start Guide
      • Cleaning Up After Experiment
    • Growth Curve
    • Chemostat
    • Turbidostat
    • FAQs
    • Tips and Tricks
  • Guides
    • Use the GUI to Control Parameters
    • Building a Smart Sleeve
    • Making media bottles and splitters
    • Emergency Efflux
    • View the Server Log and Restart Server
    • Updating the eVOLVER Server
    • Change Your conf.yml File
    • Arduino Software Installation
    • Raspberry Pi Configuration
    • Command Line Usage
    • Millifluidics Guides
      • Designing Millifluidics Using Eagle
      • Constructing Laser Cut Millifluidics
      • Constructing Millifluidics via SLA Printing
      • Calibrating IPPs
      • Operating Millifluidics
  • Troubleshooting
    • Troubleshooting Overview
    • Experiment Troubleshooting
      • Contamination
      • Vial Overflow, Pump Failure, and Spills
      • Tubing and Connector Blockage and Bursting
    • Optical Density (OD) Readings
    • Vial Troubleshooting
      • Replacing Photodiodes and LEDs
      • Heating Element
      • Stirring
    • Server Troubleshooting
    • Vial Platform Troubleshooting
      • Motherboard Troubleshooting/Replacement
      • 12V Power Supply Troubleshooting/Replacement
    • GUI Troubleshooting
    • eVOLVER Maintenance
  • Hardware
    • Overview of Hardware Architecture
    • Overview of Fluidics
      • Tubing and connectors
      • Peristaltic Pumps
      • Fluidics box
    • Overview of Millifluidics
      • IPPs (Integrated Peristaltic Pumps)
      • Pressure Regulator
    • Vial Caps
      • Universal Vial Cap Construction Guide (Luer Connectors Only)
      • 5 and 7 Port Nylon Tubing Caps Construction Protocol
    • Smart Sleeve
      • Vial Board
      • 🌪️Stirring
      • Temperature
      • Optical Density
        • OD90 vs OD135
    • Motherboard Layout and Circuitry
      • 🌡️Arduino
      • Sensor/Actuator Board Slots
      • Pulse Width Modulation (PWM) Boards
      • Analog-to-Digital Converter (ADC) Boards
    • Raspberry Pi
    • Chassis
    • Light Blocker / Splash Guard
    • Known Issues
  • Software
    • Overview of Software Architecture
    • DPU
      • Calibration
      • custom_script.py
      • Experiment Data Files
      • eVOLVER.py
    • Arduino
    • Server (Raspberry Pi)
      • Calibration Files
      • Configuration Files (conf.yml)
    • Known Issues
  • Extensions
    • Adding A New Experimental Parameter
      • Power Supply
      • Specific Applications
      • Custom Calibration Code
    • Custom Experiments
      • ePACE
        • ATTiny1634 Writing
        • LUX Board Troubleshooting
      • Morbidostat
      • Extractor Column
        • Extractor Volume Maintenance
        • Experiment Start
          • Sterilizing Extractor Fluidics
          • Setting up your experiment
          • Using the extractor script
        • Extractor Analysis
        • Troubleshooting
        • Example protocols
      • Phototroph Growth
        • Setup Phototroph eVOLVER
        • Photo-eVOLVER Smart Sleeves
          • Photo-eVOLVER Smart Sleeve Construction Guide
        • Experiment Guide
    • Custom Fluidics
      • Adding a Third Pump Rack
      • Bubblers / In-Vial Aeration
        • Bubbler Construction Protocol
        • Bubbler Cleaning Protocol
      • Running the slow pumps
    • min-eVOLVER
      • About
      • min-eVOLVER Construction
        • Parts
        • Construction Protocol
      • Fluidics Setup
      • Software Installation and Startup
      • send_command.py
      • Calibrations
      • Starting an Experiment
      • ePACE with min-eVOLVER
        • [v1.1] ePACE with min-eVOLVER
      • Troubleshooting
    • Interfacing with Other Systems
  • Contributing
    • Guidelines for Contribution
    • Reporting a Bug / Hardware Failure
    • Documentation
      • Making a Forum Post
      • How to Edit the Wiki
    • Software Development
    • Hardware Development
Powered by GitBook
On this page
  • Making a code contribution
  • Getting Started
  • Contributing Code Changes via a Pull Request
  • Branches within eVOLVER
  • Pull Request Reviewers Guide

Was this helpful?

Edit on GitHub
Export as PDF
  1. Contributing

Software Development

PreviousHow to Edit the WikiNextHardware Development

Last updated 2 years ago

Was this helpful?

Making a code contribution

We use a "fork and pull" model for collaborative software development.

From the :

"The fork & pull model lets anyone fork an existing repository and push changes to their personal fork without requiring access be granted to the source repository. The changes must then be pulled into the source repository by the project maintainer. This model reduces the amount of friction for new contributors and is popular with open source projects because it allows people to work independently without upfront coordination."

Getting Started

  • Make sure you have a .

  • Create an issue in our issues tracker, assuming one does not already exist.

  • Fork the proper eVOLVER project on GitHub. For general instructions on forking a GitHub project, see and .

Contributing Code Changes via a Pull Request

Once you have forked the repo, you need to create your code contributions within a new branch of your forked repo. For general background on creating and managing branches within GitHub, see: .

  • To begin, create a topic branch from where you want to base your work.

  • For most cases, this will be the master branch.

You usually create a branch like so:

git checkout master
git checkout -b [name_of_your_new_branch]

You then usually commit code changes, and push your branch back to GitHub like so:

git push origin [name_of_your_new_branch]

When you are ready to submit your pull-request:

  • Push your branch to your GitHub project.

  • Open the pull request to the branch you've based your work on

Branches within eVOLVER

Each eVOLVER repository maintains three branches:

  • master: This reflects the current release of eVOLVER software. Typically you should not make PRs into this branch.

  • rc: Release candidate branch. This branch is for new feature development and testing before releasing into master. Once we are ready to release all the new features out we will merge this branch into master.

  • hotfix: This branch is used for bug fixes that need to immediately go into master and be released before other features in RC are ready. Once bugs are fixed in this branch, the changes are merged into master and rc.

Getting your changes reviewed

Once you've submitted your pull request, you want other members of the development community to review whether integrating your change will cause problems for any users or the maintainability of the software.

Reviewers may request you to rephrase or adjust things before they allow the changes to be integrated. If they do, commit the amendments as new, separate changes, to allow the reviewers to see what changed since they last read your code. Do not overwrite previously-reviewed commits with ones that include additional changes (by --amending or squashing) until the reviewers approve. Reviewers may request you to squash such amendment commits afterwards, or offer to push rewritten versions of your commits themselves.

Pull Request Reviewers Guide

If someone requests your review on a pull request, read the title and description and assign any other collaborators who would want to know about the proposed change.

Decide whether you think that your input is needed, and that the PR should wait for your further review before being merged. If not, un-assign yourself as a reviewer and leave a comment.

For more details on submitting a pull-request, please see: .

If you have an idea who might be able to spot such issues in the parts of the code and functionality affected by your changes, notify them by requesting a review using the Reviewers menu to the right of the summary you just wrote and/or @-mentioning them in a comment. Or reaching out them on .

GitHub Help Page of Using Pull Requests
GitHub account
Forking a Repo
Syncing a fork
Git Branching and Merging
GitHub Guide to Collaborating with issues and pull requests
the forum