Scalix Insights2 min read
Boosting Frappe: app release management accross multi-deployment
By Prafful Suthar
Release Management
Developer Requirement

-
Developer Alice wants to release a specific code state of the
Agencyapp in the bench. -
Developer Bob wants to release a specific code state of the
Bookingapp in the bench. -
Developer Charlie wants to release a specific code state of the
Contractsapp in the bench.
Problem
-
As the final bench is built with branches for specific environment, All the code travels in sync using branches.
-
Path of the code bench can assume
predev->functional->predev->dev->staging->main.
Proposed Solutions
-
git tag the version and use version tags instead of branches to pull code. If tags are auto-created and git admins can cleanup tags then tag is not under assured control of infrastructure team.
-
Simple to setup and use.
-
Use it in case you trust the tags are not going to be deleted any time.
-
-
Archive and push to object storage the version of app as a build pipeline. It will create a tar.gz archive of the app, add a build / version / tag to it and push it to S3 or any assets storage like how github releases do e.g. https://github.com/wkhtmltopdf/packaging/releases. Use these archives during builds and
COPYthem into image.RUN bench setup requirements && bench build --productionwill set it up as part of bench image.-
Use it when you cannot trust git tags.
-
It is difficult to setup and needs an storage location or an object storage like S3.
-
-
Package version into container image and push it to container registry. These images will be use to archive versions and then retrieve in
DockerfileusingCOPY --from=<image-name>.RUN bench setup requirements && bench build --productionwill set it up as part of bench image.-
Use it when you cannot trust git tags and additional object storage cannot be provisioned.
-
Difficult compared to git tags. It is similar to archiving on object storage.
-
About the author
Prafful Suthar writes for Scalix on enterprise platforms, high-throughput systems, and ERP delivery. Scalix builds and migrates mission-critical software for regulated and scale-heavy organizations from Mumbai and remote-first teams. See our case studies for problem–solution–result write-ups, or contact us about your roadmap.