⭐️ Code for IBM i 2024 review #2428
Replies: 4 comments
-
Quite a record of achievement, and genuinely transformative ("disruptive"?) of our discipline in a manner and of a magnitude only seen perhaps once a decade. Congratulations to all! |
Beta Was this translation helpful? Give feedback.
-
These efforts and those of previous years are changing the way we do things for the better in countless ways. Not only are we more productive but we are making things easier for people to learn/consume while showing off the power of this platform. Thank you all for the efforts!!! I have been able to accomplish more in 2024 than in all previous years of systems administration and development because of the efforts with VS Code and these extensions. THANK YOU!!! |
Beta Was this translation helpful? Give feedback.
-
I've added the link to this review to the the IBM i Reference Pages Blog @ http://ibmireference.blogspot.com/ on the IBM i VS Code Page. |
Beta Was this translation helpful? Give feedback.
-
This is the hope of the new generation of IBM i developers Thanks to all for their effort. |
Beta Was this translation helpful? Give feedback.
-
When I wrote the 2023 year-in-review for Code for IBM i, I thought that year was huge. 2024 took it a step further, with downloads and viewership doubling. I am excited to share all the cool things from 2024 in this post.
Community
We all work together
Of course, this year, more and more has been shared on LinkedIn and YouTube. I am a firm believer that most of our outreach has happened on LinkedIn as it seems most IBM i developers are there. Nonetheless, last year I shared our GitHub community statistics and showed excellent growth throughout the year. This year, pretty much all of the statistics, baring the contributions, have doubled.
On the bright side: more people are reading about and using using Code for IBM i. Props to all of the contributors, really! But, at the same time, more people creating issues, ideas and discussions does mean that the core team have had to spend more time replying and helping developers. Of course, this is the goal. But, for a majority of the contributors, this is a spare-time endevour.
Community members and advocates
People who create video content and blogs are contributors. Sadly we can't track those contributions as easily as we can git commits, but they are helping with our mission greatly. I don't think our numbers (shown above) would have doubled if it wasn't for these advocates.
Core contributors
This year, I am actually going to mention more than just the core-contributors here. I am going to write about the contributors that have helped in not only the core, but also the RPGLE and Db2 for IBM i extensions.
Translators
An important topic we continued to focus on this is localization. We had three new translation this year and of course, many users are happy because of their direct contribution:
I believe these translations came from the power of meeting people at the CEAC event in Europe.
Technical advancements
This year we have solved many technical challenges, like debugger problems, CCSID issues, improvements to the RPGLE support. I want to cover what some of these entail.
Component API
This year, we introduced the Component API. I wrote the initial draft to have a way to define optional features installed on the server. Seb extended this API to allow other extensions to add components. This means other extensions can use a standard API to check for features installed on the server. We use this in Code for IBM i a lot, and the database extension will be using it for the syntax checking feature.
TypeScript conversion
In previous years, Seb worked hard at converting the core extension entirely to TypeScript. Finally, as of EOY 2024, the RPGLE extension has also been converted to TypeScript. Not only did this bring a magnatude of type-safety, it also brought in runtime performance improvements due to
tsc
telling us what what I was doing wrong in some of the code.Improved debugger support 🧰
Before mentioning what happened with the debugger this year, I want to reiterate how the development of the debugger works. IBM create the Debug Service and the IBM i Debugger extension, both of which are closed source. The active developer of these is active in the Code for IBM i issues helping solve problems for our users. To make the IBM i Debugger easier to consume for Code for IBM i users, we have to add additional logic to Code for IBM i to manage certificates, start the debugger from the Object Browser, or start it from the active editor.
Seb has mostly led this effort in 2024 and without him, we might not have debugging as part of Code for IBM i at all. Every time changes beyond out control happen - like an update to the Debug Service - Seb is on top of it with a PR ready to go.
This year, we got support for SEP debugging. This means users can debug other IBM i jobs directly from VS Code.
CCSID overhaul 🌍
2024 was the year of the CCSID problems going away (🤞). I spent a solid two weeks writing, testing and debugging a pull-request to once-and-for-all solve the problem of CCSIDs across systems. It would not have been possible without Korinne Adler, who seemingly figured out the problem rather quickly and provided a solution for us. Here's how it went down:
Click me
This led us to creating a component (using our new Component API) called
cqsh
to solve the CCSID problems. Since then, it seems like a lot of CCSID issues have faded away, though we still encourage out users to ensure their system is setup correctly! It took a lot of testing. We had to write a way to change user profile CCSIDs in our testing system, and run our test suites 5 times over on 3/4 different systems each to ensure the CCSID issues would fade away. I personally want to thank Sanjula Ganepola for his rigorous testing.RPGLE fixed-format
Towards the end of the year, RPGLE inside of VS Code was given a lot of love. We converted the extension to be fully TypeScript, added support for fixed-format references, and enabled the workspace provider to find exports in entire library lists. That's a big list, and took a lot of testing to get right.
The biggest change was supporting fixed-format RPGLE for references. Previously, references was only supported in free-format RPGLE. Our parser didn't support fixed-format at all. But now, after a re-write of some of the core logic to the parser, we can get fixed-format references. This means improvements to the references and peek views.
For this, we had to bump up our test suites significantly. We went from around 250 tests to 800 in the space of two weeks. We had to add a way to include testing 3rd party libraries/packages written in RPGLE. This allowed us to grow our test cases without writing a lot of new code. It is awesome.
Lastly, we added support for the fixed-format ruler in VS Code - the one like you'd see in SEU!
SQL language features 🔥
The Db2 for IBM i extension got a lot of love this year. The biggest improvements are for the experience when writing SQL. The content assist got better, we added hover support, and coming before the end of the year is going to be a built-in syntax checker for Db2 for i SQL statements. On top of those, we made enhancements to the result set view. Including the ability to edit certain cells in the result set.
None of this would have been possible without Julia or Scott. They both are excellent testers and they are always on top of their game when making sure I do something correctly.
Final words
Last year, in the 2023 year-in-review, I mentioned that Code Coverage was going to be worked on this year. Sadly, I did not get to work on that yet. There are some blockers, since we also want to add a better testing extension in general, which would then include coverage results. I am hoping to work on that in 2025.
Even so, we got a lot of other cool thing done. I am proud of everyone involved. I think this is one of the coolest projects out their in the open-source world (but of course I would say that!). The best part about this project is how many people I get to communicate it. Sometimes it can be overwhelming, but most of the time it's just fab.
I am sure 2025 is going to be another great year.
-Liam
Beta Was this translation helpful? Give feedback.
All reactions