On Sat, Nov 10, 2012 at 01:44:53AM +0100, Benjamin Kehlet wrote> 2012/11/6 Anders Logg <[1]l...@simula.no> > > On Mon, Nov 05, 2012 at 09:28:42PM +0100, Johan Hake wrote: > > On 11/05/2012 09:47 AM, Garth N. Wells wrote: > > > On Sun, Nov 4, 2012 at 6:50 PM, Anders Logg <[2]l...@simula.no> > wrote: > > >> On Sun, Nov 04, 2012 at 05:26:53PM +0000, Garth N. Wells wrote: > > >> > > >>>> One option could be to rename mesh classes to UnitSquareMesh, > > >>>> UnitCubeMesh, and keep deprecated (sub)classes UnitSquare, > UnitCube > > >>>> indefinitely to keep backwards compatibility. > > >>>> > > >>> > > >>> No point in renaming if the deprecated names are to be kept > indefinitely. > > >>> > > >>>> In summary, I would like to add the new classes to namespace > dolfin > > >>>> but I'm looking for opinions on how to best handle naming > conflicts. > > >>>> > > >>> > > >>> I'm always in favour of a consistent, meaningful interface over a > > >>> sub-optimal interface for the purpose of backward compatibility. > > >> > > >> So what are our options? > > >> > > >> The actual name clashes are between Rectangle/Rectangle and > Box/Box (+ > > >> maybe some more that I'm overlooking). > > >> > > >> We could suffix everything: > > >> > > >> RectangleGeometry > > >> RectangleMesh > > >> > > >> or > > >> > > >> RectangleShape > > >> RectangleMesh > > >> > > >> to keep it shorter. > > >> > > >> One could argue that the suffix is only nedded for the meshes, > since a > > >> Rectangle(Geometry) is really a rectangle, whereas the > RectangleMesh > > >> is not a rectangle; it's a mesh of a rectangle. > > >> > > > > > > I would prefer the suffix only for the meshes, e.g., > > > > > > Rectangle > > > RectangleMesh > > > > + > > ok. Sounds good to me. Decided then: > - Rename mesh classes --> MeshFoo (RectangleMesh, UnitSquareMesh) > - Put geometry classes in namespace dolfin as just Foo (Rectangle) > - Make UnitSquare and UnitCube subclasses of UnitSquareMesh and > UnitCubeMesh and add deprecation warnings to the constructors of > the > subclasses that they will be removed in the future > Benjamin, please fix before merge. > > > It turns out we have some actual name clashes. Box and Rectangle exist > both as mesh and csg classes. The mesh classes could be renamed to > BoxMesh and RectangleMesh, but then we can't keep deprecated versions > of the old mesh classes.
It's enough to keep the deprecation classes for UnitSquare and UnitCube. Those are mostly used in demos and tutorials. Rectangle is used in the book. But I think it is ok to break the compatibility in that case, but we should make a careful list of interface changes that break compatibility and announce that list when make the next release. We can also easily put up a new version of the book as a PDF with the changed syntax. I suggest filing a bug report targeted to DOLFIN 1.1 named something like "Interface changes" where we list all important changes to the interface. Then we can keep track of those when releasing 1.1. -- Anders _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp