Last year, i began some work on a module that would basically be responsible with reporting any available releases in our maven dependencies used in core and supported modules, I stopped at the interfacing level of the module after getting an idea on one of the developer forums of instead writing a script to handle this, This was simpler and required less efforts so i looked forward to when i would have some time to write one.
Am pleased that today, i have began figuring out how i will get the script up and running pretty as expected and would be pleased to have your thoughts on some of these thoughts.
One issue that am figuring out yet is, how would you people love to get the updates to the developerâs community, before i thought of using email, unfortunately; we are moving away from group mails which would then be a better way to perform the automation to write to us, the script would run on our demo servers to keep us up-to date with updates every after some time. but which else besides email?
Your thoughts would be better in establishing how you expect this to work out, probably writing to Michael who would publish it but this would still require a middle man which i wanted to avoid. Am not sure if it would be possible but probably like set-up an email account that forwards and creates a post inside the developerâs category!
Who, specifically? Module owners/maintainers as listed in the modules directory? People working on code in GitHub repositories named openmrs-modules-*? A wider group?
Knowing the audience will help to determine the best method to contact that audience.
@k_joseph could you give a better explanation of the benefit you are hoping to provide (and as Michael says, to whom youâre trying to provide it)?
It might help you clarify things to phrase this as a user story, e.g. âAs a module owner, I want to be notified⊠so thatâŠâ.
It would definitely help me answer, if you can give examples of the sort of information youâre hoping to provide. E.g. I see that the reporting module is using quartz-scheduler 2.1.1, and that the latest in that line is 2.1.7, and the very latest is 2.2.1. Are you suggesting that youâd have an scheduled script to notify @mseaton about this? Or to tell the whole OpenMRS community? How much benefit is there to him knowing this, if the current version of quartz is running just fine for the functionality it is used for? Etc.
@darius, that describes exactly what i hope to provide with this script, generating and sending notification to module developerâs or openmrs-core developer something that looks like:
A web page would make this more better and useful indeed, where do you expect such a webpage to be running/accessed from @burke? talk or some where else!
Am quite not familiar with docker though i have tried to peruse through it tonight, i did not get how i need to use in this case! Do i need to build such as a normal separate app probably on one of the common frameworks such as spring, grails et-cetera and docker will do the rest at the server level! whatâs it exactly about?
Donât let my Docker comment slow you down. Itâs just a way of wrapping up an application within a linux environment (much like a lightweight virtual machine) so itâs easy to move around and administer. You could create a simple docker container that uses, for example, nginx+PHP+sqlite to serve up your dependencies page and runs a cron job to keep itself updated. There a tutorial if youâre interested in learning more.
I know how silly it sounds, but I had really good experiences running
scripts from Bamboo creating a simple HTML as artifact.
For those fancy times, we went with updating Confluence pages from Bamboo
(using
https://developer.atlassian.com/confdev/confluence-rest-api/confluence-xml-rpc-and-soap-apis).
Now itâs supposed to offer REST too, it should be even simpler to call from
a bash/python script.
Not silly at all because thatâs how we do our Javadocs. Of course the question is what type of script/tool to create the HTML.
It might be nice if the Bamboo plan was only considered âsuccessfulâ (or maybe âfailedâ?) and updated the page if (and only if) there were updates. That way people could add themselves to the Bamboo notifications when that happened and get an email notification.
Itâs a maven plugin, open sourced (
https://bitbucket.org/jwalton/opup/src/e59ad1c8e103?at=master), I tested it
on the reference application and it looks like it works as expected.
For each library that could be upgraded, it generates a test failure. It
can be ignored with the âquarantineâ Bamboo feature (the cog close to the
test result itself), or even linked to a JIRA issue. Notifications are sent
as usual.
The second task of the job is just a workaroud to get a plugin from another
nexus instance. There are several better options, like changing the agentsâ
settings file, but Iâm just showing a proof of concept.
Am working towards coding this out soon, i just wrote to know how i can keep track of the changes in github remote repositories so as to execute commands as done on CI/bamboo servers!
I plan to keep a public data json file such as https://github.com/k-joseph/openmrs-contrib-dependecyupdates/blob/master/data.json from which people can add their projects, the project would then run a maven dependency updates command and then pick the updates details from the script, and then include a php display script that would support user updates subscriptions etc.
Can i know in the first place;
How is reading content of raw github files content done?
And then how is keeping watch for updates to such remote repositories done on our bamboo servers?