Changeset 37794 in project


Ignore:
Timestamp:
07/26/19 19:25:17 (3 weeks ago)
Author:
Mario Domenech Goulart
Message:

eggref/5/salmonella: add documentation for salmonella for C5

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki/eggref/5/salmonella

    r37596 r37794  
     1[[tags: egg salmonella]]
     2
    13== salmonella
    24
    3 Unfortunately, salmonella for CHICKEN 5 has not been released as an
    4 egg yet.  The work-in-progress version for CHICKEN 5 can be installed
    5 from git:
    6 
    7   $ git clone https://github.com/mario-goulart/salmonella.git
    8   $ cd salmonella
    9   $ git checkout chicken-5+4
    10   $ chicken-install
    11 
    12 Please refer to the documentation of
    13 [[/eggref/4/salmonella|salmonella for CHICKEN 4]]
    14 for more information on how to use it.
     5[[toc:]]
     6
     7=== Introduction
     8
     9Salmonella is a set of tools to test CHICKEN eggs.  Here's a brief
     10summary of features:
     11
     12* very light on dependencies (none at the moment)
     13* parallelizable ({{salmonella-epidemy}})
     14* can be run with or without Internet access
     15
     16Note: starting on version 2.0, salmonella is a rewrite of the
     17salmonella 1.x series, which was available since CHICKEN 2.x.  The
     18documentation for the 1.x series is still available at
     19[[/egg/salmonella-1.x|http://wiki.call-cc.org/egg/salmonella-1.x]].
     20
     21
     22=== Author
     23
     24[[/users/mario-domenech-goulart|Mario Domenech Goulart]]
     25
     26
     27=== Repository
     28
     29salmonella is hosted on [[http://github.com|github]]:
     30[[https://github.com/mario-goulart/salmonella|https://github.com/mario-goulart/salmonella]]
     31
     32
     33=== Tools
     34
     35This egg provides some command line tools.  The next sections describe
     36each of them.
     37
     38
     39
     40==== salmonella
     41
     42This is the core tool for testing eggs.  {{salmonella}} can perform
     43the following tests:
     44
     45* installation of eggs
     46* dependencies verification
     47* {{.egg}} file consistency check
     48* egg tests execution
     49* general egg consistency (i.e., can be used as an ''egg lint'' to
     50avoid common mistakes when publishing a new egg or a new egg
     51version)
     52
     53{{salmonella}} generates a sexpr-based log file as output.  That file
     54can be used by tools like
     55[[/egg/salmonella-html-report|salmonella-html-report]] to generate a
     56pretty output in HTML.
     57
     58When executing, salmonella prints some basic information on the
     59standard output.  Detailed information can be viewed with the
     60aforementioned [[/egg/salmonella-html-report|salmonella-html-report]]
     61or with {{salmonella-log-viewer}}, a tool which is provided by this
     62egg. {{salmonella-log-viewer}} parses the log file generated by
     63salmonella and formats the data on the standard output.
     64
     65===== Command line options
     66
     67Here's the output of {{salmonella -h}} with an explanation for each
     68command line option:
     69
     70  salmonella [ -h | --help ]
     71  salmonella --version
     72  salmonella [ [ <options> ] eggs ]
     73 
     74  When called without eggs in the command line, salmonella will try to
     75  find a .egg file in the current directory and process it (just like
     76  chicken-install).
     77 
     78  <options>:
     79  --log-file=<logfile>
     80      The name for the log file to be generated by salmonella
     81      (default=salmonella.log).
     82 
     83  --chicken-installation-prefix=<prefix dir>
     84      If you want to test eggs using a chicken installed on a certain directory,
     85      you can use this option (it should point to the same directory as given to
     86      `PREFIX' when installing CHICKEN). If omitted, salmonella uses CHICKEN
     87      tools from the current runtime's installation prefix.
     88 
     89  --chicken-install-args=<install args>
     90      This option can be used customize chicken-install's arguments.  You can
     91      use <repo> to indicate where you want the actual repository directory
     92      to be replaced by salmonella.
     93 
     94  --eggs-source-dir=<eggs dir>
     95      By default, salmonella fetches eggs from the egg server.  If you have a
     96      local copy of eggs code, you can use this option to point to the directory
     97      where they are located.
     98 
     99  --eggs-doc-dir=<doc dir>
     100      By default, salmonella checks if documentation for eggs exist by accessing
     101      the CHICKEN wiki.  If you have a local copy of the wiki documentation for
     102      eggs, you can use this option to point to the directory where they can be
     103      found.
     104 
     105  --keep-repo
     106      For each egg that salmonella tests, it sets the egg installation repository
     107      empty and removes it at the end of its execution.  This option makes
     108      salmonella keep the egg installation repository after testing each egg and
     109      after finishing its execution.  This option can save a lot of time when
     110      testing several eggs, at the cost of potentially making salmonella unable
     111      to catch dependencies problems.
     112 
     113  --skip-eggs=<comma-separated list of eggs to skip>
     114      A comma-separated list of eggs to be skipped.
     115 
     116  --repo-dir=<path to repo dir to be used>
     117      Alternative location for the egg installation directory used by salmonella.
     118      By default, salmonella generates a `salmonella-tmp-xxxxx' directory in the
     119      current directory.  This option can be useful when used with `--keep-repo'
     120      to reuse egg installation repositories for several salmonella executions.
     121 
     122  --clear-chicken-home
     123      Remove Scheme files from <chicken-installation-prefix>/share/chicken.
     124      WARNING: use this option with care.  If you don't understand the
     125      consequences of this option, DON'T USE IT.  Extra care when you don't
     126      use --chicken-installation-prefix -- in this case --clear-chicken-home
     127      will remove Scheme files from your "host" CHICKEN installation.
     128      This option is only effective when --keep-repo is NOT used.
     129 
     130  --verbosity=<number>
     131      A number to indicate salmonella's verbosity level.  0 means practically
     132      silent. 1 is mostly silent and 2 (default) prints some useful information
     133      while salmonella is running.
     134 
     135
     136===== Some quick tips by example
     137
     138Simplest case: testing eggs using the remote egg server and the
     139chicken tools ({{chicken-install}} and {{csi}}) in the system {{PATH}}
     140
     141  $ salmonella big-chicken slice
     142
     143
     144You can test all the available eggs using one of the following
     145approaches:
     146
     1471. If you have CHICKEN >= 4.7.2:
     148
     149  $ salmonella `chicken-install -list`
     150
     151
     1522. If you don't have CHICKEN >= 4.7.2:
     153
     154  $ salmonella `wget http://code.call-cc.org/cgi-bin/henrietta.cgi?list=1 -q -O -`
     155
     156
     157If you don't want to test some specific eggs, you can skip them:
     158
     159  $ salmonella --skip-eggs=macosx,hfs+ `chicken-install -list`
     160
     161
     162You can tell salmonella to use a specific CHICKEN version:
     163
     164  $ salmonella --chicken-installation-prefix=/usr/local/chicken-4.7.3 big-chicken slice
     165
     166
     167Not cleaning the egg installation repository after installing each egg
     168may significantly speed up the salmonella execution time (the default
     169behavior is to set the egg installation repository empty after testing
     170each egg):
     171
     172  $ salmonella --keep-repo big-chicken slice
     173
     174warning: if you use --keep-repo, salmonella will not be able to catch
     175dependencies problems.
     176
     177
     178If you want to reuse the same egg installation repository for multiple
     179salmonella runs, you can provide a specific directory:
     180
     181  $ salmonella --repo-dir=my-repo --keep-repo big-chicken slice
     182
     183
     184By default, salmonella generates a log file named {{salmonella.log}} in
     185the current directory.  You can change that by using the {{--log-file}}
     186command line option:
     187
     188  $ salmonella --log-file=my-log-file.log big-chicken slice
     189
     190
     191====== Using salmonella as an egg lint tool
     192
     193Suppose you are working on a new egg and you want to check if it is
     194working ok before releasing it (or a new version).  You can use
     195salmonella to check it:
     196
     197  $ cd my-egg    # where your egg code is stored
     198  $ salmonella
     199
     200
     201
     202==== salmonella-log-viewer
     203
     204This tool can be used to turn salmonella log files into something
     205readable on the standard output.
     206
     207Just provide a salmonella log file as argument to
     208{{salmonella-log-viewer}}:
     209
     210    $ salmonella-log-viewer salmonella.log
     211
     212Alternatively, you can use
     213[[/egg/salmonella-html-report|salmonella-html-report]] for a prettier
     214and more complete format.
     215
     216
     217
     218==== salmonella-epidemy
     219
     220Note: this tool is currently not supported on Windows systems.
     221
     222{{salmonella-epidemy}} can be used to run multiple salmonella
     223instances in parallel.  It can be handy when you have a multi-core
     224machine and you want to make use of all cores, for example.  The
     225command line options are basically the same as for {{salmonella}},
     226plus a {{--instances=<number>}} to indicate how many {{salmonella}}
     227instances you want to run in parallel.
     228
     229This tool can significantly speed up salmonella execution times on
     230multi-core machines.
     231
     232Usage example:
     233
     234  $ salmonella-epidemy --instances=2 big-chicken slice spiffy amb
     235
     236
     237
     238==== salmonella-log-merger
     239
     240This tool simply puts more than one salmonella log into a single one,
     241so it can be used by tools like {{salmonella-log-viewer}} and
     242[[/egg/salmonella-html-report|salmonella-html-report]].
     243
     244
     245Usage example:
     246
     247  $ salmonella-log-merger --log-file=full.log file1.log file2.log
     248
     249
     250
     251==== salmonella-log-inquirer
     252
     253{{salmonella-log-inquirer}} can be used to query salmonella log files.
     254Below you can see its help message and a usage example.
     255
     256  salmonella-log-inquirer [ -h | -help | --help ]
     257    Print this message.
     258 
     259  salmonella-log-inquirer --version
     260    Show version and exit.
     261 
     262  salmonella-log-inquirer --log-info <log file>
     263    Show information about the environment where salmonella was executed
     264    to generate the given <log-file> (e.g., environment variables, C
     265    compiler, CHICKEN version, salmonella command line etc.)
     266 
     267  salmonella-log-inquirer --statistics <log file>
     268    Show simple statistics on installation, tests and documentation from
     269    the log file .
     270 
     271  salmonella-log-inquirer --list-eggs <log file>
     272    List eggs covered in <log file>.
     273 
     274  salmonella-log-inquirer --action=<action> --egg=<egg> [ --part=<part> ] <log file>
     275    Query <action> and, optionally, <part> for <egg> in <log file>.
     276 
     277  <action>s:
     278  fetch
     279  install
     280  check-version
     281  test
     282  meta-data
     283 
     284  <part>s (the default part is "message"):
     285  message
     286  status
     287  duration
     288 
     289
     290Usage example:
     291
     292  $ salmonella-log-inquirer --action=fetch --egg=this salmonella.log
     293  '/home/chicken/salmonella/build/salmonella-run-publish/chicken/bin/chicken-install' -r -v -test this 2>&1
     294  this not cached
     295  resolving alias `kitten-technologies' to: http://chicken.kitten-technologies.co.uk/henrietta.cgi
     296  resolving alias `call-cc' to: http://code.call-cc.org/cgi-bin/henrietta.cgi
     297  trying server http://chicken.kitten-technologies.co.uk/henrietta.cgi ...
     298  downloading this: http://chicken.kitten-technologies.co.uk/henrietta.cgi
     299  connecting to host "chicken.kitten-technologies.co.uk", port 80 ...
     300  requesting "/henrietta.cgi?name=this&release=5&mode=default&tests=yes" ...
     301  reading response ...
     302  HTTP/1.1 200 OK
     303  Date: Thu, 25 Jul 2019 11:47:58 GMT
     304  Server: Apache/2.2.31 (Unix) DAV/2 PHP/5.5.36 mod_fastcgi/2.4.6
     305  Connection: close
     306  Transfer-Encoding: chunked
     307  Content-Type: text/plain
     308  reading chunks .
     309  reading files ...
     310    ./README.md
     311    ./this.egg
     312    ./this.release-info
     313    ./this.scm
     314  cp -r '/tmp/temp303b.18990'/* '/home/chicken/salmonella/build/salmonella-run-publish/salmonella-repo/repo/cache/this'
     315  this located at /home/chicken/salmonella/build/salmonella-run-publish/salmonella-repo/repo/cache/this
     316 
     317
     318==== Log file format
     319
     320The command line tool writes a log file which contains records in the
     321following format:
     322
     323 (<egg> <action> <status> <message> <duration>)
     324
     325
     326===== <egg>
     327
     328Can be either a symbol that indicates the egg-name or {{#f}} to
     329indicate the {{start}} and {{end}} actions (logged when salmonella is
     330started and when it finishes testing, respectively).
     331
     332===== <action>
     333
     334A symbol to indicate the action that was executed.  Can be one of the
     335following values:
     336
     337* {{start}}: starting salmonella
     338* {{fetch}}: fetching egg
     339* {{install}}: installing egg
     340* {{skip}}: skipping egg
     341* {{test}}: testing egg
     342* {{end}}: salmonella has finished
     343
     344===== <status>
     345
     346A numeric value indicating the exit status of the executed action.
     347When the action is {{test}} and {{status}} is {{-1}}, it means that
     348the egg has no tests.
     349
     350
     351===== <message>
     352
     353The output generated by the commands executed to perform {{<action>}}.
     354A string.
     355
     356
     357===== <duration>
     358
     359The time (in seconds) that was taken to execute {{<action>}}.
     360
     361For the {{start}} and {{end}} actions, the value is the seconds since
     362epoch, so the total salmonella execution time can be determined by
     363subtracting the start time from the end time.
     364
     365
     366=== Modules
     367
     368Salmonella provides two modules:
     369
     370; {{salmonella}}: the core salmonella functionality and basic data strucuture for logs ({{report}} records)
     371
     372; {{salmonella-log-parser}}: provides procedures to access log files and compute simple statistics regarding log file data.
     373
     374
     375==== salmonella
     376
     377===== report
     378<record>(report egg action status message duration)</record>
     379<procedure>make-report</procedure>
     380<procedure>report?</procedure>
     381<procedure>report-egg</procedure>
     382<procedure>report-action</procedure>
     383<procedure>report-status</procedure>
     384<procedure>report-message</procedure>
     385<procedure>report-duration</procedure>
     386<procedure>report-egg-set!</procedure>
     387<procedure>report-action-set!</procedure>
     388<procedure>report-status-set!</procedure>
     389<procedure>report-message-set!</procedure>
     390<procedure>report-duration-set!</procedure>
     391
     392{{report}} objects.  Each log file registry is represented by a
     393{{report}} object (serialized as a list).
     394
     395===== report->list
     396<procedure>(report->list report)</procedure>
     397
     398Convert a {{report}} object to a list.
     399
     400
     401===== log!
     402<procedure>(log! report log-file)</procedure>
     403
     404Print the {{report}} representation to {{log-file}}.
     405
     406
     407===== make-salmonella
     408<procedure>(make-salmonella tmp-dir #!key chicken-installation-prefix chicken-install-args eggs-source-dir eggs-doc-dir this-egg?)</procedure>
     409
     410The salmonella maker.  Returns a procedure that receives symbols
     411(''methods'') to indicate the actions to be performed.  The available
     412methods are (example considering a {{salmonella}} object returned by
     413{{make-salmonella}}):
     414
     415====== {{(salmonella 'init-repo!)}}
     416
     417====== {{(salmonella 'clear-repo!)}}
     418
     419====== {{(salmonella 'fetch <egg>)}}
     420
     421====== {{(salmonella 'install <egg>)}}
     422
     423====== {{(salmonella 'test <egg>)}}
     424
     425====== {{(salmonella 'check-version <egg>)}}
     426
     427====== {{(salmonella 'env-info)}}
     428
     429====== {{(salmonella 'meta-data <egg>)}}
     430
     431====== {{(salmonella 'check-dependencies <egg> <meta data>)}}
     432
     433====== {{(salmonella 'check-category <egg> <meta data>)}}
     434
     435====== {{(salmonella 'check-license <egg> <meta data>)}}
     436
     437====== {{(salmonella 'check-author <egg> <meta data>)}}
     438
     439====== {{(salmonella 'check-doc <egg>)}}
     440
     441
     442
     443==== salmonella-log-parser
     444
     445===== Reading
     446
     447<procedure>(read-log-file filename)</procedure>
     448
     449Reads the log file {{filename}} and returns a list of report records.
     450
     451===== {{fetch}} action
     452
     453====== fetch-status
     454<procedure>(fetch-status egg log)</procedure>
     455
     456====== fetch-message
     457<procedure>(fetch-message egg log)</procedure>
     458
     459====== fetch-duration
     460<procedure>(fetch-duration egg log)</procedure>
     461
     462
     463
     464===== {{install}} action
     465
     466====== install-status
     467<procedure>(install-status egg log)</procedure>
     468
     469====== install-message
     470<procedure>(install-message egg log)</procedure>
     471
     472====== install-duration
     473<procedure>(install-duration egg log)</procedure>
     474
     475
     476
     477===== {{check-version}} action
     478
     479====== check-version-status
     480<procedure>(check-version-status egg log)</procedure>
     481
     482====== check-version-message
     483<procedure>(check-version-message egg log)</procedure>
     484
     485====== egg-version
     486<procedure>(egg-version egg log)</procedure>
     487
     488====== check-version-ok?
     489<procedure>(check-version-ok? egg log)</procedure>
     490
     491
     492===== {{test}} action
     493
     494====== test-status
     495<procedure>(test-status egg log)</procedure>
     496
     497====== test-message
     498<procedure>(test-message egg log)</procedure>
     499
     500====== test-duration
     501<procedure>(test-duration egg log)</procedure>
     502
     503====== has-test?
     504<procedure>(has-test? egg log)</procedure>
     505
     506
     507===== {{meta-data}} action
     508
     509====== meta-data
     510<procedure>(meta-data egg log)</procedure>
     511
     512====== egg-dependencies
     513<procedure>(egg-dependencies egg log)</procedure>
     514
     515====== egg-license
     516<procedure>(egg-license egg log #!key with-test-dependencies? with-versions?)</procedure>
     517
     518
     519
     520===== {{check-doc}} action
     521
     522====== doc-exists?
     523<procedure>(doc-exists? egg log)</procedure>
     524
     525
     526
     527===== {{start}} & {{end}} actions
     528
     529====== start-time
     530<procedure>(start-time log)</procedure>
     531
     532====== end-time
     533<procedure>(end-time log)</procedure>
     534
     535====== total-time
     536<procedure>(total-time log)</procedure>
     537
     538====== salmonella-info
     539<procedure>(salmonella-info log)</procedure>
     540
     541
     542
     543===== Statistics
     544
     545====== count-install-ok
     546<procedure>(count-install-ok log)</procedure>
     547
     548====== count-install-fail
     549<procedure>(count-install-fail log)</procedure>
     550
     551====== count-test-ok
     552<procedure>(count-test-ok log)</procedure>
     553
     554====== count-test-fail
     555<procedure>(count-test-fail log)</procedure>
     556
     557====== count-no-test
     558<procedure>(count-no-test log)</procedure>
     559
     560====== count-total-eggs
     561<procedure>(count-total-eggs log #!key with-skipped?)</procedure>
     562
     563====== count-documented
     564<procedure>(count-documented log)</procedure>
     565
     566====== count-undocumented
     567<procedure>(count-undocumented log)</procedure>
     568
     569
     570===== Miscelaneous
     571
     572====== prettify-time
     573<procedure>(prettify-time time)</procedure>
     574
     575====== sort-eggs
     576<procedure>(sort-eggs eggs)</procedure>
     577
     578====== log-eggs
     579<procedure>(log-eggs log)</procedure>
     580
     581====== log-skipped-eggs
     582<procedure>(log-skipped-eggs log)</procedure>
     583
     584
     585
     586=== Environment variables
     587
     588When running, salmonella sets the {{SALMONELLA_RUNNING}} environment
     589variable.  If you need to check if your tests code is being run by
     590salmonella, this variable can be used.
     591
     592
     593=== Caveats
     594
     595==== Testing executable files installed by eggs
     596
     597Salmonella sets a private repository to install and test eggs, so when
     598extensions install programs, they get installed into
     599{{<salmonella-repo-dir>/bin}}, not into {{$CHICKEN_PREFIX/bin}}.
     600
     601So, how to invoke (from tests/run.scm, for example) a binary
     602executable file your egg installs?  You have the following options:
     603
     604* you can build up the absolute pathname for the executable, like
     605  {{(make-pathname (program-path) "the-executable")}}.  That is not
     606  going to work with salmonella, since the executable file will get
     607  installed into {{<salmonella-repo-dir>/bin}}, not
     608  {{$CHICKEN_PREFIX/bin}}.  Since {{program-path}} points to
     609  {{$CHICKEN_PREFIX/bin}} (or, when {{$CHICKEN_PREFIX}} is not set, it
     610  falls back to {{C_INSTALL_BIN_HOME}}, which is set during CHICKEN's
     611  build time), salmonella won't find it, as salmonella didn't install
     612  it there.  Salmonella ''may'' find it, in case you have that egg
     613  installed, but in this case you'll be testing a different program.
     614
     615* you can rely on the executable being found in your system's {{PATH}}
     616  variable.  Salmonella actually prepends
     617  {{<salmonella-repo-dir>/bin}} to your system's {{PATH}} variable
     618  when running, so, if you call the executable file installed by your
     619  egg with with {{(system "the-executable")}}, for example, salmonella
     620  will run the right file.  On the other hand, you if run
     621  {{chicken-install}} with the {{-test}} option, and the CHICKEN tools
     622  are not in the system's {{PATH}} (e.g.
     623  {{/some/dir/not/in/PATH/chicken-install -test}}), the executable installed by your egg
     624  will not be found.
     625
     626So far the only "portable" solution is a combination of both options,
     627which happens to be a bit ugly.  Salmonella sets the
     628{{SALMONELLA_RUNNING}} environment variable when it runs, so your test
     629script may check that variable and assume your test executable will be
     630found in {{PATH}} if it is set.  If {{SALMONELLA_RUNNING}} is not set,
     631just build up the absolute path to your executable using
     632{{(program-path)}}.  Here's an example:
     633
     634<enscript highlight=scheme>
     635(use setup-api)
     636
     637(define executable
     638  (make-pathname
     639   (if (get-environment-variable "SALMONELLA_RUNNING")
     640       #f ;; salmonella adds its REPO_PREFIX/bin to PATH
     641       (program-path))
     642   "executable-filename"))
     643</enscript>
     644
     645==== salmonella-epidemy on Windows
     646
     647{{salmonella-epidemy}} is currently not supported on Windows systems.
     648
     649
     650=== License
     651
     652  Copyright (c) 2010-2019, Mario Domenech Goulart
     653  All rights reserved.
     654 
     655  Redistribution and use in source and binary forms, with or without
     656  modification, are permitted provided that the following conditions
     657  are met:
     658  1. Redistributions of source code must retain the above copyright
     659     notice, this list of conditions and the following disclaimer.
     660  2. Redistributions in binary form must reproduce the above copyright
     661     notice, this list of conditions and the following disclaimer in the
     662     documentation and/or other materials provided with the distribution.
     663  3. The name of the authors may not be used to endorse or promote products
     664     derived from this software without specific prior written permission.
     665 
     666  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
     667  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     668  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     669  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
     670  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     671  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
     672  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     673  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
     674  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     675  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
     676  IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     677
     678
     679
     680
     681=== Version history
     682
     683==== Version 3.0.0
     684
     685* CHICKEN 5 support.  Now both CHICKEN 4 and CHICKEN 5 are supported. Most of the code is shared.  Where CHICKEN 4 and 5 are not compatible, {{cond-expand}} is used for version-specific implementations.
     686
     687* New command line tool: {{salmonella-log-inquirer}}.  This tool can be used to query salmonella log files.
     688
     689* More strict command line parser. Now invalid command line options are detected and reported as errors.
     690
     691* Exit non-zero in case of errors.  Salmonella now exits non-zero in case of any check failure.
     692
     693* Add {{--clear-chicken-home}} command line option for {{salmonella}} and {{salmonella-epidemy}}.  Don't use this option unless you know exactly what you are doing.  Check the documentation of this option before using it.
     694
     695* The {{--eggs-source-dir}} option has been removed.  It is still possible to use salmonella with a local directory containing egg sources by configuring {{chicken-install}} ({{-t local -l <eggs-source-dir>}} in CHICKEN 4 and by configuring the {{location}} form in {{PREFIX/share/chicken/setup.defaults}} in CHICKEN 5).
     696
     697* Replace --salmonella-prefix command line option by {{--salmonella-tools-dir}}.  {{salmonella-epidemy}} relies on both {{salmonella}} and {{salmonella-log-merger}}.  Since portably determining the directory of {{salmonella-epidemy}} is not trivial, and we don't want to rely on {{$PATH}} to call external tools, {{--salmonella-tools-dir}} has been created.  With this, {{--salmonella-prefix}} became useless.
     698
     699* Salmonella now copy {{csc}} and {{csi}} from {{<host-prefix>/bin}} to {{<tmp-dir>/bin}}.  With that, salmonella no longer adds <host-prefix>/bin to {{$PATH}}, which would cause salmonella to overlook eggs that rely on executables installed in {{<host-prefix>/bin}} but not declared as dependencies.
     700
     701* Many bugs fixed
     702
     703
     704==== Version 2.7
     705
     706* Command line tools handle {{--version}} (suggested by Michael Stapelberg)
     707* salmonella: prepend {{<repo dir>/bin}} and {{<chicken-installation-prefix>/bin}} to {{PATH}}
     708* salmonella: fix scrutinizer warnings
     709* salmonella: set {{CHICKEN_C_INCLUDE_PATH}}
     710* salmonella: print/log environment variables set when running
     711* salmonella-epidemy: delete repo-dir, unless {{--keep-repo}} is provided
     712* salmonella-epidemy: write per-instance temporary directories in repo-dir
     713* salmonella-epidemy: show when instances are finished
     714* salmonella-epidemy: fix verbosity handling
     715* salmonella-epidemy: properly escape special shell characters in {{--chicken-install-args}}
     716* salmonella-epidemy: remove {{--eggs-source-dir}} support due to concurrency issues
     717* salmonella-epidemy: unless {{--salmonella-prefix}} is provided, salmonella-epidemy calls salmonella from the same prefix
     718* salmonella-epidemy: add {{-h}}|{{--help}} command line options
     719* salmonella-epidemy: correctly handle {{--skip-eggs}}
     720
     721
     722==== Version 2.6
     723
     724* Handle broken .meta files
     725* Handle version specification in {{test-depends}} (thanks to [[/users/peter-bex|Peter Bex]] for pointing that out)
     726* Fixed filenames for {{chicken}} and {{csi}} on mingw ({{.exe}} extension).  Thanks to Dan Leslie for pointing that out.
     727* The {{--this-egg}} command line option has been deprecated
     728
     729
     730==== Version 2.5
     731
     732*  Log {{check-version}} actions even when fetching eggs from remote servers (i.e., no {{--eggs-source-dir}}), so version numbers can get logged
     733
     734
     735==== Version 2.4
     736
     737* "Fixed" hack to remove {{-test}} from {{chicken-install}} arguments when installing eggs
     738
     739
     740==== Version 2.3
     741
     742* Bug fix: reference to unbound variable {{eggs}} (thanks to Shawn Rutledge for noticing that)
     743
     744
     745==== Version 2.2
     746
     747* Only create the temporary repo dir when it is necessary (i.e., not for handling {{--help}} or when there's nothing to do)
     748
     749
     750==== Version 2.1
     751
     752* Hours, minutes and seconds formatted with exact numbers ({{prettify-time}})
     753
     754
     755==== Version 2.0
     756
     757* Rewrite of the 1.x version
Note: See TracChangeset for help on using the changeset viewer.