Skip to main content

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.

Metadata

Release files for humancompatible 0.0.0

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

Source distribution (sdist)

Source distribution for humancompatible 0.0.0
File Size Uploaded
humancompatible-0.0.0.tar.gz 5.9 kB Details

Built distribution (wheel)

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

Total release size: 12.3 kB

Release files / humancompatible-0.0.0.tar.gz

Download URL humancompatible-0.0.0.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a99dfed5ccb77733c81de4ea1e26b5dff847ef09307b8d071b878542ab7042b4
BLAKE2b-256 checksum
How to use checksums
1a8e181cf55360c12d8721accdbd24d3ef63dca683e25e273293182e3b5c1798
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.0 CPython/3.10.5 Linux/5.19.0-43-generic

Release files / humancompatible-0.0.0-py3-none-any.whl

Download URL humancompatible-0.0.0-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47e48aa259de5d3ba4215e4f2bfb2a6e09a40aad8db3cfa6328c2e1445d03cb6
BLAKE2b-256 checksum
How to use checksums
0820c60b378a3cbcdce491dd746e34ab78f41c9a345d9d28c2d3f9487e1db12c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.0 CPython/3.10.5 Linux/5.19.0-43-generic

Release history Release notifications | RSS feed

This release

0.0.0 This release

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