Re-engineering (3): Package names This is a minor matter, but while we're breaking everything anyway, several people have commented that the old java-gnome 2.x package names were _really_ messed up. Library names, prefixes, and suffixes ------------------------------------- Specifically, we have `glib-java`, `cairo-java`. All good. Then we have `libgtk-java`. Huh? Shouldn't that be just `gtk-java`? Or, alternately, the first should have been `libglib-java`. Tell me that doesn't look stupid. Personally, I'm inclined to ditch the lib prefix: * `glib-java` * `cairo-java` * `gtk-java` but then it gets tricky: * `gnome-java` ? We already get no end of confusion with people wondering where to get "`java-gnome`". More to the point, `libgnome{,ui}` is the thing we're wrapping, so should it be * `libgnomeui-java` ? for instance? Same applies to Glade - `libglade` is the thing we're wrapping, which would imply we keep * `libglade-java` X even though that seems stupid. On the other hand, just getting on with it, regardless of the underlying library name, seems smart: * `glade-java` which, incidentally, matches what the GTK# folks did, calling it `glade-sharp`. That raises another point. Is the `-java` suffix what people want? We could as easily switch to: * `java-glib` * `java-cairo` * `java-gtk` * `java-gnome` ? * `java-glade` * `java-vte` etc. I'm really undecided about it. Using a suffix matches current practise and the GTK# '-sharp' naming pattern to boot, whereas the prefix keeps all the libs nicely together in a directory listing (and one in the middle, `java-gnome`, matches our current branding). Open to suggestions. Of course, changing package names is hell for downstream distros doing the actual packaging, but given that there is a major API break happening concurrently, I don't view renaming as a completely offencive thing to contemplate :) Number of release blobs ----------------------- An even bigger question is whether or not we need this many individual libraries. I for one am already **sick and tired** of doing releases on 8+ libraries each time a macro in the single base library changes. (Of course, that's just the gross negligence of the GNU autotools for you. We won't be using those in the future). So we could well reduce it to * `java-glib` [to allow independent bindings to be written] * `java-gtk` [to wrap the basic GTK + Glade and/or GtkBuilder] * `java-gnome` [everything else] And be done with it. A variation on this theme is to do as pyGTK has done: * `pygtk` * `gnome-python-desktop` * `gnome-python-extras` etc which is a naming split based around the constraints of what is allowed to go into the bindings set, desktop set, etc of GNOME. Looks a bit inconsistent, though. Decision? How about just one! ----------------------------- Another variation is what the GTK# folks did, which is one source leads to however many packages a given distro wishes. That actually seems rather appealing, but they ran all afoul of the GNOME release team over this for some reason. Personally, anything that lets us not have to zillions of tarballs would make me much happier, so: Right now, **the new Java bindings are just a single `java-gnome` and it contains everything**. We'll see how long we can keep that up, but someone is going to have to pay me a lot of money to change it. AfC _Originally written as an email to java-gnome-hackers by Andrew Cowie on 24 Aug 06; last modified 24 Aug 07._ <!-- Copyright © 2006 Operational Dynamics Consulting, Pty Ltd As project documentation, this file forms an integral part of the source code of the library it accompanies, and thus is made available to you by its authors as open source software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 ("GPL") as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GPL for more details. You should have received a copy of the GPL along with this program. If not, see http://www.gnu.org/licenses/. The authors of this program may be contacted through http://java-gnome.sourceforge.net/. vim: set textwidth=78 nowrap: -->