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:
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]withmainas the default branch.
- All Human Compatible repositories are found at
- 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-compatibleis created. This branch is then pointed to by the submodule within the monorepo. - The
main/masterbranch of the forked repo is to have no extra commits with respect to the upstream repository.
- All third party repositories are forked into the Human-Compatible
organisation and a branch called
- Any submodule which must itself be private is instead to be included within
the
privatesubmodule which points to thehttps://github.com/Human-Compatible/privaterepo.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| humancompatible-0.0.0.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|