diff --git a/.gitignore b/.gitignore index da9144a03..80d1425fe 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.ipr *.iws *.pif +*.snap .ant.properties .classpath .project diff --git a/ReleaseInstructions b/ReleaseInstructions index b44fe2af4..48d5e0ac6 100644 --- a/ReleaseInstructions +++ b/ReleaseInstructions @@ -26,7 +26,7 @@ Note: This document was updated in the context of releasing Ant releases is needed. This document assumes you are familiar with git - http://git-scm.com/book/en/v2/ + https://git-scm.com/book/en/v2/ may be a good guide if you are not. 2. Ensure you have all the external libraries that Ant uses in your @@ -42,6 +42,12 @@ Note: This document was updated in the context of releasing Ant the right year and commit and push the change upstream, before starting any release process. + 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. @@ -69,6 +75,7 @@ Note: This document was updated in the context of releasing Ant * 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. @@ -96,7 +103,7 @@ Note: This document was updated in the context of releasing Ant 9. Ensure that the GPG key you use is inside the KEYS file in Ant's git repository - + - and that you copy the KEYS file to /www/www.apache.org/dist/ant Also make sure you have sent the key that you use to a public @@ -114,7 +121,7 @@ Note: This document was updated in the context of releasing Ant This script requires using commons-openpgp to sign the artefacts, This tool can be checked out from - http://svn.apache.org/repos/asf/commons/sandbox/openpgp/trunk + https://svn.apache.org/repos/asf/commons/sandbox/openpgp/trunk You have to build it using maven. $ mvn install @@ -135,7 +142,7 @@ Note: This document was updated in the context of releasing Ant b. Using gpg - $ for i in distribution/*/*.zip distribution/*/*.gz distribution/*/*.bz2; do gpg --use-agent --detach-sign --armor $i; done + $ for i in distribution/*/*.zip distribution/*/*.gz distribution/*/*.bz2 distribution/*/*.xz; do gpg --use-agent --detach-sign --armor $i; done $ for i in java-repository/org/apache/ant/ant*/*/*.jar java-repository/org/apache/ant/ant*/*/*.pom; do gpg --use-agent --detach-sign --armor $i; done 11. Convert the part of the WHATSNEW file covering the changes @@ -183,7 +190,23 @@ Note: This document was updated in the context of releasing Ant "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 1.9/candidate ant_*.snap + + This will publish the new release snap to the 1.9 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 @@ -193,15 +216,15 @@ Note: This document was updated in the context of releasing Ant 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.9.7 of Ant" rel/1.9.7 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/. @@ -221,16 +244,16 @@ Note: This document was updated in the context of releasing Ant 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.9.8 and version 1.9.7. -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 1.9.x branch, merge the tag but don't push the +22. checkout the 1.9.x branch, merge the tag but don't push the commit $ git checkout 1.9.x @@ -262,6 +285,7 @@ Note: This document was updated in the context of releasing Ant * 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 @@ -275,9 +299,16 @@ Note: This document was updated in the context of releasing Ant $ git merge 1.9.x $ git push -23. wait a few hours for the mirrors to catch up +24. copy the candidate snaps to stable. First figure out the revision + + $ snapcraft status ant + $ snapcraft release ant REVISION 1.9/stable + + where REVISION is the revision you want to promote + +25. wait a few hours for the mirrors to catch up -24. Update the ant.apache.org site : +26. Update the ant.apache.org site : The website is managed here: https://svn.apache.org/repos/asf/ant/site/ant/ @@ -299,22 +330,22 @@ Note: This document was updated in the context of releasing Ant Commit the modified/generated files in the 'production' folder, it will go live on ant.apache.org in a matter on seconds. -25. At this point in time, the release is done and announcements are made. +27. 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. -26. You can now reacquaint yourself with your family and friends. +28. You can now reacquaint yourself with your family and friends. -27. After a few days "svn rm" the older release artifacts and release +29. After a few days "svn rm" the older release artifacts and release notes from https://dist.apache.org/repos/dist/release/ant/ Related Information -http://www.apache.org/dev/#releases -http://commons.apache.org/releases/index.html -http://wiki.apache.org/commons/SigningReleases +https://www.apache.org/dev/#releases +https://commons.apache.org/releases/index.html +https://wiki.apache.org/commons/SigningReleases Files containing version information ------------------------------------ @@ -326,6 +357,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 diff --git a/snap/gui/ant-docs.desktop b/snap/gui/ant-docs.desktop new file mode 100644 index 000000000..caee39279 --- /dev/null +++ b/snap/gui/ant-docs.desktop @@ -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 diff --git a/snap/gui/ant-logo.png b/snap/gui/ant-logo.png new file mode 100644 index 000000000..0a423e2af Binary files /dev/null and b/snap/gui/ant-logo.png differ diff --git a/snap/local/ant-docs.sh b/snap/local/ant-docs.sh new file mode 100755 index 000000000..eb28fb717 --- /dev/null +++ b/snap/local/ant-docs.sh @@ -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 "$@" diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 000000000..dd572b0aa --- /dev/null +++ b/snap/snapcraft.yaml @@ -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.9.15alpha" +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 5 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