2018-08-21 Meeting notes

Date

7am PST / 4pm CET

Join from PC, Mac, Linux, iOS or Android: https://zoom.us/j/737202874

Or iPhone one-tap :
US: +16699006833,,737202874# or +14086380968,,737202874#
Or Telephone:
Dial(for higher quality, dial a number based on your current location):
US: +1 669 900 6833 or +1 408 638 0968 or +1 646 876 9923
Meeting ID: 737 202 874
International numbers available: https://zoom.us/zoomconference?m=F0kj5u6u0wFxr7Xfz5NKZxl0xyLhuTPF

Attendees


Goals

  • Suggestions: Wesley Brown
    • 3.4.1 Patch release?  OLMIS-5235 - Getting issue details... STATUS   OLMIS-5057 - Getting issue details... STATUS
    • Jenkins failures ( OLMIS-5105 - Getting issue details... STATUS )
    • Feature toggles (explaining this for all teams - how to use)


Discussion items

TimeItemWhoNotes
5mAgenda and action item reviewChongsun Ahn (Unlicensed)
  • OLMIS-5100 - Getting issue details... STATUS ? (from 2018-24-07 meeting) Unfortunately the discussion on #tech-debt is gone
  • Nifi registry follow up? (from 2018-10-07 meeting)

Jenkins failures during release processMateusz Kwiatkowski Klaudia Pałkowska (Deactivated) or Nikodem Graczewski (Unlicensed)?Would you be able to give us information about why Jenkins has been having so many failures? (had to pick people who are not on leave)




15mUI v7 Architecture discussionNikodem Graczewski (Unlicensed)

Notes

OLMIS-5100 - Shared Jenkinsfile

  • Problems/concerns
    • Cannot parameterize some service-specific stuff in Jenkinsfiles, complexity in how contract tests will run
    • Working with pipelines; Jenkins tries to get Jenkinsfiles from actual repository by default
  • Separate Jenkinsfile for services and UI is okay
  • Having a single file would be better, but it may not be worth the effort
  • Next step: #tech-debt further discussion to see if it's worth the effort, to see if problems are solvable, modify OLMIS-5100 to make it a spike ticket to answer if the change is worth doing

Nifi registry follow up

Jenkins failures during release process

  • Lost nodes (they didn't come back)
  • Lack of disk space
  • Before we had pipeline jobs, we had ERD jobs which were restricted to "master" node, but pipeline jobs did not restrict ERD stage; we made the fix yesterday
    • Need to verify changes Josh made to ERD scripts (which were done on branch on stock management) and put them on other services
  • Two executors on the same node, same ports being used by jobs, or possibly other conflicts (timeouts, etc.)
  • Requisition build integration tests fail - possibly because of Javers AuditLogInitializer running at the same time as the integration tests
  • Docker-compose config error (newline unexpected?)
  • Contract tests failing with auth started up, but not registered with consul
  • Console output doesn't give any output, so we have no insight into what's happening; need to change it so that we get enough logging to know what's wrong, but not too much that we are overwhelmed with log statements
  • Issue with directory names?
  • When starting up nodes, we download docker-compose executable using curl, and sometimes we might not have downloaded it, but an HTML file instead
  • Requisition contract test, 504 error (gateway timeout)

Potential fixes

  • Change config of Jenkins nodes to have only one executor instead of two
  • Having more nodes, possibly 4 should be enough, but not sure about the cost
  • Set up alerts for low disk space for nodes?
  • Spike on requisition build integration tests failing because of Javers
  • Changing contract test output to add more from logs, but not too much
  • Looking into requisition contract test 504 error

UI v7 Architecture

Only have time for Nikodem to share his thoughts; will continue discussion next meeting

Good

  • Architecture is consistent, stack: service, repository, repository impl
    • Extensible because of repository implementation pattern
  • Somewhat independent of AngularJS (not fully, because of directives, probably couldn't because of that)

Bad

  • Doing a lot of requests, a lot of them are duplicated
    • Getting two different objects and they do the same request, then we are doing duplicate requests
    • No caching to share the fetched data
  • Whole architecture hasn't been implemented fully
  • Not started supporting ES6
  • Cutting ourselves off from AngularJS, but nothing to replace it; only doing it for new code; replacing AngularJS would still be hard
  • Domain object pattern seems unintuitive; "hacking around" when doing testing
    • POD being aware of Location object, for printing

Action items

OpenLMIS: the global initiative for powerful LMIS software