Skip to content

Commit

Permalink
Merge pull request #1033 from OPUS4/4.7.2
Browse files Browse the repository at this point in the history
Release OPUS 4.8
  • Loading branch information
j3nsch authored Apr 25, 2023
2 parents a669469 + 3dbbf31 commit d6f0877
Show file tree
Hide file tree
Showing 1,359 changed files with 29,685 additions and 27,252 deletions.
28 changes: 22 additions & 6 deletions .github/workflows/php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,22 @@ on:
jobs:
build:

runs-on: ubuntu-20.04
runs-on: ubuntu-22.04

strategy:
matrix:
php-versions: ['7.1', '7.4', '8.1']
fail-fast: false

name: PHP ${{ matrix.php-versions }} Test

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Setup PHP 7.1
- name: Setup PHP ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: '7.1'
php-version: ${{ matrix.php-versions }}

- name: Install Composer and Dependencies
run: sudo apt-get update && curl -s http://getcomposer.org/installer | php && php composer.phar self-update && php composer.phar install
Expand All @@ -40,8 +47,17 @@ jobs:
- name: Prepare database
run: export MYSQL_PWD=root && mysql --default-character-set=utf8 -h 'localhost' -P '3306' -u 'root' -v -e "CREATE DATABASE IF NOT EXISTS opusdb DEFAULT CHARACTER SET = UTF8 DEFAULT COLLATE = UTF8_GENERAL_CI; CREATE USER 'opus4admin'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; GRANT ALL PRIVILEGES ON opusdb.* TO 'opus4admin'@'localhost'; CREATE USER 'opus4'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; GRANT SELECT,INSERT,UPDATE,DELETE ON opusdb.* TO 'opus4'@'localhost'; FLUSH PRIVILEGES;"

- name: Prepare
run: ant prepare-workspace prepare-test-workspace prepare-config lint reset-testdata -DdbUserPassword=root -DdbAdminPassword=root
- name: Lint PHP files
run: ant lint

- name: Setup folders
run: ant prepare-workspace prepare-test-workspace

- name: Setup config
run: ant prepare-config lint -DdbUserPassword=root -DdbAdminPassword=root -DphpVersion=${{ matrix.php-versions }}

- name: Setup testdata
run: ant reset-testdata

- name: Mail-Server
run: php scripts/opus-smtp-dumpserver.php 2>&1 >> tests/workspace/log/opus-smtp-dumpserver.log &
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,5 @@ opus4-solr-jetty.conf
out
*.iml
nbproject
/tests/.phpunit.result.cache
/testresult-term.txt
8 changes: 8 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# OPUS 4 Change Log

## Release 4.8 - 2023-04-25

OPUS 4.8 Project on GitHub
https://github.com/orgs/OPUS4/projects/24

Vollständige Liste aller Änderungen in Application
https://github.com/OPUS4/application/compare/4.7.1.2...4.8

## Release 4.7.1.2 - 2022-12-13

* OPUS4/application#983 - Export von Suchtreffern ab 100 liefert leere Datei
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ redevelopment that was created as part of a DFG ([Deutsche Forschungsgemeinschaf
Since then the development has been continued at KOBV ([Kooperativer Bibliotheksverbund Berlin-Brandenburg][KOBV])
mostly.

## OPUS 4.7.1.2 (current version)
## OPUS 4.8 (current version)

The current version of OPUS 4 is __4.7.1.2__. It is available on the [master][MASTER] branch.
The current version of OPUS 4 is __4.8__. It is available on the [master][MASTER] branch and compatible with PHP 7.1
to 8.1.

[Documentation][DOC]
: Information on setting up a repository, for users and administrators.
Expand Down
83 changes: 83 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,88 @@
# OPUS 4 Release Notes

## Release 4.8 - 2023-04-25

Für diesen Release wurden sehr viele Änderungen am Code von OPUS 4
vorgenommen, insbesondere für den Support von PHP 8.1 und die weitere
Vorbereitung des Umstiegs auf Doctrine und Laminas. Trotz intensiver
manueller Tests durch die Hosting-Teams und einer umfangreichen
Abdeckung mit Unit-Tests, kann es Probleme geben, die bisher nicht
aufgefallen sind. Etwaige Schwierigkeiten am besten auf GitHub melden.

https://github.com/orgs/OPUS4/discussions

### PHP 8 Kompatibilität

OPUS 4.8 wurde mit PHP 7.1 und PHP 8.1 getestet. Diese Version ist noch
nicht mit PHP 8.2 kompatibel. PHP 8.1 wird bis November 2024 mit
Sicherheitsupdates versorgt.

Voraussichtlich wird mit OPUS 4.9 die Kompatibilität zu PHP 7.1 fallen,
um für die Weiterentwicklung die neuesten Versionen der verwendeten
Libraries nutzen zu können. Damit wird dann auch der Support von PHP 8.2
möglich sein.

### CrossRef-Import im Publish-Formular

Es gibt einen neuen Dokumenttypen **DOI**, bei dem im Publish-Formular
eine DOI eingeben werden kann, um das Formular automatisch mit Metadaten
von CrossRef zu befüllen. Diese Funktionalität benötigt Javascript im
Browser.

Für die Kommunikation mit der CrossRef-API sollte in der OPUS 4
Konfiguration eine E-Mail-Adresse angegeben werden, die es CrossRef
erlaubt den Repository Betreiber zu kontaktieren, falls die eingehenden
Requests Probleme verursachen sollten.

crossref.mailTo = ''

Mehr dazu findet sich in der Dokumentation der CrossRef-API:
https://github.com/CrossRef/rest-api-doc#etiquette

### Frontdoor

GND-Schlagwörter mit ExternalKey werden in der Frontdoor nun mit Link
zur GND angezeigt, so wie das für Autoren auch vorher schon passierte.

### Enrichments

Die maximale Größe für Optionen von EnrichmentKeys wurde auf 15000 erhöht,
um längere Select-Listen zu erlauben. Das ist eine temporäre Maßnahme. Das
Enrichment-System wird sich mit dem Umbau der Datenbankanbindung weiter
verändern und ausgebaut.

### Erweiterungen des 'opus4' Konsolen-Tools (bin/opus4)

Es wurden ein Kommando `cover:generate` hingefügt, dass während der Arbeiten
an einem PDF-Deckblatt-Template, zu Testzwecken verwendet werden kann.

Das `Index`-Kommando wurde erweitert, um die Indexierung auf Dokumente einer
Sammlung beschränken zu können. Das kann nützlich sein, wenn Sammlungen
direkt in der Datenbank angepasst wurden.

Mit `debug:xml` kann nun das interne XML für ein Dokument ausgegeben werden.
Das kann bei Arbeiten am XSLT und bei der Fehleranalyse nützlich sein.

Eine Liste aller Kommandos lässt sich mit `bin/opus4` anzeigen. Weitere Hilfe
zu einem Kommando erhält man mit `help`, also z.B. `bin/opus4 help index`.

### PDF-Deckblätter

Es wurde die Möglichkeit hinzugefügt mit auf LateX-basierenden Templates
automatisch Deckblätter für PDF-Dateien zu generieren.

Weitere Informationen
https://github.com/OPUS4/opus4-pdf

### Vorarbeiten für Umstieg auf Doctrine und Laminas

Im gesamten Code wurden viele der direkten Abhängigkeiten auf die Klassen
der aktuellen Framework-Implementation beseitigt. Dafür wurden zahlreiche
neue Klassen und Interfaces in **opus4-common** hinzugefügt. Lokaler Code
muss unter Umständen entsprechend angepasst werden.

--

## Patch Release 4.7.1.2 - 2022-12-13

ORCID und GND-ID werden jetzt in XMetaDissPlus für die Rollen `Author`,
Expand Down
49 changes: 35 additions & 14 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,31 @@
# vi: set ft=ruby :

$software = <<SCRIPT
# Downgrade to PHP 7.1
# Downgrade to PHP 8.1
apt-add-repository -y ppa:ondrej/php
apt-get -yq update
apt-get -yq install php7.1
apt-get -yq install php8.1
# Install MYSQL
debconf-set-selections <<< "mysql-server mysql-server/root_password password root"
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password root"
apt-get -yq install mysql-server
# Install required PHP packages
apt-get -yq install php7.1-dom
apt-get -yq install php7.1-mbstring
apt-get -yq install php7.1-intl
apt-get -yq install php7.1-gd
apt-get -yq install php7.1-mcrypt
apt-get -yq install php7.1-curl
apt-get -yq install php7.1-zip
apt-get -yq install php7.1-mysql
apt-get -yq install php8.1-dom
apt-get -yq install php8.1-mbstring
apt-get -yq install php8.1-intl
apt-get -yq install php8.1-gd
apt-get -yq install php8.1-mcrypt
apt-get -yq install php8.1-curl
apt-get -yq install php8.1-zip
apt-get -yq install php8.1-mysql
# Install Java
apt-get -yq install openjdk-11-jdk
# Install required tools
apt-get -yq install texlive-xetex
apt-get -yq install libxml2-utils
apt-get -yq install ant
SCRIPT
Expand All @@ -37,6 +38,19 @@ wget https://github.com/jgm/pandoc/releases/download/2.17.1.1/pandoc-2.17.1.1-1-
dpkg -i pandoc-2.17.1.1-1-amd64.deb
SCRIPT

$fonts = <<SCRIPT
# Install "Open Sans" font family (available under the Apache License v.2.0 at
# https://fonts.google.com/specimen/Open+Sans) to be used for PDF cover generation
# by cover templates (e.g., in application/configs/covers or tests/resources/covers)
mkdir -p /usr/share/fonts/opentype
cd /home/vagrant
wget https://fonts.google.com/download?family=Open%20Sans -O Open_Sans.zip
unzip -o Open_Sans.zip -d Open_Sans
cp -r /home/vagrant/Open_Sans/static/OpenSans/ /usr/share/fonts/opentype/
apt-get -yq install fontconfig
fc-cache -f -v
SCRIPT

$composer = <<SCRIPT
cd /vagrant
bin/install-composer.sh
Expand All @@ -56,8 +70,12 @@ cd /home/vagrant/solr-7.7.2
mkdir -p server/solr/opus4/conf
echo name=opus4 > server/solr/opus4/core.properties
cd server/solr/opus4/conf/
ln -s /vagrant/vendor/opus4-repo/search/conf/schema.xml schema.xml
ln -s /vagrant/vendor/opus4-repo/search/conf/solrconfig.xml solrconfig.xml
if test ! -f "schema.xml"; then
ln -s /vagrant/vendor/opus4-repo/search/conf/schema.xml schema.xml
fi
if test ! -f "solrconfig.xml"; then
ln -s /vagrant/vendor/opus4-repo/search/conf/solrconfig.xml solrconfig.xml
fi
# cd /home/vagrant/solr-7.7.2
# ./bin/solr start
SCRIPT
Expand All @@ -74,7 +92,9 @@ if test ! -f "apache.conf"; then
BASEDIR="/vagrant"
sed -e "s!/OPUS_URL_BASE!/$OPUS_URL_BASE!g; s!/BASEDIR/!/$BASEDIR/!; s!//*!/!g" "apache24.conf.template" > "apache.conf"
fi
ln -s /vagrant/apacheconf/apache.conf /etc/apache2/sites-available/opus4.conf
if test ! -f "/etc/apache2/sites-available/opus4.conf"; then
ln -s /vagrant/apacheconf/apache.conf /etc/apache2/sites-available/opus4.conf
fi
a2enmod rewrite
a2ensite opus4
service apache2 restart
Expand Down Expand Up @@ -125,7 +145,7 @@ echo "You can use 'ant reset-testdata' to reinitialize the database."
SCRIPT

Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-20.04"
config.vm.box = "bento/ubuntu-22.04"

config.vm.synced_folder "workspace", "/vagrant/workspace", group: "www-data", create: true

Expand All @@ -134,6 +154,7 @@ Vagrant.configure("2") do |config|

config.vm.provision "Install required software...", type: "shell", inline: $software
config.vm.provision "Install pandoc...", type: "shell", inline: $pandoc
config.vm.provision "Install fonts...", type: "shell", inline: $fonts
config.vm.provision "Install Composer dependencies...", type: "shell", privileged: false, inline: $composer
config.vm.provision "Install Apache Solr...", type: "shell", privileged: false, inline: $solr
config.vm.provision "Create database...", type: "shell", inline: $database
Expand Down
44 changes: 29 additions & 15 deletions application/configs/application.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
; !!! WARNING: DO NOT EDIT THIS FILE !!!
;


; This file is part of OPUS. The software OPUS has been originally developed
; at the University of Stuttgart with funding from the German Research Net,
; the Federal Department of Higher Education and Research and the Ministry
Expand All @@ -28,13 +27,7 @@
; along with OPUS; if not, write to the Free Software Foundation, Inc., 51
; Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
;
; @category Application
; @author Ralf Claussnitzer <[email protected]>
; @author Thoralf Klein <[email protected]>
; @author Jens Schwidder <[email protected]>
; @author Michael Lang <[email protected]>
; @author Maximilian Salomon <[email protected]>
; @copyright Copyright (c) 2008-2020, OPUS 4 development team
; @copyright Copyright (c) 2008, OPUS 4 development team
; @license http://www.gnu.org/licenses/gpl.html General Public License

; Database adapter configuration using standard Zend_db option names.
Expand Down Expand Up @@ -77,9 +70,15 @@ name = 'OPUS 4'
logoLink = home
security = 1
workspacePath = APPLICATION_PATH "/workspace"
version = 4.7.1.2
version = 4.8
update.latestVersionCheckUrl = "https://api.github.com/repos/opus4/application/releases/latest"

; Determines the implementation of the OPUS 4 data model
modelFactory = 'Opus\ModelFactory'
model.fieldDescriptorClass = "Opus\Db\Model\DbFieldDescriptor"
documentFinderClass = 'Opus\DocumentFinder\DefaultDocumentFinder'
documentXmlCacheClass = 'Opus\Model\Xml\Cache'

; base URL of your OPUS instance (used for generating absolute URLs, e.g. in email messages)
url =

Expand Down Expand Up @@ -134,6 +133,7 @@ form.first.enable_upload = 1
form.first.show_rights_checkbox = 1

; SECURITY SETTINGS
securityStorageClass = 'Opus\Security\RealmStorage'
securityPolicy.files.defaultAccessRole = 'guest'

; SEARCH ENGINE SETTINGS
Expand Down Expand Up @@ -184,9 +184,6 @@ search.indexFiles = true
; Possible fields are: PublishedDate, PublishedYear, CompletedDate and CompletedYear (all four can be used together)
search.index.field.year.order = 'PublishedDate,PublishedYear'

documentFinderClass = 'Opus\DocumentFinder\DefaultDocumentFinder'
documentXmlCacheClass = 'Opus\Model\Xml\Cache'

;DOCTYPE VALIDATION SCHEMA FILE
; TODO determine path dynamically (does this belong into the framework)
documentTypes.xmlSchema = APPLICATION_PATH "/vendor/opus4-repo/framework/library/Opus/Document/documenttype.xsd"
Expand All @@ -203,6 +200,10 @@ mail.opus.smtp = localhost
mail.opus.port = 25
mail.opus.address = ; email address of administrator
mail.opus.name = ; Name of administrator
mail.opus.auth = ;
mail.opus.username = ;
main.opus.password = ;
main.opus.ssl = ;

;NOTIFICATION SETTINGS
notification.document.submitted.enabled = 0
Expand Down Expand Up @@ -401,7 +402,7 @@ orcid.baseUrl = https://orcid.org/
orcid.linkAuthor.frontdoor = 1

; GND Settings
gnd.baseUrl = http://d-nb.info/gnd/
gnd.baseUrl = https://d-nb.info/gnd/
gnd.linkAuthor.frontdoor = 1

; Google Scholar Settings
Expand Down Expand Up @@ -462,12 +463,12 @@ filetypes.html.mimeType = 'text/html'
; Add identifier.validation.[IDENTIFIER_TYPE] and then define the validation class and set message keys.

; Uncomment the following to prevent saving of invalid ISBN.
; identifier.validation.isbn.class = 'Opus\Validate\Isbn'
; identifier.validation.isbn.class = 'Opus\Common\Validate\Isbn'
; identifier.validation.isbn.messageTemplates.form = 'validation_error_form'
; identifier.validation.isbn.messageTemplates.checkdigit = 'validation_error_checkdigit'

; Uncomment the following to prevent saving of invalid ISSN.
; identifier.validation.issn.class = 'Opus\Validate\Issn'
; identifier.validation.issn.class = 'Opus\Common\Validate\Issn'
; identifier.validation.issn.messageTemplates.form = 'validation_error_form'
; identifier.validation.issn.messageTemplates.checkdigit = 'validation_error_checkdigit'

Expand Down Expand Up @@ -569,6 +570,19 @@ setup.translation.modules.allowed = default,publish,help
; PDF COVER SETTINGS
; if set to `1` PDF cover pages may be added in front of downloaded PDF files
pdf.covers.generate = 0
; path to the covers directory that stores PDF cover templates
pdf.covers.path = APPLICATION_PATH "/application/configs/covers"
; path relative to the covers directory pointing to a default cover template
pdf.covers.default = ''

; Crossref parameters for retrieving metadata based on a DOI for populating a publish form
crossref.url = 'https://api.crossref.org/v1/works/'
crossref.mailTo = ''

; path to the licences directory that stores licence logos
licences.logos.path = APPLICATION_PATH "/public/img/licences"

; Staging, Testing and Development configurations =====================================================================

[staging : production]
phpSettings.display_startup_errors = 1
Expand Down
Loading

0 comments on commit d6f0877

Please sign in to comment.