Hi fellow wiki editors!

To help newly registered users get more familiar with the wiki (and maybe older users too) there is now a {{Welcome to the wiki}} template. Have a look at it and feel free to add it to new users discussion pages (and perhaps your own).

I have tried to keep the template short, but meaningful. /Johan G

Backwards Compatibility Initiative

From FlightGear wiki
Jump to: navigation, search


This article or section contains out-of-date information

Please help improve this article by updating it. There may be additional information on the talk page.

Merge-arrows.gif
It has been suggested that this article or section be merged with Towards better troubleshooting.
Request for Comments:

Problem

1rightarrow.png See FlightGear Version Check for the main article about this subject.

FlightGear in its current form neither provides version information about the fgfs binary and its various dependencies (i.e.libraries such as OpenGL, FreeGLUT/SDL, PLIB, OpenAL,OSG or SimGear) or subsystems (i.e. FDMs such as JSBsim), nor does it provide any detailed version information about its base package resources (such as aircraft, scenery, joystick or GUI elements).

This not only problematic because users may not easily figure out version information about their FlightGear components to determine interoperability requirements, but also because the very same information would be required to improve FlightGear's backwards compatibility. Also, it is this very information that would enable community members to more easily help new users who are experiencing problems while trying to get FlightGear to work for them.

In fact, currently major changes to FlightGear components or their underlying data files will usually result in non-existing backwards compatibility, so that old data files may no longer work with newer binaries, often enough failing without explicit notice about a version conflict being present.

Proposals

  • FlightGear needs a --version parameter to provide detailed information about a fgfs binary and its dependencies available in Git/HEAD as of 01/2009
  • additionally, base package-related information would probably also come in handy [1]
  • compiler flags (used compiler, build time, settings) might also be useful
  • OpenGL related information (i.e. hardware support)
  • such information would preferably be made available via the property tree, so that it can be easily shown using XML-configurable GUI dialogs to improve accessibility for users
  • All PropertyList-encoded XML files should preferably feature a version attribute for the opening PropertyList node to indicate the file format version
  • Purpose-specific XML files would also need additional attributes indicating their purpose (i.e. keyboard bindings, joystick bindings, menubar, dialog) in order to help differentiate them from other PropertyList-encoded XML files, and if necessary also version information
  • BTG/STG files should preferably expose version information, as well

It can be expected that providing these types of information in the aforementioned fashion for upcoming versions of FlightGear would have the following benefits:

  • improved user experience
  • less verbose, more to the point troubleshooting reports and discussions
  • better overall debugging experience (dependency awareness)
  • easier backwards-porting
  • easier to provide and maintain separate tools or XML Schemas [2]