Back to Contributing

Background: Python App Bundle Releases

You can look at the Python build this way:

(1) What I've documented above, i.e. running bin/osh, can be called the developer build. This builds native/libc.c and uses the system Python interpreter /usr/bin/env python2 to run Oil.

(2) The "production" build is split into two steps: (a) git repo -> release tarball, and (b) release tarball -> Oil app bundle.

2a. Release tarball. This step is architecture-independent and occurs on the developer machine. This process may change, but it's roughly as follows:

# First we need to build a raw Python interpreter, in order to dynamically discover Python dependencies.
build/dev.sh ubuntu-deps        # or equivalent for other distros
build/dev.sh yajl-release       # build the git submodule (TODO: perhaps remove this)
deps/from-tar.sh layer-cmark
deps/from-tar.sh layer-re2c
deps/from-tar.sh layer-cpython
build/py.sh all
devtools/release.sh quick-oil-tarball      # build _release/oil.tar with the Makefile and build/*.{sh,py}
devtools/release.sh test-oil-tar           # test that you can build the tarball

Notes:

2b. Oil app bundle build. This step is architecture-dependent and occurs on the machine of the system packager or end user. To perform this step, follow the instructions in the INSTALL.txt file at the root of the tarball.