Maintenance on file structure

Explicitly note which paragraph constitutes our "classpath exception"
in COPYING.

Use '1.5.0-SNAPSHOT' in POM for publishing snapshots.
parent c3645abf
......@@ -260,38 +260,46 @@ of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
13. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
As a special exception, the copyright holders of this software give you
permission to link this software with independent modules to produce an
executable, regardless of the license terms of these independent modules, and
to copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the terms and
conditions of the license of that module. An independent module is a module
which is not derived from or based on this software. If you modify this
software, you may extend this exception to your version of the software, but
you are not obligated to do so. If you do not wish to do so, delete this
exception statement from your version.
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
13. Linking this library statically or dynamically with other
modules is making a combined work based on this library. Thus, the
terms and conditions of the GNU General Public License cover the
whole combination.
The following paragraph details the "classpath exception" which ABCL
allows as an exception to the statement about linking libraries.
As a special exception, the copyright holders of this software give
you permission to link this software with independent modules to
produce an executable, regardless of the license terms of these
independent modules, and to copy and distribute the resulting
executable under terms of your choice, provided that you also meet,
for each linked independent module, the terms and conditions of the
license of that module. An independent module is a module which is
not derived from or based on this software. If you modify this
software, you may extend this exception to your version of the
software, but you are not obligated to do so. If you do not wish to
do so, delete this exception statement from your version.
END OF TERMS AND CONDITIONS
......
(in-package :cl-user)
(defpackage mvn-module
(:use :cl))
(in-package :mvn-module)
(in-package :asdf)
;; dependencies: a list of maven artifacts. color or slash separated
;; components groupid:artifactid:versionid
;; managed-dependencies: a list of maven artifacts. If an dependency
;; with same groupid and artifactid are encountered, the version
;; specified here overrides.
;; exclusions: a list of partial maven artifacts
;; groupid:artifactid. Dependencies with same groupid and artifactid are
;; exluded
(defclass mvn-module (component)
((depends :initarg :dependencies :initform nil :accessor mvn-module-depends)
(excludes :initarg :exclusions :initform nil :accessor mvn-module-excludes)
(managed :initarg :managed-dependencies :initform nil :accessor mvn-module-managed)))
(defmethod component-children ((c mvn-module))
nil)
;;; TODO move to initarg
(defmethod source-file-type ((c mvn-module) (system parent-component)) nil)
(defmethod perform ((op compile-op) (c mvn-module))
)
(defmethod perform ((op prepare-op) (c mvn-module))
)
(defmethod perform ((operation load-op) (c mvn-module))
(loop for path
in (asdf-mvn-module:resolve-multiple-maven-dependencies
(mvn-module-depends c)
(mvn-module-managed c)
(mvn-module-excludes c))
do
(unless (member path abcl-asdf::*added-to-classpath* :test 'equalp)
(jss::add-to-classpath path))))
......@@ -762,12 +762,6 @@ will compile (if necessary) and load JSS.
<include name="build-from-lisp.bash"/>
<!-- The remainder of these files are used by the Lisp hosted
build in 'build-abcl.lisp' but not used by Ant, so include
them in the source distribution. -->
<include name="make-jar.in"/>
<include name="make-jar.bat.in"/>
<include name="build-abcl.lisp"/>
<include name="customizations.lisp.in"/>
......@@ -1230,9 +1224,8 @@ user.dir
</target>
<import file="netbeans-build.xml" optional="true"/>
<!-- <import file="j-build.xml" optional="true"/> -->
<import file="not.org-build.xml" optional="true"/>
<import file="build-snapshot.xml" optional="true"/>
<import file="etc/ant/build-snapshot.xml" optional="true"/>
<import file="build-maven.xml" optional="true"/> </project>
<import file="etc/ant/build-maven.xml" optional="true"/>
</project>
......@@ -13,7 +13,7 @@
</parent>
<groupId>org.abcl</groupId>
<artifactId>abcl-contrib</artifactId>
<version>1.5.0-rc-1</version>
<version>1.5.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Armed Bear Common Lisp (ABCL) Contribs</name>
<description>Extra packages--contribs--for ABCL</description>
......
* ABCL Release Engineering practices
** Maven
Instructions for Releasing ABCL on Sonatype's OSS Maven repository
*** settings.xml
This assumes your settings.xml (/etc/maven2/settings.xml for
Ubuntu-packaged Maven) contains something like this in its
<servers></servers> section:
#+BEGIN_SRC
<server>
<id>sonatype-nexus-snapshots</id>
<username>sonatype-jira-username</username>
<password>sonatype-jira-password</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>sonatype-jira-username</username>
<password>sonatype-jira-password</password>
</server>
#+END_SRC
*** Process
First, remember to build it!
#+BEGIN_SRC
ant abcl.jar abcl.source.jar abcl.javadoc.jar abcl.contrib
#+END_SRC
And maybe test it as well
#+BEGIN_SRC
ant abcl.test
#+END_SRC
For snapshots - development versions - the version in the POM should be like x.y.z-SNAPSHOT
#+BEGIN_SRC
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-sources.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots -Dclassifier=sources
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-javadoc.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots -Dclassifier=javadoc
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots
#+END_SRC
For releases - the version in the POM should be x.y.z
#+BEGIN_SRC
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-${abcl_version}-sources.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-${abcl_version}-javadoc.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc
#+END_SRC
abcl-contrib release
#+BEGIN_SRC
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib-${abcl_version}-sources.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib-${abcl_version}-javadoc.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc
#+END_SRC
**** Testing downloads
#+BEGIN_SRC
mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl=https://oss.sonatype.org/content/repositories/snapshots -Dartifact=org.abcl:abcl-contrib:1.5.0-SNAPSHOT:jar
#+END_SRC
*** See also
<http://www.sonatype.org/nexus/2015/06/02/how-to-publish-software-artifacts-to-maven-central/>
<http://central.sonatype.org/pages/releasing-the-deployment.html>
*** Specifiying GPG executable
For specifying gpg executable, use a property specified via
'-Dgpg.executable=gpg2'.
@JAR@ cfm dist\abcl.jar src\manifest-abcl -C src org\armedbear\lisp\LICENSE -C src org\armedbear\lisp\boot.lisp
@JAR@ uf dist\abcl.jar -C build\classes .
#!/bin/sh
@JAR@ cfm dist/abcl.jar src/manifest-abcl -C src org/armedbear/lisp/LICENSE -C src org/armedbear/lisp/boot.lisp
@JAR@ uf dist/abcl.jar -C build/classes .
# Releasing ABCL on Sonatype's OSS Maven repository - instructions
#
# This assumes your settings.xml (/etc/maven2/settings.xml for Ubuntu-packaged Maven) contains something like this in its <servers></servers> section:
#
# <server>
# <id>sonatype-nexus-snapshots</id>
# <username>sonatype-jira-username</username>
# <password>sonatype-jira-password</password>
# </server>
# <server>
# <id>sonatype-nexus-staging</id>
# <username>sonatype-jira-username</username>
# <password>sonatype-jira-password</password>
# </server>
# First, remember to build it!
ant abcl.jar abcl.source.jar abcl.javadoc.jar abcl.contrib
# And maybe test it as well
ant abcl.test
# For snapshots - development versions - the version in the POM should be like x.y.z-SNAPSHOT
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-sources.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots -Dclassifier=sources
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-javadoc.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots -Dclassifier=javadoc
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib-.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots
# For releases - the version in the POM should be x.y.z
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-${abcl_version}-sources.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-${abcl_version}-javadoc.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc
# Contrib releases
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib-${abcl_version}-sources.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources
mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib-${abcl_version}-javadoc.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc
# <http://www.sonatype.org/nexus/2015/06/02/how-to-publish-software-artifacts-to-maven-central/>
# <http://central.sonatype.org/pages/releasing-the-deployment.html>
#
# For specifying gpg executable, use a property specified via '-Dgpg.executable=gpg2'
......@@ -13,7 +13,7 @@
</parent>
<groupId>org.abcl</groupId>
<artifactId>abcl</artifactId>
<version>1.5.0-rc-1</version>
<version>1.5.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>ABCL - Armed Bear Common Lisp</name>
<description>Common Lisp implementation running on the JVM</description>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment