dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #26115
Re: Namespace for CSG primitives
On Sat, Nov 10, 2012 at 01:44:53AM +0100, Benjamin Kehlet wrote> 2012/11/6 Anders Logg <[1]logg@xxxxxxxxx>
>
> 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]logg@xxxxxxxxx>
> 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
Follow ups
References