Difference between revisions of "ART-DECOR building and testing"

Line 1: Line 1:
{{underconstruction}}
+
=Creating a new art-decor.war package=
This page will document how to build and test ART-DECOR in a automated process.
+
Steps to create the art-decor.war package:
 +
* Download the Community version of Orbeon in zip format from: https://www.orbeon.com/download. For development versions we are running on version Orbeon 2018.1
 +
* unzip, rename orbeon.war to art-decor.war
 +
<syntaxhighlight lang="bash">
 +
unzip orbeon-*.zip
 +
mkdir build
 +
mv ./orbeon*/orbeon.war ./build/art-decor.war
 +
cd build
 +
</syntaxhighlight>
 +
* Unzip and move the original art-decor.war
 +
<syntaxhighlight lang="bash">
 +
jar xvf art-decor.war
 +
mkdir ../archive
 +
mv art-decor.war ../archive
 +
</syntaxhighlight>
 +
* Copy the configuration files from ART-DECOR repository into the folder. For version 4 Orbeon see:
 +
<syntaxhighlight lang="bash">
 +
svn export https://sourceforge.net/p/artdecor/code-0/HEAD/tree/branches/stable/orbeon4/
 +
</syntaxhighlight>
 +
For development versions with Orbeon 2018:
 +
<syntaxhighlight lang="bash">
 +
svn export svn://svn.code.sf.net/p/artdecor/code-0/trunk/orbeon2018/
 +
/bin/cp -Rf orbeon2018/WEB-INF/ .
 +
rm -Rf ./orbeon2018
 +
</syntaxhighlight>
 +
For development versions with Orbeon 2017:
 +
<syntaxhighlight lang="bash">
 +
svn export svn://svn.code.sf.net/p/artdecor/code-0/trunk/orbeon2017/
 +
/bin/cp -Rf orbeon2017/WEB-INF/ .
 +
rm -Rf ./orbeon2017
 +
</syntaxhighlight>
 +
* Create the war file:
 +
<syntaxhighlight lang="bash">
 +
jar -cvf art-decor.war ./*
 +
</syntaxhighlight>
 +
* Store the .war file online and link to it from our installation manuals: [[ART_installation_manual]]
 +
* Note when installing newer Orbeon versions: If you are running an Orbeon later than 3.9, also update-xforms by running: art/modules/update-xforms.xquery
  
==Building ART-DECOR packages==
+
=Creating new .xar packages=
The following steps are taken during an ART-DECOR build:
+
ART-DECOR software is deployed through eXist-db .xar packages with the eXist-db package manager. In order to create these packages, the following files should be present in a subversion software repository:
* Create new vue build
+
* build.xml: contains meta information on the package, and the version number (in major.minor.build form). For packages containing software the minor number is:
* Create new ART-DECOR packages
+
** even for stable releases
 +
** uneven for development (trunk) releases
 +
* expath-pkg.xml.tmpl: a generic template that should normally not be edited
 +
* icon.png: the icon to display in the package manager when installing packages
 +
* pre-install.xql: pre-installation procedure. This is usually package-specific.
 +
* post-install.xql: post-installation procedure. This is usually package-specific and can contain permission settings for collections and files.
 +
* repo.xml.tmpl: information to display in the package manager for this package. This is a generic template that should normally not be edited.
 +
These files can be copied from an existing directory and adapted to this package.
  
===eXist-db===
+
When building .xar packages, a expath-pkg.xml and repo.xml is generated from the .tmpl and build.xml. In subversion there should be a git:ignore so that locally generated expath-pkg.xml and repo.xml are not included in subversion code.
====Commit code====
 
Code is committed in a software repository, see [[ART_developers_manual#ART-DECOR_Next_generation_repository]]
 
====Build .xar packages====
 
During this step code from the code repository is converted into .xar packages.
 
  
Documentation on how to run the script for updating the repository can be found here: TODO
+
For examples, see: https://sourceforge.net/p/artdecor/code-0/HEAD/tree/branches/stable/art/
  
The result (development) repository is viewable here: http://decor.nictiz.nl/apps/public-repo-dev5/retrieve.html
+
For more information on building xars, see: http://exist-db.org/exist/apps/doc/repo.xml
  
==Building ART-DECOR instance==
+
=Creating a new version of an existing package=
The following steps are taken during an ART-DECOR instance build:
+
* Commit your software code, include an (English) subversion comment that describes your changes.
* Install or update vue [[ART_developers_vue]]
+
* build.xml: increment the build number:
* install eXist-db
+
Example:
* install ART-DECOR packages
+
<syntaxhighlight lang="xml">
* Restoring data
+
    <property name="project.version" value="0.989.32"/>
 +
</syntaxhighlight>
 +
* commit the build.xml to the subversion repository
 +
If the project.version is incremented, this can act as a trigger in the package manager to install this new version of the package.
  
===eXist-db===
+
=ART-DECOR repositories=
====eXist-db installation====
+
==Production code repository==
See: [[ART-DECOR_installation_on_linux#eXist-db_installation]]
+
For the current production version (ART-DECOR version 2), see: https://bitbucket.org/art-decor/art-decor-backend/src/exist-db-2/
  
====Installing .xars into a ART-DECOR instance====
+
==Production package repository==
Documentation can be found here: [[ART-DECOR_installation_on_linux#Install_ART-DECOR_software_.26_data]]
+
All ART-DECOR modules are exposed though an eXist-db repository for easy installation. Check modules [https://art-decor.org/repo/list.php here].
  
===Restoring data===
+
==ART-DECOR Next generation code repository==
Test instances or production instances of ART-DECOR might need data restored into their database.
+
From ART-DECOR version 3 and onwards:
 +
'''Currently under development''': a new front-end developed in vue. For more details on vue for developers, see [[ART_developers_vue]]
  
==Testing ART-DECOR==
+
* Vue-client front-end: (should be used in combination with Back-end database)
Tests that can be run against a ART-DECOR instance are documented at:
+
https://bitbucket.org/art-decor/art-decor/
[[ART_developers_manual#ART-DECOR_testscenarios]]
+
* Back-end database:
 +
https://bitbucket.org/art-decor/art-decor-backend/src/exist-db-5/
 +
* Dutch terminology demo in vue:
 +
https://bitbucket.org/art-decor/vue-client/
 +
 
 +
==ART-DECOR Next generation package repository==
 +
From ART-DECOR version 3 and onwards:
 +
Under construction.
 +
 
 +
=ART-DECOR testscenarios=
 +
The following testscenarios can be used to test ART-DECOR software:
 +
* [[testscenario test]]: Test ART-DECOR information standards
 +
* [[testscenario test author]]: Test ART-DECOR information standards from an author perspective
 +
* [[testscenario xistest]]: Test ART-DECOR xis
 +
* [[testscenario terminology]]: Test ART-DECOR terminology
 +
* [[testscenario ada]]: Test ART-DECOR ada
 +
Specifically for testing the database:
 +
* [[testscenario URIs]]: Test ART-DECOR URIs
 +
* [[testscenario Terminology URIs]]: Test ART-DECOR Terminology URIs
 +
Not yet testable:
 +
[[FHIR_URIs]]
 +
 
 +
=ART-DECOR building and testing=
 +
Documentation for automated building and testing against ART-DECOR is located at:
 +
* [[ART-DECOR building and testing version 2]] (up until ART-DECOR version 2)
 +
* [[ART-DECOR building and testing]] (from ART-DECOR version 3)
 +
 
 +
=ART-DECOR testbench=
 +
Documentation for running tests against ART-DECOR is located at:
 +
* [[eXist-db testing]]
 +
 
 +
=ART-DECOR coding styleguide=
 +
The following styleguides are available:
 +
* [[eXist-db coding styleguide]]

Revision as of 18:10, 6 February 2021

Creating a new art-decor.war package

Steps to create the art-decor.war package:

  • Download the Community version of Orbeon in zip format from: https://www.orbeon.com/download. For development versions we are running on version Orbeon 2018.1
  • unzip, rename orbeon.war to art-decor.war
unzip orbeon-*.zip
mkdir build
mv ./orbeon*/orbeon.war ./build/art-decor.war
cd build
  • Unzip and move the original art-decor.war
jar xvf art-decor.war
mkdir ../archive
mv art-decor.war ../archive
  • Copy the configuration files from ART-DECOR repository into the folder. For version 4 Orbeon see:
svn export https://sourceforge.net/p/artdecor/code-0/HEAD/tree/branches/stable/orbeon4/

For development versions with Orbeon 2018:

svn export svn://svn.code.sf.net/p/artdecor/code-0/trunk/orbeon2018/
/bin/cp -Rf orbeon2018/WEB-INF/ .
rm -Rf ./orbeon2018

For development versions with Orbeon 2017:

svn export svn://svn.code.sf.net/p/artdecor/code-0/trunk/orbeon2017/
/bin/cp -Rf orbeon2017/WEB-INF/ .
rm -Rf ./orbeon2017
  • Create the war file:
jar -cvf art-decor.war ./*
  • Store the .war file online and link to it from our installation manuals: ART_installation_manual
  • Note when installing newer Orbeon versions: If you are running an Orbeon later than 3.9, also update-xforms by running: art/modules/update-xforms.xquery

Creating new .xar packages

ART-DECOR software is deployed through eXist-db .xar packages with the eXist-db package manager. In order to create these packages, the following files should be present in a subversion software repository:

  • build.xml: contains meta information on the package, and the version number (in major.minor.build form). For packages containing software the minor number is:
    • even for stable releases
    • uneven for development (trunk) releases
  • expath-pkg.xml.tmpl: a generic template that should normally not be edited
  • icon.png: the icon to display in the package manager when installing packages
  • pre-install.xql: pre-installation procedure. This is usually package-specific.
  • post-install.xql: post-installation procedure. This is usually package-specific and can contain permission settings for collections and files.
  • repo.xml.tmpl: information to display in the package manager for this package. This is a generic template that should normally not be edited.

These files can be copied from an existing directory and adapted to this package.

When building .xar packages, a expath-pkg.xml and repo.xml is generated from the .tmpl and build.xml. In subversion there should be a git:ignore so that locally generated expath-pkg.xml and repo.xml are not included in subversion code.

For examples, see: https://sourceforge.net/p/artdecor/code-0/HEAD/tree/branches/stable/art/

For more information on building xars, see: http://exist-db.org/exist/apps/doc/repo.xml

Creating a new version of an existing package

  • Commit your software code, include an (English) subversion comment that describes your changes.
  • build.xml: increment the build number:

Example:

    <property name="project.version" value="0.989.32"/>
  • commit the build.xml to the subversion repository

If the project.version is incremented, this can act as a trigger in the package manager to install this new version of the package.

ART-DECOR repositories

Production code repository

For the current production version (ART-DECOR version 2), see: https://bitbucket.org/art-decor/art-decor-backend/src/exist-db-2/

Production package repository

All ART-DECOR modules are exposed though an eXist-db repository for easy installation. Check modules here.

ART-DECOR Next generation code repository

From ART-DECOR version 3 and onwards: Currently under development: a new front-end developed in vue. For more details on vue for developers, see ART_developers_vue

  • Vue-client front-end: (should be used in combination with Back-end database)

https://bitbucket.org/art-decor/art-decor/

  • Back-end database:

https://bitbucket.org/art-decor/art-decor-backend/src/exist-db-5/

  • Dutch terminology demo in vue:

https://bitbucket.org/art-decor/vue-client/

ART-DECOR Next generation package repository

From ART-DECOR version 3 and onwards: Under construction.

ART-DECOR testscenarios

The following testscenarios can be used to test ART-DECOR software:

Specifically for testing the database:

Not yet testable: FHIR_URIs

ART-DECOR building and testing

Documentation for automated building and testing against ART-DECOR is located at:

ART-DECOR testbench

Documentation for running tests against ART-DECOR is located at:

ART-DECOR coding styleguide

The following styleguides are available: