In this second episode of our recently completed Insum Insider live stream series, Vincent Morneau and Neil Fernandez go all-in on version control, repos and deployments, starting at 10:08 into the episode.
Episode Show Notes:
Guest panelists Oracle ACE Vincent Morneau and Senior APEX Consultant Neil Fernandez started by illustrating a best practice process of creating a new APEX project using version control tools.
Version Control, Repos and Deployments, an Audience Poll
Before starting the demonstration, an audience poll on version control was conducted. Results showed that 44% of participants used Git as their source control tool, followed by 28% for SVN. 22% of those polled specified that they weren’t using any source control software yet, but that they were looking at options.
An Insum template for the new project
Vincent and Neil chose Github, Git’s hosting service to demonstrate how to version control an APEX project.
To begin, Vincent described Insum’s “Starter-project-template” a “Blank Slate” Repo Template in GitHub containing folders you would normally use in the context of APEX development. These include APEX, packages, views, triggers, release and many more. All folders are meant to contain code pertaining exclusively to a project. The folders also contain detailed documentation on how to use them. This template also has automation tools to help create automated releases.
Demonstration of version control within the new project
Vincent and Neil began their example APEX project by copying the starter-project-template to create their own new repo, working in it from scratch discussing the structure and how to use it.
Neil (who for obvious reasons was not in the same location as Vincent) took the role of a contributor to the project in order for the pair to demonstrate their live interactions as they worked together in the repository.
For example, Vincent used the Branch feature to overview and validate Neil’s work before pushing it to the repository. Vincent’s sole access to the main branch gives him complete control over the project.
The two also demonstrated how to create issues and solutions including assigning a new issue to Neil, Neil fixing the issue creating a pull request and including a comment tag, Vincent validating the fix by examining the content of Neil’s commit in order to validate for the merge into the master branch.
Moving to an Automated Release
Vincent then demonstrated the repo deployment to a new environment (such as a to a UAT or pre-production environment), by showing how to create a release script.
Included in this release management demonstration was a section on the APEX application itself. Again, Vincent flagged a bug and Neil fixed it. Here it was highlighted that APEX is not natively friendly for code review. Yet, Neil’s fix was neatly laid out in GitHub for Vincent to see.
This is because Neil used Insum’s APEXcl to clearly identify the changes.
APEXcl, a new tool to leverage version control systems with your APEX apps
In this second part of the session, Vincent demoed APEXcl. APEXcl is a tool that leverages version controls systems with Oracle APEX. It allows you to extract the definition of an APEX application into very small files containing only relevant information that you need, into components your VCS can interpret.
This enabled Vincent to see the very specific changes that Neil had made to the application.
Vincent then demonstrated APEXcl.
A Free Licence to use APEXcl until October 15th!
After the repos and deployments demonstration, Vincent announced that APEXcl has now been made available free until October 15th. The free software and its website include detailed documentation and videos on how to use the tool. You can take advantage of this offer now to use APEXcl in order to get results similar to those of Vincent and Neil in their demonstration!
Go to https://apexcl.dev/ to download now.