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:
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]
withmain
as 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-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.
- 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
private
submodule which points to thehttps://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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a99dfed5ccb77733c81de4ea1e26b5dff847ef09307b8d071b878542ab7042b4 |
|
MD5 | 6145cb25ef7e8b0cb4983328be369f5a |
|
BLAKE2b-256 | 1a8e181cf55360c12d8721accdbd24d3ef63dca683e25e273293182e3b5c1798 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47e48aa259de5d3ba4215e4f2bfb2a6e09a40aad8db3cfa6328c2e1445d03cb6 |
|
MD5 | 2534abb98fe5cd576bb35a391b25078d |
|
BLAKE2b-256 | 0820c60b378a3cbcdce491dd746e34ab78f41c9a345d9d28c2d3f9487e1db12c |