acquia/orca

A tool for testing a company's software packages together in the context of a realistic, functioning, best practices Drupal build

Maintainers

Details

github.com/acquia/orca

Source

Issues

Installs: 179 605

Dependents: 0

Suggesters: 0

Security: 0

Stars: 17

Watchers: 15

Forks: 17

Open Issues: 6


README

Latest Stable Version Total Downloads Latest Unstable Version License Coverage Status Build Status

ORCA Logo

ORCA (Official Representative Customer Application) is a tool for testing a company's Drupal-adjacent software packages. It ensures their cross compatibility and correct functioning by installing all of them together into a realistic, functioning, best practices Drupal build and running automated tests and static code analysis on them. Its guiding design principle is to use company packages as a customer would. It installs the latest recommended versions via Composer and performs no manual setup or configuration.

Who is it for?

ORCA is for anyone who has an interest in one or more Drupal extensions or platforms continuing to work together and wants to run automated tests in a continuous integration (CI) workflow to ensure that they do, e.g.:

  • Product companies that want to ensure that their own modules continue to work together or on their platforms
  • Professional services organizations that want to know ahead of time if the contrib modules they commonly use together are going to have conflicts
  • Contributors that want to test together one or more modules they maintain
What does it do? What is the value?
Adds all company packages to a Drupal project via Composer, installs them and their subextensions, and runs their automated tests. Ensures that all company packages can be added to the same codebase via Composer (prevents dependency conflicts), that there are no adverse install time or functional interactions between them, and that they have no undeclared dependencies, and prevents regressions.
Adds only the package under test to a Drupal project via Composer, installs it and its subextensions, and runs its automated tests. Ensures that the package under test has no undeclared dependencies on other company packages and functions correctly on its own.
Performs the above tests with the recommended, stable versions of company packages, Drupal core, and Drush. Ensures that the package under test still works with the versions of other software already released and in use and prevents releases of the package from disrupting the ecosystem.
Performs the above tests using the latest development versions of company packages, Drupal core, and Drush. Ensures that the package under test will continue to work when new versions of other software are released and prevents changes in the ecosystem from breaking the package. Forces early awareness and collaboration between project teams and prevents rework and release day emergency support situations.
Performs the above tests using a wide spread of Drupal core versions. Ensures that the package under test still works on all supported releases of Drupal and will continue to work when future ones drop.
Upgrades to and from various versions of Drupal core and runs automated tests. Ensures that the upgrade process for the package under tests works and that it continues to function correctly afterward.
Performs static analysis of the package under test. Ensures low level construction quality. (Prevents PHP warnings and errors, version incompatibility, etc.)

See Continuous integration for exact details.

Documentation