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 <[email protected]> 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.
