hpio 0.9.0.0 → 0.9.0.1
raw patch · 10 files changed
+426/−105 lines, 10 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- changelog.md +6/−0
- default.nix +0/−29
- hpio.cabal +36/−30
- nix/hpio.nix +29/−0
- package.yaml +251/−0
- release.nix +67/−0
- shell.nix +2/−46
- stack-lts-3.yaml +15/−0
- stack-lts-6.yaml +10/−0
- stack-lts-7.yaml +10/−0
changelog.md view
@@ -1,3 +1,9 @@+## 0.9.0.1 (2017-10-16)++Fixes:+ - Better Nix packaging.+ - Add a few missing files to extra-source-files.+ ## 0.9.0.0 (2017-10-02) Changes:
− default.nix
@@ -1,29 +0,0 @@-{ mkDerivation, async, base, bytestring, containers, directory-, doctest, exceptions, filepath, hlint, hspec, monad-control-, monad-logger, mtl, optparse-applicative, protolude, QuickCheck-, stdenv, text, transformers, transformers-base, unix-, unix-bytestring-}:-mkDerivation {- pname = "hpio";- version = "0.9.0.0";- src = ./.;- isLibrary = true;- isExecutable = true;- libraryHaskellDepends = [- base bytestring containers directory exceptions filepath- monad-control monad-logger mtl protolude QuickCheck text- transformers transformers-base unix unix-bytestring- ];- executableHaskellDepends = [- async base exceptions mtl optparse-applicative protolude text- transformers- ];- testHaskellDepends = [- base containers directory doctest exceptions filepath hlint hspec- protolude QuickCheck- ];- homepage = "https://github.com/quixoftic/hpio#readme";- description = "Monads for GPIO in Haskell";- license = stdenv.lib.licenses.bsd3;-}
hpio.cabal view
@@ -1,9 +1,9 @@--- This file has been generated from package.yaml by hpack version 0.18.1.+-- This file has been generated from package.yaml by hpack version 0.19.2. -- -- see: https://github.com/sol/hpack name: hpio-version: 0.9.0.0+version: 0.9.0.1 synopsis: Monads for GPIO in Haskell description: This package provides an embedded DSL for writing cross-platform GPIO programs in Haskell. Currently only Linux is supported (via the@@ -33,11 +33,16 @@ extra-source-files: .travis.yml changelog.md- default.nix Hlint.hs+ nix/hpio.nix+ package.yaml README.md+ release.nix shell.nix stack-lts-2.yaml+ stack-lts-3.yaml+ stack-lts-6.yaml+ stack-lts-7.yaml stack.yaml source-repository head@@ -74,22 +79,22 @@ c-sources: src/System/GPIO/Linux/Sysfs/pollSysfs.c build-depends:- QuickCheck >=2.7.6 && <2.11- , base >=4.7.0 && <5- , bytestring >=0.10.4 && <0.11- , containers >=0.5.5 && <0.6- , directory >=1.2.1 && <1.4- , exceptions >=0.8.0 && <1- , filepath >=1.3.0 && <1.5- , monad-control == 1.*- , monad-logger == 0.3.*- , mtl >=2.1.3 && <2.3- , protolude == 0.2.*- , text >=1.2.0 && <1.3- , transformers >=0.3.0 && <0.6- , transformers-base == 0.4.*- , unix >=2.7.0 && <2.8- , unix-bytestring >=0.3.7 && <0.4+ QuickCheck >=2.7.6 && <2.11+ , base >=4.7.0 && <5+ , bytestring >=0.10.4 && <0.11+ , containers >=0.5.5 && <0.6+ , directory >=1.2.1 && <1.4+ , exceptions >=0.8.0 && <1+ , filepath >=1.3.0 && <1.5+ , monad-control ==1.*+ , monad-logger ==0.3.*+ , mtl >=2.1.3 && <2.3+ , protolude ==0.2.*+ , text >=1.2.0 && <1.3+ , transformers >=0.3.0 && <0.6+ , transformers-base ==0.4.*+ , unix >=2.7.0 && <2.8+ , unix-bytestring >=0.3.7 && <0.4 if impl(ghc >= 8.0) ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates else@@ -98,8 +103,8 @@ ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances else build-depends:- fail == 4.9.*- , semigroups == 0.18.*+ fail ==4.9.*+ , semigroups ==0.18.* exposed-modules: System.GPIO System.GPIO.Linux@@ -132,8 +137,8 @@ buildable: False else build-depends:- base- , async >=2.0.2 && <2.2+ async >=2.0.2 && <2.2+ , base , exceptions , hpio , mtl@@ -160,8 +165,8 @@ buildable: False else build-depends:- base- , async >=2.0.2 && <2.2+ async >=2.0.2 && <2.2+ , base , exceptions , hpio , mtl@@ -188,8 +193,8 @@ buildable: False else build-depends:- base- , async >=2.0.2 && <2.2+ async >=2.0.2 && <2.2+ , base , exceptions , hpio , mtl@@ -250,15 +255,15 @@ default-extensions: NoImplicitPrelude ghc-options: -threaded build-depends:- base+ QuickCheck+ , base , containers , directory , exceptions , filepath , hpio- , hspec >=2.1.7+ , hspec >=2.1.7 , protolude- , QuickCheck if impl(ghc >= 8.0) ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates else@@ -271,4 +276,5 @@ Test.System.GPIO.Linux.Sysfs.MockSpec Test.System.GPIO.Linux.Sysfs.SysfsGpioMockSpec Test.System.GPIO.TypesSpec+ Paths_hpio default-language: Haskell2010
+ nix/hpio.nix view
@@ -0,0 +1,29 @@+{ mkDerivation, async, base, bytestring, containers, directory+, doctest, exceptions, filepath, hlint, hspec, monad-control+, monad-logger, mtl, optparse-applicative, protolude, QuickCheck+, stdenv, text, transformers, transformers-base, unix+, unix-bytestring+}:+mkDerivation {+ pname = "hpio";+ version = "0.9.0.1";+ src = ./.;+ isLibrary = true;+ isExecutable = true;+ libraryHaskellDepends = [+ base bytestring containers directory exceptions filepath+ monad-control monad-logger mtl protolude QuickCheck text+ transformers transformers-base unix unix-bytestring+ ];+ executableHaskellDepends = [+ async base exceptions mtl optparse-applicative protolude text+ transformers+ ];+ testHaskellDepends = [+ base containers directory doctest exceptions filepath hlint hspec+ protolude QuickCheck+ ];+ homepage = "https://github.com/quixoftic/hpio#readme";+ description = "Monads for GPIO in Haskell";+ license = stdenv.lib.licenses.bsd3;+}
+ package.yaml view
@@ -0,0 +1,251 @@+name: hpio+version: 0.9.0.1+synopsis: Monads for GPIO in Haskell+category: System+stability: experimental+author: Drew Hess <dhess-src@quixoftic.com>+maintainer: Drew Hess <dhess-src@quixoftic.com>+copyright: Copyright (c) 2017, Quixoftic, LLC+license: BSD3+github: quixoftic/hpio++description: ! 'This package provides an embedded DSL for writing cross-platform++ GPIO programs in Haskell. Currently only Linux is supported (via the++ @sysfs@ filesystem), but other Unix GPIO platforms will be supported++ in the future.+++ Monads and low-level actions are also provided for each supported++ platform''s native GPIO API, if you want to program directly to++ the platform API.+++ Example programs are provided in the ''examples'' directory of the++ source code distribution. There is also a "System.GPIO.Tutorial"++ module, which explains how to use the cross-platform DSL.'++tested-with: GHC==7.8.4 GHC==7.10.2 GHC==7.10.3 GHC==8.0.1 GHC==8.0.2 GHC==8.2.1++flags:+ test-hlint:+ description: Build hlint test+ manual: true+ default: true+ test-doctests:+ description: Build doctests+ manual: true+ default: true+ linux-bbone-tests:+ description: >+ Enable Linux BeagleBone-specific tests. Disabled by default. See+ test/System/GPIO/Linux/Sysfs/BeagleBoneSpec.hs for requirements.+ Run with "cabal test -flinux-bbone-tests".+ manual: true+ default: false+ examples:+ description: Build the example programs+ manual: true+ default: true++when:+ - condition: impl(ghc >= 8.0)+ then:+ ghc-options:+ - -Wall+ - -Wincomplete-uni-patterns+ - -Wincomplete-record-updates+ else:+ ghc-options:+ - -Wall+ - -fwarn-incomplete-uni-patterns+ - -fwarn-incomplete-record-updates++default-extensions:+ - NoImplicitPrelude++library:+ when:+ - condition: impl(ghc >= 8.0)+ then:+ ghc-options:+ - -Wcompat+ - -Wnoncanonical-monad-instances+ - -Wnoncanonical-monadfail-instances+ else:+ # provide/emulate `Control.Monad.Fail` and `Data.Semigroups` API for pre-GHC8+ dependencies:+ - fail == 4.9.*+ - semigroups == 0.18.*+ source-dirs: src+ c-sources:+ - src/System/GPIO/Linux/Sysfs/pollSysfs.c+ cc-options:+ - -Wall+ other-extensions:+ - ConstraintKinds+ - CPP+ - DefaultSignatures+ - DeriveDataTypeable+ - DeriveGeneric+ - ExistentialQuantification+ - FlexibleContexts+ - FlexibleInstances+ - FunctionalDependencies+ - GADTs+ - GeneralizedNewtypeDeriving+ - InterruptibleFFI+ - KindSignatures+ - LambdaCase+ - MultiParamTypeClasses+ - OverloadedStrings+ - PackageImports+ - QuasiQuotes+ - Safe+ - TemplateHaskell+ - Trustworthy+ - TypeSynonymInstances+ - UndecidableInstances+ dependencies:+ - QuickCheck >=2.7.6 && <2.11+ - base >=4.7.0 && <5+ - bytestring >=0.10.4 && <0.11+ - containers >=0.5.5 && <0.6+ - directory >=1.2.1 && <1.4+ - exceptions >=0.8.0 && <1+ - filepath >=1.3.0 && <1.5+ - monad-control == 1.*+ - monad-logger == 0.3.*+ - mtl >=2.1.3 && <2.3+ - protolude == 0.2.*+ - text >=1.2.0 && <1.3+ - transformers >=0.3.0 && <0.6+ - transformers-base == 0.4.*+ - unix >=2.7.0 && <2.8+ - unix-bytestring >=0.3.7 && <0.4++executables:+ hpio-reader-example: &executable+ main: GpioReader.hs+ source-dirs: examples+ other-modules: []+ other-extensions:+ - ConstraintKinds+ - FlexibleContexts+ - LambdaCase+ - OverloadedStrings+ ghc-options:+ - -threaded+ when:+ - condition: "!(flag(examples))"+ then:+ buildable: false+ else:+ dependencies:+ - base+ - async >=2.0.2 && <2.2+ - exceptions+ - hpio+ - mtl+ - optparse-applicative >=0.11.0 && <0.15+ - protolude+ - text+ - transformers+ - condition: impl(ghc >= 8.0)+ ghc-options:+ - -Wcompat+ - -Wnoncanonical-monad-instances+ - -Wnoncanonical-monadfail-instances+ - -fno-warn-redundant-constraints+ - -fno-warn-redundant-constraints+ hpio-sysfs-example:+ <<: *executable+ main: Sysfs.hs+ other-extensions:+ - FlexibleContexts+ - LambdaCase+ - OverloadedStrings+ hpio-example:+ <<: *executable+ main: Gpio.hs+ other-extensions:+ - ConstraintKinds+ - LambdaCase+ - OverloadedStrings++tests:+ hlint:+ main: hlint.hs+ source-dirs: test+ other-modules: []+ ghc-options:+ - -w+ - -threaded+ when:+ - condition: "!(flag(test-hlint))"+ then:+ buildable: false+ else:+ dependencies:+ - base+ - hlint+ - protolude+ doctest:+ main: doctest.hs+ source-dirs: test+ other-modules: []+ ghc-options:+ - -threaded+ when:+ - condition: (!(flag(test-doctests))) || (impl(ghc <7.10))+ then:+ buildable: false+ else:+ dependencies:+ - base+ - doctest+ - filepath+ - protolude+ spec:+ main: Spec.hs+ source-dirs:+ - test+ ghc-options:+ - -threaded+ dependencies:+ - base+ - containers+ - directory+ - exceptions+ - filepath+ - hpio+ - hspec >=2.1.7+ - protolude+ - QuickCheck+ ghc-options:+ - -threaded+ when:+ - condition: flag(linux-bbone-tests)+ cpp-options:+ -DRUN_LINUX_BBONE_TESTS=1++extra-source-files:+ - .travis.yml+ - Hlint.hs+ - README.md+ - changelog.md+ - nix/*+ - package.yaml+ - release.nix+ - shell.nix+ - stack.yaml+ - stack-lts-2.yaml+ - stack-lts-3.yaml+ - stack-lts-6.yaml+ - stack-lts-7.yaml
+ release.nix view
@@ -0,0 +1,67 @@+{ compiler ? "ghc821" }:++let+ # Disable tests for these packages+ dontCheckPackages = [+ ];++ # Jailbreak these packages+ doJailbreakPackages = [+ ];++ # Disable haddocks for these packages+ dontHaddockPackages = [+ ];++ config = {+ packageOverrides = pkgs: rec {+ haskellPackages =+ let+ generatedOverrides = haskellPackagesNew: haskellPackagesOld:+ let+ toPackage = file: _: {+ name = builtins.replaceStrings [ ".nix" ] [ "" ] file;++ value = haskellPackagesNew.callPackage (./. + "/nix/${file}") { };+ };++ in+ pkgs.lib.mapAttrs' toPackage (builtins.readDir ./nix);++ makeOverrides =+ function: names: haskellPackagesNew: haskellPackagesOld:+ let+ toPackage = name: {+ inherit name;++ value = function haskellPackagesOld.${name};+ };++ in+ builtins.listToAttrs (map toPackage names);++ composeExtensionsList =+ pkgs.lib.fold pkgs.lib.composeExtensions (_: _: {});++ # More exotic overrides go here+ manualOverrides = haskellPackagesNew: haskellPackagesOld: {+ protolude = pkgs.haskell.packages.${compiler}.protolude_0_2;+ };+ in+ pkgs.haskell.packages.${compiler}.override {+ overrides = composeExtensionsList [+ generatedOverrides+ (makeOverrides pkgs.haskell.lib.dontCheck dontCheckPackages )+ (makeOverrides pkgs.haskell.lib.doJailbreak doJailbreakPackages)+ (makeOverrides pkgs.haskell.lib.dontHaddock dontHaddockPackages)+ manualOverrides+ ];+ };+ };+ };++ pkgs = import <nixpkgs> { inherit config; };++in+ { hpio = pkgs.haskellPackages.hpio;+ }
shell.nix view
@@ -1,47 +1,3 @@-{ nixpkgs ? import <nixpkgs> {}, compiler ? "default", doBenchmark ? false }:--let-- inherit (nixpkgs) pkgs;-- f = { mkDerivation, async, base, bytestring, containers- , directory, doctest, exceptions, filepath, hlint, hspec- , monad-control, monad-logger, mtl, optparse-applicative, protolude- , QuickCheck, stdenv, text, transformers, transformers-base, unix- , unix-bytestring- }:- mkDerivation {- pname = "hpio";- version = "0.9.0.0";- src = ./.;- isLibrary = true;- isExecutable = true;- libraryHaskellDepends = [- base bytestring containers directory exceptions filepath- monad-control monad-logger mtl protolude QuickCheck text- transformers transformers-base unix unix-bytestring- ];- executableHaskellDepends = [- async base exceptions mtl optparse-applicative protolude text- transformers- ];- testHaskellDepends = [- base containers directory doctest exceptions filepath hlint hspec- protolude QuickCheck- ];- homepage = "https://github.com/quixoftic/hpio#readme";- description = "Monads for GPIO in Haskell";- license = stdenv.lib.licenses.bsd3;- };-- haskellPackages = if compiler == "default"- then pkgs.haskellPackages- else pkgs.haskell.packages.${compiler};-- variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;-- drv = variant (haskellPackages.callPackage f {});--in+{ compiler ? "ghc821" }: - if pkgs.lib.inNixShell then drv.env else drv+(import ./release.nix { inherit compiler; }).hpio.env
+ stack-lts-3.yaml view
@@ -0,0 +1,15 @@+require-stack-version: ">= 1.1.0"+pvp-bounds: both+resolver: lts-3.22+packages:+- .+extra-deps:+- protolude-0.2+- fail-4.9.0.0+- semigroups-0.18.2+- unix-bytestring-0.3.7.3+flags:+ hpio:+ test-hlint: false+ semigroups:+ bytestring-builder: false
+ stack-lts-6.yaml view
@@ -0,0 +1,10 @@+require-stack-version: ">= 1.1.0"+pvp-bounds: both+resolver: lts-6.35+extra-deps:+- protolude-0.2+packages:+- .+flags:+ hpio:+ test-hlint: false
+ stack-lts-7.yaml view
@@ -0,0 +1,10 @@+require-stack-version: ">= 1.1.0"+pvp-bounds: both+resolver: lts-7.24+extra-deps:+- protolude-0.2+packages:+- .+flags:+ hpio:+ test-hlint: false