Skip to main content

Gameta

Gameta is a powerful CLI tool that helps you to manage meta-repositories or metarepos. It allows you to create links to related repositories, make changes and sync them, and provides functionality to customise and apply other CLI commands to these repositories.

What is Gameta?

Gameta is a play on the word gamete (reproductive cells), and similar to how gametes form the building blocks for life, gameta helps to manage the many repositories that form the building blocks for more complex software.

System Requirements

Gameta requires Python 3.6+, it is designed to be multi-platform but currently is only tested in Linux environments.

Installation

Gameta can be easily installed and updated via pip:

$ pip install gameta  # install
$ pip install -U gameta  # update

Getting Started

Getting started is really easy.

gameta init
gameta init -g  # To initialise directory as a Git repo 

Gameta will extract git information and create the .meta file which stores all your project configurations.

{
  "projects": {
    "gameta": {
      "path": ".",
      "tags": ["metarepo"],
      "url": "https://github.com:genius-systems/gameta.git"
    }
  }
}

Note

If your project has not been initialised with Git, you can specify the --git or -g flag to perform a git init, but you will have to update the repository URL manually later on.


If your repository contains a .meta file generated by Gameta, simply run the following command to sync all linked repositories locally:

gameta sync

Adding a Repository

Run the following command to add a new repository.

gameta repo add -n GitPython -u https://github.com/gitpython-developers/GitPython.git -p GitPython

Note

The path variable is the relative path within the metarepo itself


You should see another entry under the projects object within the .meta file

{
  "projects": {
    "gameta": {
      "path": ".",
      "tags": ["metarepo"],
      "url": "git@github.com:genius-systems/gameta.git"
    },
    "GitPython": {
      "path": "GitPython",
      "tags": ["a", "b", "c"],
      "url": "https://github.com/gitpython-developers/GitPython.git"
    }
  }
}

You should also see the repository cloned to the relative path specified

Applying commands

Gameta provides a powerful toolkit to manage your set of repositories.

gameta apply -c "git fetch --all --tags --prune" -c "git merge"

The command above applies the following to all repositories:

  1. Fetches all git updates, tags and prunes redundant git artifacts
  2. Merges changes on the default branch

There's alot more that you can do with commands, see the Applying Commands page for more information

Best practices

Learn how to leverage on Gameta's capabilities in the Best Practices page

Documentation

Documentation can be found at Gameta Docs

Metadata

Release files for gameta 0.2.7

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

Source distribution (sdist)

Source distribution for gameta 0.2.7
File Size Uploaded
gameta-0.2.7.tar.gz 16.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gameta 0.2.7
File Interpreter ABI Platform
gameta-0.2.7-py3-none-any.whl Python 3 none any Details

Total release size: 37.7 kB

Release files / gameta-0.2.7.tar.gz

Download URL gameta-0.2.7.tar.gz
Size 16.9 kB
Tags Source
SHA-256 checksum
How to use checksums
fd92e5ad9a9a7a36f97775b4e677593c7102117ecf93eb3768da1cdd436ec13c
BLAKE2b-256 checksum
How to use checksums
05caf33a944be5c8773232075a3ff99857e094e54cd995da89fec8dac5020f85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.4 CPython/3.6.9 Linux/4.15.0-1092-aws

Release files / gameta-0.2.7-py3-none-any.whl

Download URL gameta-0.2.7-py3-none-any.whl
Size 20.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aea9d7b8acf6edd74942827a9f8ff418aa44d015ba84e388dcc8da15a73eeb27
BLAKE2b-256 checksum
How to use checksums
424344f34d5fbe69fe13d1088bc4f0d0eca960187297b8a8114d140c36ebc4ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.4 CPython/3.6.9 Linux/4.15.0-1092-aws

Release history Release notifications | RSS feed

This release

0.2.7 This release

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

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