[Numpy-discussion] NumPy beta release plan

Travis Oliphant oliphant.travis at ieee.org
Sat Jul 8 02:17:14 CDT 2006

Some of you may have noticed that things have been changing rapidly in 
the NumPy world (if you were out of the office in June then all the 
activity may seem overwhelming). 

All of this activity is based on the fact that the upcoming beta release 
will mean a feature freeze for NumPy. 

As a review:

The biggest changes over the past 3 months have been

1) Capitalized-type-names (Float32, Complex64, Int8, etc) are now
   only available in the numpy.oldnumeric namespace (this is the
   namespace that convertcode.py replaces for Numeric).   We are trying
   to wean you off character codes as much as possible.  They are still
   there, of course but should only be used in special cases not as
   a general rule.

2) Un-specified data-types now default to floating point. 

   To help with code you have that relies on integer data-types you
   can either use functions from numpy.oldnumeric where the functions
   are still defined with the integer-default data-types or use
   functions in numpy/lib/convdtype to replace type-less versions of
   ones, zeros, empty with empty(..., dtype=int).

3) C-API names have prefix PyArray_ (like always), NPY_ or npy_. 
   The NPY_ and npy_ prefixes are new and were done to remove the
   likelihood of name collisions when NumPy is used with another
   library.  The old (and un-prefixed) names are accessible by
   importing numpy/noprefix.h  instead of numpy/arrayobject.h

   It is fine to use noprefix.h in-place of arrayobject.h if you
   expect to have no naming conflicts. This is what NumPy itself does.

4) The flag combinations with _FLAGS in the name have the _FLAGS
   removed (but are prefixed with NPY_).  Again the old names are
   still available in numpy/noprefix.h

5) The Numarray C-API is now available as numpy/libnumarray.h as
   long as you use the directory returned from numpy.get_numarray_include()
   as an argument to -I in the compile command.

More minor changes:

1) ctypes attribute added for ease of working with ctypes data
2) T attribute added as a convenience for .transpose()

Personally, I don't want to make any more changes so that we can make a 
1.0 beta release that will freeze the API.  Because of my guarantee to 
keep SVN versions of NumPy/SciPy/matplotlib working, changes probably 
cause more headache for me than anyone else. 

Unless there is a serious issue pointed out, the only thing that should 
be changed at this point are bug-fixes, documentation strings, and added 
tests.  Once 1.0b1 is released nothing but those things can be added.

I'd like July to be a much more calm month.  We should get the 1.0b1 out 
in the next couple of weeks.  That way perhaps 1.0b2 can be out by the 
SciPy conference.    I can see the beta release period taking several 
months with only bug-fixes/docstring/testing improvements happening over 
that time. 

So, take this message as a warning for the up-coming feature freeze on 
NumPy and an invitation to contribute docstrings and unit-tests.

I hope the rapid pace of June development did not scare too many 
people.  Please voice your concerns if you have them.

Best regards,

-Travis O.

More information about the Numpy-discussion mailing list