Re: Certification for GNOME apps




Luis/Others:

This is a great topic.  To be a competitive desktop you should
provide the same services as the other desktops with whom you
are competing:

  https://partner.microsoft.com/global/40010228

Going back to Federico's main points, a GNOME certification program would
need to involve:

- A sort-of checklist to let ISVs know what they should do in their apps
  to integrate well with the desktop --- to make their apps more
  GNOME-like.

- A way for GNOME to say, "app Foo integrates better with GNOME than app
  Bar".

- A way for users to know which app is more GNOME-like; hopefully this
  will give them a way to pick the better product.

The good news is that I think that we are 99% of the way there, all the
hard work has already been done.  Most of you know that GNOME's core
libraries have a strong history of stability, GNOME makes use of
freedesktop.org specifications for a reasonable set of integration
tasks that ISV's require, most GNOME interfaces have reasonable
gtk-doc documentation, and GNOME has high-quality guidelines like the
HIG.  Really, this is the hard work.  Kudos to those like Owen Taylor
who have championed the stability that exists today in GNOME.

The bad news is that the GNOME community has been very ineffective at
communicating the good news to its users, including ISV's.  Stability
information does not seem to be clearly documented on the GNOME
website or in the README files of modules which are considered Stable
by the community.  This means it is hard for ISV's to know what
interfaces to use, or how to go about creating a certification
program.  The GNOME website should guide ISV's towards how to
integrate with the desktop and how to address issues they might
encounter.

This topic is interesting to me because I happen to work for one
of GNOME's ISV's, and we have our own ISV's.  One of the
requirements for releasing software at Sun is to try and
communicate to our ISV's what interfaces they should depend upon.
This is why I have been recently working to document a canonical
list of interfaces that are currently considered Stable by the
GNOME community.

Refer here:

   http://live.gnome.org/SunARC

I'm sure this document needs a lot of work and probably isn't fully
accurate about everything.  One reason I'm putting this document
together on live.gnome.org is so that other people can review the
information, correct any issues they might see, add interfaces I
have overlooked, and make the document more complete.  Feel free
to pitch in.  Hopefully this document can serve as a launch-pad
towards more formal GNOME communication about its interfaces.

Even though it is fairly rough at the moment, I think it does clearly
show that enough of the GNOME interfaces are currently Stable that
the GNOME community could put together a reasonable ISV story.
Simply, an ISV's program can be considered Certified if it follows
the appropriate style guides and limits itself to using interfaces
that are not going to break.

Does this mean that interfaces are never going to break?  Of course not,
that is why we have bugzilla.  Defining things as Stable certainly does
not mean that bugs will never get introduced into the code.  Instead
it means that if an interface declared as Stable breaks, it will be
considered a bug and the GNOME community agrees to work with ISV's
to accept a patch addressing the issue.

At the past GUADEC in Stuttgart, it made me a bit depressed to hear
so many people suggest that Sun's involvement with the GNOME
community has been lackluster lately.  Sun may never be a shop
where cool new features like cairo, evince, and Luminocity are
regularly pumped out.  But everybody in the GNOME community has
their strengths and weaknesses, and one of Sun's strengths is
their committment to interface stability.

   http://docs.sun.com/app/docs/doc/816-5175/6mbba7evc?a=view

Some things the Sun GNOME team is doing to demonstrate our
committment are the following: we are integrating ABI testing into
our nightly builds so we can identify when symbols change and
report bugs as appropriate.  The Sun GNOME QA team has agreed to
include stability testing as a part of their regular test cycle.
Sun's committment to the Solaris Stability Guarantee means that Sun
could probably be better used as a resource to help address
stability bugs that may appear in modules declared as Stable
by Sun.

Sun would like for Sun customers to be able to depend on the GNOME
stack as a development platform, and due to the Solaris Stability
Guarantee, it is necessary to have the canonical list of Stable
interfaces.  This is why I'm working on the SunARC document on
live.gnome.org.

Unfortuantely, we here at Sun don't believe that we expose enough
interfaces for ISV's to be able to write a true GNOME application
(popt, atk, glib, GTK+, and libglade).  It is probably necessary
for Sun to also support libgnomeprint, libgnomeprintui, and GConf.
Supporting libgnome, libgnomeui, and libgnomecanvas might also be
a good idea to allow ISV's to create a reasonable GNOME application.
My hope is that together with the GNOME community, we might be able
to better define what stability means for the GNOME desktop and
create a story that ISV's can follow to integrate into the desktop
in a Certified way.

If, as a community, we can create a formal definition of what
stability means and how to communicate stability information,
then I think this would help us work together.  If, for example,
the community agreed to more formally declare libraries like
libgnome* as Stable, it would be easier for us at Sun to let
our customers know that they can use these interfaces and Sun
would be more able to invest resources in ensuring their
stability and quality.  Good for everyone.

I think the combination of good ABI checking on a nightly basis,
QA testing, and formal documentation are the first steps towards
creating a Certification process.  It would also be useful to
create a tool that an ISV can run to verify that their application
is only referencing Stable symbols and installing files into Stable
integration points, then ISV's can check themselves how close to
being Certified their applications are.

Really, any program that integrates with the GNOME stack can be
considered an ISV.  It would be interesting to see how well the
programs shipped with the GNOME stack would meet such Certification
requirements, and that would probably be a good place to start
figuring out how the process could work.

Let's work together on this.

Brian


There can be a useful intermediary between 'having no docs at all' and
'here is a documentary that explains what we promise to support for
ever and ever, amen.' I believe the goal here is to document what we
do now, and how to usefully integrate with that. Is that necessarily
going to please 100% of ISVs? No. (Possibly not even 50%.) Will it be
useful anyway? IMHO, yes. While we should definitely get Bryan's input
and attempt to accomodate it as much as practicable, lets please not
bog this down by aiming to please the iron-clad expectations of very
serious ISVs when the current state is so abysmal for *all*  consumers
of GNOME libraries.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]