I’m still relatively new, I have been focusing on understanding the various OpenMRS installs, some impressions lead me to make some suggestions but I do not want to proceed without your more experienced thoughts.
I’ll go into some detail about my attempted installs here, and if you have any suggestions for specific fixes I am all ears, but I here I am interested in proposing changes to the web page, wiki, and readme files, I’ll try explicit about delineating suggestions here.
Suggestion: For each release we should be specific about the configurations on which we have successfully installed and tested.
I get that we need to support many different hardware platforms for the community and that much of that hardware is old and highly constrained. I get that if we have a user in the community with an “unusual” config we will do what we can to support them.
That being true there are enormous benefits to the community of converging on specific “standard” configs of hardware, os, and required tools (e.g. tomcat and mysql).
I picked the config I used very deliberately, it’s the current default Debian instance at Google Cloud Platform (we could just as easily have done AWS). It contains “default” releases of java (currently 11), tomcat (9), and MySQL (15.1).
I went to the OpenMRS download page and was successfully convinced to start with the standalone ref app 2.10.0. That was unsuccessful, after waiting several mins openmrs fails to start, I have logs, happy to pursue separartely.
While the standalone install with embedded tomcat and mysql is clever and I can see how it could help, in my experience it was not helpful, when it does not work I have zero visibility into what’s going on (as I would with e.g. regular tomcat).
OK so I decide I’ll deal with tomcat and MySQL myself and install the plain openmrs.war. I get a little further but OpenMRS is unable to write its runtime.profile file, Daniel was very helpful in another thread but I remain stuck.
This doc is with my config almost certainly inaccurate but I don’t yet know what the correct behavior is to update:
I would really, really like to fix either the code or the doc - I can see other users have had issues.
In order to attempt to proceed I rammed a profile file into the directory it looks for it in, it seems to read it but then it gets upset about not being able open the database, I used the .properties file from the standalone install but I have no idea if it’s valid, I declared myself flailing unproductively.
Bottom line - my Debian config does not work with OpenMRS’s current releases, which asks the question “what configs were the current releases tested on?” With some automated testing this could evolve between releases as well.
I have no idea what is going on in the field (too new!) but it seems like the development community who pipe up on talk run on:
Is that true? Could we ever have “release configs” on which we explicitly test prior to release? THAT WOULD BE SO COOL I’d love to help.
Suggestion: Consolidate all docs relating to install and config
there is the download page, the wiki, sometimes READMEs in the distributions, discussions on talk and comments in the wiki. They contain a lot of outdated and and inconsistent information at a high level of detail, it’s super disruptive.
With the next major release do you think we could consolidate all the install/release info into a single source - say one place in the wiki? All other places reference that wiki doc and we QA and update it with each release.
I’ll start this work now with some edits on really old stuff.
Suggestion: Rigorously document OpenMRS interfaces to the OS, to the web server, and to the database.
E.g. how - specifically - does OpenMRS expect MySql configured on install? I suppose the install wizard is supposed to help but that was super frustrating for me. E.g. there are multiple profile file examples on the wiki and in the packages with different values for connection.username and connection.password, ugh I want to fix but I see no single source of truth.
Suggestion - Remove all references to versions of e.g. OSs, java, MySQL, Tomcat, etc from the wiki - replace with a single doc updated on each release
You see a pattern here does this make any sense? I’m gonna get started.