The Apache FOP Project

The Apache™ FOP Project

Apache™ FOP Development: Release Process

Introduction

This page documents the process of creating a Apache™ FOP release. FOP releases are coordinated by some designated member of the team. The purpose of documenting it here is to facilitate consistency, ensure that the process is captured, and to allow others to comment on the process.

The checklist below is based on a combination of input from from Christian Geisert and Simon Pepping.

1. Define the new release

2. Prepare the new release

3. Publish the new release

4. Vote for the new release

5. Update material

5.1 Git

5.2 Jira

5.3 Website

5.4 Maven

python signmvn.py:

import os
import shutil
def addasc(bundle, afile):
    os.system('jar xf ' + bundle + ' ' + afile)
    if os.path.exists(afile):
        os.system('gpg --armor --detach-sign --force-v3-sigs --batch --verbose ' + afile)
        os.system('jar uf ' + bundle + ' ' + afile + '.asc')
        os.remove(afile)
        os.remove(afile + '.asc')
for bundle in os.listdir('.'):
    if bundle.endswith('bundle.jar'):
        addasc(bundle, 'pom.xml')
        addasc(bundle, bundle.replace('-bundle', ''))
        addasc(bundle, bundle.replace('-bundle', '-javadoc'))
        addasc(bundle, bundle.replace('-bundle', '-sources'))
        addasc(bundle, bundle.replace('-bundle', '-tests'))

settings.xml:

<settings>
  <profiles>
    <profile>
      <id>myprofile</id>
      <repositories>
        <repository>
          <id>my-repo2</id>
          <name>your custom repo</name>
          <url>https://repository.apache.org/content/repositories/staging</url>
        </repository>
      </repositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>myprofile</activeProfile>
  </activeProfiles>
</settings>

pom.xml:

<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>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>org.apache.xmlgraphics</groupId>
      <artifactId>fop</artifactId>
      <version>2.10</version>
    </dependency>  
  </dependencies>
</project>

6. Announce the new release

Post announcements on following suggested lists:

Resources

The following is a sample of some other project release checklists, which might be consulted for ideas:

Following are links with information about mirroring: