[Wikitech-l] Assumptions for development machines (w.r.t. to test infrastructure)

2009-08-12 Thread dan nessett
I'm starting a new thread because I noticed my news reader has glued together 
messages with the title A potential land mine and MW test infrastructure 
architecture, which may confuse someone coming into the discussion late. Also, 
the previous thread has branched into several topics and I want to concentrate 
on only one, specifically what can we assume about the system environment for a 
test infrastructure? These assumptions have direct impact on what test harness 
we use. Let me start by stating what I think can be assumed. Then people can 
tell me I am full of beans, add to the assumptions, subtract from them, etc.

The first thing I would assume is that a development system is less constrained 
than a production system in what can and what cannot be installed. For example, 
people shot down my proposal to automatically discover the MW root directory 
because some production systems have administrators without root access, 
without the ability to load code into the PEAR directory, etc. Fair enough 
(although minimizing the number of places where $IP is computed is still 
important). However, if you are doing MW development, then I think this 
assumption is too stringent. You need to run the tests in /tests/PHPUnitTests, 
which in at least one case requires the use of $wgDBadminuser and 
$wgDBadminpassword, something a non-priviledged user would not be allowed to do.

If a developer has more system privileges than a production admin, to what 
extent? Can we assume he has root access? If not, can we assume he can get 
someone who has to do things like install PHPUnit? Can we assume the 
availability of PERL or should we only assume PHP? Can we assume *AMP (e.g., 
LAMP, WAMP, MAMP, XAMP)? Can we assume PEAR? Can the developer install into 
PEAR?

Dan


  

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] Assumptions for development machines (w.r.t. to test infrastructure)

2009-08-12 Thread Chad
On Wed, Aug 12, 2009 at 10:59 AM, dan nessettdness...@yahoo.com wrote:
 I'm starting a new thread because I noticed my news reader has glued together 
 messages with the title A potential land mine and MW test infrastructure 
 architecture, which may confuse someone coming into the discussion late. 
 Also, the previous thread has branched into several topics and I want to 
 concentrate on only one, specifically what can we assume about the system 
 environment for a test infrastructure? These assumptions have direct impact 
 on what test harness we use. Let me start by stating what I think can be 
 assumed. Then people can tell me I am full of beans, add to the assumptions, 
 subtract from them, etc.

 The first thing I would assume is that a development system is less 
 constrained than a production system in what can and what cannot be 
 installed. For example, people shot down my proposal to automatically 
 discover the MW root directory because some production systems have 
 administrators without root access, without the ability to load code into the 
 PEAR directory, etc. Fair enough (although minimizing the number of places 
 where $IP is computed is still important). However, if you are doing MW 
 development, then I think this assumption is too stringent. You need to run 
 the tests in /tests/PHPUnitTests, which in at least one case requires the use 
 of $wgDBadminuser and $wgDBadminpassword, something a non-priviledged user 
 would not be allowed to do.

 If a developer has more system privileges than a production admin, to what 
 extent? Can we assume he has root access? If not, can we assume he can get 
 someone who has to do things like install PHPUnit? Can we assume the 
 availability of PERL or should we only assume PHP? Can we assume *AMP (e.g., 
 LAMP, WAMP, MAMP, XAMP)? Can we assume PEAR? Can the developer install into 
 PEAR?

 Dan




 ___
 Wikitech-l mailing list
 Wikitech-l@lists.wikimedia.org
 https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Tests should run in a vanilla install, with minimal dependency on
external stuff. PHPUnit
(or whatever framework we use) would be considered an acceptable dependency for
test suites. If PHPUnit isn't available (ie: already installed and in
the include path), then
we should bail out nicely.

In general, external dependencies should be used as seamlessly as
possible, with minimal
involvement from the end-user. A good example is wikidiff2...we load
it if it exists, we fail
back to PHP diff mode if we can't use it.

-Chad

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] Assumptions for development machines (w.r.t. to test infrastructure)

2009-08-12 Thread dan nessett
--- On Wed, 8/12/09, Chad innocentkil...@gmail.com wrote:

 
 Tests should run in a vanilla install, with minimal
 dependency on
 external stuff. PHPUnit
 (or whatever framework we use) would be considered an
 acceptable dependency for
 test suites. If PHPUnit isn't available (ie: already
 installed and in
 the include path), then
 we should bail out nicely.
 
 In general, external dependencies should be used as
 seamlessly as
 possible, with minimal
 involvement from the end-user. A good example is
 wikidiff2...we load
 it if it exists, we fail
 back to PHP diff mode if we can't use it.

OK, graceful backout if an external dependency fails and minimal dependency on 
external stuff. So far we have two categories of proposal for test 
infrastructure : 1) build it all ourselves, and 2) use some external stuff. How 
do we decide which to do?

Dan


  

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] Assumptions for development machines (w.r.t. to test infrastructure)

2009-08-12 Thread Brion Vibber
On 8/12/09 9:51 AM, dan nessett wrote:
 --- On Wed, 8/12/09, Brion Vibberbr...@wikimedia.org  wrote:

 We *already* automatically discover the MW root directory.

 Yes, you're right. I should have said automatically discover the MW
 root directory without using file position dependent code.

The suggestions were for explicit manual configuration, not 
autodiscovery. Autodiscovery means *not* having to set anything. :)

-- brion

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] Assumptions for development machines (w.r.t. to test infrastructure)

2009-08-12 Thread dan nessett
--- On Wed, 8/12/09, Brion Vibber br...@wikimedia.org wrote:

 
 The suggestions were for explicit manual configuration, not
 
 autodiscovery. Autodiscovery means *not* having to set
 anything. :)

I am insane to keep this going, but the proposal I made did not require doing 
anything manually (other than running the install script, which you have to do 
anyway). The install script knows (or can find out) where the MW root is 
located. It could then either: 1) rewrite php.ini to concatenate the location 
of MWInit.php at the end of include_path, or 2) plop MWInit.php into a 
directory already searched by PHP for includes/requires (e.g., the PEAR) 
directory.

I gave up on the proposal when people pointed out that MW admins may not have 
the privileges that would allow the install script to do either.

Dan


  

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l



Re: [Wikitech-l] Assumptions for development machines (w.r.t. to test infrastructure)

2009-08-12 Thread dan nessett
--- On Wed, 8/12/09, Roan Kattouw roan.katt...@gmail.com wrote:

 On shared hosting, both are impossible. MediaWiki currently
 works with
 minimal write access requirements (only the config/
 directory for the
 installer and the images/ directory if you want uploads),
 and we'd
 like to keep it that way for people who are condemned to
 shared
 hosting.

Which is why I wrote in the message that is the subject of your reply:

I gave up on the proposal when people pointed out that MW admins may not have 
the privileges that would allow the install script to do either.

Dan


  

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] Assumptions for development machines (w.r.t. to test infrastructure)

2009-08-12 Thread Aryeh Gregor
On Wed, Aug 12, 2009 at 10:59 AM, dan nessettdness...@yahoo.com wrote:
 If a developer has more system privileges than a production admin, to what 
 extent? Can we assume he has root access? If not, can we assume he can get 
 someone who has to do things like install PHPUnit? Can we assume the 
 availability of PERL or should we only assume PHP? Can we assume *AMP (e.g., 
 LAMP, WAMP, MAMP, XAMP)? Can we assume PEAR? Can the developer install into 
 PEAR?

We should *try* to have no extra dependencies.  Every extra dependency
means fewer people will be able to run the tests.  If a reasonable
dependency would gain us a lot in some other way, that might be
acceptable, depending on what we actually gain from it.

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l