⭐️ Code for IBM i 2023 review #1745
Pinned
worksofliam
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
2023 was the biggest year yet for Code for IBM i. With more than 25000+ downloads on the VS Code Marketplace and more contributors than previous years, it has really shaped up to be a big one. Here is some of the highlights from this year.
Community
Bringing people together
It is so awesome to see how far Code for IBM i is reaching on the internet. I've seen posts on LinkedIn, Midrange, Ryver, YouTube, our own forum and even StackOverflow. It has brought people together because they see the need for good development tools for IBM i. As our user base has gotten bigger this year, we've been able to reach new audiences just by word of mouth.
Here are our GitHub repository (vscode-ibmi) insights from the last year:
Thank you to everyone who shares their Visual Studio Code and Code for IBM i knowledge!
Shoutout: community members and advocates
The growth of Code for IBM i this year has been awesome. The really interesting part is that I've only seen some of it. We have users across the globe. For example, this year there have been Code for IBM i articles from Japanese publisher iMagazine - how cool is that? I am sorry if I miss any, but here are some of the highlights for me.
Most contributors yet!
In 2023, we had 18 contributors - a contributors is someone who has made at least one commit to the Code for IBM i repository! To compare, in 2022 we had 13. While this is a small jump, I am so happy to have new contributors.
Shoutout: the core team
While I take pride in working on this project, it couldn't be done alone. Working on Code for IBM i really has two sides to it: managing issues created by users and writing the code. I think the core team would agree with me when saying "writing the code is the easy bit", because some of the issues we get are so weird due to how many unique IBM i setups their are. The four of us not only manage these odd issues, we also work on so many different parts of the code base and collaborate as a team often. I am so grateful for them because Code for IBM i would not be the same without them. Thank you to:
Pictured left to right: Sébastien, Liam and Christian. Now we need a photo with Joseph too!!
Bugs found and ideas from you
In 2023, 33 bugs were fixed. 26 of those bugs were from users and the remaining 7 were from the core team. 35 enhancement ideas were created and merged this year too, but more than half of those ideas were from the core team.
The discussion board got the most use in 2023, with most of the topics being created in the Q&A section!
For developers
In 2023 we had two big releases of Code for IBM i (2.0.0 and 2.5.0) and releases of lots of other extensions too. They all play a role in creating the best experience ever. Here are some of the highlights of the year!
The little bits add up
We add so many little features in Code for IBM i that don't direct affect developers, but can easily make an impact when they know the features exist. Here are some of our good ones from this year:
includePath
support vscode-rpgle#225Source date improvements
This year the Source Date handler system was completely re-written (a few times actually!). We introduced 'diff mode' to the source date handler. Instead of tracking which lines were editing line-by-line, we now 'do a compare' with the last saved version of the source member you're working on to understand what lines have changed. I really like this approach more, as it is more aligned with how git detects changes.
Integrated database support
With the help of my team at IBM, we released a new database extension. This new and improved version not only rocked improved performance, but also did a huge UX cleanup. With new views, new speed, and simple usability, it's a much better user experience. There is much more to come too!
I want to give a shoutout to my team at IBM for their hard work on the database extension:
Debugger support
IBM had graced us with the Debug Service which is installable via a PTF, as well as the IBM i Debugger extension, both of which are required to enable debugging IBM i programs inside of VS Code. Read more about debugging in our documentation. The Debug Service and extension are maintained solely by IBM and is not open-source.
CL support
VS Code had CL syntax highlighting for the longest time, but until this year didn't have content assist, outline view, and many other language features. Late 2022 I had the pleasure of working on a CL language server to add these things to VS Code - now we have them!
For maintainers
Code for IBM i is built not only to be a great extension, but is created in a manner that is easy to work and easy to extend. Let's dive in a little bit!
Full TypeScript conversion
This year the extension has been migrated to TypeScript completely. Sébastien really took the lead on this one with help from others at time, but he got us to the finish line. For our users this means nothing. But, for developers, it has made adding new features much safer and easier down the line. It has also made is easier for us to create an extensible API through the use of a TypeScript types interface.
API test suite
Earlier this year we'd had worked on building a test suite to ensure API changes won't break the entire extension (our API is pretty big!). We can simply launch the extension with a special flag and the tests will run automatically against the system you're connected to. We now have over 40 tests which cover a majority of our API - including SQL tests, source member tests and compiler tests.
We recommend all devs use our testing suite when contributing to our extension.
Reusable interface
If someone (or a business) is building their own VS Code extension, we offer an API where you can interact with the user-connected IBM i. This means you can run SQL statements, execute CL commands, etc, all from your own extension without managing any credentials.
This is how a number of our other extensions work, like the database extension. You can find more here:
The future
As the year comes to a close we start to think about what the next year will hold for Code for IBM i. We already have a plan for 3.0.0 of vscode-ibmi, but there is a lot of potential for growth in other areas too.
Database extension
We already have a working branch for Visual Explain (meaning you can try it now!) but I suspect it will hit the mainstream release by February. We also took down the Notebooks extension earlier this year so we can better integrate it into the Database extension where it belongs.
UI of Visual Explain subject to change.
Code Coverage is making a comeback
One of my goals for 2024 is to revive Code Coverage for the ILE environment. We actually had Code Coverage before, but took it down since there wasn't a lot of time to maintain it. As the Visual Studio Code team are working on a brand new test coverage API, sounds like it is time to work on making the best IBM i Code Coverage we can!
Continuing to improve the git flow
I will continue working on features to make working with git and IBM i easier. For example, we recently added the
&BRANCHLIB
variable so that branches can be tied to branch libraries for objects to be built in. I will take it one step further and ask the user if they want to create that library if it doesn't exist when they checkout to a branch.I also plan on adding better integration into VS Code for the two following technologies:
If we can simplify how git and IBM i interact, I hope the traction for it will pick up faster. Check out my post IBM i: actually using automated pipelines, builds and git on my blog to understand how all these technologies work together.
Final words
This was so fun to write! I enjoy working with our community and am so glad to see the continued growth with Code for IBM i. I think Code for IBM i alone cannot make an impact without the community around it and I want to encourage everyone to get involved - espcially if they want to make improvements to the extension or the ecosystem in general.
2024 is going to be another big one for IBM i and I am excited that Code for IBM i is part of that in one way or another.
Thanks for a great year, let's do it again
-Liam
Beta Was this translation helpful? Give feedback.
All reactions