Author: schor Date: Mon Nov 25 15:43:11 2019 New Revision: 1870390 URL: http://svn.apache.org/viewvc?rev=1870390&view=rev Log: [UIMA-6157] add utility for removing things from eclipse update sites
Added: uima/build/trunk/uima-eclipse-update-site-removing/pom.xml uima/build/trunk/uima-eclipse-update-site-removing/readme.txt uima/build/trunk/uima-eclipse-update-site-removing/saved-pom-parts.xml uima/build/trunk/uima-eclipse-update-site-removing/subsiteMaintenance.xml uima/build/trunk/uima-eclipse-update-site-removing/subsiteSlicing.xml Added: uima/build/trunk/uima-eclipse-update-site-removing/pom.xml URL: http://svn.apache.org/viewvc/uima/build/trunk/uima-eclipse-update-site-removing/pom.xml?rev=1870390&view=auto ============================================================================== --- uima/build/trunk/uima-eclipse-update-site-removing/pom.xml (added) +++ uima/build/trunk/uima-eclipse-update-site-removing/pom.xml Mon Nov 25 15:43:11 2019 @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.uima</groupId> + <artifactId>parent-pom</artifactId> + <version>10</version> + <relativePath>../parent-pom</relativePath> + </parent> + + <artifactId>uima-eclipse-update-site-maintenance</artifactId> + <packaging>pom</packaging> + <version>1-SNAPSHOT</version> + + <name>Apache UIMA Eclipse: ${project.artifactId}</name> + <description>UIMA Eclipse update site maintenance</description> + <url>${uimaWebsiteUrl}</url> + + <scm> + <connection> + scm:svn:http://svn.apache.org/repos/asf/uima/build/trunk/uima-eclipse-update-site-maintenance + </connection> + <developerConnection> + scm:svn:https://svn.apache.org/repos/asf/uima/build/trunk/uima-eclipse-update-site-maintenance + </developerConnection> + <url> + http://svn.apache.org/viewvc/uima/build/trunk/uima-eclipse-update-site-maintenance + </url> + </scm> + + <properties> + <uimaScmRoot>uimaj</uimaScmRoot> + <uimaScmProject>${project.artifactId}</uimaScmProject> + <distsvnroot>https://dist.apache.org/</distsvnroot> + + </properties> + +<profiles> + <!-- ============================================= --> + <!-- Slice off most recent version subsite --> + <!-- Needs 2 parameters: --> + <!-- -Dsubsite=... --> + <!-- name of the subsite: uimaj, ruta, etc.--> + <!-- example --> + <!-- -Dsubsite=uimaj --> + <!-- ============================================= --> + + <profile> + <id>slice</id> + <properties> + <eclipseUpdateSite>${project.build.directory}/eclipse-update-site</eclipseUpdateSite> + <eclipseUpdateSlice>${eclipseUpdateSite}/${subsite}</eclipseUpdateSlice> + </properties> + + <build> + <plugins> + <plugin> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <id>SliceSubsite</id> + <phase>test</phase> + <configuration> + <target> + <taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" /> + + <!-- if the property uima-maven-build-eclipse-home is set, use it, otherwise don't --> + <condition property="eclipse.home" value="${uima-maven-build-eclipse-home}"> + <not> + <equals arg1="${uima-maven-build-eclipse-home}" arg2="$${uima-maven-build-eclipse-home}" /> + </not> + </condition> + + <property environment="envVar" /> + <condition property="eclipse.home" value="${envVar.ECLIPSE_HOME}"> + <isset property="envVar.ECLIPSE_HOME" /> + </condition> + + <fail unless="eclipse.home" message="********** Please set up and use an ant property eclipse.home set to an Eclipse installation at level 3.3 or later, e.g. c:/eclipses/3.3/eclipse" /> + + <!-- We run an internal Ant this way in order to have the Ant impl have the special defined tasks for p2 --> + + <java jar="${eclipse-equinox-launcher}" fork="true" failonerror="true" maxmemory="256m"> + <arg line="-application org.eclipse.ant.core.antRunner" /> + <arg line="-f subsiteSlicing.xml" /> + <arg line="-verbose" /> + <arg line="-Dsubsite=${subsite}"/> + </java> + + <!-- ============================================== --> + <!-- If apache-release, do checksums and gpg sign --> + <!-- ============================================== --> + + <if> + <equals arg1="${isApacheRelease}" arg2="true" /> + <then> + <echo message="Generating checksums for artifacts.jar and content.jar" /> + <checksum algorithm="sha1" format="MD5SUM"> + <fileset dir="${eclipseUpdateSlice}"> + <include name="*.jar.pack.gz" /> + <include name="*.jar" /> + </fileset> + </checksum> + <checksum algorithm="md5" format="MD5SUM"> + <fileset dir="${eclipseUpdateSlice}"> + <include name="*.jar.pack.gz" /> + <include name="*.jar" /> + </fileset> + </checksum> + + <echo message="Generating gpg signatures for artifacts.jar and content.jar" /> + <!-- gpg fails if sig file already exists, so delete it if it exists --> + <delete> + <fileset dir="${eclipseUpdateSlice}" includes="*.asc" /> + </delete> + <apply executable="gpg" dir="${eclipseUpdateSlice}"> + <arg value="--detach-sign" /> + <arg value="--armor" /> + <!-- batch flag needed to avoid gpg hang up --> + <arg value="--batch" /> + <fileset dir="${eclipseUpdateSlice}"> + <include name="*.jar" /> + <include name="*.jar.pack.gz" /> + </fileset> + </apply> + + </then> + </if> + + </target> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> +</profiles> + +</project> \ No newline at end of file Added: uima/build/trunk/uima-eclipse-update-site-removing/readme.txt URL: http://svn.apache.org/viewvc/uima/build/trunk/uima-eclipse-update-site-removing/readme.txt?rev=1870390&view=auto ============================================================================== --- uima/build/trunk/uima-eclipse-update-site-removing/readme.txt (added) +++ uima/build/trunk/uima-eclipse-update-site-removing/readme.txt Mon Nov 25 15:43:11 2019 @@ -0,0 +1,32 @@ +How to maintain the UIMA Eclipse update site + +The Eclipse update site is a composite update site. The top level has subsites for + - UIMAJ SDK + - RUTA + - UIMA-AS + +The update site only needs maintenance if the number of subsites changes. Normally this is not the case. +See the uima-eclipse-composite-update-site project's "buildCompositeRepository.xml" for details. + +Subsites need maintenance, for the following things: + +1) removing releases that were buggy and replaced, where there's no value in keeping those releases in the update site. +2) slicing off a bunch of older releases from the main subsite, into an appropriately named archive for those. This process +creates two subsites + - the original, but with the sliced of versions removed and + - a new subsite with the removed versions. + + Once promoted to the Apache Mirror system, the new subsite is deleted. This causes it to be removed from the + Apache Mirror system, but it is kept in the apache archive. + + When this is done, please document where the sliced off older releases went (the name of that update site) so people + wanting to install from there still can do that. + +How to run +---------- + +1) update the POM: + - change property subsite to "uimaj", "ruta", "uimaj-v3-pre-production", etc. + - if doing a "slice" operation, set the property "slice" to something like: + uimaj-2.4.0-2.9.0 indicating the subsite name and the versions included +2) update the subsiteMaintenance.xml to specify the maintenance tasks \ No newline at end of file Added: uima/build/trunk/uima-eclipse-update-site-removing/saved-pom-parts.xml URL: http://svn.apache.org/viewvc/uima/build/trunk/uima-eclipse-update-site-removing/saved-pom-parts.xml?rev=1870390&view=auto ============================================================================== --- uima/build/trunk/uima-eclipse-update-site-removing/saved-pom-parts.xml (added) +++ uima/build/trunk/uima-eclipse-update-site-removing/saved-pom-parts.xml Mon Nov 25 15:43:11 2019 @@ -0,0 +1,36 @@ +!<!-- The only reason to check out from SVN these 2 files and their signatures is to set things up + so the release can be done via a svn switch (from dev to release) and then a commit + Because Jars are being released, it's unlikely there is any diff encoding that SVN can do --> + + <!-- =================================== --> + <!-- SVN remote copy from release to dev --> + <!-- and checkout --> + <!-- =================================== --> + <echo>copying svn dist release to dev for eclipse update subsite ${subsite} version ${project.version}</echo> + <!-- + <exec executable="svn"> + <arg value="delete" /> + <arg value="${distsvnroot}repos/dist/dev/uima/eclipse-update-site/${subsite}/${project.version}" /> + <arg value="- -force" /> + <arg value="-m" /> + <arg value="prepare for eclipse update subsite ${subsite} ${project.version} maintenance" /> + </exec> + + <exec executable="svn"> + <arg value="copy" /> + <arg value="${distsvnroot}repos/dist/release/uima/eclipse-update-site/${subsite}" /> + <arg value="${distsvnroot}repos/dist/dev/uima/eclipse-update-site/${subsite}/${project.version}" /> + <arg value="- -parents" /> + <arg value="-m" /> + <arg value="prepare for eclipse update subsite ${subsite} ${project.version} maintenance" /> + </exec> + + <delete dir="${eclipseUpdateSite}" quiet="false"/> + <echo>checking out eclipse subsite ${subsite} from dist ...dev...</echo> + <exec executable="svn"> + <arg value="checkout" /> + <arg value="- -quiet" /> + <arg value="${distsvnroot}repos/dist/dev/uima/eclipse-update-site/${subsite}/${project.version}" /> + <arg value="${eclipseUpdateSubsite}" /> + </exec> + --> \ No newline at end of file Added: uima/build/trunk/uima-eclipse-update-site-removing/subsiteMaintenance.xml URL: http://svn.apache.org/viewvc/uima/build/trunk/uima-eclipse-update-site-removing/subsiteMaintenance.xml?rev=1870390&view=auto ============================================================================== --- uima/build/trunk/uima-eclipse-update-site-removing/subsiteMaintenance.xml (added) +++ uima/build/trunk/uima-eclipse-update-site-removing/subsiteMaintenance.xml Mon Nov 25 15:43:11 2019 @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<project name="subsiteMaintenance" basedir="." default="subsiteMaintenance"> + <target name="subsiteMaintenance"> + <echo>starting ${basedir}</echo> + + + <!-- ========================================== --> + <!-- maintenance to remove installable units --> + <!-- (versions of features/plugins) --> + <!-- set the next 2 properties --> + <!-- ========================================== --> + + <property name="subsite" value="uimaj"/> + <property name="version" value="2.4.0"/> + <!-- + <p2.remove.iu> + <repository location="target/eclipse-update-site/${subsite}"/> + + + <iu id='org.apache.uima.runtime.feature.group' version='${version}'/> + <iu id="org.apache.uima.tools.feature.group" version='${version}'/> + + <iu id='org.apache.uima.tools.feature.jar' version='${version}'/> + <iu id='org.apache.uima.runtime.feature.jar' version='${version}'/> + + <iu id='org.apache.uima.desceditor' version='${version}'/> + <iu id='org.apache.uima.pear' version='${version}'/> + <iu id='org.apache.uima.caseditor.ide' version='${version}'/> + <iu id='org.apache.uima.launcher' version='${version}'/> + <iu id='org.apache.uima.caseditor' version='${version}'/> + <iu id='org.apache.uima.debug' version='${version}'/> + <iu id='org.apache.uima.jcas.jcasgenp' version='${version}'/> + <iu id='org.apache.uima.runtime' version='${version}'/> + + </p2.remove.iu> + + <delete> + <fileset dir="target/eclipse-update-site/uimaj"> + <include name="**/*_${version}.jar*.asc"/> + <include name="**/*_${version}.jar*.md5"/> + <include name="**/*_${version}.jar*.sha1"/> + </fileset> + </delete> + --> + + <!-- ========================================== --> + <!-- maintenance to slice out a number of --> + <!-- versions for archiving --> + <!-- set the next 2 properties --> + <!-- ========================================== --> + + <property name="slice" value="uimaj-2.4.0"/> + + <p2.mirror source="target/eclipse-update-site/${subsite}" verbose='true'> + <destination location="target/eclipse-update-site/${slice}"/> + <slicingoptions followStrict='true' includeOptional='false' includeNonGreedy='false'/> + <iu id='org.apache.uima.runtime.feature.group' version='${version}'/> + <iu id="org.apache.uima.tools.feature.group" version='${version}'/> + + </p2.mirror> + <echo>done</echo> + </target> +</project> \ No newline at end of file Added: uima/build/trunk/uima-eclipse-update-site-removing/subsiteSlicing.xml URL: http://svn.apache.org/viewvc/uima/build/trunk/uima-eclipse-update-site-removing/subsiteSlicing.xml?rev=1870390&view=auto ============================================================================== --- uima/build/trunk/uima-eclipse-update-site-removing/subsiteSlicing.xml (added) +++ uima/build/trunk/uima-eclipse-update-site-removing/subsiteSlicing.xml Mon Nov 25 15:43:11 2019 @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<project name="subsiteSlicing" basedir="." default="subsiteSlicing"> + <target name="subsiteSlicing"> + <property name="eclipseUpdateSlice" value="target/eclipse-update-site/${subsite}"/> + + <echo>starting Eclipse update site slicing for ${subsite}</echo> + + <!-- ============================================== --> + <!-- maintenance to slice out most recent version --> + <!-- --> + <!-- change iu's below to the feature groups --> + <!-- appropriate to your subsite --> + <!-- --> + <!-- ============================================== --> + + <delete dir="${eclipseUpdateSlice}" quiet="false"/> + + <!-- don't use raw='false' because all it does is change timestamps and uuids --> + <p2.mirror source="https://dist.apache.org/repos/dist/release/uima/eclipse-update-site/${subsite}" verbose='true'> + <destination location="${eclipseUpdateSlice}"/> + <slicingoptions followStrict='true' includeOptional='false' includeNonGreedy='false'/> + + <!-- insert the name of all features --> + <iu id='org.apache.uima.runtime.feature.group'/> + <iu id='org.apache.uima.tools.feature.group'/> + + </p2.mirror> + + <delete dir="${eclipseUpdateSlice}/.blobstore" quiet="false"/> + <echo>done</echo> + </target> +</project> \ No newline at end of file