-----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