mob-tool


Namemob-tool JSON
Version 2.0.1 PyPI version JSON
download
home_pageNone
SummaryMob session management tool
upload_time2024-07-04 10:43:21
maintainerNone
docs_urlNone
authorrfst
requires_python>=3.11
licenseMIT License Copyright (c) 2023 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords mob mob-programming timer mob-programming-timer cli-tool remote-mob-programming remote-mobs mob-timer mob-tool
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```shell
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](https://pip.pypa.io/en/latest/installation/).

## Usage

### Starting a new session

To start a new session, use the following command:

```shell
mobt start <branch-name>
```

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

![Example of mobt start output](https://raw.githubusercontent.com/stavarengo/mob-tool/main/docs/start-output.png)

### Handing over to the next driver

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

```shell
mobt next
```

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

![Example of mobt next output](https://raw.githubusercontent.com/stavarengo/mob-tool/main/docs/next-output.png)

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:

```shell
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](https://raw.githubusercontent.com/stavarengo/mob-tool/main/docs/done-output.png)

## 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](https://raw.githubusercontent.com/stavarengo/mob-tool/main/docs/rollback-example.png)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mob-tool",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "mob, mob-programming, timer, mob-programming-timer, cli-tool, remote-mob-programming, remote-mobs, mob-timer, mob-tool",
    "author": "rfst",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/a4/1a/14428bb7de5abf08646b1fa83ab3e7b8ef35d7fe3d8466f9b3858eec772b/mob_tool-2.0.1.tar.gz",
    "platform": null,
    "description": "# Mob-Tool: `mobt`\n\nMob-Tool is a command-line tool designed to facilitate mob programming sessions for remote teams. The tool provides\nseveral features to help teams manage their sessions, including controlling the timer, switching the driver\nrole among team members, and simplifying the necessary Git commands to hand over the work to the next team member.\n\n> Mob programming is a software development approach where a team of developers works together on the same task at the\n> same time.\n\n## What changes does the tool make to the repository?\n\n- **No changes are made in the `main` branch:** All changes are made in a new feature branch, and you can choose the\n  name of the branch when you start the mob session.\n- **All Git commands executed by the tool are logged in the output:** This way, the team can easily see what changes are\n  being made to their repository.\n- **All commands are rolled back if any error occurs:** The commands to rollback are also logged in the output.\n\n## Installation\n\n```shell\npip install mob-tool\n```\n\n**Important!**\n> Please note that some operating systems might be equipped with the `python3` and `pip3` commands instead of `python`\n> and `pip` (but they should be equivalent). If you don\u2019t have `pip` or `pip3` available in your system, please check\n> out [pip installation docs](https://pip.pypa.io/en/latest/installation/).\n\n## Usage\n\n### Starting a new session\n\nTo start a new session, use the following command:\n\n```shell\nmobt start <branch-name>\n```\n\nHere's an example of the output of the `start` command:\n\n![Example of mobt start output](https://raw.githubusercontent.com/stavarengo/mob-tool/main/docs/start-output.png)\n\n### Handing over to the next driver\n\nWhen your time is up, pass the driver role to the next team member with the following command:\n\n```shell\nmobt next\n```\n\nHere's an example of the output of the `next` command:\n\n![Example of mobt next output](https://raw.githubusercontent.com/stavarengo/mob-tool/main/docs/next-output.png)\n\nNote that you must call `mob next` even if you didn't make any changes in the code, so the Mob-Tool can manage whose\nturn is next.\n\nThe next driver (in this example, Erik) can start working by running the same `mobt start <branch-name>` command.\n\n### Finishing the session when the feature is done\n\nWhen your feature is ready, you can end the session with the following command:\n\n```shell\nmobt done\n```\n\nThis will squash all the commits and push all the changes to the remote. All Git hooks will be executed for this final\ncommit. The hooks are always ignored during the `start` and `next` commands.\n\nHere's an example of the output of the `done` command:\n\n![Example of mobt done output](https://raw.githubusercontent.com/stavarengo/mob-tool/main/docs/done-output.png)\n\n## Development Setup\n\nTo set up the development environment, follow these steps:\n- Clone the repository\n- Create a virtual environment with `python -m venv venv`.\n- Install the app from the local repository with `pip install -e .`\n\ne.g.:\n```\nrm -rfv venv\npython -m venv venv\nsource ./venv/bin/activate\npip install -e .\n```\n\n## FAQ\n\n### What happens if one of the Git commands fails?\n\nIf one of the Git commands fails, all changes made to the repository are rolled back. Here's an example of the output\nwith a rollback in action:\n\n![Example of output with rollback](https://raw.githubusercontent.com/stavarengo/mob-tool/main/docs/rollback-example.png)\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2023  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "Mob session management tool",
    "version": "2.0.1",
    "project_urls": {
        "Say_Thanks": "https://saythanks.io/to/faelsta",
        "source": "https://github.com/stavarengo/mob-tool"
    },
    "split_keywords": [
        "mob",
        " mob-programming",
        " timer",
        " mob-programming-timer",
        " cli-tool",
        " remote-mob-programming",
        " remote-mobs",
        " mob-timer",
        " mob-tool"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "af4502f928aa71a14eb91fa10d16c7ef47da018db857f4ef7e74e5eda743d598",
                "md5": "d5f6ba9f097d2f6458eee33ccb6e1043",
                "sha256": "5bb52c8e197aa5b5c19f9705eea83c47a49ee0f63070be9a9440097803bbff5d"
            },
            "downloads": -1,
            "filename": "mob_tool-2.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d5f6ba9f097d2f6458eee33ccb6e1043",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 63466,
            "upload_time": "2024-07-04T10:43:19",
            "upload_time_iso_8601": "2024-07-04T10:43:19.245082Z",
            "url": "https://files.pythonhosted.org/packages/af/45/02f928aa71a14eb91fa10d16c7ef47da018db857f4ef7e74e5eda743d598/mob_tool-2.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a41a14428bb7de5abf08646b1fa83ab3e7b8ef35d7fe3d8466f9b3858eec772b",
                "md5": "ae758a95ea157dfe675579d93c0d25d6",
                "sha256": "3e7f8209827e1c7cf141080cde8fc15377d87a602928bcf2a172a61ccd2715e3"
            },
            "downloads": -1,
            "filename": "mob_tool-2.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ae758a95ea157dfe675579d93c0d25d6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 192571,
            "upload_time": "2024-07-04T10:43:21",
            "upload_time_iso_8601": "2024-07-04T10:43:21.336298Z",
            "url": "https://files.pythonhosted.org/packages/a4/1a/14428bb7de5abf08646b1fa83ab3e7b8ef35d7fe3d8466f9b3858eec772b/mob_tool-2.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-04 10:43:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "stavarengo",
    "github_project": "mob-tool",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mob-tool"
}
        
Elapsed time: 0.28076s