Admin/components/README
author wenzelm
Wed Nov 01 22:13:38 2017 +0100 (19 months ago)
changeset 66986 5188b1c59434
parent 50529 b2aa899b3f2d
child 68649 f849fc1cb65e
permissions -rw-r--r--
more timing;
wenzelm@50529
     1
Some notes on maintaining the Isabelle component repository at TUM
wenzelm@50529
     2
==================================================================
wenzelm@50332
     3
wenzelm@50332
     4
Quick reference
wenzelm@50332
     5
---------------
wenzelm@50332
     6
wenzelm@50332
     7
  $ install /home/isabelle/components/screwdriver-3.14.tar.gz
wenzelm@50332
     8
  $ install /home/isabelle/contrib/screwdriver-3.14/
wenzelm@50332
     9
  $ edit Admin/components/main: screwdriver-3.14
wenzelm@50528
    10
  $ isabelle components_checksum -u
wenzelm@50332
    11
  $ hg diff
wenzelm@50332
    12
  $ hg commit
wenzelm@50332
    13
wenzelm@50332
    14
wenzelm@50332
    15
Unique names
wenzelm@50332
    16
------------
wenzelm@50332
    17
wenzelm@50332
    18
Component names are globally unique over time and space: names of
wenzelm@50332
    19
published components are never re-used.  If some component needs to be
wenzelm@50332
    20
re-packaged, extra indices may be added to the official version number
wenzelm@50332
    21
like this:
wenzelm@50332
    22
wenzelm@50332
    23
  screwdriver-3.14    #default packaging/publishing, no index
wenzelm@50332
    24
  screwdriver-3.14-1  #another refinement of the same
wenzelm@50332
    25
  screwdriver-3.14-2  #yet another refinement of the same
wenzelm@50332
    26
wenzelm@50332
    27
There is no standard format for the structure of component names: they
wenzelm@50332
    28
are compared for equality only, without any guess at an ordering.
wenzelm@50332
    29
wenzelm@50332
    30
Components are registered in Admin/components/main (or similar) for
wenzelm@50332
    31
use of that particular Isabelle repository version, subject to regular
wenzelm@50332
    32
Mercurial history.  This allows to bisect Isabelle versions with full
wenzelm@50332
    33
record of the required components for testing.
wenzelm@50332
    34
wenzelm@50332
    35
wenzelm@50332
    36
Authentic archives
wenzelm@50332
    37
------------------
wenzelm@50332
    38
wenzelm@50332
    39
Isabelle components are managed as authentic .tar.gz archives in
wenzelm@50332
    40
/home/isabelle/components from where they are made publicly available
wenzelm@50332
    41
on http://isabelle.in.tum.de/components/.
wenzelm@50332
    42
wenzelm@50332
    43
Visibility on the HTTP server depends on local Unix file permission:
wenzelm@50332
    44
nonfree components should omit "read" mode for the Unix group/other;
wenzelm@50332
    45
regular components should be world-readable.
wenzelm@50332
    46
wenzelm@50527
    47
The file Admin/components/components.sha1 contains SHA1 identifiers
wenzelm@50527
    48
within the Isabelle repository, for integrity checking of the archives
wenzelm@50528
    49
that are exposed to the public file-system.  The components_checksum
wenzelm@50528
    50
tool helps to update these hash-keys wrt. the information within the
wenzelm@50528
    51
Isabelle repository.
wenzelm@50332
    52
wenzelm@50332
    53
wenzelm@50332
    54
Unpacked copy
wenzelm@50332
    55
-------------
wenzelm@50332
    56
wenzelm@50332
    57
A second unpacked copy is provided in /home/isabelle/contrib/.  This
wenzelm@50332
    58
allows users within the TUM network to activate arbitrary snapshots of
wenzelm@50332
    59
the repository with all standard components being available, without
wenzelm@50332
    60
extra copying or unpacking of the authentic archives.  Testing
wenzelm@50332
    61
services like "isatest" and "mira" do this routinely, and will break
wenzelm@50332
    62
accordingly if this is omitted.