ABAP Code Review Guideline is out
A new guide on ABAP Code Reviews was added to the SAP Code Style Guides repository, which we want to briefly highlight in this blog post.
What’s it all about?
Change-based peer code reviews increase code quality by finding defects earlier and preventing them from polluting the main code line. They also enable continuous integration by registering automated checks as reviewers. These modern capabilities have been on the wish list of ABAP developers for some time.
Lars Hvam and I have surveyed current possibilities of applying git-based review platforms to ABAP code and give recommendations for authors and reviewers. We came up with a guideline and contributed it to the SAP Code Style Guides, an open source, grassroots project driven by the SAP community. You may know this project, for instance, from Klaus Haeuptle‘s recent blog post on Clean ABAP.
Where can I get it?
The latest released version contains an easily consumable PDF but you can also read it online.
What’s in it for me?
The guide discusses how to apply well-known code review flows as known from other programming languages also to ABAP.
We start with previous work like the following:
- ABAP code reviews with abapGit by Eduardo Copat, describing the general idea of exporting code to GitHub using abapGit to review it via Pull Requests.
- How we do ABAP code review using abapGit by Michael Pang, explaining how to use the abapGit feature transport to branch to review a CTS transport before it is released.
- Create a commit in Git when an ABAP task is released by Karin Spiegel, elaborating on code reviews per transport by using existing BAdI interfaces to commit changes per task release to a feature branch using gCTS.
- Static ABAP Pull Request Code Review with abapLint on Jenkins using piper-lib by Jaqueline Bonoto, giving a practical example setup using various tooling.
Then we suggest a number of code review best practices comparable to Google’s Engineering Practices documentation, before we survey existing tools like Git, GitHub, CTS, abapGit and gCTS, ATC and abapLint, and their extension points.
We finally sketch different collaboration scenarios, in which git-based code reviews can be set up for ABAP development projects and give examples for those, using abapGit and gCTS respectively.
How can I give feedback?
As always with open-source projects, contributions are welcome. Please do not hesitate to raise any issues. We love to hear from you!
Thanks for Sharing.
👏 and very nice that you put it into official style guides repo
Thanks for the contribution to Clean ABAP!
Thanks for sharing.. useful info..
Pull request feature for https://github.com/larshp/abapGitServer is coming soon. So reviews for private projects can be done directly on AS-ABAP.
Cool, this means the code does not have to leave the actual ABAP system, while still using some git features. abapGitServer is not optimized for large codebases(yet), but its open source and everyone can try it out 🙂
Thanks for sharing this, Christoph! This sparked many conversations in the community and we even dedicated an episode of our Mindset Nebula podcast to the code reviews. 🙂 It was a pleasure to host Lars Hvam as our special guest for this conversation. Can you imagine Lars actually does code review for some very lucky developers? 🙂
Thanks for the contribution 🙂