==================================== 3.4.0 Release Notes - 17 August 2018 ==================================== Status: Stable ============== 3.4.0 is a stable release, and all users of `OpenLMIS version 3 `_ are encouraged to adopt it. Release Notes ============= The OpenLMIS Community is excited to announce the **3.4.0 release** of OpenLMIS! It is another major milestone in the version 3 `re-architecture `_ that allows more functionality to be shared among the community of OpenLMIS implementers. It is also the first release since the `Gap Project `_ has started. We are excited to announce that four organizations collaboratively worked on the 3.4 release! For a full list of features and bug-fixes since 3.3.1, see `OpenLMIS 3.4.0 Jira tickets `_. For information about future planned releases, see the `Living Product Roadmap `_. Pull requests and `contributions `_ are welcome. Compatibility ------------- Unless noted here, all other changes to OpenLMIS 3.x are backwards-compatible. All changes to data or schemas include automated migrations from previous versions back to version 3.0.1. All new or altered functionality is listed in the sections below for New Features and Changes to Existing Functionality. Upgrading from Older Versions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you are upgrading to OpenLMIS 3.4.0 from OpenLMIS 3.0.x or 3.1.x (without first upgrading to 3.2.x), please review the `3.2.0 Release Notes `_ for important compatibility information about a required PostgreSQL extension and data migrations. For information about upgrade paths from OpenLMIS 1 and 2 to version 3, see the `3.0.0 Release Notes `_. Download or View on GitHub -------------------------- `OpenLMIS Reference Distribution 3.4.0 `_ Known Bugs ========== Bug reports are collected in Jira for troubleshooting, analysis and resolution on an ongoing basis. See `OpenLMIS 3.4.0 Bugs `_ for the current list of known bugs. To report a bug, see `Reporting Bugs `_. New Features ============ 3.4 offers a wide range of new features and enhancements: *Reporting*: The new reporting infrastructure is dockerized and deployed within the OpenLMIS deployment. See the Reporting service for more details. *Requisitions*: - Configurable templates for one-click requisitions based on current stock on hand records within stock management. We call this a stock based requisition. - Ability to hide and add new products to improve end user usability. - Ability to convert requisitions without creating an order. - New R&R column to account for “additional quantities” from new demand. *Orders*: New FTP retry feature when orders fail to transmit initially. *User Management*: - New “opting out” feature for email notifications. - Improving the user profile so that users can manage their own data. - New reset password options. - New user profile information (roles and rights). *Notifications*: Redesigned to support more personalization and future work on supporting more channels. Changes to Existing Functionality ================================= See `all 3.4.0 issues tagged 'UIChange' in Jira `_. API Changes =========== Some APIs have changes to their contracts and/or their request-response data structures. These changes impact developers and systems integrating with OpenLMIS: - Authentication Service v4.0.0 - Changes to the user resource structure: `auth changelog `_ - Notification Service v4.0.0 - Changes to the user contact details resource and the /api/notification endpoint: `notification changelog `_ - Reference Data Service v11.0.0 - Changes to the user resource structure: `ref-data changelog `_ - Requisition Service v7.0.0 - Changes to the periodsForInitiate endpoint: `requisition changelog `_ - Stock Management UI Service v3.1.0 - Renamed admin-reason-modal module: `stockmanagement changelog `_ - UI Components Service v6.0.0 - Changed syntax for using datepicker: `ui-components changelog `_ - Dev-UI Service v8.0.0 - Replaced syncTransifex grunt option: `dev-ui changelog `_ Performance ======================== There are minor regressions in the sync, submit, authorize and single approve within the requisition service with slight improvements in convert to order. OpenLMIS conducted manual performance tests of the same user workflows with the same test data we used in testing v3.2.1 to establish that last-mile performance characteristics have been retained at a minimum. For details on the test results and process, please see `this wiki page `_. For more details about the specific work done to improve performance for 3.4.0, please reference `this `_ list of tasks. The following chart displays the 3.4.0 UI loading times in seconds for both 3.3.1 and 3.4.0 using the same test data. .. image:: UI-Performance-3.4.0.png :alt: UI Load Times for 3.3.1 and 3.4.0 Test Coverage ============= OpenLMIS 3.4.0 is the second release using the new `Release Candidate process `_. As part of this process, full manual test cycles were executed for each release candidate published. Any critical or blocker bugs found during the release candidate were resolved in a bug fix cycle with a full manual test cycle executed before releasing the final version 3.4.0. Manual tests were conducted using a set of 142 Zephyr tests tracked in Jira. A total of 34 bugs were found during testing. See the spreadsheet of all test executions for this release: `3.4.0 release test case executions.csv `_. All Changes by Component ======================== Version 3.4.0 of the Reference Distribution contains updated versions of the components listed below. The Reference Distribution bundles these component together using Docker to create a complete OpenLMIS instance. Each component has its own own public GitHub repository (source code) and DockerHub repository (release image). The Reference Distribution and components are versioned independently; for details see `Versioning and Releasing `_. Auth Service 4.0.0 ------------------ `Auth CHANGELOG `_ CCE Service 1.0.1 ----------------- `CCE CHANGELOG `_ Fulfillment Service 7.0.1 ------------------------- `Fulfillment CHANGELOG `_ Notification Service 4.0.0 -------------------------- `Notification CHANGELOG `_ Reference Data Service 11.0.0 ----------------------------- `ReferenceData CHANGELOG `_ Report Service 1.1.1 -------------------- This service is intended to provide reporting functionality for other components to use. Built-in reports in OpenLMIS 3.4.0 are still powered by their own services. In future releases, they may be migrated to a new version of this centralized report service. **Warning**: Developers should take note that the design of this service will be changing with future releases. Developers and implementers are discouraged from using this 1.1.1 version to build additional reports. `Report CHANGELOG `_ Requisition Service 7.0.0 ------------------------- `Requisition CHANGELOG `_ Stock Management 3.1.0 ---------------------- `Stock Management CHANGELOG `_ Reference UI 5.1.0 ------------------ `The Reference UI `_ is the web-based user interface for the OpenLMIS Reference Distribution. This user interface is a single page web application that is optimized for offline and low-bandwidth environments. The Reference UI is compiled together from module UI modules using Docker compose along with the OpenLMIS dev-ui. UI modules included in the Reference UI are: Reference Data-UI 5.4.0 ~~~~~~~~~~~~~~~~~~~~~~~ `ReferenceData-UI CHANGELOG `_ Auth-UI 6.1.1 ~~~~~~~~~~~~~ `Auth-UI CHANGELOG `_ CCE-UI 1.0.1 ~~~~~~~~~~~~ `CCE-UI CHANGELOG `_ Fulfillment-UI 6.0.1 ~~~~~~~~~~~~~~~~~~~~ `Fulfillment-UI CHANGELOG `_ Report-UI 5.0.6 ~~~~~~~~~~~~~~~ `Report-UI CHANGELOG `_ Requisition-UI 5.4.0 ~~~~~~~~~~~~~~~~~~~~ `Requisition-UI CHANGELOG `_ Stock Management-UI 3.1.0 ~~~~~~~~~~~~~~~~~~~~~~~~~ `Stock Management-UI CHANGELOG `_ UI-Components 6.0.0 ~~~~~~~~~~~~~~~~~~~ `UI-Components CHANGELOG `_ UI-Layout 5.1.1 ~~~~~~~~~~~~~~~ `UI-Layout CHANGELOG `_ Dev UI v8 ~~~~~~~~~ The `Dev UI developer tooling `_ has advanced to v8. Components with No Changes ========================== The components that have not changed are: - `Service Util `_ - `Logging Service `_ - Consul-friendly distribution of `nginx `_ - Docker `Postgres 9.6-postgis image `_ - Docker `scalyr image `_ Contributions ============= Many organizations and individuals around the world have contributed to OpenLMIS version 3 by serving on our committees (Governance, Product and Technical), requesting improvements, suggesting features and writing code and documentation. Please visit our GitHub repos to see the list of individual contributors on the OpenLMIS codebase. If anyone who contributed in GitHub is missing, please contact the Community Manager. Thanks to the Malawi implementation team who has continued to contribute a number of changes that have global shared benefit. Further Resources ================= Please see the Implementer Toolkit on the `OpenLMIS website `_ to learn more about best practicies in implementing OpenLMIS. Also, learn more about the `OpenLMIS Community `_ and how to get involved!