Skip to content

1.1.Setup new repo

Hùng Lưu edited this page Mar 16, 2021 · 5 revisions

Codebase/ Setup new repo

About repo permissions

Repo's permissions should carefully selected on initilization due to differences in businesses, concerns and stages among our products. We prefer whitelisting over blacklisting approach, please select which people or teams can access or which type of accesses they have.

About repo types

Different repo structures

There are 2 common types of repo, the micro-repo (1) and mono-repo (2):

  • micro-repo (1) This classic guy works well for most of applications, but simple isn't always best, especially when you need to separate concerns into domains (single-responsibility packages)
  • mono-repo (2) is our common choice, perfect for necessarily sharing code and build processes / environments within a singular product, while effectively grouped its related components / packages into one place. It may come with some cons to be provisioned:
    • "humans struggle to tangibly understand domains that are theoretically separate when they are presented as colocated by the source code." (see "Microservices Architectural Patterns" Article)
    • Most of the available CI services won't distinguish / makes difficult to run tests for a particular app in a monolithic repository - we actually have to take notice of this, and facilitate this in our stuff.

Different repo usages

  • App repo
  • Lib repo

Provide essential configuration files

For the most projects we're having,