History, "Dead" and community

[email protected] (Elizabeth M Smith) Mon, 22 Jun 2015 12:35:13 -0400
Newsgroups php.gtk.dev
Message-ID <CAEAw7OnvoSeg8tsrSOvh_q_JcA5mnqK=b=pwb3z2iYgO5t=UNg@mail.gmail.com>
Hi folks.

The mailing list got REALLY busy all of the sudden.

I've been having issues with php mailing lists (they REALLY don't like
my email) and just realized all the stuff going on here.

First of all it's great to have people interested in the project.  For
a LONG time it's been 1 or 2 people... with a few popping up here or
there to get interested and then moving on quickly (usually when they
realize how much work needs to be done)

And although there's been someone keeping track of the actual code
itself - the website was completely abandoned (thanks for taking that
monstrosity on) and the documentation has been similarly abandoned
(it's in old docbook and uses xsl to generate) - the people who once
knew how that worked are gone

There have actually been a couple of attempts to start up a php-gtk3
project before.  But it's a BIG undertaking and only having 1 or 2
people work on it makes it difficult to get off the ground.

There's also the fact that a fully introspected version of the
extension (like pythons gobject) have some pretty deep underlying
issues (mostly related to the typelibs and the fact that they are
strongly linked in many aspects to the python gobject wrapping
implementation) - which is why although there's a prototype of an
introspected solution it doesn't really work well.

If you're interested in some of the code you can find it
https://github.com/gtkforphp/ - some of it was actually working once
upon a time.

I think it's a good idea to do a "new" gtk for php but I think there
are some things to keep in mind.

1. We do have an irc channel on freenode #php-gtk - this is a great
way to connect with the people who still work on the project and know
the code - not  only the php-gtk code and php internals code, but the
gnome libraries as well.  Especially when talking technical details
it's nice to do it in realtime.
2. The project has never been completely dead - it just basically only
had one dev  (who is poor at recruiting) for a long time - which is
never a good thing
3. The php-gtk source code is on php.net and mirrored on github -
there have been some prs but not a lot - and none from the people now
currently conversing on the list -  and it's also limited to the
problem of basically 1 developer to look at and pull them
4. Discussions on the future should be all on list - not in private emails :)

Some thoughts on a complete rewrite

1. a monolithic extension is not very useful - php-gtk should become
several small extensions

right now php-gtk has wrappings for gtk, gdk, some glib, atk, some
cairo integration (although most of cairo was pulled into it's own
extension)  and many others

parts of glib, cairo, and other gnome libraries such as clutter make
sense to use not only in a gui environment, but even in a server
environment

This would even allow for things like a gtk2 and gtk3 extension

the extension(s) should probably mirror the underlying libraries

glib, gobject, gio, cairo(exists, is getting a php7 fix), pango (also
exists), atk, gtk2, gtk3, gdk, clutter, gstreamer, etc.

2. If you're rewriting from scratch, a PHP7 only version is probably a good idea

The internal apis of php have changed an incredible amount from 5 -> 7
and it would be both very ugly and very hard to support both PHP7 and
PHP 5.6(and higher) in the same code base

3. PHP-gtk has very very few tests... and needs them

This is probably as important as the rewrite - although you really
don't need to test the functionality of the gtk library itself, it IS
important to make sure the bindings are tight.

As far as getting php-gtk commit karma, that's really not that hard
Submit some PR's - usually 2 or 3 good ones with tests
Discuss things on list and/or in IRC
As long as stuff doesn't break the build and works it gets pulled -
but remember right now there's 1 dev... so expect lag time (maybe a
week) until there are 2 or 3 or more devs capable of code reviewing,
building, and testing - because you need those checks

If you need help getting an environment for compiling set up on
windows or linux - I'm happy to help.  Pop into irc.  If you're really
ambitious someone could update the documentation :)

Also php-gtk could really use someone to roll releases.  We actually
should have had about 3-4 - there's been new functionality added and
build fixes done and features integrated.. just no release.

For example - there is complete gtkbuilder integration in the git
version of php-gtk (that's the format glade3 outputs btw) - but none
of that is documented beyond some demo files.

Thanks,
Elizabeth M Smith