-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

As some of you may recall, some time ago I grumbled about the rather
hodgepodge state of eggs still running on older versions of chicken -
despite the likes of 4.5.0 being widely deployed by package managers. My
main fear is that prospective Chicken users will install chicken from
their local package manager, try and install eggs, and be presented with
errors, which won't do wonders for their faith in Chicken.

At the time, I proposed that people who make changes to the chicken core
and then document them should note "Added in version ..." to the
documentation near to new features, as appropriate, to make it easier
for developers to notice when they are using bleeding-edge features and
to decide if it's essential for their code; and that I run a clone of
salmonella on an old version of Chicken to assess the level of support
of old eggs.

After a bit of debate on IRC, we decided that I should go for 4.5.0 as
it's still widely packaged. I'm still trying to get my 4.5.0/NetBSD-i386
chicken chroot to actuall complete a salmonella run, as it keeps
segfaulting :-) However, Mario has pulled one off on Linux without any
trouble, so it may be a NetBSD issue:

http://www.parenteses.org/mario/misc/salmonella-report-4.5.0/

It shows a lot of broken eggs, several of which can be attributed to the
sendfile egg, which is known to not work on 4.5.0; there's been
discussion on IRC about how to make it more backwards-compatible, which
I think is great news.

I will continue to press on with getting my salmonella setup going. I am
hoping that we will end up with a network of salmonellas producing
reports for different chicken versions on different platforms (requiring
some manual effort from salmonella farmers to install needed packages in
their chroots, or to mark eggs for skipping on their platform, to remove
spurious failures from the reports), and submitting their reports to a
central location where they can be merged, allowing developers of an
egg, or potential users of an egg, to quickly see what platforms it
currently works on.

However, there's an open question of how important particular
platform/chicken versions are. Should a developer see that their egg
won't work on 4.1.0/AIX-PowerPC, and that it'd be a lot of work to fix,
they may well be justified in saying "Well, if a 4.1.0/AIX user
complains, I'll ask them to help me to fix it" and leaving it at that.
But they might be more concerned about failures on 4.7.0/Linux-x86_64.

To help guide this decision, I have a proposed patch to chicken-install
(well, setup-download.scm, to be precise) which makes it send the
Chicken version and platform string to henrietta whenever it requests an
egg, so we can mine the logs and find out how important different
targets are. The existing code sends the Chicken version, but no more
than that, in the user-agent string, which is a start; but it would be
nice to know "software-type" (eg, linux) and "machine-type" (eg, x86-64)
as well.

It'll take a few years for this to become widespread enough to be
statistically useful, of course, but the sooner we start, the better.

The user-agent strings it generates look like:

chicken-install 4.7.0.3-st linux x86-64

Rather than the previous:

chicken-install 4.5.0

I hope nobody considers that an unacceptable violation of user's
privacy... The user-agent already has the chicken version currently
anyway, which is a start. As I forgot to set up log rotation, the
henrietta on kitten-technologies has 1.7GiB of entries, and yields the
following statistics:

http://chicken.kitten-technologies.co.uk/visitors.html#User%20agents

Disturbingly, my biggest customer is a spider :-(

But it looks like the league table of chicken versions used to install
eggs is:

4.6.0 - 2338
4.5.0 - 1961
4.7.0 - 1336
4.2.0 - 1033
4.3.0 - 687
4.4.0 - 657
4.0.0 - 627
4.6.3 - 525
4.6.5 - 517
4.6.0rc1 - 335

If anything, it looks like 4.2.0 is an important version to think about,
too! The logfile goes back to about April 2009, though - I should
probably work out the user agents by month to see what the trends are
and to not be swayed by the state of affairs a year ago.

ABS

- --
Alaric Snell-Pym
http://www.snell-pym.org.uk/alaric/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk6UvcIACgkQRgz/WHNxCGp5sgCeKUbPcpp6WJkPBC25uVZrG4oB
Tw8AniIQ46Bd7bHkPoF5OQx+JpR+oekc
=cgn/
-----END PGP SIGNATURE-----
>From 43da8392fd967aafb9b63510699afe0aee74f008 Mon Sep 17 00:00:00 2001
From: Alaric Snell-Pym <ala...@snell-pym.org.uk>
Date: Tue, 11 Oct 2011 22:50:28 +0100
Subject: [PATCH] Make chicken-install submit Chicken version, machine type (eg, x86-64) and software type (eg, linux) to henrietta when requesting an egg.

This can be used, in the long run, to gather statistics on what chicken platforms
are in widespread use, to better decide what old versions need supporting.

However, it will take a while before versions incorporating this patch are
in widespread use themselves, so the results will only start to become
statistically useful in a few years!
---
 setup-download.scm |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/setup-download.scm b/setup-download.scm
index 9ea39bd..7fa7fb6 100644
--- a/setup-download.scm
+++ b/setup-download.scm
@@ -50,7 +50,8 @@
   (tcp-write-timeout +default-tcp-read/write-timeout+)

   (define *quiet* #f)
-  (define *chicken-install-user-agent* (conc "chicken-install " (chicken-version)))
+  (define *chicken-install-user-agent* (conc "chicken-install " (chicken-version) " " (software-version) " " (machine-type)))
+
   (define *trunk* #f)
   (define *mode* 'default)
   (define *windows-shell* (foreign-value "C_WINDOWS_SHELL" bool))
--
1.7.4.1

_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to