GithubHelp home page GithubHelp logo

goldplate's People

Contributors

andreasabel avatar demaledetti avatar jaspervdj avatar jaspervdj-luminal avatar vbeatrice avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

goldplate's Issues

Support GHC 9.4

Blockers:

I managed to build and test goldplate with the following cabal.project.local. So, it seems goldplate is GHC-9.4 ready, we only need the ecosystem to catch up.

allow-newer: *:template-haskell

allow-newer: hashable:*
allow-newer: regex-pcre-builtin:base
allow-newer: async:base
allow-newer: scientific:base
allow-newer: integer-logarithms:*
allow-newer: aeson:*
allow-newer: indexed-traversable:base
allow-newer: indexed-traversable-instances:base
allow-newer: time-compat:base
allow-newer: these:base
allow-newer: attoparsec:*
allow-newer: assoc:base
allow-newer: text-short:*
allow-newer: semialign:base
allow-newer: data-fix:base
allow-newer: splitmix:base
allow-newer: OneTuple:base

constraints: aeson >= 2.1

Integrate `goldplate`'s own tests into the `.cabal` file

It would be nice if

cabal test

ran goldplate's own testsuite. I suppose this would be easy to implement by adding a suitable test-suite stanza to the .cabal file.

The benefit would be that users of goldplate could easily learn how to integrate goldplate into their own .cabal-files, by copy-pasting that stanza.

Assertion 'created_directory' eagerly removes directory before other assertions are checked

Assertion 'created_directory' eagerly removes directory before other assertions are checked.
E.g. you cannot place the created_directory assertion before the created_file assertion here:
https://github.com/fugue/goldplate/blob/a2c20310149a69522d0efc2cdcd8e1081f5f93b4/tests/create.goldplate#L9-L13

A bit too imperative for my taste. I would have expected a declarative approach to these assertions, so that the order in which I write these do not matter.

Use slash instead of backslash under Windows

I get not ok ... stdout verdicts under Windows when the same tests pass under Linux and macOS.
I'd guess these are caused by directory globbing resolved under Windows using backslashes instead of slashes, so printing the filepath to stdout gives different results under Linux and Windows. https://github.com/andreasabel/miniagda/blob/67f9ad914f8bbda153d679a517da98b01e482d4e/test/fail/adm/adm1.err#L1
Since Windows nowadays understands the slash as path separator, maybe the slash could be used instead of the backslash to make goldplate more portable?

No warning/error given for malformed `.goldplate` files

I accidently put this in my .goldplate file:

{ "command"     : "runghc"
, "input_files" : "*.hs"
, "arguments"   : [ "${GOLDPLATE_INPUT_FILE}" ]
, "asserts"     :
  [ { "exit_code" : 0 
    , "stdout"    : "${GOLDPLATE_INPUT_NAME}.golden" 
    }
  ]
}

Correct would have been:

, "asserts"     :
  [ { "exit_code" : 0 }
  , { "stdout"    : "${GOLDPLATE_INPUT_NAME}.golden" }
  ]

goldplate simply ignored the stdout part. I would have preferred an error message alerting me of my mistake.

Support GHC 9.2

Blocked on:

I tried

$ cabal build --allow-newer=aeson:all --constraint='aeson==2.*' \
  --allow-newer=scientific:{base,template-haskell} --constraint='scientific==0.3.7.*' \
  --allow-newer=semialign:base 

but semialign does not build with 9.2 because Option was removed from base-4.16.

Make a revision to support GHC 9.0.1

goldplate builds with cabal build --allow-newer.

  • Outdated upper bounds can be relaxed as follows:
     aeson-pretty         >= 0.8  && < 0.9,
     async                >= 2.2  && < 2.3,
     base                 >= 4.9  && < 5,
-    bytestring           >= 0.10 && < 0.11,
+    bytestring           >= 0.10 && < 0.12,
     Diff                 >= 0.3  && < 0.5,
     directory            >= 1.3  && < 1.4,
     filepath             >= 1.4  && < 1.5,
     Glob                 >= 0.10 && < 0.11,
-    optparse-applicative >= 0.14 && < 0.16,
+    optparse-applicative >= 0.14 && < 0.17,
     process              >= 1.6  && < 1.7,
     regex-pcre-builtin   >= 0.95.1.3 && < 0.96,
     text                 >= 1.2  && < 1.3,
-    time                 >= 1.8  && < 1.10,
+    time                 >= 1.8  && < 1.12,
     unordered-containers >= 0.2  && < 0.3

use ByteString instead of Text for regexes?

I'm trying to package goldplate in Debian. I've an issue with regex-pcre-builtin, which is not packaged (and, from what I understood, not wanted) in Debian. regex-pcre is already packaged, but it does not seem to have Text.Regex.PCRE.Text. Is there a reason why Text are used in src/Text/Regex/PCRE/Simple.hs, and not Bytestring? It would help packaging a lot if I could use regex-pcre instead of regex-pcre-builtin...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.