Thu, 01/31/2019 – 23:32
In one of the episodes of Star Trek – “The Trouble With Tribbles” there is a graphical example of how small changes leads to monumental consequences over a short period of time.
The episode depicted the effect of new “species” on the established society, somewhat similar to the rise of the open source software and its tools in today’s technology.
Yet many of us aren’t cognizant of the reach and the influence that open source has on our personal and professional endurance.
Thus to solve this awareness issue, OpenEuropa initiative was introduced. This Directorate- General for information initiative aims at strengthing and adopting open source tools and its practices in consolidating the European institutes’ web presence.
What the initiative focuses on?
In order to achieve such goals, the OpenEuproa Initiative focuses on the following activities.
- Software components licensed under EUPL-1.2
The initiative focuses on building, maintaining and releasing loosely coupled, reusable software components that are licensed under EUPL-1.2
The European Union Public License is a free software that has been created and approved by the European Commission. The goal of this license was to create open source license in 23 different languages for the European Union and also that it conforms the copyrights law of member states of the European Union.
- Open Source Strategies
The initiative also focused on building, maintaining and releasing full-fledged solutions and open source strategies for the European institutes. The special objectives of these strategies are:
Equal treatment in the procedure
Under this, the open source solutions and a proprietary solution will be assessed on an equal basis, both being evaluated on the basis of total cost of ownership, including the prevailing cost.
Contribution to communities
The commission service would actively participate in open source software communities to build a strong open source building block which is used in the commission software.
Clarifying legal aspects
For easy collaborations with open source communities, commission developers benefit from the right legal coaching and the advice on how to deal with intellectual property issues related to open source software
The strategy emphasis strongly on improved governance, increasing use of open source in the domain of ITC security and the alignment of this strategy.
- Web Services Architecture Overview
The initiative provides a high-level architecture overview of web related information systems.
Web information system or web-based information system is an information system that uses internet web technologies to deliver information and services, to users or other information systems.
A software system whose main purpose is to publish and maintain data by using hypertext-based principles.
- Open Source Projects
The initiative contributed back to the upstream open source projects. Each project complies with PHP-FIG standards and adheres to best practices put forward by PHP the “right” way.
PHP and Drupal Projects released under the EUPL-1.2 license.are:
OpenEuropa Coding Standards
OpenEuropa and its components are built with a public contribution in mind. In order for all components and contributions to look and feel familiar, OpenEuropa has agreed to follow some coding standards
The code review components have been created in order to make it easier for the contributors to create new components or to modify the existing ones. The coding standards have to be reviewed and validated under OpenEuropa code review across different OpenEuropa components.
The projects that are developed under the Open Europa initiative does not follow any development environment, there are software packages that follow it. The software packages like:
|PHP||YES||Needed by Drush, Compose, and Tash Runner|
|Composer||YES||A package manager for PHP|
|GIT||YES||Version control system|
|Drush||YES||CLI (command line interface) integration with Drupal|
|ROBO||YES||Required by Open Europa task runner|
|Node.js||YES||Required to develop OpenEuropa theme|
PHP: We have heard about this word once in our lifetimes. Here the use of PHP is required by various tools which include the composer, Drush, Robo and Drupal itself.
Composer: Composer is used for managing dependencies of the PHP project. All the projects are required to use it and the plus point about this is that it has its natural integration with Drupal.org.
Git: Git is the distributed control version that is used as a foundation of OpenEuropa ecosystem.
Drush: This is the command line shell and UNIX interface scripting for Drupal and is used to interact with the Drupal website through line command.
ROBO: This is a simple PHP task runner which is inspired by Gulp and Rake that aims to automate common tasks.
Node.js: It is required for the development of OpenEuropa themes. All the development dependencies are defined under package.json.
Automated Testing for functionalities
OpenEuropa requires automated tests to be written for every new feature or bugfix to ensure that the functionality will keep working as expected in the future. There are two types of test
OpenEuropa practices Behaviour Driven Development to facilitate effective communication between business and development teams. User stories should be accompanied by test scenarios that have been written in non-technical language. After the user stories are accepted it can then be used to perform automated tests to ensure the business requirement work.
If there are any pull requests that do not result in from user stories can be covered by unit tests rather than BDD user stories. The user should use the appropriate unit testing framework that is available for the programming languages in which the components are developed.
Can Drupal components be tested as well?
In addition to the testing framework that comes with the Drupal core, OpenEuropa also uses Behat to describe business requirements.
Behat is a test framework for behavior-driven development written in the PHP programming language.
When a PR is compelled to change the user behavior it is demanded to describe the expected end user behavior in the Behat scenario.
- Each of the user stories is accompanied by Behat scenario. The scenario provides to the project stakeholder for the acceptance testing.
- The target audience of these scenarios is stakeholders.
- Every Behat test scenario is written in domain-specific building language and should only be used to describe expected user behavior as it is specified by the stakeholders.
- Any code is written that does not directly affect the expected end-user behavior should be covered by unit tests instead.
Drupal 8 has introduced the concept of experimental modules, that are not under privacy policies or fully supported but used for testing purposes. They offer a wide range of functionalities, starting from migration till the site building.
Due to the experimental nature of these modules, OpenEuropa defined a set of policies under its components.
Minimum Stability Required
These modules follow different levels of stability by Drupal: alpha, beta, RC and stable.
In order for OpenEuropa to provide stability, the only experimental module in its beta and greater stage are allowed.
This is done because the modules that are in beta and later stage are very stable in API. Whenever API is changed, great care is taken to provide a compatibility layer.
Experimental modules in the alpha state
Although the rules state that the alpha modules are not allowed in the vanity, there is still a great potential value to the customers.
If for a technical reason or business reason the alpha module does justification to the project, alpha modules are allowed to the experiment. However, in such cases, the components will use the same labels as in the experimental modules they are using. That means if you are using the alpha module you are required to use its label as well until the related module is changed.
OpenEuropa Release Cycle
OpenEuropa releases its components following semantic versioning. There would be three types of releases planned:
Incompatible API changes, very rare and planned in
Adds backward compatible manner functionalities and bug fixes
Adds backward compatibility bug/security fixes and can be deployed instantaneously. No new functionalities would be introduced.
Release Preparation and testing in Drupal
OpenEuropa Drupal components are released with the follow of Drupal 8 components and will be always tested against.
- Current stability in Drupal 8 core minor release. (n)
- Previous release Drupal 8 core minor release. (n-1)
- Development range in Drupal 8 core minor.
This allows to follow same support cycle as Drupal core and be better prepared for next minor releases as they occur.
For Drupal components, OpenEuropa team will have a support policy inspired by Drupal core:
Components support current and previous Drupal Core minor versions. New minor versions for components are made compatible with these respective core versions.
When a new minor core version (n) is supported, the support for release n-2 is dropped.
Open Source and its components have become really essential for building trust and safety around the software and web. It has been contributing to the projects, service-oriented architecture and technical governance that derive the design and development of the components.
The initiative has emerged as a lightning bolt in this dark world of “unawareness” It has not only aimed the strengths and powers of open source tools and practices but established a stronghold on the web presence.