Welcome and Overview

Welcome to the sfutils project! This collection of open-source code makes it easy for project administrators and release technicians to work with SourceForge without having to manually navigate its website and project tools. It currently provides a Java interface to the SourceForge file release system, with more features planned down the road.

Audience

This project is most appropriate for SourceForge project administrators and release technicians who want an easy way to automate SourceForge's web-based processes. For example, you might want to make a SourceForge file release from a build script, or announce a new news item of interest, or update your SourceForge diary.

License Issues

The code in this project is released under the terms of the MIT License, which basically means that you can do whatever you like with the code, provided that you retain its original copyright notice. Please see the full license text for details.

System Requirements

This project is written in Java, and relies on the assertions facility present in the Java Development Kit versions 1.4 and higher. Please see the dependencies section for a list of the other products and libraries that this project requires. Notable among them are version 1.5.3 of the Ant build tool, and version 3.8.1 of the JUnit unit testing framework.

File Release System Interface

The first set of tools in the SourceForge Utilities project is a Java object interface to the SourceForge File Release System. This collection of objects, spearheaded by the sfutils.frs.FileRelease class, represents a file release, together with its associated package and project attributes. In general, you create a FileRelease object graph and then publish it using a sfutils.frs.web.Publisher. Please see the Javadoc package description for the sfutils.frs package for more details.

This project also includes an Ant task for these Java objects. The task enables you to publish a file release from within a build file. For example:

<?xml version="1.0" ?>
<project basedir="." default="sampletarget">
  <taskdef name="sfpublish" 
           classname="org.apache.tools.ant.taskdefs.optional.sourceforge.SourceForgePublish"/>
    <target name="sampletarget">
      <sfpublish releasename="my-release-1.0"
                 packagename="my-sourceforge-package-name"
                 packagehidden="no"
                 hidden="no"
                 projectshortname="samples"
                 projectname="A Sample SourceForge Project"
                 username="myUsername"
                 password="myPassword"
                 releasedate="6/28/2003">
        <filespec file="/path/to/file/to/be/released"
                  filetype="other"
                  processortype="sparc"/>
        <filespec file="/path/to/another/file/to/be/released" 
                  filetype="gzip_file" 
                  processortype="platform_independent"/>
      </sfpublish>
    </target>
</project>