We should remove the map aspect_fix_mode property and behavior.
aspect_fix_mode mutates the map bounds or image size behind the back of the user. This is too magic. Additionally it was added to make it easier to support the WMS standard for the unmaintained mod_mapnik_wms tool (http://wiki.openstreetmap.org/wiki/Mod_mapnik_wms)
Ugh, pull #1759 readies for this, but breaks too many tests for me to finish this right now.
detaching from a milestone as this does not feel actionable given how many tests it breaks. At some point I may get inspired however to return to this.
I agree that aspect_fix_mode (which I originally contributed) could be seen as a bit awkward.
Allow me to point though that all existing mapnik-based WMS solutions (that I know of, including ogcserver) violate the WMS standard when the request's image dimensions don't match bbox and projection. Your description sounds a bit as if everyone else was magically solving the problem without aspect_fix_mode, but in truth everyone else is just ignoring the problem. (Which, granted, might say something about the problem's importance.)
If you do remove this option, consider if you can at least offer some way for the calling program to "pre-flight" projection parameters, so that there is some way to answer the question: "what image height would I have to request if my image width is X and I want exactly this bounding box in that projection"? - This could in theory be done just with proj and without calling into Mapnik, but in practice I've often seen off-by-one errors when doing the same computation through different paths, and it would be great to be able to get it "from the horse's mouth" at least. Something where Mapnik guarantees that if I pass in these parameters it won't mess with my bounding box, and the image that comes out would cover exactly that bounding box and not more or less.
thank you for the explanation @woodpeck - going to keep it in place for now.