The i386 CI releases were still using x86_64 platforms for building the
output binaries, as a result the produced binaries did not work properly
on i386 systems.
The maximum time of 50 minutes was exceeded when Alacritty tries to build
for all Linux platforms, this was because it was effectively compiling
Alacritty from scratch four times.
By making use of the previous build artifacts, it's possible to cut this
down to two compiles using the `--no-build` option of `cargo-deb`.
This release introduces some config to automatically build deploy a
binaries on the github release page using travis. The build only happens
when a commit is tagged and it uses the stable version of rust.
The main travis sections (install/script/before_deploy) have been
moved out of the .travis.yml to make it easier to read, maintain and
extend the different steps of the CI process.
Since checking for the Rust version in CI is enough to know if clippy
should be used or not, the environment variable `CLIPPY` has also been
removed, which further allowed simplifying the CI process.
Besides the executables, some auxillary files are now also published as
part of a release when they have changed since the last tagged Alacritty
release. This should make it clear for returning users when a new
version of a specific auxillary file is required.
Instead of using the 14.04 image which travis provides by default, an
18.04 docker image is used to build the output binaries for Linux.
This affects both the .deb and the .tar.gz binary.
The advantage of this is that while binaries compiled on 14.04, do not
work on 18.04, it does work the other way around. The generated .tar.gz
binary has been tested on 18.04, Debian, Fedora and Archlinux and all
systems were able to run it without any warnings or errors.
Initial support for Windows is implemented using the winpty translation
layer. Clipboard support for Windows is provided through the `clipboard`
crate, and font rasterization is provided by RustType.
The tty.rs file has been split into OS-specific files to separate
standard pty handling from the winpty implementation.
Several binary components are fetched via build script on windows
including libclang and winpty. These could be integrated more directly
in the future either by building those dependencies as part of the
Alacritty build process or by leveraging git lfs to store the artifacts.
Fixes#28.
This fixes some existing clippy issues and runs the `font` tests through travis.
Testing of copypasta crate was omitted due to problens when running on headless travis-ci environment (x11 clipboard would fail).
We moved to "cargo clippy" in 5ba34d4f97 and
removing the clippy lint annotations in `src/lib.rs` does not cause any additional warnings.
This also changes `cargo clippy` to use the flags required for checking integration tests.
Using clippy as a library has been deprecated, instead the `cargo
clippy` command should be used instead. To comply with this change
clippy has been removed from the `Cargo.toml` and is now installed with
cargo when building in CI.
This has also lead to a few new clippy issues to show up, this includes
everything in the `font` subdirectory. This has been fixed and `font`
should now be covered by clippy CI too.
This also upgrades all dependencies, as a result this fixes#1341 and
this fixes#1344.
* Update to latest Glutin/winit
This *finally* gets us off the fork of Glutin we've been on for so long
and will unblock a number of other items. Functionality should be the
same as before.
The update forced our hand on a compiler update. It's no longer
feasible to pin on an old version. From now on, we require latest
stable.
This allows us to notice and report any regressions that have occured on
nightly, without requiring tests to pass on nightly for the entire build
to succeed.
The `fast_finish` flag will cause Travis to mark the build as successful
if the only builds still running are allowed to fail (e.g. `nightly`).
This allows us to manually inspect builds (or implement some form of
notifications) to see if any nightly regressions have occured, without
slowing down the overall build time.
This function isn't exactly useful, but it's working ffi with the
fontconfig library. Woo! Next step will be returning some objects with
more information (like font path so we can start rendering glyphs!).