Automating the Pull of New Releases for EO Libraries
As a developer, keeping up with the latest releases of libraries is crucial to ensure that your code is up-to-date and optimized. However, manually checking for new releases can be time-consuming and tedious. That’s why we’ve created an automated pull system for new releases of EO libraries in our Home repository.
The process of creating a release of EO libraries consists of three main stages: releasing the EO library,
publishing it on Maven Central and on the GitHub of this library in the gh-pages
branch, and adding EO objects from
the gh-pages
branch of this library to Objectionary Home repository.
Until recently, the last stage was performed manually with the help of a script that added modified files by the
library’s URL, after which a pull request was created. And that stage consisted of the following steps:
1.To create a pull request in objectionary/home
by pull.sh
script in a separate git branch (the name of the branch doesn’t matter):
./pull.sh objectionary/eo
This update all .eo
files in gh-pages
from objectionary/eo
.
It also changes the corresponding versions of the eo objects (e.g. from the +version
metadata) in the objectionary/home
repository.
2.To check and to remove manually either unused or old files. Script didn’t do it.
3.To update eo.version
in pom.xml
in objectionary/home
.
4.Finally, all todo
must be removed manually.
To avoid manual changes we created auto pulling daily run script. It runs once an hour every day to check for new releases of Objectionary libraries. If a new release is found, the script creates a new pull request with corresponding changes. This process ensures that our codebase is always up-to-date and optimized.
The benefits of this automated system are numerous. First, it saves developers time by eliminating the need to manually check for new releases. Second, it ensures that our codebase is always up-to-date with the latest features and optimizations. Finally, it helps us maintain a high level of code quality by ensuring that we are using the most recent versions of our libraries.