Skip to main content

No project description provided

Project description

Human Compatible

[What we stand for goes here]

Why a monorepo?

See the following for why an organisation might want to organise their code as as monorepo:

https://monorepo.tools/

In practice, so as to be more compatible with what open source contributors generally expect, this is a monorepo which contains within it git submodules. This makes it not a "pure" monorepo. But, nevertheless, it should manage to achieve the best of both worlds.

Specifics

The goal of this public monorepository is to provide a single integration repository. With the following benefits:

  • External parties can readily reproduce the integration configuration of our infrastructure.
  • Everyone at Human Compatible utilises a common integration code base
  • GitHub integration testing can be run across inter-dependent Human Compatible libraries.

We make heavy use of git submodules so that smaller libraries are readily able to be spun out into their own repo. The benefit of this is:

  • We still get the above monorepo benefits
  • If an external party just wants to interact with one library, they only need to be exposed to a smaller repository
  • Easier for new-comers to understand the smaller repos

Licensing

Everything within the public monorepo is licensed under the Apache-2.0 license.

Git submodules are licensed according to their respective repos.

Usage of git submodules

Git submodules are used in the following ways:

  • Submodules for Human Compatible developed and maintained public libraries are stored under libs/[submodule].
    • All Human Compatible repositories are found at https://github.com/Human-Compatible/[submodule] with main as the default branch.
  • Submodules for third party packages are within third-party/[submodule]
    • All third party repositories are forked into the Human-Compatible organisation and a branch called human-compatible is created. This branch is then pointed to by the submodule within the monorepo.
    • The main / master branch of the forked repo is to have no extra commits with respect to the upstream repository.
  • Any submodule which must itself be private is instead to be included within the private submodule which points to the https://github.com/Human-Compatible/private repo.

Adding a third party submodule

After forking the third party repository into the Human-Compatible organisation add the submodule to the monorepo. Below is an example achieving this for the cal.com repository:

git submodule add -b human-compatible ../cal.com.git third-party/cal.com

Make sure to use a "relative URL" to the submodule, so that when someone is cloning it they are free to use either https or ssh.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

humancompatible-0.0.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

humancompatible-0.0.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file humancompatible-0.0.0.tar.gz.

File metadata

  • Download URL: humancompatible-0.0.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.5 Linux/5.19.0-43-generic

File hashes

Hashes for humancompatible-0.0.0.tar.gz
Algorithm Hash digest
SHA256 a99dfed5ccb77733c81de4ea1e26b5dff847ef09307b8d071b878542ab7042b4
MD5 6145cb25ef7e8b0cb4983328be369f5a
BLAKE2b-256 1a8e181cf55360c12d8721accdbd24d3ef63dca683e25e273293182e3b5c1798

See more details on using hashes here.

File details

Details for the file humancompatible-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: humancompatible-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.5 Linux/5.19.0-43-generic

File hashes

Hashes for humancompatible-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 47e48aa259de5d3ba4215e4f2bfb2a6e09a40aad8db3cfa6328c2e1445d03cb6
MD5 2534abb98fe5cd576bb35a391b25078d
BLAKE2b-256 0820c60b378a3cbcdce491dd746e34ab78f41c9a345d9d28c2d3f9487e1db12c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page