Update on modularisation of Infusion and other projects conversation
Antranig Basman
antranig.basman at colorado.edu
Thu Nov 10 19:30:32 UTC 2016
Thanks, Alan - this is really useful research. I was expecting that we
would run into such roadblocks as we tried to get to grips with this
space - for example, making a monorepo out of gpii/windows and
gpii/universal. We will doubtless have to get our "git-fu" up to a level
it hasn't received since the original dark days since we constructed our
Infusion repo by importing the original SVN. Great to have this early
experience. I'm suspecting that we will not use "lerna" itself in the
end, and this only adds grist to that suspicion - but we will still need
to go through this git workflow in some form as we fuse and split
existing repos.
In terms of Infusion and Kettle specifically, I'm thinking that
something rather more complex will happen in this area - in that only
SOME of Kettle belongs within Infusion (perhaps the things we call
kettle-dataSource (itself split in two between node and portable
definitions), kettle-config and kettle-testing) and the rest of it will
be spun out into something we might call kettle-express, which can then
become a peer on equal terms with the existing gpii-express project -
which would then just become a consumer of the larger thing called
"infusion" rather than confusingly depending on a thing called "kettle".
Cheers,
A
On 10/11/2016 14:41, Harnum, Alan wrote:
> Thank you Antranig - a quick note on a related piece of this that's on
> that wiki page (reading it spurred me to try this late yesterday) - in
> trying to understand the "monorepo" pattern better, I worked a little
> trying to use Lerna to make a monorepo containing Kettle and Infusion.
>
> From reading the docs this workflow should look like the following:
>
> - follow the "Getting Started" instructions at
> https://github.com/lerna/lerna#getting-started
> - use "lerna import" on local copies of the Infusion and Kettle repos
> (Lerna will not import from a repo at a URL) to bring them under the
> Lerna repo with their commit histories
>
> I immediately ran into the issues described at
> https://github.com/lerna/lerna/issues/272 for both repos. Specifically:
>
> "lerna import ../lerna-imports/infusion" fails as follows:
>
> Errored while running ImportCommand.execute
> Failed to apply commit 029adc5.
> Error: Command failed: /bin/sh -c git am -3
> fatal: sha1 information is lacking or useless
> (packages/infusion/src/webapp/demos/html/2InlineEdit.html).
> error: could not build fake ancestor
>
>
> "lerna import ../lerna-imports/kettle/" fails as follows:
>
> Errored while running ImportCommand.execute
> Failed to apply commit 8e58cd7.
> Error: Command failed: /bin/sh -c git am -3
> error: Failed to merge in the changes.
>
>
> Preliminary conclusion: converting to a monorepo style with Lerna will
> require either some evolution in Lerna's tooling or some massaging of
> our existing repos. The suggested "git rebase --interactive" workaround
> mentioned
> at https://github.com/lerna/lerna/issues/272#issuecomment-255486762 did
> not work for either repo.
>
> I don't think I unearthed anything spectacularly useful here, but wanted
> to note what I tried & the immediate roadblock in case it saves others
> time in the future.
>
More information about the fluid-work
mailing list