Roadmap to 3.8

From Koha Wiki
Jump to navigation Jump to search

This page show a "roadmap" for Koha 3.8. It is splitted in 3 parts

  1. timing
  2. functionnal roadmap
  3. technical roadmap

for each part, the roadmap is divided in:

  1. what will be in version 3.8: all what is in this paragraph will for sure be in 3.8, as it has already been submitted/validated and pushed
  2. what should be in version 3.8: all what is in this paragraph should be in 3.8. Patch(es) have been submitted, and are being validated.
  3. what could be in version 3.8: all what is in this paragraph has been announced by a developer. But nothing has been submitted, so it may or may not be in the 3.8 Only major announcements are in this list.

This roadmap will not contain small bugfixes or small improvements.

Timing

The release of Koha 3.8 is expected for April, 23th The key dates before the release are:


March, 26th (1 month before the release) = feature freeze.

  • No major enhancements will be included after this date for this release. By "major" I mean an enhancement that has many string change(s) and/or database change and/or introduce major changes in the core of Koha, with an important risk of side-effect.
  • other enhancements can still make their way into 3.8
  • bugfixes can still make their way into 3.8

As of March 26th, I've reviewed all the patches that are in "need signoff" or "signed off" status, and could find only 2 that fit the definition of "major ENH"

  • Bug 7710 - multiple holds per title
  • Bug 7818 - support DOM mode for Zebra indexing of bibliographic records

Those bugs 1-are large 2-are related to the core of Koha 3- could have side effect So they will wait for 3.10.

All other patches can still continue their way for Koha 3.8

For the following bugs i'll be double checking, because there is a risk of side effect that is not negligible, and I hesitated to put them in the previous list:

  • Bug 7420 - Add max fines to circulation matrix
  • Bug 7641 - Add ability to suspend reserves
  • Bug 7736 - Edifact QUOTE and ORDER functionality (the side effect of this one is negligible, but the patch is huge !)

But if they have a strong signoff (or, better, 2) before the "strong feature freeze", I'll push them.

Comment on some other bugs:

  • Bug 7759 - Use Koha-Contrib-Tamil to update Zebra data in background => would be an alternative, not a replacement, so could push it.

April, 6th = strong feature freeze, string freeze

  • no enhancements will be included in the version after this date for this release, except tiny one without strings.
  • bugfixes that are blockers/critical or don't change any string can still make their way into 3.8
  • translator can start their work

April 20th = starting release process, everything frozen

Proposal for 3.8 Release Notes

April 23th = release of Koha 3.8.0


what will be in 3.8

All what is in Koha 3.8 is stored in a bugzilla query: http://bugs.koha-community.org/bugzilla3/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=3.8%20ENH&sharer_id=21

Highlighted bugs

What should be

All what has been submitted and could be in Koha 3.8 is stored in a bugzilla query: http://bugs.koha-community.org/bugzilla3/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=pending%20ENH%203.8&sharer_id=21

what could be

Functionnal roadmap

  • Hourly loans: Koha 3.2's circulation loans are currently measured only in units of days.

However, because some libraries, especially academic libraries, perform loans that are measured in minutes or hours, particularly for course reserves and short loans, it is necessary to modify Koha to perform all circulation and related transactions in units of minutes (see http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=5549)

  • PDF printing: there are at least 2 methods used to generate PDF (one in acq, with a PDF model filled with informations) and one in overdue notices (print HTML, then generate PDF with xhtml2pdf)
  • Search engine: update search engine to have a more modular search (Solr as a goal)
  • Reserves rewrite: the reserve module is really dirty: many functions are nested, it will be worth a big cleaning !
  • notification rewrite: there is more than one method to notify ppl (for overdues, before/after due date, for example)
  • Add webservices for every action (ie: manage suggestion, manage biblios, manage patrons, ...) On the long term, it means a library could use Koha for some modules, and other tools for others

Technical roadmap

The main goal of this technical roadmap is to improve Koha from a technical point of view to achieve the 4 following topics:

  • Performance
  • Maintainability
  • Modularity
  • Testability

Those improvements are grouped in a "performance omnibus" bugzilla entry: http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=7119


Performance axis

 - authentifying
 - checking & setting permissions
 - setting a lot of syspref available on each template (many of them being unused in most templates)
 - retrieving template
  • Split Context into smaller parts: C4::Context::Preferences.pm, C4::Context::DBI.pm, C4::Context::Config.pm (using Config::Any), ...
  • add nginx as possible webserver

To have an exact information about performance enhancements, the benchmarking script has been improved. The benchmark_for_3.8 page show the progress

Ergonomy axis

Code writing axis

  • improve test suite coverage (http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=5327)
  • logs = have a module dedicated to logging
  • function naming = enforce coding guidelines
  • function parameters = define coding guidelines
  • any script that is longer than 300 lines must be investigated (300 being given randomly. The idea is to check all "long" scripts)
  • investigate for dead code (is there a tool for that ?)

Modules (C4) axis

  • Investigate all C4 scripts, find almost duplicated subs, subs that are wrongly named,
  • separate business logic from data access (have modules for BL & modules for DAO ?)
  • rewrite Authentification layer (use Plack authentification ?)
  • introduce DBIx::Class

Database axis