Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
This is an attempt to show how we can work on new features in its own app version or even on a different Joget server by making use of GIT.
Beware that there are GIT commands used in this article, so, make sure that you are comfortable working around GIT.
This is so each feature development would be carried out without the influence of another feature being developed at the same time.
In this example, we have a "Meeting" app and the table below describes works to be carried out.
App Version | Description |
---|---|
1 | Modify request form. |
2 | Add calendar menu to the app. |
Figure 1: Completed work on app version 1
Figure 2: Completed work on app version 2
When all features are developed and tested in v1 and v2, we are now ready to merge them. To preserve the work already done, we will clone v2 into a new copy, v3. Then we will attempt to perform the merging in v3 itself.
As shown in figure 2 below, bring up the "App Configuration Management" screen, select version 2, and click on "New Version".
Figure 3: Clone app version 2 into 3
Once the version is created, navigate to the newly created version ( i.e. wflow/app_arc/meeting/meeting_3 ) from your command line. We are going to merge v1 and v3 through GIT commands below.
Figure 4: Merge app version 1 and 3 using GIT
git remote add v1 ../meeting_1 git fetch v1 git merge v1/meeting_1 meeting_3 --allow-unrelated-histories
Once we have merged them, if there are any conflicts, we will need to resolve them. In the figure shown below, we can see that there are 4 conflicted files.
Figure 5: Resolving Conflicts
In this case, we are making use of Visual Studio Code to inspecting the conflicted files and resolve them.
Figure 6: Resolving Conflicts using Visual Studio Code
To adopt changes coming from v1, we choose "Accept Incoming Change". And for changes made in v2, we choose "Accept Current Change".
Once all conflicts are resolved, we can then commit merge.
Figure 7: Commit Merge
Going back to the Joget screen, navigate to "App Configuration Management" > "Git Configuration", turn on "Auto Sync DB from GIT" as shown in the figure below.
Figure 8: Turn on Auto Sync DB from GIT
Click anywhere on the screen (i.e. navigate to "Properties & Export" or open any builder of this app) to trigger the sync.
INFO 16 Jun 2021 17:43:34 org.joget.apps.app.service.AppDevUtil - Change detected (Wed Jun 16 17:41:57 MYT 2021 vs Wed Jun 16 17:22:07 MYT 2021), init sync for app {id=meeting, version=3, published=false} INFO 16 Jun 2021 17:43:35 org.joget.apps.app.service.AppDevUtil - Sync complete for app {id=meeting, version=3, published=false} INFO 16 Jun 2021 17:43:35 org.joget.apps.app.service.AppDevUtil - Commit to Git repo by admin: Update app definition meeting. _Update app config meeting. _
We can check the server log for sync completion. Once it is done, we can then inspect the app again to make sure that everything in v1 and v2 is merged properly in v3.
Figure 9: Verify changes from version 1 and 2 in-app version 3.
If verification / testing of app version 3 fails or not satisfactory, we can restart the whole process again. Delete version 3 from "App Configuration Management". Then, delete the "meeting_3" folder from "app_src/meeting" as well for good measures.
To summarize, these are the steps:-
Using CLI, navigate to app_src/meeting/meeting_3. Execute the following commands to merge works from v1 and v2 inside v3.
git remote add v1 ../meeting_1 git fetch v1 git merge v1/meeting_1 meeting_3 --allow-unrelated-histories
Resolve conflicts and commit.