*** TODO ***
+Release Plans (subject to change)
+-------------
+
+brown-bag bugs may add intermediate releases. The dates are goals,
+not commitments.
+
+0.45: (march 2005?)
+- audit pnm.c
+- audit tga.c
+- audit rgb.c and add tests
+- capture TIFF read warnings (i_warnings tag?) (done)
+- add Imager::Cookbook with at least 5 recipes
+- implement i_incomplete for bmp files
+- store floating point tags in an appropriate precision (done)
+- allow image creation to fail on malloc() failure for the image data
+ rather than aborting. The current behaviour could be a denial of
+ service attack. This has limited utility because of the way memory
+ over commitment works on Linux (reverted)
+- eliminate unused variable warning (especially the RETVAL ones in Imager.xs)
+ (done)
+- add META.yml (bypass EU::MM's limited mechanism)
+- check if freetype 2 is faster/slower than freetype 1 with Imager's glyph
+ caching. If FT1 is faster, add caching as a TODO for FT2.
+- handle probing for libraries better (use pkg-config or I<library>-config
+ where possible (freetype2 and libpng)) (done)
+- add concept index to Imager.pm pod (done, still working it)
+- replace testimg/penguin-base.ppm with a smaller image
+- add a sample CGI HTML and image generation scripts that work together,
+ with appropriate security management
+- examples for fountain filter in Imager::Filters
+
+0.46: (june 2005)
+- allow limits to be set on the size of an image read from a file. This is
+ to prevent an attacker supplying huge images that consume all of
+ memory causing a denial of service attack.
+- add Imager::Tutorial (see Tk::UserGuide for a structure)
+ don't cover installation - belongs in README or INSTALL
+ it doesn't need to cover everything - read/write/create/simple drawing
+ and simple text - other stuff belongs in the cookbook or in sample code
+- add 5 more recipes to Imager::Cookbook
+- implement gsamp()/gsampf()/plin() etc methods for those low level image
+ interfaces which don't yet have methods.
+- implement i_incomplete for png and gif files.
+
+Speculation
+-----------
+
+Some of what's listed below has been implemented.
+
+- should i_incomplete be optional? ie. reading a short image results in
+ an error unless the user requests incomplete images.
+
Iolayer:
- Add scalar/mmap to iolayer
- Add close() code to iolayer for fakeseek sources.
underlying source. For making sure only the relevant
data is read from a socket for example.
-
Enhanched internal structure:
MultiImage & metadata support:
- WMF (extract bitmap data on read)
- gzip or bzip2 compressed raw
- postscript for output
+ - PAM file support (man pam in recent PNM tools)
- Transforms, interpolated multidimensional lookup tables.
Usefull for CMYK <-> RGB table lookup.
- read more metadata from images, esp tiff tags, EXIF format information
from TIFF and JPEG.
+- handle 16-bit/sample pgm/ppm files
+
Documentation:
- Add to the documentation
- Write a tutorial?
for example), instead of putting these directly into the search path
search for the freetype{2}?/someheader and then add the subdirectory if
we find the file in that directory.
+- switch to Test::More
+- change headers to use more unique re-include protection macros
+
+Old release checklists
+----------------------
+
+0.44: (december 2004)
+- set i_format for every file type on read and test for it:
+ - bmp - done
+ - jpeg - done
+ - tiff - done
+ - tga - done
+ - rgb - no read function anyway
+ - png - done
+ - gif - done
+ - pnm - done
+ - raw - done
+- check each file reader for possible integer overflows
+ - bmp - done
+ - tiff
+ - tga
+ - rgb
+ - png
+ - gif
+ - pnm
+- check bmp code uses image data offset correctly - done
+- check quant code for integer overflows - done
+- check for old URLs (umich and imager.perl.org/~addi/...) - done
+