Skip to content

Latest commit

 

History

History
87 lines (58 loc) · 3.45 KB

concept.md

File metadata and controls

87 lines (58 loc) · 3.45 KB

About the concept

It's a lego based concept.
Means you can add or exchange parts of it (bricks).

lego-based

This project comes with 2 parts:

source-list

📝 Notice:
Here I'm using git.
Since it's a lego based concept, git is recommended but not necessary to use.

Object Builder for i (OBI)

This is a backend processing tool.
It can be used to execute several tasks:

  • generates the compile list
  • runs the build
  • creates a summary report

This tool needs to be installed on you IBM i to run the build commands. (2nd part in the picture above.)

For the first part (get compile list) OBI can also be located on your PC.
In my first project I used OBI ony on IBM i.
Unfortunately IBM i is not optimized for many IFS processing. So it can slow down this task if the machine weak.
Fortunately it doesn't matter on which system OBI is running for the first part.
This results in great performance. Specially if your IBM i is not that fast.

OBI is supposed to be independed by any project.
Means you can reuse the single OBI setup for different projects.
All configurations are located directly in each project like etc/app-config.toml which is located in your project directory.

IDE integration (IBM i Build with OBI)

This is the "cockpit".
It manages the communication between OBI and your IDE

Every task will be done by a bash script (located in scripts/).
If you choose an IDE you need to find a way to easily execute them.

  • In RDi
    You can define the scripts in External Tools
    RDi
  • In VSCode
    You can use plugins to get them executed (e.g. Action Buttons) vscode-buttons

Your sources are located here in src/.

It also provides necessary configurations to OBI for building process.
(etc/app-config.toml, etc/dependency.toml, ...)

The process step by step

source-list

  1. OBI is looking for changed sources
    The source hash value will be compared with the value stored (from last build) in etc/object-builds.toml
  2. OBI generates a compile list (build-output/compile-list.json)
  3. IBM i Build with OBI synchronise all sources to IBM i
    Every developer should have his own build directory (usually somewhere in /home/$USER)
  4. OBI runs the generated build from build-output/compile-list.json
  5. At the end IBM i Build with OBI gets all logs and the report summary

Compile settings (etc/app-config.toml)

You can define settings and compile command ...

  • Global
    • For each source type
  • Individual
    • For each source

source-list