OILS / deps / README.md View on Github | oils.pub

93 lines, 64 significant
1`deps/` Directory
2=================
3
4Scripts to build various dependencies. They can used on the host machine, or
5in a Dockerfile to build a container. The container is used in our CI build,
6and can also be used locally.
7
8## Docker Files
9
10Our images:
11
12- <https://hub.docker.com/u/oilshell>
13
14Base image maintained by:
15
16- <https://hub.docker.com/_/debian>
17- <https://github.com/debuerreotype/debuerreotype>
18
19Note: we could use names like `buster-20220912-slim` instead of `buster-slim`.
20
21- How can we get notified when the image is updated?
22 - <https://crazymax.dev/diun/> has many notification mechanisms
23
24
25## Container Dir Structure
26
27The file system in our images looks like this:
28
29 /home/uke/
30 tmp/ # Dockerfiles copy build scripts here
31 oil/ # soil/host-shim.sh mounts the repo here
32 _tmp/ # published as .wwz files to CI
33 wedge/
34 oils-for-unix.org # should be oils.pub
35 pkg/
36 bash/
37 4.4/
38 5.2/
39 R-libs/
40 ...
41
42Note that `build/dev-shell.sh` puts some executables in `$PATH`.
43
44TODO:
45
46- Remove `/wedge` and `~/wedge`
47
48Dir structure:
49
50 /wedge/ # or you can build your own /home/andy/wedge
51 oilshell.org/ # built for this distro, e.g. ubuntu-18.04
52 DEPS/
53 Python-2.7.13/
54 Python-3.10.4/
55 bash-4.4/
56 bash-5.1/
57
58And then we'll need some symlinks like `python3`, etc.
59
60## Kinds of Tarballs / "Dir Values"
61
62- Source vs. Intermediate - what repo stores it?
63- Absolute vs. Relative - where is it mounted?
64- Layer vs. Wedge - how is it mounted?
65
66## Soil C++ Tarball Notes
67
68cpp-tarball is consumed by these jobs now:
69
70- raw-vm
71- wild
72- app-tests for ble.sh
73
74If we use it in more tasks, we could try to remove MyPy/Python 3 from Docker
75images. It should especially speed up the pull on sourcehut -- 30-40 seconds
76for pea/other-tests, vs. 2:13 for benchmarks2
77
78So these can also consume the tarball:
79
80- benchmarks
81- benchmarks2
82- interactive uses the 'benchmarks' image for some reason
83- cpp-spec
84 - build ASAN binary from tarball
85 - needs both osh and ysh
86- cpp-coverage -- would need to include C++ unit tests and Ninja in tarball,
87 which is not a bad idea
88
89More:
90
91- Alpine testing
92- Smoosh testing with OCaml, similar to spec tests
93