Life cycle of a Lino project

Overview

(1) A Lino project starts when a physical or legal person decides to use the Lino framework for their purposes. The future site operator meets with a Lino consultant in order to check whether their problem is something for Lino.

One aspect is the technical side: whether a Lino style application makes sense. Lino as a framework has features and limitations. Another aspect is the financial side: what budget is available for (1) development and (2) for maintenance of the production site. Yet another aspect is the legal side: Does the project operator want a proprietary application for which they hold the copyright? Or do they agree to share the development work by publishing source code and documentation as Free Software using a BSD license?

(2) The site operator designates a site expert, a development provider and a hosting provider.

(3) A series of meetings where the site expert analyses what the project operator wants and explains the requirements to the development provider. This step will produce meeting reports and maybe a functional project specification. This step ends when the development provider declares to be ready to write a prototype.

(4) During alpha phase, the development provider sets up a prototype. This phase may include a series of dialogues and meetings between application developer and site expert where the developer shows their work in progress and collects feedback from the site expert. The phase ends when the site expert declares that the site is ready to go into beta phase.

(5) During beta phase, the site expert meets with the key users, explains them how to use the application and collects their feedback. The key users start using the application and report their questions and problems to the site expert. This phase ends (a) either when the site expert declares that the site can go into production mode or (b) submits a series of change requests.

(6) If there were change requests during the beta phase, the development provider executes the requested changes, updates the site (taking care of data migration) and explains the new version to the site expert.

This phase may again include a series of dialogues and meetings between development provider and site expert where the application developer shows their work in progress and collects feedback from the site expert. This phase ends when the site expert declares that the site is ready for another beta phase (5).

  1. The site now runs in “production mode”. It has become a production site.

(8) The site operator can decide at any time to start a site upgrade in order to fix a series of change requests.

(8) The site operator of a Lino project can stop the project at any time for diverse reasons.

Operation modes of a Lino site

Stable

The normal state of a production site. The primary goal of a site in this state is that it just works: the server is always available, no changes in behaviour which would confuse users.

Any issues reported by the site operator are collected as change requests

The development provider works on the reported issues.

The development provider publishes and maintains release notes for the coming version.

This document describes the issues that will be fixed by the coming version.

The release notes also explains any non-requested changes which will come with the new version. These can be caused by changes in dependencies, by technology choices, changes in external services, …

Users can ask at any moment to start a release. They decided that the advantage of having these issues fixed is worth the work and risks caused by a release.

Preview testing

The server administrator may set up a preview site at any time.

For each preview site the development provider writes a migration script which copies the content of the production database into the preview database and applies any changes in the database schema.

The key users must now test that preview and to report their observations.

This phase ends when the site expert declares that the preview is okay and that they want it to go into production.

After release

The server administrator upgrade the production environment to use the site which has been in preview so far. During some time the server administrator and the site expert concentrate on removing any side effects and keep ready to react to potential regression reports which might occur. There may be additional minor updates to fix such problems.

When there are no more regressions and side effects reported, the site returns to the Stable operation mode. This is the moment make an official release (on PyPI) of the involved packages.

Glossary

Internal development

When the application developer works for a longer lapse of time without feedback.

Interactive development

A suite of site visits. The site operator actively contributes to the development process by testing and using the site, providing feedback, reporting issues.

Stable maintenance

The primary goal during the maintenance phase is to ensure stable and reliable operation of the site.

Site upgrade

A phase where the site maintainer applies new versions of the software running on a Lino site in order to develop or optimize its functions according to the requirements of the site operator.

During a site upgrade of a production site , the site maintainer is responsible for the technical aspects (data migration, writing release notes) and the site operator is responsible for non-technical aspects like end-user testing.

A variant of site upgrade is when a production site is moved from one server to another server. In this case the server provider is responsible for providing a new server and configuring domain names and changes in DNS system.

Alpha phase

A working mode during the planning phase of a Lino project where the application developer sets up a prototype.

Prototype

A Lino site with publicly visible volatile fictive data.

Beta phase

A working mode during the planning phase of a Lino project where the application is considered feature complete but likely to contain a number of known or unknown bugs. The Lino site has protected data, potentially imported from legacy sources.

Production site

A Lino site with protected data, used for stable operation.