.python-version specifies which version(s) of Python are in the PATH,
and which version runs when you run the python, python2, or python3
commands.
That said, it is overly specific for this repository's needs.
In order to specify any version, you must enter it down to the patch
level, e.g. 3.8.2; Major-minor versions aren't allowed, e.g. 2.7
If users want to add such a file on their own machines, they may...
But it's unneccesary for this repository to ship this file as if there
were specific "correct" versions of Python to use.
Any Python 2.7.x or 3.5.0+ will work at the moment.
There are other checks elsewhere in the project, such as in
script/bootstrap. These should be sufficient to inform users which
Python versions they can use. node-gyp will also tell you.
This fixed two crashes:
1. (message loop) Crash occurred from micro webkit supression.
2. (cef) Random startup crash caused by proxy service initialization.
Instead of finding and compiling all .coffee/.cson files in
script/copy-files-to-bundle, we now tell gyp how to do this for us. It
works like this:
1. Rakefile invokes the new script/generate-sources-gypi script to
generate sources.gypi. This file lists all the .coffee/.cson files in
the src, static, and vendor directories, as well as a new
compiled_sources_dir variable that specifies where the compiled
versions of the files should be placed.
2. atom.gyp includes sources.gypi.
3. atom.gyp has a new target, generated_sources, which contains all the
.coffee/.cson files, and uses two rules to tell gyp how to compile
them. The rules invoke the new script/compile-coffee and
script/compile-cson files once for each file.
4. gyp generates one Makefile for each rule to actually perform the
compilation.
5. script/copy-files-to-bundle now takes the compiled_sources_dir
variable as an argument, and copies files both from there and from
the repository into the Resources directory.
By putting the compilation into a different target, we can do it in
parallel with compiling/linking our binaries. And gyp automatically runs
make using -j$(sysctl -n hw.ncpu), so compilation of .coffee/.cson files
happens in parallel, too.
These changes reduce clean build time on my MacBook Pro from 55 seconds
to 46 seconds.
We now use github/prebuilt-cef to download CEF from S3, then build
against that. This means we no longer need to have CEF committed to the
repo.
Fixes#280.