bgee-applications/ The Java Maven project of Bgee
....bgee-core/ The core layer of Bgee, or "business" layer.
....bgee-dao-api/ The API to use a data source, such as a MySQL database. This API
is used by the "bgee-core" and the "bgee-pipeline" modules.
....bgee-dao-sql/ A service provider for the "bgee-dao-api" module, allowing to use
a MySQL database as data source.
....bgee-pipeline/ Classes used to generate and insert data into the Bgee database.
The jar file generated from this module will be used as part of the pipeline,
see pipeline directory description.
....bgee-webapp/ The controller and view layer of the application. This module
relies only on the use of the "bgee-core" module. It is not
aware of the use under the hood of the other modules.
The master
branch always reflects the release of Bgee on production, the develop
branch
reflects the next release of Bgee.
- Before merging
develop
intomaster
:- Check that the version numbers in
pom.xml
andbgee-webapp/pom.xml
are correct in both branches. Notably, if the releases have the same major version number (e.g., same major version for Bgee 14.0 and Bgee 14.1), the js and css files should have different letters for version numbers (seebgee-webapp/pom.xml
propertiesfilter.org.bgee.webapp.css.version.extension
andfilter.org.bgee.webapp.javascript.version.extension
). Inpom.xml
,version
should reflect only the major version. - from
master
creates two new branches for archiving:- a branch
archive_bgee_vXX
(e.g.,archive_bgee_v14
). This will be the official branch for this archived version, where specific changes for this version can still be done. In this archive branch, and only in this branch, update the properties (bgee-webapp/src/main/resources/bgee.properties
,bgee-webapp/src/main/resources/bgee.dao.properties
) so that, for instance, links to download files point to the archived version. - a branch
archive_common_bgee_vXX_and_later
(e.g.,archive_common_bgee_v14_and_later
), that will be a branch allowing to deploy fixes that need to impact all versions starting with this one (for instance, if a vulnerability is discovered in this version, and impacts all further versions, the fix will be done in this branch, and be merged back into the branches for all other versions, includingarchive_bgee_vXX
,develop
,master
, etc).
- a branch
- Make a git tag for the version in
master
if it has changed since the last tag was made. - Rebuild a WAR file from
master
if any change occurred since the last deployment of the webapp, to have a clean WAR file for deploying what is going to be the next archive version. - Update the news in the
develop
branch. - Check the values of the properties in the
develop
branch
- Check that the version numbers in
- Then merge
develop
intomaster
- Create a new git tag for this new release in
master
- Update the version numbers in
pom.xml
for the next release of Bgee in thedevelop
branch
- load the MySQL dump of the database generated from the development server
- recreate the directories used by the webapp, for the new release:
/var/bgee/webapp/XX/
,/var/bgee/webapp/XX/requestparameters/
,/var/bgee/webapp/XX/topanat/
,/var/bgee/webapp/XX/topanat/results
. For instance, create the directories/var/bgee/webapp/14_1/
,/var/bgee/webapp/14_1/requestparameters/
,/var/bgee/webapp/14_1/topanat/
,/var/bgee/webapp/14_1/topanat/results/
- Copy the content of the directory where
RequestParameters
are stored (change in this class should be backward compatible), for making them available for the new release. If it's not backward compatible, then all URLs using thedata
parameter will be broken, but maybe sometimes it will be necessary. For instance, copy the content of/var/bgee/webapp/14/requestparameters/
into/var/bgee/webapp/14_1/requestparameters/
. - Do NOT copy the content of the
topanat
directory from the previous version. Computations need to be redone with the new data.
- Install the new version of the webapp in the tomcat folder
- make the
bgee-webapp-latest
symlink to point to it.bgee_latest
is defined as the ROOT in tomcat configuration - Change the
bgee.properties
file of the previous release to switch it to archive mode (org.bgee.webapp.archive=true
). - Apache server should be updated so that the permalinks of the new release redirect to the root of the server
(so that, for instance,
https://www.bgee.org/bgee14_1/
redirects tohttps://www.bgee.org/
). This redirection should be stopped for the previous release of course.
- EasyBgee would have been regenerated, then the RDF triples to be loaded into Virtuoso
- there are at least two endpoints, as of Bgee 14.1 there are hosted by the same Virtuoso instance,
which necessitate some tricks:
- the official endpoint to access the latest version of Bgee (as of Bgee 14.1: https://www.bgee.org/sparql). From this endpoint, no graph name should be used to target a specific graph: there is a graph targeted by default on this endpoint (the graph from the latest release), and specifying a specific graph makes the query to use all graphs. Weird, but... wrong results.
- the archive endpoint to access to any version of Bgee, but with which it is necessary to target a specific graph in the query. For Bgee 14.1, the URL is https://www.bgee.org/sparql14_1 (all archived SPARQL URLs point to the same archive endpoint, as of Bgee 14.1). From this endpoint, no graph is targeted by default, so it is necessary to explicitly target one in the query; otherwise, all graphs will be used... wrong results
=> As a result, apache should also be configured for redirecting URLs of the SPARQL endpoint
(i.e., https://www.bgee.org/sparql14_1
should point to the archived endpoint,
https://www.bgee.org/sparql
always to the official endpoint).
- On all servers, then visit the TopAnat examples from the webinterface so that they are already pre-computed for users.
- Change the symlink of the
current
folder to point to the new release