Submit A Plugin

As many of you know, the MooTools team is hard at work on a plugin repository that will allow developers to share their date pickers, form validators, effects, and other widgets with anyone. This project is being pursued as fast as possible, but this means it’s up to a few people who are burning their spare time to work on it as they can.

As a stop-gap solution, I’m going to open up the Clientcide repositories now that I’ve thrown off my corporate bonds. Anyone that wants to release a plugin here is welcome to do so. They’ll be included as additional download options on the Clientcide builder page.

To submit a plugin you need to have the following:

  1. A svn repository for your work that anyone can pull from – I suggest Google Code.
  2. A directory organization that mirrors the MooTools repository. This means a Source directory with a scripts.json file, a Docs directory, a Compatibility directory (even if it’s empty), and a Specs directory (unless your plugin has no use for it).
  3. Your scripts.json file should reference by name any dependencies your script has. It can reference other scripts available here on Clientcide. So, for example, if you extended my FormValidator class and create, say, FormValidator.Foo. You would list in your scripts.json that your file depended on “FormValidator”. This allows the download page to include the files yours needs.
  4. Your plugin must have a unique file name – this has to do with the dependency mapping, which, at the moment, doesn’t respect the differences between libraries – they all work in the same namespace, so if there’s a plugin on Clientcide already that has the name you want, you’ll have to pick another.
  5. Your plugin must include tests. You can use either the Clientcide Test Framework or the JSSPec test runner that comes with MooTools. Look at the Clientcide repository for examples as it contains both.
  6. I must be able to contribute to your svn repository. I’ll only do so if there’s a pressing bug and you are unavailable to address it.
  7. Optionally, you can author a page in the Clientside wikitorials that demonstrates how your plugin works.
  8. Your plugin must not have any errors and must work well when compressed (i.e. watch those semi-colons!).
  9. Your plugin must not produce any JavaScript warnings.

Any plugin is fair game. The only requirements are that they be open source and that they be well written. Which plugins are accepted will be up to me for now.

To get started, just drop me a line.