Task #69

Evaluate package managers

Added by Colin Snover about 5 years ago. Updated about 5 years ago.

Status:New Start date:08/15/2012
Priority:Normal Due date:08/29/2012
Assignee:- % Done:


Target version:-


Before work begins on Dojo 2, we need to evaluate package managers and decide what we will recommend people use, and where we will recommend people register their packages for discovery.


Updated by Kitson Kelly about 5 years ago

From a requirement perspective, a package manager needs to have the following considerations:

  • Support CommonJS Packaging.
  • Support/not interfere any custom extensions (e.g. "dojoBuild") to the CommonJS Packaging.
  • Support and integrate with "git" and submodules.
  • Ideally be able to interface with a Dojo build profile (e.g. like `npm install package --save` adds dependency to `package.json`)
  • Ideally support test and documentation integration.
  • Ideally be able to support not only git storage, but also "Dojo Foundation Package" storage.
  • Ideally be aware of the packaging "categories" that are introduced in Dojo 2.0

Updated by Kitson Kelly about 5 years ago

I have been looking at volo (http://volojs.org/). Looking at volo in the above requirements:

  • Supports CommonJS Packaging.
  • Doesn't interfere with custom extensions.
  • Doesn't interfere with git and is well integrated to GitHub, but unknown if it supports addition of library as a git submodule, need to investigate.
  • Extensible by commands, so integrating to a build profile might be possible.
  • Likely the ability to deal with tests and documentation through leveraging existing volo customisations/extensibility.
  • A third party store/registry could be supported via volo.
  • Potentially supported external to volo.

I am going to "patch" my forks of dojo to demonstrate how Dojo can be more fully managed by volo, although the following already works:

volo add dojo/dojo
volo add dojo/dijit
volo add dojo/dojox
volo add dojo/util

volo add dojo/dojo/1.8.0

(Which is pretty damn cool if you ask me)

Updated by Kitson Kelly about 5 years ago

Just to remind myself to point 3 above, volo does not support git submodules intentionally. There is sufficient functionality in the rest of the volo suite to deal with deployment and make any benefit achieved by git submodules not necessary.

Updated by Kitson Kelly about 5 years ago

Considerations need to be made for:

  • Private hosting
  • Proper registry that allows us to communicate the status of packages
We also need to fully evaluate:
  • npm
  • cpm

Updated by Kitson Kelly about 5 years ago

I have created the Dojo Toolkit 2.0 Package Management discussion document here: https://docs.google.com/a/kitsonkelly.com/document/d/1lwiYQQharkqWmxeOU4QUpZfEToEkZR0ecRWo68Vbwpo/edit

Also available in: Atom PDF