IBM / sourceorbit

Dependency Management for IBM i projects
https://ibm.github.io/sourceorbit/
Apache License 2.0
19 stars 10 forks source link

ibmi-bob (`makei`) shim #36

Closed worksofliam closed 7 months ago

worksofliam commented 7 months ago

I would like to build a makei shim to re-implement ibmi-bob with the Source Orbit backend. Here are some of the benefits to this:

edmundreinhardt commented 7 months ago

@worksofliam My suggestion is that we have a -so option on BOB's makei and in that case the Rules.mk are no longer necessary because they can inferred from SourceOrbit (generated into .deps)

That way there is no duplication of effort between the two projects. SourceOrbit supplies the dependency information so users don't have to maintain them manually any more. If they prefer to maintain them (because of performance reasons when rescanning large project) they simply do not use the -so option.

worksofliam commented 7 months ago

Another idea I have considered is not doing this at all, but making the -bf make option take the .ibmi.json and Rules.mk files into consideration.

JDubbTX commented 7 months ago

Love this idea. I've been using Bob quite a bit lately, but haven't (as yet) tried out source orbit - so don't put too much stock in my response. With Bob, it can be a bit tedious to set up the Rules.mk files - so it would be awesome to have them automagically created. However, the Rules.mk files do offer the flexibility of changing build options for programs that are special. We developers like to maintain a sense of control and not hand over our lives to the robots completely. Its also nice to have a reference to 'how was this object built' - so maybe just create the Rules.mk file anyways. Have you seen the number of parms on a CRT* command? I'd like to see Bob eventually handle ALL of them, even the ones that are seldom used. Also, I like it that you can have source members that are skipped over by commenting (or not including them) in Rules.mk

edmundreinhardt commented 7 months ago

So to be clear, so can maintain existing Rules.mk files by updating/adding dependency information, while preserving compile parameter overrides?

worksofliam commented 7 months ago

@edmundreinhardt Yes, no matter which direction we go here with Source Orbit, we will respect parameter overrides and hardcoded dependencies.

worksofliam commented 7 months ago

Update to this: the attached PR implements the functionality I actually wanted.