Prechádzať zdrojové kódy

Bump rustc to 1.8 and revamp all CI

This bumps the minimum rustc to 1.8.0, "fixing" #257.  I normally
consider this a breaking change, but we were already broken due to
external factors, for which I couldn't find a workaround.

This adds 1.15.0 to the CI matrix to build stable num-derive.  We still
need nightly to run its tests though, because of compiletest_rs, and
dev-dependencies can't be optional.

The testing scripts are moved from .travis/ to ci/, as they don't really
need to be hidden.  It's also now consolidated into one test_full.sh
which considers $TRAVIS_RUST_VERSION as needed.
Josh Stone 8 rokov pred
rodič
commit
1606fe7206
11 zmenil súbory, kde vykonal 68 pridanie a 61 odobranie
  1. 0 16
      .rustup.sh
  2. 4 6
      .travis.yml
  3. 0 7
      .travis/test_features.sh
  4. 0 15
      .travis/test_nightly.sh
  5. 0 14
      Makefile
  6. 6 0
      README.md
  7. 0 0
      ci/.gitignore
  8. 0 0
      ci/deploy.enc
  9. 3 3
      ci/deploy.sh
  10. 12 0
      ci/rustup.sh
  11. 43 0
      ci/test_full.sh

+ 0 - 16
.rustup.sh

@@ -1,16 +0,0 @@
-#!/bin/sh
-# Use rustup to locally run the same suite of tests as .travis.yml.
-# (You should first install/update 1.0.0, beta, and nightly.)
-
-set -ex
-
-for toolchain in 1.0.0 beta nightly; do
-    run="rustup run $toolchain"
-    $run cargo build --verbose
-    $run /usr/bin/env make test
-    $run $PWD/.travis/test_features.sh
-    if [ $toolchain = nightly ]; then
-        $run $PWD/.travis/test_nightly.sh
-    fi
-    $run cargo doc
-done

+ 4 - 6
.travis.yml

@@ -1,21 +1,19 @@
 language: rust
 rust:
-  - 1.0.0
+  - 1.8.0
+  - 1.15.0
   - beta
   - nightly
 sudo: false
 script:
   - cargo build --verbose
-  - make test
-  - .travis/test_features.sh
-  - |
-    [ $TRAVIS_RUST_VERSION != nightly ] || .travis/test_nightly.sh
+  - ./ci/test_full.sh
   - cargo doc
 after_success: |
   [ $TRAVIS_BRANCH = master ] &&
   [ $TRAVIS_PULL_REQUEST = false ] &&
   [ $TRAVIS_RUST_VERSION = nightly ] &&
-  ssh-agent .travis/deploy.sh
+  ssh-agent ./ci/deploy.sh
 notifications:
   email:
     on_success: never

+ 0 - 7
.travis/test_features.sh

@@ -1,7 +0,0 @@
-#!/bin/sh
-
-set -ex
-
-for feature in '' bigint rational complex; do
-  cargo build --verbose --no-default-features --features="$feature"
-done

+ 0 - 15
.travis/test_nightly.sh

@@ -1,15 +0,0 @@
-#!/bin/sh
-
-set -ex
-
-cargo bench --verbose
-
-cargo test --verbose --manifest-path=macros/Cargo.toml
-cargo test --verbose --manifest-path=derive/Cargo.toml
-
-# Build test for the serde feature
-cargo build --verbose --features "serde"
-
-# Downgrade serde and build test the 0.7.0 channel as well
-cargo update -p serde --precise 0.7.0
-cargo build --verbose --features "serde"

+ 0 - 14
Makefile

@@ -1,14 +0,0 @@
-CARGO_CMD ?= cargo
-
-packages = bigint complex integer iter rational traits
-
-test:
-	$(MAKE) run-all TASK="test"
-
-run-all: $(packages)
-	$(CARGO_CMD) $(TASK)
-
-$(packages):
-	$(CARGO_CMD) $(TASK) --manifest-path $@/Cargo.toml
-
-.PHONY: $(packages) test

+ 6 - 0
README.md

@@ -22,3 +22,9 @@ and this to your crate root:
 ```rust
 extern crate num;
 ```
+
+## Compatibility
+
+Most of the `num` crates are tested for rustc 1.8 and greater.
+The exceptions are `num-derive` which requires at least rustc 1.15,
+and the deprecated `num-macros` which requires nightly rustc.

+ 0 - 0
.travis/.gitignore → ci/.gitignore


+ 0 - 0
.travis/deploy.enc → ci/deploy.enc


+ 3 - 3
.travis/deploy.sh → ci/deploy.sh

@@ -6,7 +6,7 @@ cp doc/* target/doc/
 pip install ghp-import --user
 $HOME/.local/bin/ghp-import -n target/doc
 
-openssl aes-256-cbc -K $encrypted_9e86330b283d_key -iv $encrypted_9e86330b283d_iv -in .travis/deploy.enc -out .travis/deploy -d
-chmod 600 .travis/deploy
-ssh-add .travis/deploy
+openssl aes-256-cbc -K $encrypted_9e86330b283d_key -iv $encrypted_9e86330b283d_iv -in ./ci/deploy.enc -out ./ci/deploy -d
+chmod 600 ./ci/deploy
+ssh-add ./ci/deploy
 git push -qf ssh://[email protected]/${TRAVIS_REPO_SLUG}.git gh-pages

+ 12 - 0
ci/rustup.sh

@@ -0,0 +1,12 @@
+#!/bin/sh
+# Use rustup to locally run the same suite of tests as .travis.yml.
+# (You should first install/update 1.8.0, 1.15.0, beta, and nightly.)
+
+set -ex
+
+for toolchain in 1.8.0 1.15.0 beta nightly; do
+    run="rustup run $toolchain"
+    $run cargo build --verbose
+    $run $PWD/ci/test_full.sh $toolchain
+    $run cargo doc
+done

+ 43 - 0
ci/test_full.sh

@@ -0,0 +1,43 @@
+#!/bin/bash
+
+set -ex
+
+echo Testing num on rustc ${TRAVIS_RUST_VERSION:=$1}
+
+# All of these packages should build and test everywhere.
+for package in bigint complex integer iter rational traits; do
+  cargo build --manifest-path $package/Cargo.toml
+  cargo test --manifest-path $package/Cargo.toml
+done
+
+# Each isolated feature should also work everywhere.
+for feature in '' bigint rational complex; do
+  cargo build --verbose --no-default-features --features="$feature"
+  cargo test --verbose --no-default-features --features="$feature"
+done
+
+# Build test for the serde feature
+cargo build --verbose --features "serde"
+
+# Downgrade serde and build test the 0.7.0 channel as well
+cargo update -p serde --precise 0.7.0
+cargo build --verbose --features "serde"
+
+
+if [ "$TRAVIS_RUST_VERSION" = 1.8.0 ]; then exit; fi
+
+# num-derive should build on 1.15.0+
+cargo build --verbose --manifest-path=derive/Cargo.toml
+
+
+if [ "$TRAVIS_RUST_VERSION" != nightly ]; then exit; fi
+
+# num-derive testing requires compiletest_rs, which requires nightly
+cargo test --verbose --manifest-path=derive/Cargo.toml
+
+# num-macros only works on nightly, soon to be deprecated
+cargo build --verbose --manifest-path=macros/Cargo.toml
+cargo test --verbose --manifest-path=macros/Cargo.toml
+
+# benchmarks only work on nightly
+cargo bench --verbose