Toolkit Extensions

A repository for contributed code outside of official ACS releases.

Part of the ArsDigita Developer Community


The Big Picture

The existance of this repository is based on two facts. One, ArsDigita does not employ every talented programmer in the world. Two, while incorporating every feature and extension used for any web service into the ACS would make it bloated and unmanageable, people shouldn't have to recreate the wheel all the time either. Thus, this repository exists to allow people to contribute code that extends the ACS in useful ways which may be interesting and valuable to the rest of the community of developers using the ACS.

Specification

This repository will accept submissions of code to complement the ArsDigita Community System (ACS). These are pieces of code that, for one reason or another, are not a part of the main ArsDigita releases. This could be because the application is too specialized for the general release, or because it is a modification to a version of the ACS other than the current release, or even because it is a complete module that wasn't written by an ArsDigita employee but should be incorporated into the ACS in a future release.

Technical issues will prevent this from being a CVS repository, at least initially. However, the value of being able to view the evolution of a piece of work or of being able to access an older version is indisputable. For this reason, a version history of each submission will be maintained and previous versions will be stored and made availible in addition to the most current.

Anyone may upload code they have written and anyone may download any submission (as long as they are logged in to www.arsdigita.com). The original submitter may specify that a piece of code is public, meaning anyone may upload modified versions of the code, or limit the power to make modifications to a group of individuals.

The interface to the repository will be similar to the ticket tracker. We will provide controls to limit the display according to the type of the submission (complete module, individual procedure, etc.), the category of the submission (site administration tools, user services, graphical enhancements, etc), how recently the submission was made, etc. The results will be sortable according to user ratings, submitting user or any of the restriction criteria.

The page displaying an individual submission will give information about the submission, a version history, a link to download it, an opportunity for users who have previously downloaded it to submit a rating, and user submitted links and comments. We will use the ticket tracker to keep track of bugs and feature requests for submission.

The storage scheme on the server is similar to the download module, but simplified and human readable. A submission gets stored as /web/developer/extensions/shortname/shortname-version_name.tar.gz.

Legal Transactions

The user/admin dichotomy here is essentially that of download/upload.

From the user pages people can:

From the admin pages people can:

Submissions

Submissions require the following items to be uploaded:

Submitters are strongly encouraged to provide the URL to an example of the work in use.

While there will be no formal code review of submissions (unless the decision is made to roll them into the ACS), an attempt should be made to conform to ArsDigita standards for comments, documentation and naming conventions.

Future Improvements


kevin@arsdigita.com