The official roadmap of things that need to be completed, and their perceived status at the time this document was last updated (08:29:02 07-Aug-2011), and how you can help. Given the pace things are moving at, this roadmap does not refer to specific dates for addition.
The Vision
Although the JSAN will ultimately be different to the CPAN, the CPAN infrastructure has had 10 years to mature and evolve to it's current state, and serves as a good blueprint for anyone wanting to implement anything similar.
The JSAN Components
This list is probably not complete, things are moving very quickly and some of this may get a little out of date. If there is something you want to do, bring it up on the JSAN Development mailing list.
Although there aren't fixed milestones as such, you could consider Milestone 1 to be a working JSAN (in any form) where packages can be uploaded, installed, and used. This has been completed.
The next step, Milestone 2 if you will, mainly involves the completion of all items not marked as Future, and rounds out JSAN to be much more complete, flexible and rubust.
Core Repository
Tasks | Status | Description |
---|---|---|
Master Server (Physical) | Done | Source, build and obtain suitable sponsored hosting for master server. |
Static Website Generator | Done | Template-based generator for primary site, so it's static and slashdot-proof (hopefully) |
JAUSE Account System | Done | Create and manage JSAN accounts |
JAUSE Upload Server | Done | Allow uploads to JSAN via secure server |
JAUSE Incoming System | Ongoing | Receives, checks and processes uploaded packages |
BackJSAN | Done | Stores/backup all uploaded files ever, even once deleted from primary JSAN |
JSAN Indexer (YAML) | Done | Generate index from the packages in the repository |
JSAN Indexer (SQLite) | Done | Generate SQLite index from YAML index. |
JSAN Indexer (JSON) | To Do | Index as JSON instead/as-well-as full YAML to be more language neutral |
JSAN Indexer Dep-aware | To Do | Make the indexer aware of per-package dependencies and populate index with them |
Mirror Source | Done | Provide an rsync source for mirrors to pull from |
Mirror Network 10+ | Done | 10+ mirrors with at least 2 in each of America/Europe/Asia |
Mirror Network 50+ | Ongoing | 50+ mirrors with 3+ on all continents |
Mirror Network 100+ | Future | 100+ mirrors with at least 1 mirror in all major (internet-using) countries. |
Bug/Request Tracker | Ongoing | Provide bug reporting/tracking for JSAN itself, and seperately for all packages |
Smoke Testing | Ongoing | Allow anyone to point their browser at something and smoke test packages |
Smoke Testing (Automated) | To Do | Automated clients that smoke test and report on all new packages |
Web Server Components
Tasks | Status | Description |
---|---|---|
JSAN Client/Shell v1 | Done | Rapid initial working implementation of SQLite/CDBI wrapper and the JSAN Shell |
JSAN Client v2 | Started | Low-dependency, documented and caching standalone client libs |
JSAN Config | To Do | Mirror navigator/selector and configuration storage |
MiniJSAN | Future | Cache all package in current index, so you can install package offline |
Package Merger | Future | Merge arbitrary packages into a single script following dependencies |
Use Server | Future | Provide fast, cached delivery of arbitrary merged package sets |
Browser Components
Tasks | Status | Description |
---|---|---|
Pseudo-Namespaces | Done | Describe and Document the use of Pseudo-Namespaces |
Test.Simple | Done | Browser/Director-based Unit Testing Framework for JavaScript |
JSAN.js | Done | Load arbitrary packages via XMLHttpRequest + eval |
JSAN.js Script Inject | To Do | Provide same functionality using <script> DOM injection |
JSAN.js Use Server | Future | Provide same functionality via a Use Server |
Upgrade.js | Ongoing | Provide a package for "upgrading" browsers to add missing functions |
Integrate Prototype | Ongoing | Integrate the Prototype JavaScript framework as JSAN packages |
Documentation and Community
Tasks | Status | Description |
---|---|---|
Website POD Support | Done | Provide module documentation on the website using ordinary Perl-compatible POD. Modules using JSPOD should expect bits of code to appear in online docs. |
JSPOD Parser | Done | Creation of parser for JSPOD, the dialect of POD specifically adapted for JavaScript. |
Website JSPOD Support | To Do | Website upgraded to use the JSPOD parser instead of plain POD parser. |
Package-time Stripping | Done | Split out POD at package-time to reduce code size |
Install-time Stripping | Future | Split out POD at install-time, with "developer mode" option to leave it in. |
IRC | Done | Provide a primary IRC channel for the JSAN |
Wiki | Done | Provide a wiki for general use |
Mailing Lists | Done | A variety of mailing lists for the JSAN |
List/NNTP Upgrade | Future | Move to Perl-style dual mailing-list/NNTP server structure |
Public SVN Access | Done | Allow anyone to get access to the code for the JSAN |
RSS/Feeds | Done | Allow the RSS-savvy to do things their way |
Module Ratings | To Do | Allow users to rate and review JSAN packages |
Welcome the Slashdot Hordes | To Do | It's bound to happen any time now... |
How can you help?
Create an Import System for RT
Create a mechanism by which I can run an RT instance that has a queue for every distribution on JSAN. The idea is to have a centralized place to report and monitor bugs and features for the JavaScript on JSAN.
Create an Authentication Scheme for RT
All SVN Committers should have full access to the Internal RT instance. It would be great to have an authentication system that would look the user up in the SVN auth basic table and authenticate her credentials against it. Otherwise, the user is a guest.
I have some code that can do the authentication against the SVN auth table already.
Create a Mirror
Fill in our global network. Find out how to be a mirror for JSAN.
Writing Documentation
Open JSAN could use some good documentation on writing excellent classes and function libraries. The documentation should include support for the JSAN library and example tests using the Test.Simple distribution.
Promote JSAN
Get the word out on your blog, news site, at work, or just use some of our ideas to promote the project.