fitspec 0.4.8 → 0.4.10
raw patch · 13 files changed
+185/−194 lines, 13 filesdep ~leancheckPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: leancheck
API changes (from Hackage documentation)
Files
- .github/workflows/build.yml +131/−0
- .travis.yml +0/−119
- Makefile +19/−15
- README.md +2/−2
- bench/digraphs.hs +1/−3
- fitspec.cabal +4/−4
- mk/depend.mk +0/−32
- mk/ghcdeps +2/−1
- mk/haddock-i +1/−1
- mk/haskell.mk +18/−13
- mk/install-on +4/−1
- stack.yaml +2/−2
- test/sdist +1/−1
+ .github/workflows/build.yml view
@@ -0,0 +1,131 @@+# Builds and tests this Haskell project on "GitHub Actions"+#+# 2021 Rudy Matela+#+# some docs: https://github.com/haskell/actions/tree/main/setup+name: build+on: [push]+jobs:+ build-and-test:+ runs-on: ubuntu-latest+ steps:++ - name: Cache ~/.cabal/packages+ uses: actions/cache@v2+ with:+ path: ~/.cabal/packages+ key: v1-${{ runner.os }}-cabal-packages-${{ hashFiles('hello.cabal') }}+ restore-keys: v1-${{ runner.os }}-cabal-packages-++ - name: Cache ~/.cabal and ~/.ghc+ uses: actions/cache@v2+ with:+ path: |+ ~/.cabal+ !~/.cabal/packages+ ~/.ghc+ key: v1-${{ runner.os }}-cabal-ghc-latest-${{ hashFiles('hello.cabal') }}+ restore-keys: v1-${{ runner.os }}-cabal-ghc-latest-++ - run: du -hd3 ~/.cabal ~/.ghc || true++ - run: haddock --version || sudo apt-get install ghc-haddock+ - run: ghc --version+ - run: cabal --version++ - name: Check out repository+ uses: actions/checkout@v2++ - run: cabal update+ - run: make install-dependencies++ - run: make+ - run: make test+ - run: make haddock+ - run: make test-sdist+ - run: make test-via-cabal+++ test-with-ghc:+ strategy:+ matrix:+ ghc:+ - '9.0'+ - '8.10'+ - '8.8'+ - '8.6'+ - '8.4'+ - '8.2'+ - '8.0'+ - '7.10'+ - '7.8'+ runs-on: ubuntu-latest+ needs: build-and-test+ container: haskell:${{ matrix.ghc }}+ steps:+ - name: Cache ~/.cabal/packages+ uses: actions/cache@v2+ with:+ path: ~/.cabal/packages+ key: v1-${{ runner.os }}-cabal-packages-${{ hashFiles('hello.cabal') }}+ restore-keys: v1-${{ runner.os }}-cabal-packages-++ - name: Cache ~/.cabal and ~/.ghc+ uses: actions/cache@v2+ with:+ path: |+ ~/.cabal+ !~/.cabal/packages+ ~/.ghc+ key: v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-${{ hashFiles('hello.cabal') }}+ restore-keys: v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-++ - run: du -hd3 ~/.cabal ~/.ghc || true++ - run: make --version || rm /etc/apt/sources.list.d/*.list # faster update+ - run: make --version || apt-get update+ - run: make --version || apt-get install make++ - run: ghc --version+ - run: cabal --version++ - name: Check out repository+ uses: actions/checkout@v2++ - run: cabal update+ - run: make install-dependencies++ - run: make+ - run: make test+ - run: make haddock+ - run: make test-sdist+ - run: make test-via-cabal++ test-with-stack:+ runs-on: ubuntu-latest+ needs: build-and-test+ steps:+ - name: Setup Haskell's GHC and Cabal as required by current Stackage LTS+ uses: haskell/actions/setup@v1+ with: # lts-17.9+ ghc-version: '8.10.4'+ cabal-version: '3.2'++ - uses: actions/cache@v2+ with:+ path: ~/.stack+ key: v1-${{ runner.os }}-stack-${{ hashFiles('stack.yaml') }}+ restore-keys: v1-${{ runner.os }}-stack-++ - name: Check out repository+ uses: actions/checkout@v2+ - run: make test-via-stack++ test-with-hugs:+ runs-on: ubuntu-latest+ needs: build-and-test+ steps:+ - run: sudo apt-get install hugs+ - name: Check out repository+ uses: actions/checkout@v2+ - run: make hugs-test
− .travis.yml
@@ -1,119 +0,0 @@-# .travis.yml file for FitSpec-#-# Copyright: (c) 2017-2020 Rudy Matela-# License: 3-Clause BSD (see the file LICENSE)-# Maintainer: Rudy Matela <rudy@matela.com.br>--language: c # not really--notifications:- email:- on_failure: change--sudo: false--cache:- directories:- - $HOME/.ghc- - $HOME/.cabal- - $HOME/.stack--before_install:-- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH-- ghc --version-- cabal --version-- haddock --version-- du -hd3 ~/.cabal ~/.ghc || true-- du -hd4 ~/.stack || true-- rm -f ~/.cabal/config && cabal update-# Download and unpack the stack executable-# "Once Travis whitelists the stack.dev files," simply include stack in the-# addons section. -- https://docs.haskellstack.org/en/stable/travis_ci/-- mkdir -p ~/.local/bin-- export PATH=$HOME/.local/bin:$PATH-- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'-- stack config set system-ghc --global true-- stack --version-- cabal install leancheck cmdargs || cabal install leancheck cmdargs --lib--script:-- make && make test-- make haddock-- make test-sdist-- cabal test --ghc-option=-O0-- stack --resolver $STACKVER --no-terminal --skip-ghc-check test --ghc-options=-O0--matrix:- allow_failures:- - ghc: 'head'- include:- - ghc: 'head'- env: GHCVER=head CABALVER=head STACKVER=nightly-2020-03-28- addons: {apt: {packages: [ghc-head, cabal-install-head], sources: hvr-ghc}}- - ghc: '8.8'- env: GHCVER=8.8.3 CABALVER=3.0 STACKVER=lts-15.5- addons: {apt: {packages: [ghc-8.8.3, cabal-install-3.0], sources: hvr-ghc}}- - ghc: '8.6'- env: GHCVER=8.6.5 CABALVER=2.4 STACKVER=lts-14.27- addons: {apt: {packages: [ghc-8.6.5, cabal-install-2.4], sources: hvr-ghc}}- - ghc: '8.4'- env: GHCVER=8.4.4 CABALVER=2.2 STACKVER=lts-12.26- addons: {apt: {packages: [ghc-8.4.4, cabal-install-2.2], sources: hvr-ghc}}- - ghc: '8.2'- env: GHCVER=8.2.2 CABALVER=2.0 STACKVER=lts-11.22- addons: {apt: {packages: [ghc-8.2.2, cabal-install-2.0], sources: hvr-ghc}}- - ghc: '8.0'- env: GHCVER=8.0.2 CABALVER=1.24 STACKVER=lts-9.21- addons: {apt: {packages: [ghc-8.0.2, cabal-install-1.24], sources: hvr-ghc}}- - ghc: '7.10'- env: GHCVER=7.10.3 CABALVER=1.22 STACKVER=lts-6.35- addons: {apt: {packages: [ghc-7.10.3, cabal-install-1.22], sources: hvr-ghc}}- # we only support stack with GHC >= 7.10- - ghc: '7.8'- env: GHCVER=7.8.4 CABALVER=1.18- addons: {apt: {packages: [ghc-7.8.4, cabal-install-1.18], sources: hvr-ghc}}- before_install:- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH- - ghc --version- - cabal --version- - haddock --version- - rm -f ~/.cabal/config && cabal update- - cabal install Cabal==1.18.*- - cabal install leancheck cmdargs- script:- - make && make test- - make haddock HADDOCKFLAGS=- - make test-sdist- - cabal test- - ghc: '7.6'- env: GHCVER=7.6.3 CABALVER=1.18- addons: {apt: {packages: [ghc-7.6.3, cabal-install-1.18], sources: hvr-ghc}}- before_install:- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH- - ghc --version- - cabal --version- - haddock --version- - rm -f ~/.cabal/config && cabal update- - cabal install Cabal==1.18.*- - cabal install leancheck cmdargs- script:- - make GHCFLAGS= && make test GHCFLAGS=- - make haddock HADDOCKFLAGS=- - make test-sdist- - cabal test- - ghc: '7.4'- env: GHCVER=7.4.2 CABALVER=1.18- addons: {apt: {packages: [ghc-7.4.2, cabal-install-1.18], sources: hvr-ghc}}- before_install:- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH- - ghc --version- - cabal --version- - haddock --version- - rm -f ~/.cabal/config && cabal update- - cabal install Cabal==1.18.*- - cabal install leancheck cmdargs- script:- - make GHCFLAGS= && make test GHCFLAGS=- - make haddock HADDOCKFLAGS=- - make test-sdist- - cabal test
Makefile view
@@ -17,7 +17,6 @@ GHCIMPORTDIRS = src:bench GHCFLAGS = -O2 $(shell grep -q "Arch Linux" /etc/lsb-release && echo -dynamic) CABALOPTS=-HADDOCKFLAGS = --no-print-missing-docs BENCHS = \ bench/avltrees \ bench/bools \@@ -45,8 +44,11 @@ test/mutate \ test/showmutable \ test/utils+LIST_ALL_HSS = find \( -path "./dist*" -o -path "./.stack-work" -o -path "./Setup.hs" -o -name "haskell-src*.hs" \) -prune \+ -o -name "*.*hs" -print HADDOCKFLAGS = $(shell grep -q "Arch Linux" /etc/lsb-release && echo --optghc=-dynamic)-LIB_DEPS = base template-haskell leancheck cmdargs+LIB_DEPS = base template-haskell $(INSTALL_DEPS)+INSTALL_DEPS = leancheck cmdargs all: mk/toplibs @@ -68,6 +70,20 @@ ./test/derive ./test/utils +test-via-cabal:+ cabal configure --enable-tests --enable-benchmarks --ghc-options="$(GHCFLAGS) -O0"+ cabal build+ cabal test mutate++test-via-stack:+ stack test fitspec:test:mutate --ghc-options="$(GHCFLAGS) -O0" --system-ghc --no-install-ghc --no-terminal++test-sdist:+ ./test/sdist++hugs-test:+ echo 'TBA'+ legacy-test: make clean && make test -j8 GHC=ghc-8.2 GHCFLAGS="-Werror -dynamic" make clean && make test -j8 GHC=ghc-8.0 GHCFLAGS="-Werror -dynamic"@@ -75,18 +91,6 @@ make clean && make test -j8 GHC=ghc-7.8 GHCFLAGS="-Werror -dynamic" make clean && make test -j8 -test-via-cabal:- cabal configure --enable-tests --enable-benchmarks --ghc-options="-dynamic -Werror" $(CABALOPTS) && cabal build && cabal test--test-sdist:- ./test/sdist--prepare-test-via-cabal:- rm -rf .cabal-sandbox cabal.sandbox.config- cabal sandbox init- cabal install --only-dependencies --enable-documentation- cabal configure --enable-tests --enable-benchmarks- legacy-test-via-cabal: cabal-ghc-8.2 configure --enable-tests --enable-benchmarks --ghc-option=-dynamic && cabal-ghc-8.2 build && cabal-ghc-8.2 test cabal-ghc-8.0 configure --enable-tests --enable-benchmarks --ghc-option=-dynamic && cabal-ghc-8.0 build && cabal-ghc-8.0 test@@ -104,7 +108,7 @@ cabal-ghc-7.8 install --only-dependencies --enable-tests --enable-benchmarks clean: clean-hi-o clean-haddock- rm -f $(TESTS) $(BENCHS) $(EGS) {eg,bench}/*.{hi,o,dyn_hi,dyn_o}+ rm -f $(TESTS) $(BENCHS) $(EGS) {eg,bench}/*.{hi,o,dyn_hi,dyn_o} TAGS tags mk/toplibs # Debug: just list all source files compiled normally list-hs:
README.md view
@@ -167,8 +167,8 @@ [fitspec-logo]: https://github.com/rudymatela/fitspec/raw/master/doc/fitspec.svg?sanitize=true -[build-status]: https://travis-ci.org/rudymatela/fitspec.svg?branch=master-[build-log]: https://travis-ci.org/rudymatela/fitspec+[build-log]: https://github.com/rudymatela/fitspec/actions/workflows/build.yml+[build-status]: https://github.com/rudymatela/fitspec/actions/workflows/build.yml/badge.svg [hackage-version]: https://img.shields.io/hackage/v/fitspec.svg [fitspec-on-hackage]: https://hackage.haskell.org/package/fitspec [latest FitSpec version from Hackage]: https://hackage.haskell.org/package/fitspec
bench/digraphs.hs view
@@ -123,9 +123,7 @@ , (isPath, \ns d -> D []) ] --- Choosen node-label test type.-type A = Nat-+main :: IO () main = do unless listableOK $ putStrLn "WARNING: Listable Digraph is broken! (read my source.)"
fitspec.cabal view
@@ -1,5 +1,5 @@ name: fitspec-version: 0.4.8+version: 0.4.10 synopsis: refining property sets for testing Haskell programs description: FitSpec provides automated assistance in the task of refining test properties@@ -31,7 +31,7 @@ , doc/tutorial-property-creation.md , doc/fitspec.svg extra-source-files: .gitignore- , .travis.yml+ , .github/workflows/build.yml , Makefile , bench/haskell-src-exts.hs , bench/haskell-src.hs@@ -63,7 +63,7 @@ source-repository this type: git location: https://github.com/rudymatela/fitspec- tag: v0.4.8+ tag: v0.4.10 library@@ -80,7 +80,7 @@ , Test.FitSpec.Utils , Test.FitSpec.PrettyPrint other-modules: Test.FitSpec.Dot- build-depends: base >= 4 && < 5, leancheck >= 0.9.3, cmdargs, template-haskell+ build-depends: base >= 4 && < 5, leancheck >= 0.9.6, cmdargs, template-haskell hs-source-dirs: src default-language: Haskell2010
mk/depend.mk view
@@ -57,38 +57,6 @@ src/Test/FitSpec/Derive.hs \ bench/digraphs.hs \ bench/Digraph.hs-bench/haskell-src-exts: \- mk/toplibs-bench/haskell-src-exts.o: \- src/Test/FitSpec/Utils.hs \- src/Test/FitSpec/TestTypes.hs \- src/Test/FitSpec/ShowMutable/Tuples.hs \- src/Test/FitSpec/ShowMutable.hs \- src/Test/FitSpec/Report.hs \- src/Test/FitSpec/PrettyPrint.hs \- src/Test/FitSpec.hs \- src/Test/FitSpec/Mutable/Tuples.hs \- src/Test/FitSpec/Mutable.hs \- src/Test/FitSpec/Main.hs \- src/Test/FitSpec/Engine.hs \- src/Test/FitSpec/Derive.hs \- bench/haskell-src-exts.hs-bench/haskell-src: \- mk/toplibs-bench/haskell-src.o: \- src/Test/FitSpec/Utils.hs \- src/Test/FitSpec/TestTypes.hs \- src/Test/FitSpec/ShowMutable/Tuples.hs \- src/Test/FitSpec/ShowMutable.hs \- src/Test/FitSpec/Report.hs \- src/Test/FitSpec/PrettyPrint.hs \- src/Test/FitSpec.hs \- src/Test/FitSpec/Mutable/Tuples.hs \- src/Test/FitSpec/Mutable.hs \- src/Test/FitSpec/Main.hs \- src/Test/FitSpec/Engine.hs \- src/Test/FitSpec/Derive.hs \- bench/haskell-src.hs bench/Heap.o: \ bench/Heap.hs bench/heaps: \
mk/ghcdeps view
@@ -2,7 +2,7 @@ # # ghcdeps: generate Haskell make dependencies for compiling with GHC. #-# Copyright (c) 2015-2020 Rudy Matela.+# Copyright (c) 2015-2021 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # From a list of files provided on standard input,@@ -46,4 +46,5 @@ rm -f tmp.mk done | sort |+grep -v "^Loaded package environment from " | sed -e 's, *, \\\n ,g'
mk/haddock-i view
@@ -2,7 +2,7 @@ # # haddock-i: list haddock's -i parameters. #-# Copyright (c) 2015-2020 Rudy Matela.+# Copyright (c) 2015-2021 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # $ haddock-i <package1> <package2> ... <packageN>
mk/haskell.mk view
@@ -1,6 +1,6 @@ # Implicit rules for compiling Haskell code. #-# Copyright (c) 2015-2020 Rudy Matela.+# Copyright (c) 2015-2021 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # You can optionally configure the "Configuration variables" below in your main@@ -21,6 +21,7 @@ GHC ?= ghc GHCCMD = $(GHC) -i$(GHCIMPORTDIRS) $(GHCFLAGS) HADDOCK ?= haddock+CABAL_INSTALL = $(shell cabal --version | grep -q "version [0-2]\." && echo 'cabal install' || echo 'cabal v1-install') # Hugs Parameters HUGSIMPORTDIRS ?= "/usr/lib/hugs/packages/*"@@ -46,19 +47,13 @@ LIB_DEPS ?= base ALL_DEPS ?= $(LIB_DEPS)+INSTALL_DEPS ?= PKGNAME = $(shell cat *.cabal | grep "^name:" | sed -e "s/name: *//")-HADDOCK_VERSION = $(shell $(HADDOCK) --version | grep version | sed -e 's/.*version //;s/,.*//')-HADDOCK_MAJOR = $(shell echo $(HADDOCK_VERSION) | sed -e 's/\..*//')-HADDOCK_MINOR = $(shell echo $(HADDOCK_VERSION) | sed -e 's/[0-9]*\.\([0-9]*\).[0-9]*/\1/')-HADDOCK_PKG_NAME = $(shell [ $(HADDOCK_MAJOR) -gt 2 ] \- || [ $(HADDOCK_MAJOR) -eq 2 -a $(HADDOCK_MINOR) -ge 20 ] \- && echo "--package-name=$(PKGNAME)")-HADDOCK_HLNK_SRC = $(shell [ $(HADDOCK_MAJOR) -gt 2 ] \- || [ $(HADDOCK_MAJOR) -eq 2 -a $(HADDOCK_MINOR) -ge 17 ] \- && echo "--hyperlinked-source") +HADDOCK_HAS = haddock --help | grep -q -- + # Implicit rules %.hi %.o: %.hs $(GHCCMD) $< && touch $@@@ -80,7 +75,8 @@ # Cleaning rule (add as a clean dependency)-.PHONY: clean-hi-o+clean-hs: clean-hi-o clean-haddock clean-cabal clean-stack+ clean-hi-o: find $(ALL_HSS) | sed -e 's/hs$$/o/' | xargs rm -f find $(ALL_HSS) | sed -e 's/hs$$/hi/' | xargs rm -f@@ -93,6 +89,9 @@ depend: find $(ALL_HSS) | ./mk/ghcdeps -i$(GHCIMPORTDIRS) $(GHCFLAGS) > $(DEPMK) +install-dependencies:+ $(CABAL_INSTALL) $(INSTALL_DEPS)+ # haddock rules haddock: doc/index.html @@ -109,10 +108,16 @@ ./mk/haddock-i $(LIB_DEPS) | xargs \ $(HADDOCK) --html -odoc $(LIB_HSS) \ --title=$(PKGNAME) \- $(HADDOCK_PKG_NAME) \- $(HADDOCK_HLNK_SRC) \+ $(shell $(HADDOCK_HAS) --package-name && echo "--package-name=$(PKGNAME)" ) \+ $(shell $(HADDOCK_HAS) --hyperlinked-source && echo "--hyperlinked-source" ) \+ $(shell $(HADDOCK_HAS) --no-print-missing-docs && echo --no-print-missing-docs ) \ $(HADDOCKFLAGS) +clean-cabal:+ rm -rf dist/ dist-newstyle/ cabal.project.local cabal.project.local~++clean-stack:+ rm -rf .stack-work/ stack.yaml.lock # lists all Haskell source files list-all-hss:
mk/install-on view
@@ -2,9 +2,12 @@ # # mk/install-on: install or updates the mk folder on a Haskell project #+# Copyright (c) 2019-2021 Rudy Matela.+# Distributed under the 3-Clause BSD licence.+# # usage: ./mk/install-on path/to/project #-# This assumes a few things:+# This script assumes that: # # * tests are stored in a "test/" folder # * sources are stored in a "src/" folder
stack.yaml view
@@ -1,7 +1,7 @@-resolver: lts-15.5 # or ghc-8.8.3+resolver: lts-17.9 # or ghc-8.10.4 packages: - . extra-deps:-- leancheck-0.9.3+- leancheck-0.9.6
test/sdist view
@@ -2,7 +2,7 @@ # # test/sdist: tests the package generated by "cabal sdist". #-# Copyright (c) 2015-2020 Rudy Matela.+# Copyright (c) 2015-2021 Rudy Matela. # Distributed under the 3-Clause BSD licence. set -xe