Using a mono-repository

Here is my 2cent,
If using mono repository, it will become very large and the history is hard to find.
But in the view of developer, I will prefer current design which per module per repo.
But if for packaging as a product (Erp), monorepo will be more acceptable because it can make a new user to easy setup and do not look for modules to setup.

However, it can do it in both.

  1. Still one module per repo
  2. Using sub repo module (.gitmodules) for product package
    then provide a sh/batch script to auto pull the module

.gitmodules

[submodule “modules/account_product”]
path = modules/account_product
url = GitHub - tryton/account_product: Mirror of tryton account_product module
branch = 5.4
[submodule “modules/stock_split”]
path = modules/stock_split
url = GitHub - tryton/stock_split: Mirror of tryton stock_split module
branch = 5.4
[submodule “modules/stock_product_location”]
path = modules/stock_product_location
url = GitHub - tryton/stock_product_location: Mirror of tryton stock_product_location module
branch = 5.4
[submodule “modules/account_invoice_stock”]
path = modules/account_invoice_stock
url = GitHub - tryton/account_invoice_stock: Mirror of account_invoice_stock
branch = 5.4
[submodule “modules/currency”]
path = modules/currency
url = GitHub - tryton/currency: Mirror of tryton currency module
branch = 5.4
[submodule “modules/stock_lot”]
path = modules/stock_lot
url = GitHub - tryton/stock_lot: Mirror of tryton stock_lot module
branch = 5.4
[submodule “modules/party”]
path = modules/party
url = GitHub - tryton/party: Mirror of tryton party module
branch = 5.4
[submodule “modules/country”]
path = modules/country
url = https://github.com/tryton/country.git
branch = 5.4
[submodule “modules/purchase”]
path = modules/purchase
url = GitHub - tryton/purchase: Mirror of tryton purchase module
branch = 5.4
[submodule “modules/sale”]
path = modules/sale
url = GitHub - tryton/sale: Mirror of tryton sale module
branch = 5.4
[submodule “modules/account”]
path = modules/account
url = GitHub - tryton/account: Mirror of tryton account module
branch = 5.4
[submodule “modules/purchase_request”]
path = modules/purchase_request
url = GitHub - tryton/purchase_request: Mirror of purchase_request
branch = 5.4
[submodule “modules/account_invoice”]
path = modules/account_invoice
url = GitHub - tryton/account_invoice: Mirror of tryton account_invoice module
branch = 5.4
[submodule “modules/stock”]
path = modules/stock
url = GitHub - tryton/stock: Mirror of tryton stock module
branch = 5.4
[submodule “modules/purchase_requisition”]
path = modules/purchase_requisition
url = GitHub - tryton/purchase_requisition: Mirror of purchase_requisition
branch = 5.4
[submodule “modules/company”]
path = modules/company
url = GitHub - tryton/company: Mirror of tryton company module
branch = 5.4
[submodule “modules/product”]
path = modules/product
url = GitHub - tryton/product: Mirror of tryton product module
branch = 5.4
[submodule “modules/dashboard”]
path = modules/dashboard
url = GitHub - tryton/dashboard: Mirror of tryton dashboard module
branch = 5.4

Would it work though? It’s not uncommon to have multiple reviews for one issue on the bugtracker.

I just tested to push two different topics with the same name. The last to push is prevented because the topic already exists. So this prevent concurrency with the same name.
But any way, I think the topic names should contain issue number but not only. I would suggest to have a meaningful with in addition the issue number like disable-cache-issue9045.

IMHO your proposal is similar what we currently do with Mercurial Subrepositories. Please compare with tryton-env: log

I am sure this must have been discussed earlier, but out of curiosity any particular reason for using mercurial instead of git, Github of most of the testing with git ops and git actions.

The majority of core developer prefer the simplicity and cleanliness of Mercurial over the complexity and incoherence of Git. Also mercurial is way easier to learn.

2 Likes