Thanks Edmund, this is really interesting. I was just discussing with a colleague the yesterday about BOB and how it looked like a nice project but the last time I tried to play with it, it had some limitations as I remember. I look forward to seeing what's new!
Tim.
________________________________
From: WDSCI-L <wdsci-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of Edmund Reinhardt <edmund.reinhardt@xxxxxxxxxx>
Sent: 30 September 2021 22:20
To: Steve Ferrell via WDSCI-L <wdsci-l@xxxxxxxxxxxxxxxxxx>; Armand Cohen <Armand.Cohen@xxxxxxxxxxxxxxx>; John Fellner <John.Fellner@xxxxxxxxxxxxxxx>; James Littlejohn <James.Littlejohn@xxxxxxxxxxxxxxx>
Cc: Eric Simpson <esimpson@xxxxxxxxxx>; Tongkun Zhang <Tongkun.Zhang@xxxxxxx>; William Xiang <William.Xiang@xxxxxxx>; Barbara Morris <bmorris@xxxxxxxxxx>; Rob Cecco <cecco@xxxxxxxxxx>
Subject: [WDSCI-L] Resources to integrate BOB into RDi
Hi Steve and John
As promised here is the information to help you get started with Bob and
integrating it in RDi.
All of the following is contained in the folder
https://ibm.box.com/s/9vsgmoaar4n1l9x32q4j4s6wd2e3n7ce
Include the text below which is a boxnote in that folder.
The most up-to-date version of all this information will remain there and
you are welcome to collaborate in that space.
The BOB provides very flexible IBM i application development where the true
copy of everything lives in git and can be very easily cloned into a
workspace and developed and built.
The directory structures and file naming is very expressive.
BOB is completely open source with permissive licensing and is found here
https://github.com/IBM/ibmi-bob
A sample project showing how to work with many different source types in
BOB is found here
https://github.com/edmundreinhardt/bob-recursive-example
See the Word document on metadata for details.
https://ibm.box.com/s/9vsgmoaar4n1l9x32q4j4s6wd2e3n7ce
All artifacts are representable in git even those that are not compiled.
There are "pseudo-source" CL scripts to create objects like BNDDIR, MSGF,
etc.
There are specific SQL file types that create specific SQL objects like
TABLE, VIEW, SQLPRC etc.
See the mapping between member types and the language parser here
https://ibm.box.com/s/kscnzctp46awzbhin9i276zatwse3mbz
1) A project has been loaded into RDi using the standard EGit mechanisms.
(Of course RDi could layer something on top to simplify but it will work
just out of the box).
2) The full power of RDi can be used to edit the source in the project.
There will be no delays for saving. Parsers can give instant validation.
To enable this we need
a) file extension mapping - see the MemberTypes.xlsx for a mapping from
member type to source type (and object type)
https://ibm.box.com/s/kscnzctp46awzbhin9i276zatwse3mbz
3) RDi needs to push these files to a designated sandbox directory in IFS
(typically under the home dir) By default this could be ~/<project-name>
a) Push technology could use rsync as that is the fastest and most powerful
way of keeping 2 directory hierarchies in sync. On windows this will
require installing cygwin and rsync and sshpass. On the IBMi you would
also need a copy of rsync by 'yum install rsync'.
Or you could install/bundle some putty technology. Or you could use JT400.
Or ...
You can find a couple of batch files and sh scripts that will do this for
Windows/Mac/Linux in the scripts dir.
b) You will also have to provide ssh authentication either via a password
or via a private key
Sample scripts for both push and build for both Windows (bat) and Mac/Linux
(sh) are found in this directory
https://ibm.box.com/s/t455b9l3rwv67kfley3mlvphtlxgfpwg
4) RDi needs to invoke BOB to do the build.
This will require setting environment variables for any variables defined
in iproj.json.
For a full build the command 'makei all' is invoked. It builds all out of
date source and their dependencies.
For compiling an individual source file 'makei -k source-file' is invoked.
It builds the binary for that source and anything it depends on.
Once built the .evfevent files are all pulled back to a .evfevent directory
in the root of the project.
Loading these eventf into RDi Error List View should be straightforward
There will also be a logs directory containing 2 different files
The outputlog is simple the stdout of the make.
But the joblog.json has all of the compile commands and their messages and
even second level help (which RDi never had).
Rendering this in either its own view or the Commands Log should also be
straight forward.
The schema of that json file and an example is also found here
https://ibm.box.com/s/lsiro3mcqnpcu9yeevoe84lmig16yh8a
|
|
|Edmund Reinhardt
|
|Rational Developer for i Architect
|
|IBM
|p:
| 905 413 3125
|w:
| ibm.biz/rdi_hub e:
| edmund.reinhardt@xxxxxxxxxx
|
--
This is the Rational Developer for IBM i (WDSCI-L) mailing list
To post a message email: WDSCI-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/wdsci-l
or email: WDSCI-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
https://archive.midrange.com/wdsci-l.
Help support midrange.com by shopping at amazon.com with our affiliate
link:
https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.