PubMan INGe Release Process GUI

From MPDLMediaWiki
Jump to navigation Jump to search

This page describes how to release PubMan/INGe.

Before the release[edit]

  • Download Git (if not already done).
  • Work with GitCmd from Git (oder GitShell from Github oder GitBash)
cd c:\temp
git clone <INGE repository>      (z.B. git clone https://github.com/MPDL/INGe.git)
cd c:\temp\INGe
git checkout <aktueller_branch>  (z.B. git checkout master)
git pull
  • Check that release branch is not in possible conflict state with the master branch. It might happen if somebody has made a commit in master (although that shouldn't happen)

Release PubMan / INGe[edit]

Prepare the release[edit]

  • Create Token for Github (if not already done)
  • Download docker for desktop 4.57.0 (if not already done).
  • Download maven 3.9.12 (if not already done).
  • Download java 21.0.7 (if not already done).
  • Work with GitCmd from Git (oder GitShell from Github oder GitBash)
  • Ensure that you are inside the MPDL network (directly or VPN)
  • JAVA_HOME setzen (z.B. JAVA_HOME C:\_tools\java\jdk-21.0.7+6)
  • PATH für java und maven setzen: (z.B. path C:\_tools\java\jdk-21.0.7+6\bin; C:\_tools\maven\apache-maven-3.9.12\bin)
  • Prüfe Java Version (z.B. java -version)
  • Prüfe Maven Version (z.B. mvn -version)
  • Prüfe, ob auf dev.inge.mpdl.de CoNE läuft (für Transformationstests)
  • Starte Docker

Enable profiles: (z.B. in C:\Users\przibyll\.m2\settings-inge.xml)

  • env-pure
  • env-release-build_gui
        <profile>
            <id>env-release-build_gui</id>
            <properties>
                <inge.aa.default.target>https://gui.inge.mpdl.mpg.de/auth/clientLogin</inge.aa.default.target>
                <inge.aa.instance.url>https://gui.inge.mpdl.mpg.de/auth/</inge.aa.instance.url>
                <inge.cone.database.server.name>gui.inge.mpdl.mpg.de</inge.cone.database.server.name>
                <inge.cone.database.user.name>postgres</inge.cone.database.user.name>
                <inge.cone.database.user.password>B.03w7MU</inge.cone.database.user.password>
                <inge.cone.database.user.password.test>postgres</inge.cone.database.user.password.test>
                <inge.cone.service.url>https://gui.inge.mpdl.mpg.de/cone/</inge.cone.service.url>
                <inge.database.jdbc.url>jdbc:postgresql://localhost:5432/inge</inge.database.jdbc.url>
                <inge.database.user.name>postgres</inge.database.user.name>
                <inge.database.user.password>B.03w7MU</inge.database.user.password>
                <inge.doi.service.url>https://test.doi.mpdl.mpg.de</inge.doi.service.url>
                <inge.es.rest.path-prefix/>
                <inge.filestorage.seaweed_master_server_ip>https://gui.inge.mpdl.mpg.de/seaweedfs-master</inge.filestorage.seaweed_master_server_ip>
                <inge.jwt.shared-secret/>
                <inge.openai.token>541088bdcfdb578aa4504159954792c0</inge.openai.token>
                <inge.pid.service.password>pid_user</inge.pid.service.password>
                <inge.pid.service.url>https://test.doi.mpdl.mpg.de</inge.pid.service.url>
                <inge.pid.service.user>pid_user</inge.pid.service.user>
                <inge.pubman.component.pattern>/items/$1/component/$2/content</inge.pubman.component.pattern>
                <inge.pubman.csl_editor.instance>http://pubman.mpdl.mpg.de/csl-editor/</inge.pubman.csl_editor.instance>
                <inge.pubman.instance.context.path>/pubman-gui</inge.pubman.instance.context.path>
                <inge.pubman.instance.url>https://gui.inge.mpdl.mpg.de</inge.pubman.instance.url>
                <inge.pubman.item.pattern>/view/$1</inge.pubman.item.pattern>
                <inge.rest.service.url>https://gui.inge.mpdl.mpg.de/rest</inge.rest.service.url>
                <inge.rest.development.enabled>false</inge.rest.development.enabled>
                <inge.rest.development.admin.username/>
                <inge.rest.development.admin.password/>
                <inge.rest.development.file_url/>
                <inge.unapi.service.url>https://gui.inge.mpdl.mpg.de/rest/unapi</inge.unapi.service.url>
                <jboss.install.dir>C:\_tools\wildfly\wildfly-36.0.1.Final</jboss.install.dir>
            </properties>
        </profile>

Windows:

cd c:\temp\INGe
GitCmd oder GitShell:
mvn release:prepare -s [absolutepath/to/settings-inge.xml] -P env-release-build_gui -DignoreSnaphots=true -DupdateReleaseInfos=true -DpreparationGoals="clean install`
(z.B. mvn release:prepare -s C:/Users/przibyll/.m2/settings-inge.xml -P env-release-build_gui -DignoreSnaphots=true -DupdateReleaseInfos=true -DpreparationGoals="clean install`)
bzw.
GitBash:
mvn release:prepare -s [absolutepath/to/settings-inge.xml] -P env-release-build_gui -DignoreSnaphots=true -DupdateReleaseInfos=true -DpreparationGoals="clean install"
(z.B. mvn release:prepare -s C:/Users/przibyll/.m2/settings-inge.xml -P env-release-build_gui -DignoreSnaphots=true -DupdateReleaseInfos=true -DpreparationGoals="clean install")

Linux/Mac

mvn release:prepare -s [absolutepath/to/settings-inge.xml] -P env-release-build_gui -DignoreSnaphots=true -DupdateReleaseInfos=true -DpreparationGoals="clean install"
  • Vorschläge unverändert übernehmen

If a problem happened, do a rollback[edit]

mvn release:rollback
Auf Github prüfen, ob schon ein neuer Tag angelegt wurde. Falls ja, folgende Befehle ausführen:
git tag -d <neuer_tag_name> (z.B. git tag -d INGe-8.0.7) //comment: rollback doesn't remove the tag, that must be removed before doing a new release:prepare
git push origin :neuer_tag_name   (z.B. git push origin INGe-8.0.7) // comment: remove the tag in remote

Perform the release[edit]

  • You need update rights for nexus!

(the site deployment is not supported so far. Therefore we skip it here)
make sure your settings has server entries (including credentials) for nexus, snapshots and releases

    <servers>
        <server>
            <id>nexus</id>
            <username>myname</username>
            <password>1234</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>myname</username>
            <password>1234</password>
        </server>
        <server>
            <id>releases</id>
            <username>myname</username>
            <password>1234</password>
        </server>
    </servers>
mvn -X release:perform -Dgoals=deploy -s [absolutepath/to/settings-inge.xml] -P env-release-build_gui
(z.B. mvn release:perform -Dgoals=deploy -s C:/Users/przibyll/.m2/settings-inge.xml -P env-release-build_gui)
  • Ear in C:\temp\INGe\target\checkout\pubman_ear\target
  • properties in C:\temp\INGe\pubman_ear\target\classes
  • reindex.jar in C:\temp\INGe\target\checkout\reindex_util\target

Rework[edit]

  • Reset profiles: (z.B. in C:\Users\przibyll\.m2\settings-inge.xml)

Dokument the release[edit]

z.B. https://colab.mpdl.mpg.de/mediawiki/Pubman_9.0.0