Browse Source

Merge pull request #99 from bodewig/snap

add snap publishing for Ant
master
Stefan Bodewig GitHub 6 years ago
parent
commit
f138fa019c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 140 additions and 13 deletions
  1. +1
    -0
      .gitignore
  2. +45
    -13
      ReleaseInstructions
  3. +22
    -0
      snap/gui/ant-docs.desktop
  4. BIN
      snap/gui/ant-logo.png
  5. +18
    -0
      snap/local/ant-docs.sh
  6. +54
    -0
      snap/snapcraft.yaml

+ 1
- 0
.gitignore View File

@@ -2,6 +2,7 @@
*.ipr
*.iws
*.pif
*.snap
.ant.properties
.classpath
.DS_Store


+ 45
- 13
ReleaseInstructions View File

@@ -47,6 +47,12 @@ Note: This document was adapted from the one created in the context of
while releasing Ant 1.10.x from master branch. Make sure JAVA_HOME
points to a JDK installation which is minimally Java 9.

You will need to have the snapcraft CLI tool installed in order to
create and publish snap archives. See
https://docs.snapcraft.io/snapcraft-overview
Also you will need a launchpad id that is a collaborator of Ant's
snapcraft store organization, Stefan can add you.

3. We don't want tags for failed votes to end up on our branches so
the release is first created from a detached head.

@@ -74,6 +80,7 @@ Note: This document was adapted from the one created in the context of
* ivy.xml in release subdirectory (version should already be correct here)
* WHATSNEW (version should already be correct here)
* src/etc/testcases/taskdefs/conditions/antversion.xml (version should already be correct here)
* snap/snapcraft.yml

6. Next bootstrap, build and run the tests.

@@ -196,7 +203,23 @@ Note: This document was adapted from the one created in the context of
"Close" on the top of the table listing the uploads make a note of
the location of the staging repository for the vote email

14. Once this is committed send a release vote email on dev@ant.
14. Create the Snap archive and publish it

You may need to login first

$ snapcraft login

And then build and publish

$ snapcraft clean
$ snapcraft snap
$ snapcraft push --release candidate ant_*.snap

This will publish the new release snap to the latest track on the
candidate risk level. It will be moved to stable, once the vote
has passed.

15. Once this is committed send a release vote email on dev@ant.
The email will typically mention :
- the git tag for the release including commit hash,
- the location of the tarballs, including revision number in
@@ -206,15 +229,15 @@ Note: This document was adapted from the one created in the context of
The vote will only pass if at least three PMC members have voted +1
and more +1s than -1s have been cast. The vote will run for 3 days.

15. If the vote fails, address the problems and recreate the next RC
16. If the vote fails, address the problems and recreate the next RC
build.

16. Once the vote has passed, tag the last RC created with the final tag
17. Once the vote has passed, tag the last RC created with the final tag

$ git tag -s -m "Tagging version 1.10.0 of Ant" rel/1.10.0 HASH_OF_LAST_RC
$ git push --tags

17. The distrib artifacts should be published the apache dist. It is
18. The distrib artifacts should be published the apache dist. It is
managed via svnpubsub so the release should be committed to the
subversion repository
https://dist.apache.org/repos/dist/release/ant/.
@@ -234,16 +257,16 @@ Note: This document was adapted from the one created in the context of
and click the button "Release".
4 hours later, the artifacts will be in the maven central repository.
18. Update the Apache Reporter System
19. Update the Apache Reporter System

https://reporter.apache.org/addrelease.html?ant

19. Address the available version tags in BugZilla. Create new
20. Address the available version tags in BugZilla. Create new
milestone 1.10.1 and version 1.10.0.

20. Add a new release tag to doap_Ant.rdf in Ant's site.
21. Add a new release tag to doap_Ant.rdf in Ant's site.

21. checkout the master branch, merge the tag but don't push the
22. checkout the master branch, merge the tag but don't push the
commit

[if a release of Ant 1.9.x happened at the same time, deal with
@@ -279,6 +302,7 @@ Note: This document was adapted from the one created in the context of
* ivy.xml in release subdirectory
* WHATSNEW (add a new section)
* src/etc/testcases/taskdefs/conditions/antversion.xml
* snap/snapcraft.yml (bump version to [newversion]alpha)

Amend the merge commit

@@ -286,9 +310,16 @@ Note: This document was adapted from the one created in the context of
$ git commit -a --amend
$ git push

22. wait a few hours for the mirrors to catch up
23. copy the candidate snaps to stable. First figure out the revision

$ snapcraft status ant
$ snapcraft release ant REVISION latest/stable 1.10/stable

where REVISION is the revision you want to promote

24. wait a few hours for the mirrors to catch up

23. Update the ant.apache.org site :
25. Update the ant.apache.org site :

The website is managed here: https://svn.apache.org/repos/asf/ant/site/ant/

@@ -314,15 +345,15 @@ Note: This document was adapted from the one created in the context of
Commit the modified/generated files in the 'production' folder, it will go
live on ant.apache.org in a matter on seconds.

24. At this point in time, the release is done and announcements are made.
26. At this point in time, the release is done and announcements are made.
PGP-sign your announcement posts.

Apache mailing lists that should get the announcements:
announce@apache.org, dev@ant and user@ant.

25. You can now reacquaint yourself with your family and friends.
27. You can now reacquaint yourself with your family and friends.

26. After a few days "svn rm" the older release artifacts and release
28. After a few days "svn rm" the older release artifacts and release
notes from https://dist.apache.org/repos/dist/release/ant/

"older" here means any older 1.10.x release but not the latest
@@ -344,6 +375,7 @@ Files containing version information
* ivy.xml in release subdirectory
* WHATSNEW
* src/etc/testcases/taskdefs/conditions/antversion.xml
* snap/snapcraft.yml

cover.html, credits.html, POM files, antversion.xml should be
adjusted for the [newversion] right after the build and tagging


+ 22
- 0
snap/gui/ant-docs.desktop View File

@@ -0,0 +1,22 @@
# 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
#
# https://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.

[Desktop Entry]
Name=Apache Ant Documentation
Comment=Browse the Apache Ant documentation locally
Exec=ant.ant-docs
Icon=${SNAP}/meta/gui/ant-logo.png
Terminal=false
Type=Application

BIN
snap/gui/ant-logo.png View File

Before After
Width: 255  |  Height: 255  |  Size: 27 KiB

+ 18
- 0
snap/local/ant-docs.sh View File

@@ -0,0 +1,18 @@
#!/bin/sh

# 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
#
# https://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.

xdg-open "$@"

+ 54
- 0
snap/snapcraft.yaml View File

@@ -0,0 +1,54 @@
# 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
#
# https://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.

name: ant
version: "1.10.7alpha"
summary: Apache Ant
description: |
Apache Ant™ is a Java library and command-line tool whose mission is
to drive processes described in build files as targets and extension
points dependent upon each other. The main known usage of Ant is the
build of Java applications. Ant supplies a number of built-in tasks
allowing to compile, assemble, test and run Java applications. Ant
can also be used effectively to build non Java applications, for
instance C or C++ applications. More generally, Ant can be used to
pilot any type of process which can be described in terms of targets
and tasks.

Ant is written in Java and thus requires Java 8 or a later runtime
environment to be installed. If you want to build a Java project you
will need a Java Development Kit rather than just a Java Runtime
Environment.
confinement: classic
grade: devel
base: core18
license: Apache-2.0
architectures:
- run-on: all
build-on: [amd64, i386]

apps:
ant:
command: bin/ant
ant-docs:
command: ant-docs.sh $SNAP/manual/index.html

parts:
ant:
plugin: dump
source: distribution/binaries/apache-ant-${SNAPCRAFT_PROJECT_VERSION}-bin.tar.gz
ant-docs:
plugin: dump
source: snap/local

Loading…
Cancel
Save