wiki:DM/Policy/NdArrayNamespaceChange
Last modified 7 years ago Last modified on 02/19/2012 11:31:16 AM

TCT Proposal to move the ndarray package outside the lsst namespace

ndarray is a multidimensional array package that began life as an external package written by an LSST developer (Jim Bosch), but was added to the stack as an internal LSST package (essentially forking it from the external version).

I (Jim) have found it difficult to maintain both versions separately, and with the transition to git it has the potential to get much easier (I am planning to move the external ndarray from googlecode/svn to github soon). But one of the remaining roadblocks is that the LSST version of ndarray lives in the "lsst" namespace, adding an extra directory level to its include path and an extra namespace scope in every file. Without this, merging between the internal and external repositories would become easy.

I strongly believe the benefits to LSST of potentially having a broader user base for ndarray outweigh the disadvantage of have one unusually-named package. Ultimately, I would like to see ndarray treated as a third-party package by LSST, and at a future date I may ask the TCT for a list of goals that must be met for this to happen.

This change would be implemented as a single LSST ticket covering many packages; outside ndarray itself, it should be possible just to do a global find/replace on lsst::ndarray to ndarray. No Python code would be affected, because ndarray objects are always exposed to Python as NumPy objects.