The splash screens displayed in the About section of the new web site
are all stored in the gimp-web CVS module. Whenever a new splash
screen is added to the GIMP (in the gimp module), it is necessary to
copy it to the gimp-web module, generate a preview and commit the
results. This has not been done for several months, so the last
splash screen in http://mmmaybe.gimp.org/about/splash-1.3.html is for
In addition, doing a cvs checkout of the gimp-web module is a bigger
download than doing a checkout of gimp HEAD *plus* the gimp-1-2
branch. This is due in large part to the images for the tutorials (25
MB for gimp-web/tutorials/) and the splash screen history (17 MB for
gimp-web/about/). The tutorials are obviously important, but it would
be nice to reduce the size of this download by not including the
splash screens in the gimp-web module.
Instead of having to copy the splash screens by hand, it would be
nicer to create a script that can do most of the work automatically.
Those who want to fetch the gimp-web module from CVS and test it could
choose to run the script or not (this could be decided at configure
time - see RFD01), depending on whether they intend to use that part
of the site or not.
The script would work in the following way:
- It would take as input a list of the names that have been used so
far for the file containing the splash screen. This list would not
include any version numbers, so it would be relatively short and
easy to maintain: gimp_splash.ppm (maybe also the variants 1_0, 1_1
and 1_2), data/images/gimp_splash.ppm, ....gif and ....png.
- For each file, it would do a "cvs log" to check the list of CVS
revisions and the list of release tags (marked as "symbolic names"
in the log). Using the regexp "GIMP_(\d\d?)_(\d\d?)_(\d\d?)", it is
possible to extract the GIMP release number from the tags: major,
minor, micro as $1, $2, $3. Getting this information directly from
CVS would ensure that the script would get the latest revision of
the file. It is not a problem to get the correct cvsroot because it
can be copied from the one used for the gimp-web module.
- For each revision that was part of at least one GIMP release, it
would do a "cvs checkout -r $revision -p" and store the result in a
file with the appropriate name.
- After that, it would build the index pages and the thumbnails for
the images. For each splash screen, it would show its CVS file name
and revision number (small text, because this is not important) and
the list of all GIMP releases that used that splash screen.
In addition, the script could check that at least one of the files has
a current state that is not "dead". If all of them are "dead",
indicating that the splash screen has been renamed again, it could
warn the user who is trying to update the web site, so that it would
be obvious that something should be updated. The icing on the cake
would be to display the last log entry so that the user can see the
new name of the file. Or someone builds some AI in the script that
parses the log entry, understands natural language and does the whole
thing automatically. ;-)
I think that automating the process of fetching the splash screens
from gimp CVS would make it easier to keep the gallery up-to-date. In
addition, it would reduce the download and make it easier for
potential contributors to get the gimp-web module if they do not need
all splash screens.
I am willing to write such as script, as soon as I have some spare
time. I think that I already have most of it in my head, so it should
not be too hard to implement. Still, any comments on this idea are
Gimp-developer mailing list