Exploitation

GNU Lesser GPLv3

HarmonyCMS is made by David Sanchez and is distributed 100% FREE under the GNU Lesser GPLv3.

This license has the particularity to allow the addition of the program under this license to non LGPL code without revoke the license. The LGPL allows to overcome the hereditary nature of the GPL. Thus, it becomes possible to create a theme or an extension for the CMS under "owner" license without forcing the software to also be in "free" license. However, any change in the source code LGPL software will also be released under the LGPL license.

The use of the LGPL license can freely distribute the source code of CMS, however, the citation of the author of the source code is required.

Versioning

A version of this software is a given state of the evolution of a software product using the tool. Software version and most often associated with a dial that allows you to identify.

Development phase

The development phase of the CMS indicates its progress through the stages in accordance with the specifications developed in the previous steps and what remains to be done. A development phase is associated with a step of a cycle of development.

Different stages of development of CMS are made in chronological order, from prototype to Alpha or Beta. Tests are most often internally. From the RC or Beta, the software can then be distributed publicly to find remaining bugs, or even make changes that may be important.

Here are the different phases of development for the CMS:

  • Prototype (with as little - or no actual functionality)

  • Alpha Version (first phase of development of specific software)

  • Beta (second period for the software test before its publication, may be made public in some cases)

  • RC version (first version released officially, it is made available for testing purposes last minute)

  • Final version (which can fulfill all the tasks set, it is also called "stable" release)

Version numbering

There is no one way to describe the version of a software; there are different systems.

Typically, a version number is comprised of a string of numbers separated by dots. The numbers are ordered from most significant to least significant: an evolution of the first number is a recasting (relative) of the software, while the latter corresponds to a minor change.

Generally more changes with the new patch or a new version is more important number that will change will be left. If it is a simple correction of a minor bug on 2.5.21 to 2.5.22 to happen. By cons, if one has the right to a major update (new features, different ergonomics, etc..) We go from 2.5.21 to 2.6.0.

Concretely, in the case of this CMS version numbering will be done as follows:

  • Prototype: numbered with the date of completion (20110101)

  • Alpha: numbered using the word alpha (alpha-1, ...)

  • Beta: numbered starting from 0 release (0.1, 0.11, ..., 0.9)

  • RC Version: numbered with the word 'RC' version (RC1, RC2, ...)

  • Final: numbered from 1 release (1.0, 1.01, ...)

Distribution

Such as a lots of projects, sources files are generally hosted in a repository hosting service like GitHub, GitLab, Bitbucket, ... This services offering free and secure accounts, which are usually used to host open-source software projects.

Like HarmonyCMS is an open-source PHP project, it has been decided to host the full project on GitHub.com. This project as been separated in multiple repositories and are regrouped an accessible in the main organisation: https://github.com/harmonycms.

Let's now see how a user can get the sources of this project to perform an install on his server:

  1. Using an hosting service like GitHub will provide ability to downloads sources as a package in Zip and

    Tar.Gz formats.

  2. To facilitate installation and to manage dependencies, we are using a dependency manager service named Composer. Composer will allows us to declare the libraries in our project and will manage it (install/update) them for us.

  3. Simplifying things is the strength of this project. We want all users able to install as easily as possible the CMS and is features (themes & extensions). For that we will create a package builder directly from the Marketplace site. More information are available in the Builder's Marketplace section.