> What is the best way to get the version number of the underlying PCB
> code, to display it in the GUI?

Same as usual:

      static char *msg = "This is " PACKAGE " " VERSION "\n"

> I'm making the assumption here that the PCB code and the various
> GUI's are going to evolve independently, with PCB and GUI having
> their own version numbers.

I'm hoping that each GUI will evolve as it's use and design require,
yes.  I'm also hoping that the GUI code will be at least in the same
source repository as the core.  I don't expect the HID api to be
"officially stable" enough to support GUIs outside the source tree;
that would be a maintenance nightmare (I maintain libiberty so I'm
well aware of those issues).  It exists to keep the core independent
of the GUIs, but *not* the other way around.  The GUIs can fiddle with
core internals all they want, if needed.

So, for example, if the core gets a new feature or if some data
structure changes, it's likely that all the HIDs will need to be
updated to compensate.  This is OK.  Maintainers of each HID will be
able to make hid-specific changes independent of the core and other
HIDs.  This is OK.  If we need to change the HID api to support some
new feature in the core, or to further extend the range of HIDs we can
offer, that's OK.  If someone complains that we broke their HID that
we didn't know about, that's not OK.

Note that this is very similar to the way GCC supports the various
languages and targets it has; there is a well-defined API between the
core and the languages, and another between the core and the targets.
The API changes, but whoever changes the API goes around and updates
all the users of that API to compensate.  They've been doing it this
way for a long time and it seems to work well for them, so I adopted
the practice.  There are occasionally languages and targets outside
the gcc source tree (Pascal, for example) but they have to deal with
API changes on their own when they sync up with newer releases, and
are usually tied to a specific version of gcc.

Reply via email to