You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2026/04/26 10:18:56 UTC
(ant-antlibs-common) 02/02: add some more support files and a small explainer
This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ant-antlibs-common.git
commit 610cc1357dde0c0ff10d25f2239abc1e1e2fcd94
Author: Stefan Bodewig <bo...@apache.org>
AuthorDate: Sun Apr 26 12:18:13 2026 +0200
add some more support files and a small explainer
---
.gitattributes | 38 ++++++++++++++
.gitignore | 5 ++
README.md | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 206 insertions(+)
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..85746f7
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,38 @@
+*.bat eol=crlf
+*.bz2 binary
+*.cmd eol=crlf
+*.css text
+*.dtd text
+*.g text
+*.gif binary
+*.gz binary
+*.html text diff=html
+*.ico binary
+*.inc text
+*.jar binary
+*.jpg binary
+*.jsp text
+*.md text
+*.md5 text
+*.md5sum text
+*.mf text
+*.pl text diff=perl
+*.properties text
+*.py text diff=python
+*.result text
+*.sample text
+*.sh eol=lf
+*.tar binary
+*.test text
+*.txt text
+*.wxs text
+*.xml text
+*.xsd text
+*.xsl text
+*.zip binary
+.gitattributes text
+.gitignore text
+NOTICE text
+LICENSE text
+README text
+README.md text
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4a4a0ea
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+/build/
+/docs/style.css
+/ivy/
+/lib/
+/target/
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a3fb2ef
--- /dev/null
+++ b/README.md
@@ -0,0 +1,163 @@
+# Antlibs Common
+
+This is a skeleton to make development of Ant Libraries provided by
+the Apache Ant Project follow the same pattern.
+
+The repository is only mean to be included as git submodule into the
+actual Antlib. It provides common infrastructure using Apache Ant to
+build and Apache Ivy for dependency management.
+
+## Setting up a new Antlib Project
+
+* Create a new git repository via https://gitbox.apache.org/boxer/
+* Clone it locally
+* add this git repository as submodule named common to your new
+ repository: `git submodule add
+ https://gitbox.apache.org/repos/asf/ant-antlibs-common.git common`
+* copy `LICENSE`, `gitignore` and `.gitattributes` from `common` to
+ the top level directory of your new antlib.
+* copy `NOTICE.template` from `common` to a file named `NOTICE` inside
+ the top level directory of your new antlib and adapt its content
+ (PRODUCT_NAME and copyright year.
+* add a minimal `build.xml` file to the top level directory of your
+ project. Something like
+ ```xml
+<?xml version="1.0"?>
+<!--
+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.
+-->
+<project default="compile" name="antunit">
+
+ <!-- easy way to override properties -->
+ <property file="build.properties"/>
+
+ <import file="common/build.xml"/>
+</project>
+ ```
+* if there are any properties you want to override (you most likely
+ will want to change `javac.-source` and `javac.-target`) create a
+ `build.properties` file and add them.
+* create a more or less empty `contributors.xml` file to the top level
+ directory of your antlib. Add yourself. The structure is
+ ```xml
+<?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
+
+ 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.
+-->
+<!DOCTYPE contributors
+[
+<!ELEMENT name (first?, middle?, last)>
+<!ELEMENT contributors (introduction, name+)>
+<!ELEMENT first (#PCDATA)>
+<!ELEMENT introduction (#PCDATA)>
+<!ELEMENT middle (#PCDATA)>
+<!ELEMENT last (#PCDATA)>
+]
+>
+
+<contributors>
+ <introduction>
+ These are some of the many people who have helped with this Ant Library.
+ </introduction>
+ <name>
+ <first>YOUR FIRST NAME</first>
+ <last>YOUR LAST NAME</last>
+ </name>
+</contributors>
+ ```
+* create a more or less empty `changes.xml` file to the top level
+ directory of your antlib. The structure is
+ ```xml
+<?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
+
+ 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.
+-->
+<!DOCTYPE document
+[
+<!ELEMENT document (properties?, release+)>
+<!ELEMENT properties (title)>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT release (action*)>
+<!ELEMENT action (#PCDATA)>
+<!ATTLIST release
+ version CDATA #REQUIRED
+ date CDATA #REQUIRED
+ description CDATA #IMPLIED>
+<!ATTLIST action
+ issue CDATA #IMPLIED
+ type (add|fix|remove|update) #REQUIRED
+ breaks-bwc (true|false) #IMPLIED>
+]
+>
+<document>
+ <properties>
+ <title>YOUR LIBRARY NAME</title>
+ </properties>
+
+ <release version="0.1" date="unreleased">
+ </release>
+</document>
+ ```
+* add `version.properties` to the top level directory of your antlib
+ which must at least contain a definition of
+ `artifact.version`. Something like
+ ```
+# 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.
+artifact.version=0.1alpha
+ ```
+* if you want to use Ivy to manage your dependencies, add a file
+ `ivy.xml` to the root directory of your antlib and set it up.