Skip to main content

Mob-Tool: mobt

Mob-Tool is a command-line tool designed to facilitate mob programming sessions for remote teams. The tool provides several features to help teams manage their sessions, including controlling the timer, switching the driver role among team members, and simplifying the necessary Git commands to hand over the work to the next team member.

Mob programming is a software development approach where a team of developers works together on the same task at the same time.

What changes does the tool make to the repository?

  • No changes are made in the main branch: All changes are made in a new feature branch, and you can choose the name of the branch when you start the mob session.
  • All Git commands executed by the tool are logged in the output: This way, the team can easily see what changes are being made to their repository.
  • All commands are rolled back if any error occurs: The commands to rollback are also logged in the output.

Installation

pip install mob-tool

Important!

Please note that some operating systems might be equipped with the python3 and pip3 commands instead of python and pip (but they should be equivalent). If you don’t have pip or pip3 available in your system, please check out pip installation docs.

Usage

Starting a new session

To start a new session, use the following command:

mobt start <branch-name>

Here's an example of the output of the start command:

Example of mobt start output

Handing over to the next driver

When your time is up, pass the driver role to the next team member with the following command:

mobt next

Here's an example of the output of the next command:

Example of mobt next output

Note that you must call mob next even if you didn't make any changes in the code, so the Mob-Tool can manage whose turn is next.

The next driver (in this example, Erik) can start working by running the same mobt start <branch-name> command.

Finishing the session when the feature is done

When your feature is ready, you can end the session with the following command:

mobt done

This will squash all the commits and push all the changes to the remote. All Git hooks will be executed for this final commit. The hooks are always ignored during the start and next commands.

Here's an example of the output of the done command:

Example of mobt done output

Development Setup

To set up the development environment, follow these steps:

  • Clone the repository
  • Create a virtual environment with python -m venv venv.
  • Install the app from the local repository with pip install -e .

e.g.:

rm -rfv venv
python -m venv venv
source ./venv/bin/activate
pip install -e .

FAQ

What happens if one of the Git commands fails?

If one of the Git commands fails, all changes made to the repository are rolled back. Here's an example of the output with a rollback in action:

Example of output with rollback

Metadata

Release files for mob-tool 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mob-tool 2.0.1
File Size Uploaded
mob_tool-2.0.1.tar.gz 192.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mob-tool 2.0.1
File Interpreter ABI Platform
mob_tool-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 256.0 kB

Release files / mob_tool-2.0.1.tar.gz

Download URL mob_tool-2.0.1.tar.gz
Size 192.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3e7f8209827e1c7cf141080cde8fc15377d87a602928bcf2a172a61ccd2715e3
BLAKE2b-256 checksum
How to use checksums
a41a14428bb7de5abf08646b1fa83ab3e7b8ef35d7fe3d8466f9b3858eec772b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.9

Release files / mob_tool-2.0.1-py3-none-any.whl

Download URL mob_tool-2.0.1-py3-none-any.whl
Size 63.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5bb52c8e197aa5b5c19f9705eea83c47a49ee0f63070be9a9440097803bbff5d
BLAKE2b-256 checksum
How to use checksums
af4502f928aa71a14eb91fa10d16c7ef47da018db857f4ef7e74e5eda743d598
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.9

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files

2.0.0

2 release files

1.0.33

2 release files

1.0.32

2 release files

1.0.28

2 release files

1.0.27

2 release files

1.0.26

2 release files

1.0.25

2 release files

1.0.24

2 release files

1.0.22

2 release files

1.0.21

2 release files

1.0.20

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page