Software Dependency Management System??
A software dependency management system is a tool or process used to identify, track, and control the dependencies between different components of a software project. The Source Orbit Extension is included in the recommended Visual Studio Code for IBM i installer package - IBM i Development Pack
Source Orbit is a dependency management system designed specifically for IBM i projects.
Quite simply, Source Orbit helps developers manage and understand their source code, especially when using Git for languages like RPGLE, CL, DDS, and SQL. Here are some key features and benefits of Source Orbit:
That already sounds pretty cool right?
So, what are the benefits for IBM i Programmers:
How do we install Source Orbit?
Source Orbit installs as both a VS Code extension and CLI tool. But I firmly suggest you install Source Orbit from the recommended package - IBM i Development Pack
How to structure your Source Code with Source Orbit
It is recommended that the source file name matches the resulting object name. For example:
- SOMETHING.pgm.rpgle becomes the SOMETHING.PGM object.
- SOMETHING.cmd becomes the SOMETHING.CMD object.
As member text is traditionally tied to source members, it is no longer supported in a standard hierarchical file system.
Three options are available for associating descriptive text with source code:
(1) Include description in source file name (my preferred option)
- SOMETHING-a_program_description.pgm.rpgle becomes the SOMETHING.PGM object with a description of "a program description".
- SOMETHING-A_Command_Description.cmd becomes the SOMETHING.CMD object with a description of "A Command Description".
(2) or you can use %TEXT in your source
You can include %TEXT: in comments within your source code to add descriptions. This approach is compatible with any programming language.
or you can include the %TEXT in the create statement:
(3) Or you can use TEXT option (in RPGLE)
You can use the TEXT keyword in the H-spec or CTL-OPT operation code to define descriptive text.
eval x = y + 1;
Source Code Extensions
| Extension | Extension meaning | Notes |
|---|---|---|
sqlrpgle | RPGLE (SQL) | Can use .pgm notation |
rpgle | RPGLE | Can use .pgm notation |
clle | CLLE | Can use .pgm notation |
cl | CLLE | Can use .pgm notation |
clp | CL (OPM) | Should be renamed to clle |
pf | Physical File | Table |
lf | Logical File | View/Index |
dspf | Display File | |
prtf | Printer File | |
msgf | Message filee | |
sql | Any SQL object | Type determined by create statement |
table | SQL table | Expects CREATE TABLE |
view | SQL view | Expects CREATE VIEW |
index | SQL index | Expects CREATE INDEX |
alias | SQL alias | Expects CREATE ALIAS |
sqlalias | SQL alias | Expects CREATE ALIAS |
sqlprc | SQL procedure | Expects CREATE PROCEDURE |
sqludf | SQL function | Expects CREATE FUNCTION |
sqludt | SQL table function | Expects CREATE FUNCTION |
sqltrg | SQL trigger | Expects CREATE TRIGGER |
sqlseq | SQL sequence | Expects CREATE SEQUENCE |
bnd | Binder source | |
binder | Binder source | Should be renamed bnd |
cmd | Command |


