alavrik / piqi

Piqi – universal schema language: JSON, XML, Protocol Buffers data validation and conversion
http://piqi.org
Apache License 2.0
246 stars 36 forks source link

Merge piqi-ocaml with piqi #73

Open ivg opened 2 years ago

ivg commented 2 years ago

We started the discussion at https://github.com/ocaml/opam-repository/pull/21947 but let's continue here. Dune works perfectly with monorepos (i.e., repositories that contain several projects under the umbrella of one project). It may even handle vendored code for you. As far as I can tell from the Makefiles, there are already some cross-project depdencies between piqi and piqi-ocaml. Moreover, piqi depends on piqi-ocaml to generate files and piqi-ocaml, depends on piqilib that is provided in piqi. Managing such dependencies without merging two repositories into a single repository is impossible without relying on subpar methods, like installing them side-by-side in the single repository. In addition, even without touching tests and bootstrapping scripts, just merging those repositories together will allow us to use dune-release that fully automates the whole release process. So that in the end, the whole release of three opam packages will be just one keystroke. So, what are your thoughts?

alavrik commented 2 years ago

Hi Ivan, I think this is good idea. Thanks for bringing it up and explaining the benefits.

Historically, I separated the two repositories as I thought there would be more language implementations and I wanted all including OCaml one to depend on piqi explicitly and avoid coupling of changes and releases. But this as you pointed out complicates the logistics for managing all things OCaml. (Piqi only depends on piqi-ocaml for bootstrap, but still separating the repos introduces friction even there).

Let me try moving piqi-ocaml over as the first step and then let's coordinate on further changes. It would be worth bringing things sufficiently up to date wrt dune, sedlex, warnings, etc. I'll find some time early next week.