Skip to content

Latest commit

 

History

History
73 lines (67 loc) · 5.98 KB

MODULE_EVALUATION_TEMPLATE.MD

File metadata and controls

73 lines (67 loc) · 5.98 KB

Module acceptance criteria template

How to use this form

When performing a technical evaluation of a module, create a copy of this document and use the conventions below to indicate the status of each criterion. The evaluation results should be placed in the module_evaluations directory and should conform to the following naming convention: {JIRA Key}_YYYY-MM-DD.MD, e.g. TCR-1_2021-11-17.MD. The date here is used to differentiate between initial and potential re-evaluation(s). It should be the date when the evaluation results file was created.

  • ACCEPTABLE
  • INAPPLICABLE
  • UNACCEPTABLE
    • comments on what was evaluated/not evaluated, why a criterion failed

Shared/Common

  • Uses Apache 2.0 license
  • Module build MUST produce a valid module descriptor
  • Module descriptor MUST include interface requirements for all consumed APIs
  • Third party dependencies use an Apache 2.0 compatible license
    • Direct dependencies:
    • Indirect dependencies:
      • github.com/jackc/pgpassfile v1.0.0 uses MIT Licence
      • github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a uses MIT Licence
      • github.com/jackc/puddle/v2 v2.2.1 uses MIT Licence
      • github.com/smartystreets/goconvey v1.8.1 uses MIT Licence
      • golang.org/x/crypto v0.9.0 uses BSD-3-Clause
      • golang.org/x/sync v0.1.0 uses BSD-3-Clause
      • golang.org/x/text v0.9.0 uses BSD-3-Clause
      • moul.io/http2curl v1.0.0 uses Apache 2.0 or MIT Licence as we prefer
    • Summary: this requirement is met provided that we determine the BSD-3-Clause and MIT licences to be Apache-compatible
  • Installation documentation is included
  • Personal data form is completed, accurate, and provided as PERSONAL_DATA_DISCLOSURE.md file
  • Sensitive and environment-specific information is not checked into git repository
  • Module is written in a language and framework from the officially approved technologies page
  • Module only uses FOLIO interfaces already provided by previously accepted modules e.g. a UI module cannot be accepted that relies on an interface only provided by a back end module that hasn't been accepted yet
  • Module gracefully handles the absence of third party systems or related configuration
  • INAPPLICABLE Sonarqube hasn't identified any security issues, major code smells or excessive (>3%) duplication
    • The code does not go through Sonarqube, but is vetted by six separate code-style tools.
  • Uses officially supported build tools
  • Unit tests have 80% coverage or greater, and are based on officially approved technologies

Backend

TCR Process Improvements

[Please include here any suggestions that you feel might improve the TCR Processes.]