In this TechTip, I’ll talk about what it takes to be part of the open-source ILE community, as well as what ILE content is available today.
Hi, everyone! This is my first article on MC Press, with many more to follow hopefully. My name is Liam Allan, and I am only 19 years young. I’ve been working with the IBM i platform since 2014 (when I was 17), and I mainly focus on RPG in my career, but I love to dabble in anything ILE and PASE in my own time. I enjoy developing open-source software (OSS) for people to use on IBM i, and I also love helping people learn about open source and how it can benefit them.
When I say “open source,” I do not mean the code is hosted somewhere and people can download and use it. What I do mean is people can collaborate together to improve or add to that code that’s hosted somewhere. The key point to open source is that it brings people together.
The reason ILE programs aren't really open source yet is because people are still developing in source files, not the IFS. There's nothing wrong with this! But Git won't support the object-based file system, and Git is the most important tool when developing open-source software. If you want your project to be open-source, you want to use Git. It's available on every platform these days, even IBM i (as a PTF too; thanks, IBM!), so there really is no excuse. Git is fast, free, completely open source, and supported by millions around the world if you ever need support for it.
If you don’t know what Git is, you can use this post as a learning experience. Imagine a repository as the base of an application, where all your application code would live in a single directory on the IFS. A branch would be the same as a “change request,” allowing you to try out code or make a bug fix without affecting your whole application. Commit logs are fantastic for seeing what changes people have done, and you even have the option to roll back commits easily. Do you use your change management software to make releases of your applications? Git can do that, with what Git calls “tags.”
From the Git website: Git has the ability to tag specific points in history as being important. Typically people use this functionality to mark release points (v1.0, and so on).
Imagine change management software, minus the price and deployment tools—that’s what Git is. Git is source change-management software. Every Git tutorial you can find on the Internet will work on your IBM I; it's all the same software.
If you're an RPG developer, stop using fixed-format when writing new software (including all declarations). Open source is about bringing people together to work on a project, and everyone on the Internet can see your project. You don't want to scare them off because all they can see is fixed-format; don't forget, you'd be scaring them away from RPG, not just your project.
Open-source ILE that uses Git to manage the source does exist:
- Brian Garland’s CRTFRMSTMF allows you to compile any source from the IFS that’s currently not supported on IBM i (commands, DDS, CL, etc.).
- Chris Hird’s FTPCLNT is his own FTP client completely written in ILE C.
- Buck Calabro’s SEUEXIT tool adds some extra functionality to SEU.
- The list goes on.
Something that these projects have in common (other than being open source), is that they all support the use of the Relic Package Manager. RPM (for short) is another open-source project that allows people to download and build (cool word for compile) all sources from a repository with a single command (how cool is that?). A package manager was something that ILE was lacking. PHP has Composer, NodeJS has NPM, Python has pip, UNIX has the GNU make utility. It was only a matter of time for IBM i to have something.
Open-source isn’t just about writing software; it’s also about community and collaboration. Many groups are available to help get you kick-started. If you haven't seen the IBM i OSS group on LinkedIn, join it now. Everyone will offer you help on making your projects open source (not just ILE either—PHP, Node, and plenty more too). Join the IBM i OSS on Ryver and talk to the members in real time; it could make collaborating easier. Join the OpenSource mailing list on Midrange.com; it was set up by David Gibbs days after the Open-Source Roundtable at COMMON U.S. this year (thanks, David). For more resources, take a look at the Open Source page on the COMMON website. Write blogs about how you've used open source. We all want to know!
Everyone in these groups will help you with anything, be it setting up Git, understanding options for moving your code base to the IFS, or getting your project onto a website like GitHub or BitBucket. You'll find that most communities on other Linux and Windows platforms use and contribute to open source. If the IBM i community doesn't, we risk falling behind. Let's not let that happen.
In the following articles, I’ll talk about the steps required for moving your code base to the IFS and then setting up Git for that code base.