All services

Auth Service

Stockmanagement Service

Fulfillment Service

Notification Service

Requisition Service

Reference Data Service

UI

Ready For Work

Backlog


Platform

Below are platform-level issues. They may impact multiple services or impact the build and tooling. Many of these items were formerly in the "Dev and Build Infrastructure" epic (OLMIS-584); much of that epic was moved into label=TechBacklog, component=Platform, and fixVersion was erased so we could re-prioritize what of these issues are a priority.

Ramp Up

The items in this section are some of the ones noticed while starting to ramp up on OpenLMIS v3 - and thus seeing the project through a newbie's eyes. They aren't necessarily wrong - just things that gave me pause.


Errors

When starting openlmis-ref-distro via "docker-compose up" sans the -d flag, a large number of SQL errors are printed to the console. I was eventually told that they're expected and not symptomatic of a true problem. Because they're the last thing printed to the screen, however, without any subsequent indication that openlmis-ref-distro successfully launched, they lead new users to believe that openlmis-ref-distro has failed to start.


Dated Instructions


The instructions at https://hub.docker.com/r/openlmis/dev/ seem dated. For example, running a build as follows, and as recommended, doesn't work:

docker run -it --rm -p 8080:8080 -v gradlecache:/gradle -v $(pwd):/app openlmis/dev
gradle clean build

The instructions at https://github.com/OpenLMIS/openlmis-ref-distro also seem a little old. They say to access the UI via http://<your ip-address>/public, which doesn't work. Instead, stripping /public from the address seems proper. It would certainly be easy to update the ReadMe... but I'm not sure whether the current behavior is intended.

Given that services are no longer intended to be run independently, openlmis-ref-distro seems to play a prominent role. It doesn't seem to be mentioned in Read The Docs, though. The closest thing is a link to a live-api mentioned in the Style Guide section.

Finally, because http://localhost/api returns a 404 error, it may be helpful to mention somewhere that Swagger is available at:

http://localhost/requisition/docs/
http://localhost/fulfillment/docs/
http://localhost/auth/docs/
http://localhost/referencedata/docs/
etc. 

During our retrospective, the notion of an introductory ramp-up guide came up. I think one would be helpful - and that Read The Docs would be the perfect place for it. As is, we have lots of documentation for a variety of services. It's difficult to consume all at once, though. Readers don't know where to start, and much of it seems repetitive. The ReadMe for OpenLMIS-ref-distro, a project which ties everything together, may be a good place to begin. As mentioned, though, it isn't even mentioned in Read The Docs

Read The Docs

Disclaimer: This section describes my first impression of our Read The Docs page. It's therefore just personal opinion - nothing more.

As is, our Read The Docs page is notably unclear. This is an important issue because:

A) The purpose of documentation is to provide clarity - documentation which does the opposite is thus fundamentally flawed. 
B) It may be among the first OpenLMIS assets that developers are exposed to. 

Our landing page, along with the view returned when users click "Overview," doesn't offer any introductory information about the project. In fact, it doesn't present any handwritten information. Although there are links to it, I think our documentation should be much more prominent.

In addition to adding introductory text, the following small changes would make a big difference:

Searching ReadTheDocs.org for "openlmis" returns "No results found. Bummer." Users have to add a space ("open lmis") to find the project. This is a pretty trivial issue. It matters, though, when certain operations (like changing the selected language or clicking the page's banner) redirects folks to Read the Docs' home page.
 

Style Guide



Code

Our Testing Guide suggests that integration test “need to be kept separate from build.” The build task in the referencedata service, though, lists “check” as a dependency, which in turn lists “integrationTest.” Should this be changed?