-
-
Notifications
You must be signed in to change notification settings - Fork 165
The Oils Repo Is Different From the Tarball Releases
(Back to Contributing)
This page addresses common confusion with Oils.
- The git repo is hosted at - https://github.com/oils-for-unix/oils
- The release tarballs are hosted at https://oils.pub/release/latest/
Their contents are very different:
- The git repo has Python source code.
- The
oils-for-unix
tarballs have (generated) C++ source code. There is no Python.
See the instructions in INSTALL.html.
This build process is pretty involved, and changes from time to time. It's not meant for end users.
Details:
- Oils developers should follow the instructions on the Contributing page.
- It involves custom tools like Zephyr ASDL and mycpp. mycpp is built on a specific version of the MyPy type checker.
- The Soil CI makes a tarball at every commit. So we are sure it always works. See
soil/worker.sh
and thecpp-tarball
job.
Generating C++ from Python is unusual, but many projects have a non-trivial release process.
For example, when a project uses autotools, you run its generated shell scripts like ./configure
, and generated makefiles. You're not running the original m4 source code.
You don't need to install m4 to build and autotools project, only shell and make. This is an intended feature.
Likewise, with Oils, you don't need Python to build or run. You only need a C++ compiler.
Everything is open source, so you can do this.
However, I wouldn't recommend it as the first thing you do with the source of the Oils project. People have tried before and gotten stuck!
A good first contribution would be to pick a bug from the issue tracker.
As of March 2025, we shouldn't require root access for building "wedges", e.g. specific versions of re2c, Python 2, Python 3, etc.