profile
viewpoint
Michael Snoyman snoyberg FP Complete Israel http://www.snoyman.com/ I'm a Haskeller, I work on Yesod, Conduit, Stack, Stackage, and many others. VP of Engineering at FP Complete (@fpco).

simonmichael/hledger 1524

easy-to-use command-line/curses/web plaintext accounting tool; a modern and largely compatible Haskell rewrite of Ledger

haskell/cabal 1174

Official upstream development repository for Cabal and cabal-install

commercialhaskell/rio 665

A standard library for Haskell

kallisti-dev/hs-webdriver 166

A Haskell client for the Selenium WebDriver protocol.

kazu-yamamoto/logger 132

A fast logging system for Haskell

fpco/haskell-scratch 67

Base Docker image which includes minimal shared libraries for GHC-compiled executables

haskell/process 64

Library for dealing with system processes

haskell/ecosystem-proposals 49

Proposals for the Haskell Ecosystem

fizruk/http-api-data 42

Converting to/from HTTP API data like URL pieces, headers and query parameters.

ekmett/exceptions 40

mtl friendly exceptions

issue commentcommercialhaskell/pantry

Cannot store tree, contains unknown blob

Sorry for previous comment, it included the wrong link. Actual link for binaries https://github.com/commercialhaskell/stack/actions/runs/266593212

brandon-leapyear

comment created time in an hour

issue commentcommercialhaskell/pantry

Cannot store tree, contains unknown blob

The binaries are now available at https://ecstatic-lalande-e25bf2.netlify.app/

brandon-leapyear

comment created time in an hour

issue commentcommercialhaskell/pantry

Cannot store tree, contains unknown blob

Thank you for the report, I can't reproduce but I think I know what's causing it. I've pushed a commit to hopefully address this. I've kicked off a PR on Stack so that we'll get some CI-generated binaries. I'll ping when ready, would you be able to test those and see if they fix the issue?

brandon-leapyear

comment created time in 3 hours

PR opened commercialhaskell/stack

Handle missing blobs in Pantry cache

CC @brandon-leapyear for https://github.com/commercialhaskell/pantry/issues/27

+14 -9

0 comment

6 changed files

pr created time in 3 hours

push eventcommercialhaskell/stack

Michael Snoyman

commit sha 014eb963df044fdf84a6bc8471d77823627d9eb6

Handle missing blobs in Pantry cache See: https://github.com/commercialhaskell/pantry/issues/27

view details

push time in 3 hours

create barnchcommercialhaskell/stack

branch : missing-blobs

created branch time in 3 hours

push eventcommercialhaskell/pantry

Michael Snoyman

commit sha 10faa92918c3ba528be6e9ae4aa60105080b867f

Handle case where tree exists in cache by blobs are missing #27

view details

push time in 3 hours

issue commentcommercialhaskell/stack

SSL failures with https://get.haskellstack.org

Works for me, isup.me works for me too.

blaiseli

comment created time in 7 hours

delete branch yesodweb/wai

delete branch : drop-older-ghc

delete time in 8 hours

push eventyesodweb/wai

Michael Snoyman

commit sha 38a828a500ae0bc5e0f6210e0cdb3f2cdeb0d31d

Drop support for GHC < 8.2 These packages may still work, but since our CI doesn't check them, it's safer to set a lower bound on base like this.

view details

Michael Snoyman

commit sha 05cf5079f73533a19d9a8a9ba3a5ebc03ae91103

Merge pull request #816 from yesodweb/drop-older-ghc Drop older GHCs

view details

push time in 8 hours

PR merged yesodweb/wai

Drop older GHCs

@kazu-yamamoto we recently had a PR that broke older GHCs. This is a safety mechanism to prevent that from happening.

+28 -27

0 comment

14 changed files

snoyberg

pr closed time in 8 hours

issue commentcommercialhaskell/stack

Timeout when accessing `casa.fpcomplete.com`

All server issues should be fixed, but check out the Actions tab for builds. Latest: https://github.com/commercialhaskell/stack/actions/runs/265180359

brandon-leapyear

comment created time in 17 hours

MemberEvent

delete branch yesodweb/yesod

delete branch : removeGHandlerFromDocs

delete time in a day

push eventcommercialhaskell/stack

Emanuel Borsboom

commit sha 0f4dfbd57ad9cb22f77070ef4b4d952434eb43da

Update release docs

view details

Emanuel Borsboom

commit sha a5b7a3af0b0fe74ed9fa14d27e12eef80d730132

Update doc/maintainers/releases.md

view details

Ondřej Slámečka

commit sha 7b14603baeee43705c9c19d565704f1912541a61

Add zlib-devel to the list of prerequisites on CentOS It is needed with Amazon Linux.

view details

Mike Pilgrem

commit sha ddbb13adfb297e3f92d734957409e1fac6cf7115

Fix #5321 Spell out that stack installs on Un*x and Windows Adds an introductory sentence under the 'How to install' heading.

view details

Michael Snoyman

commit sha 25203a3efc56633963693556155b3c34f840d7aa

Merge pull request #5366 from OndrejSlamecka/patch-1 Add zlib-devel to the list of prerequisites on CentOS

view details

Michael Snoyman

commit sha a8fbb7eee78fdca2d7db66a86791d0b642f332d7

Merge branch 'fix-5321' of https://github.com/mpilgrem/stack into stable

view details

Michael Snoyman

commit sha 046f90787acff796148de6202440f4f5f328858f

Merge branch 'stable' of github.com:commercialhaskell/stack into stable

view details

Jens Petersen

commit sha c52911ca953197bf60f080a68a10bed2ce4c28c1

doc/installation: Fedora now includes stack update Fedora installation to mention Fedora package rather than the obsolete copr.

view details

Piper McCorkle

commit sha 87369c4ae4f6e94fbd8f18738f82f32779008ea5

Add Pop!_OS compatibility

view details

Michael Snoyman

commit sha 2c2e274171e0f0985f222141de0c0e017064fda0

Merge remote-tracking branch 'origin/stable' into stable-into-master

view details

Michael Snoyman

commit sha 5e89c2cda8b050e3014085a664c75e37181a00cb

Merge pull request #5397 from commercialhaskell/stable-into-master Stable into master

view details

push time in a day

delete branch commercialhaskell/stack

delete branch : stable-into-master

delete time in a day

issue closedcommercialhaskell/stack

No mention of Windows on stack installation page official link

General summary/comments (optional)

The Windows installation instructions for Haskell Platform links to this doc page, which says nothing about Windows at all and is exclusively Linux-oriented. While I found a valuable procedure by navigating to the Developing Under Windows page, there is probably a reason that the link goes to the overall stack installation page.

closed time in a day

AMDphreak

PR merged commercialhaskell/stack

Stable into master

Note: Documentation fixes for https://docs.haskellstack.org/en/stable/ should target the "stable" branch, not master.

Please include the following checklist in your PR:

  • [ ] Any changes that could be relevant to users have been recorded in the ChangeLog.md
  • [ ] The documentation has been updated, if necessary.

Please also shortly describe how you tested your change. Bonus points for added tests!

+44 -14

0 comment

4 changed files

snoyberg

pr closed time in a day

push eventcommercialhaskell/stack

Michael Snoyman

commit sha 9f79297227a7327937e670be614bdfb31c3c9d40

Bump rio version to fix builds

view details

Michael Snoyman

commit sha d8144bcb1d8fafdebb9bf025f72115ebbc5f8cf2

Merge pull request #5398 from commercialhaskell/bump-rio-version Bump rio version

view details

Michael Snoyman

commit sha 2e73a2857e94c2fbfb128526bea5f5b190a3f5d4

Don't fail on non-existent dirs

view details

Michael Snoyman

commit sha d26087bbe3e5f9008673c004c78875181993b625

Create a Linux static bindist #5288

view details

push time in a day

push eventcommercialhaskell/stack

Michael Snoyman

commit sha d8144bcb1d8fafdebb9bf025f72115ebbc5f8cf2

Merge pull request #5398 from commercialhaskell/bump-rio-version Bump rio version

view details

Michael Snoyman

commit sha 2e73a2857e94c2fbfb128526bea5f5b190a3f5d4

Don't fail on non-existent dirs

view details

Michael Snoyman

commit sha 2c2e274171e0f0985f222141de0c0e017064fda0

Merge remote-tracking branch 'origin/stable' into stable-into-master

view details

push time in a day

push eventcommercialhaskell/stack

Michael Snoyman

commit sha 2e73a2857e94c2fbfb128526bea5f5b190a3f5d4

Don't fail on non-existent dirs

view details

push time in a day

delete branch commercialhaskell/stack

delete branch : bump-rio-version

delete time in a day

push eventcommercialhaskell/stack

Michael Snoyman

commit sha 9f79297227a7327937e670be614bdfb31c3c9d40

Bump rio version to fix builds

view details

Michael Snoyman

commit sha d8144bcb1d8fafdebb9bf025f72115ebbc5f8cf2

Merge pull request #5398 from commercialhaskell/bump-rio-version Bump rio version

view details

push time in a day

PR merged commercialhaskell/stack

Bump rio version

Bump rio version

+10 -6

1 comment

4 changed files

snoyberg

pr closed time in a day

pull request commentcommercialhaskell/stack

Bump rio version

Unrelated build failures, merging

snoyberg

comment created time in a day

created tagyesodweb/wai

tagwai-extra-3.1.0

Haskell Web Application Interface

created time in a day

push eventyesodweb/wai

Simon Hengel

commit sha 58e9cb19df998009cc4831eb07d1208fc71fbab7

Network.Wai.Test: Add support for source locations to assertion primitives

view details

Michael Snoyman

commit sha f5797d155babc2cf118748a783782222645a4ef3

Merge pull request #817 from sol/call-stack Network.Wai.Test: Add support for source locations to assertion primitives

view details

push time in a day

PR merged yesodweb/wai

Network.Wai.Test: Add support for source locations to assertion primitives

…tives

Before submitting your PR, check that you've:

After submitting your PR:

  • [x] Update the Changelog.md file with a link to your PR
  • [ ] Check that CI passes (or if it fails, for reasons unrelated to your change, like CI timeouts)

<!---Thanks so much for contributing! :)

If these checkboxes don't apply to your PR, you can delete them-->

+26 -22

0 comment

5 changed files

sol

pr closed time in a day

PullRequestReviewEvent

PR opened commercialhaskell/stack

Create a Linux static bindist #5288

Waiting to see what pops out of CI

+10 -1

0 comment

1 changed file

pr created time in a day

push eventcommercialhaskell/stack

Michael Snoyman

commit sha f1ec62e5fdcf5924d2f8aaddcb5cb989f2c8c3f7

Merge remote-tracking branch 'origin/stable' into stable-into-master

view details

push time in a day

create barnchcommercialhaskell/stack

branch : 5288-linux-static-bindist

created branch time in a day

issue commentcommercialhaskell/stack

Timeout when accessing `casa.fpcomplete.com`

Also: the server outage this morning is resolved for now, so most occurrences of this issue are hopefully addressed for the moment.

brandon-leapyear

comment created time in a day

issue commentcommercialhaskell/stack

Timeout when accessing `casa.fpcomplete.com`

Would it be possible to test out a build from master? It should already have the fix in place. Hopefully we'll get a new release out soon.

brandon-leapyear

comment created time in a day

issue closedcommercialhaskell/stack

Should fallback if casa is not responding well

Related to #5387 - stack should retry for that issue, but also it should fallback to classic package archives after a couple attempts.

closed time in a day

chrisdone

issue commentcommercialhaskell/stack

Should fallback if casa is not responding well

Turns out this is already fixed on master, we just need to make a release

chrisdone

comment created time in a day

push eventcommercialhaskell/stack

Michael Snoyman

commit sha 9f79297227a7327937e670be614bdfb31c3c9d40

Bump rio version to fix builds

view details

Michael Snoyman

commit sha dbab8b3c4e0b973621979c2f9ad224294c6a8d7b

Merge branch 'bump-rio-version' into stable-into-master

view details

push time in a day

PR opened commercialhaskell/stack

Bump rio version

Bump rio version

+10 -6

0 comment

4 changed files

pr created time in a day

create barnchcommercialhaskell/stack

branch : bump-rio-version

created branch time in a day

PR opened commercialhaskell/stack

Stable into master

Note: Documentation fixes for https://docs.haskellstack.org/en/stable/ should target the "stable" branch, not master.

Please include the following checklist in your PR:

  • [ ] Any changes that could be relevant to users have been recorded in the ChangeLog.md
  • [ ] The documentation has been updated, if necessary.

Please also shortly describe how you tested your change. Bonus points for added tests!

+154 -82

0 comment

21 changed files

pr created time in a day

create barnchcommercialhaskell/stack

branch : stable-into-master

created branch time in a day

push eventcommercialhaskell/stack

Mike Pilgrem

commit sha ead651da4365b31ebfda31bdc027718372f94d7c

Fix #5322 Extend `stack exec --help` docs and consequent changes Adds, to `stack exec --help`, `If the command is absent, the first of any arguments is taken as the command.` Given that change, expands the meta variables to `COMMAND` (from `CMD`) and `ARGUMENT(S)` (from `ARG`). The `(S)` is used to indicate one or more arguments. Changes the example from `stack exec -- ghc-pkg describe base` to `stack exec ghc-pkg -- describe base`, to follow the alternative actually presented by `stack exec --help`. In addition, for consistency throughout: - Changes, throughout, the meta variable of `--package` to `PACKAGE(S)` (from default `ARG`), to avoid confusion over different references to 'arguments'. Also changes `Additional packages` to `Additional package(s)` to indicate one or more packages. - Makes consistent changes to `stack script --help`. - Makes consistent changes to `stack build --help` in respect of the `--exec` option. - Makes consistent changes to `stack hoogle --help`, which referred to `'stack exec' synatax`. Also, rather than cross-refer user to `stack exec`, refers to `the '-- ARGUMENT(S)' syntax` and conforms to the `stack exec --help` approach of giving an example also after `-- ARGUMENT(S)`.

view details

Michael Snoyman

commit sha 82be4425398c1387e998120501247d5f79125f33

Merge pull request #5369 from mpilgrem/fix5322 Fix #5322 Extend `stack exec --help` docs and consequent changes

view details

push time in a day

issue closedcommercialhaskell/stack

stack exec help docs wrong

General summary/comments (optional)

The help docs/tips are not accurate for stack exec. The abstract shows the CMD before the -- but the examples show the CMD after the --:

PS C:\Windows\system32> stack exec --
Missing: CMD
Usage: stack.exe exec CMD [-- ARGS (e.g. stack exec -- ghc-pkg describe base)]
[--[no-]ghc-package-path] [--[no-]stack-exe]
[--package ARG] [--rts-options RTSFLAG] [--cwd DIR]
[--setup-info-yaml URL] [--help]
Execute a command

online docs

Stack version

$ stack --version
Version 2.3.1, Git revision de2a7b694f07de7e6cf17f8c92338c16286b2878 (8103 commits) x86_64 hpack-0.33.0

Method of installation

  • Windows chocolatey installation process

closed time in a day

AMDphreak

PR merged commercialhaskell/stack

Fix #5322 Extend `stack exec --help` docs and consequent changes

Adds, to stack exec --help, If the command is absent, the first of any arguments is taken as the command.

Given that change, expands the meta variables to COMMAND (from CMD) and ARGUMENT(S) (from ARG). The (S) is used to indicate one or more arguments.

Changes the example from stack exec -- ghc-pkg describe base to stack exec ghc-pkg -- describe base, to follow the alternative actually presented by stack exec --help.

So, the output of stack exec --help becomes (on Windows):

Usage: stack.exe exec COMMAND
                      [-- ARGUMENT(S) (e.g. stack exec ghc-pkg -- describe base)]
                      [--[no-]ghc-package-path] [--[no-]stack-exe]
                      [--package PACKAGE(S)] [--rts-options RTSFLAG] [--cwd DIR]
                      [--setup-info-yaml URL] [--snapshot-location-base URL]
                      [--help]
  Execute a command. If the command is absent, the first of any arguments is
  taken as the command.

Available options:
  --[no-]ghc-package-path  Enable/disable setting the GHC_PACKAGE_PATH variable
                           for the subprocess (default: enabled)
  --[no-]stack-exe         Enable/disable setting the STACK_EXE environment
                           variable to the path for the stack executable
                           (default: enabled)
  --package PACKAGE(S)     Additional package(s) that must be installed
  --rts-options RTSFLAG    Explicit RTS options to pass to application
  --cwd DIR                Sets the working directory before executing
  --setup-info-yaml URL    Alternate URL or relative / absolute path for stack
                           dependencies
  --snapshot-location-base URL
                           The base location of LTS/Nightly snapshots
  --help                   Show this help text

Run 'stack --help' for global options that apply to all subcommands.

In addition, for consistency throughout:

  • Changes, throughout, the meta variable of --package to PACKAGE(S) (from default ARG), to avoid confusion over different references to 'arguments'. Also changes Additional packages to Additional package(s) to indicate one or more packages.

  • Makes consistent changes to stack script --help.

  • Makes consistent changes to stack build --help in respect of the --exec option.

  • Makes consistent changes to stack hoogle --help, which referred to 'stack exec' synatax. Also, rather than cross-refer user to stack exec, refers to the '-- ARGUMENT(S)' syntax and conforms to the stack exec --help approach of giving an example also after -- ARGUMENT(S).

So, for example, the output of stack hoogle --help becomes (on Windows):

Usage: stack.exe hoogle [-- ARGUMENT(S) (e.g. stack hoogle -- server --local)]
                        [--[no-]setup] [--rebuild] [--server]
                        [--setup-info-yaml URL] [--snapshot-location-base URL]
                        [--help]
  Run hoogle, the Haskell API search engine. Use the '-- ARGUMENT(S)' syntax to
  pass Hoogle arguments, e.g. stack hoogle -- --count=20, or stack hoogle --
  server --local.

Available options:
  --[no-]setup             Enable/disable If needed: install hoogle, build
                           haddocks and generate a hoogle database (default:
                           enabled)
  --rebuild                Rebuild the hoogle database
  --server                 Start local Hoogle server
  --setup-info-yaml URL    Alternate URL or relative / absolute path for stack
                           dependencies
  --snapshot-location-base URL
                           The base location of LTS/Nightly snapshots
  --help                   Show this help text

Run 'stack --help' for global options that apply to all subcommands.
  • [x] Any changes that could be relevant to users have been recorded in the ChangeLog.md
  • [x] The documentation has been updated, if necessary.

Tested by building and using stack on Windows 10 version 2004.

+27 -17

0 comment

5 changed files

mpilgrem

pr closed time in a day

PullRequestReviewEvent

Pull request review commentcommercialhaskell/stack

Documentation fix: change the exec subcommand for pacman on Windows

 pacman, so have a look to see what works for you. Both tools can be installed with the commands:  ```-stack exec -- pacman -S mingw-w64-x86_64-make-stack exec -- pacman -S mingw-w64-x86_64-cmake+stack exec -- pacman -- -S mingw-w64-x86_64-make

Not only do I not need to run the command this way on my Windows machine, but the new command fails (for both cmd.exe and PowerShell):

>stack exec -- pacman -- -S mingw-w64-x86_64-make
error: no operation specified (use -h for help)
tonyxwz

comment created time in a day

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentcommercialhaskell/stack

Also resolve auto-generated component files.

Also: the server issues should hopefully be fixed. It's a temporary patch right now, but a better fix is coming. Also, we're hoping to get a new Stack release out the door. We already have the commits on master to make a server outage non-fatal, they just haven't been released yet.

uncle-betty

comment created time in a day

push eventcommercialhaskell/stack

Thomas Lopatic

commit sha f8b7bfcf1f8553aeccd5a52720f60a65b8d66361

Also resolve auto-generated component files.

view details

Michael Snoyman

commit sha e4a25e91eea47251937585ce2db470155b624c92

Merge pull request #5393 from uncle-betty/hie-bios Also resolve auto-generated component files.

view details

push time in a day

PR merged commercialhaskell/stack

Also resolve auto-generated component files.

This is a proposal to address #5392.

It basically passes the Cabal version down to the place where it's needed to generate the directory paths that hold auto-generated files, resolveComponentFiles. These directories are then used in addition to the hs-source-dirs directories to find .hs files for a component's modules.

I'm only superficially familiar with the stack codebase, but it seems that at least this doesn't break any of the tests.

+12 -2

3 comments

1 changed file

uncle-betty

pr closed time in a day

PullRequestReviewEvent

push eventcommercialhaskell/stack

Piper McCorkle

commit sha 87369c4ae4f6e94fbd8f18738f82f32779008ea5

Add Pop!_OS compatibility

view details

push time in a day

push eventcommercialhaskell/stack

Piper McCorkle

commit sha 8832b19e3e66ffc419d638730ba481e45f62cb17

Add Pop!_OS compatibility

view details

Michael Snoyman

commit sha 3c6a5d705f944f3bd3661131b1fa35eccfd2315a

Merge pull request #5374 from piperswe/patch-1 Add Pop!_OS compatibility

view details

push time in a day

PR merged commercialhaskell/stack

Add Pop!_OS compatibility

Note: Documentation fixes for https://docs.haskellstack.org/en/stable/ should target the "stable" branch, not master.

Please include the following checklist in your PR:

  • [ ] Any changes that could be relevant to users have been recorded in the ChangeLog.md
  • [ ] The documentation has been updated, if necessary.

Please also shortly describe how you tested your change. Bonus points for added tests!

Pop!_OS uses the same repos and release schedule as Ubuntu, so is largely compatible with Ubuntu packages. Tested locally with:

$ curl -sSL https://raw.githubusercontent.com/piperswe/stack/8832b19e3e66ffc419d638730ba481e45f62cb17/etc/scripts/get-stack.sh | sh
+1 -1

1 comment

1 changed file

piperswe

pr closed time in a day

PullRequestReviewEvent

push eventcommercialhaskell/stack

Ariel D. Moya Sequeira

commit sha 7bacbe5f2f948090f94fe6293e5aee97c6b82f03

Workaround for Data.Text.toTitle to apply PascalCase to package names with dashes.

view details

Michael Snoyman

commit sha c66dade79688badc7395e1641f00e11064c07b26

Merge pull request #5386 from ardamose123/master Fixes #5376

view details

push time in a day

issue closedcommercialhaskell/stack

name-as-module from stack new should be PascalCase

At the moment, command stack new hello-world $TEMPLATE_NAME generates project structure where name-as-module value is Helloworld instead of HelloWorld. Example

stack new hello-world \
  github:tkachuk-labs/nix-concur-replica \
  -p organization:tkachuk-labs \
  -p env-prefix:HELLO_WORLD \
  --resolver lts-14.27

closed time in a day

tim2CF

PR merged commercialhaskell/stack

Fixes #5376

Checklist:

  • [x] Any changes that could be relevant to users have been recorded in the ChangeLog.md
  • [x] The documentation has been updated, if necessary.

Manually tested by running the command described in the issue ticket after making sure I was running the correct stack executable:

stack new hello-world \ 
  github:tkachuk-labs/nix-concur-replica \
  -p organization:tkachuk-labs \
  -p env-prefix:HELLO_WORLD \
  --resolver lts-14.27

Checked generated folders and imports in *.hs files and they're now correctly PascalCase'd.

+3 -2

0 comment

2 changed files

ardamose123

pr closed time in a day

PullRequestReviewEvent

pull request commentcommercialhaskell/stack

doc/installation: Fedora now has a stack package

I cherry-picked onto stable.

juhp

comment created time in a day

PR merged commercialhaskell/stack

doc/installation: Fedora now has a stack package

update Fedora installation instructions to mention the Fedora package rather than the obsolete copr.

+2 -6

1 comment

1 changed file

juhp

pr closed time in a day

push eventcommercialhaskell/stack

Jens Petersen

commit sha 137c2bf70bd8bacacac025f24f0396adba93e259

doc/installation: Fedora now includes stack update Fedora installation to mention Fedora package rather than the obsolete copr.

view details

Michael Snoyman

commit sha 9aee5c9faa4cb13f26b9594e72bfd811b75678a9

Merge branch 'patch-4' of https://github.com/juhp/stack

view details

push time in a day

push eventcommercialhaskell/stack

Jens Petersen

commit sha c52911ca953197bf60f080a68a10bed2ce4c28c1

doc/installation: Fedora now includes stack update Fedora installation to mention Fedora package rather than the obsolete copr.

view details

push time in a day

PR merged commercialhaskell/stack

Fix #5321 Spell out that stack installs on Un*x and Windows

Adds an introductory sentence under the 'How to install' heading to make clear that the rest of the section applies both to Unix-like operating systems and to Windows, not just to the former (which is how the poster of #5321 says they misunderstood the current content).

+4 -2

0 comment

1 changed file

mpilgrem

pr closed time in a day

push eventcommercialhaskell/stack

Mike Pilgrem

commit sha ddbb13adfb297e3f92d734957409e1fac6cf7115

Fix #5321 Spell out that stack installs on Un*x and Windows Adds an introductory sentence under the 'How to install' heading.

view details

Michael Snoyman

commit sha a8fbb7eee78fdca2d7db66a86791d0b642f332d7

Merge branch 'fix-5321' of https://github.com/mpilgrem/stack into stable

view details

Michael Snoyman

commit sha 046f90787acff796148de6202440f4f5f328858f

Merge branch 'stable' of github.com:commercialhaskell/stack into stable

view details

push time in a day

PullRequestReviewEvent

push eventcommercialhaskell/stack

Mike Pilgrem

commit sha 033ad0c5af5071e81772ace9fa73263ecbb61b05

Fix 'cabal file warnings', when building stack When building `stack` on Windows 10 version 2004 (the version currently in the respository), I get the following warnings: ``` Cabal file warning inC:\Users\mikep\Documents\Code\GitHub\stack\stack.cabal@694:5: The field "build-tools" is deprecated in the Cabal specification version 2.0. Please use 'build-tool-depends' field Cabal file warning inC:\Users\mikep\Documents\Code\GitHub\stack\stack.cabal@563:5: The field "build-tools" is deprecated in the Cabal specification version 2.0. Please use 'build-tool-depends' field Cabal file warning inC:\Users\mikep\Documents\Code\GitHub\stack\stack.cabal@441:5: The field "build-tools" is deprecated in the Cabal specification version 2.0. Please use 'build-tool-depends' field Cabal file warning inC:\Users\mikep\Documents\Code\GitHub\stack\stack.cabal@316:5: The field "build-tools" is deprecated in the Cabal specification version 2.0. Please use 'build-tool-depends' field ``` I understand that `hpack` does not generate `build-tool-depends` fields for `hsc2hs`. This proposed pull request fixes the warnings, by using `hpack`'s `verbatim` feature.

view details

Michael Snoyman

commit sha 4ae3ffd8d20d3a5aa7130b3ecb3a4f31eeaf8f41

Merge pull request #5370 from mpilgrem/package-yaml Fix 'cabal file warnings', when building stack

view details

push time in a day

PR merged commercialhaskell/stack

Fix 'cabal file warnings', when building stack

When building stack with stack build on Windows 10 version 2004 (the version currently in the respository), I get the following warnings:

Cabal file warning inC:\Users\mikep\Documents\Code\GitHub\stack\stack.cabal@694:5: The field "build-tools" is deprecated in the Cabal specification version 2.0. Please use 'build-tool-depends' field
Cabal file warning inC:\Users\mikep\Documents\Code\GitHub\stack\stack.cabal@563:5: The field "build-tools" is deprecated in the Cabal specification version 2.0. Please use 'build-tool-depends' field
Cabal file warning inC:\Users\mikep\Documents\Code\GitHub\stack\stack.cabal@441:5: The field "build-tools" is deprecated in the Cabal specification version 2.0. Please use 'build-tool-depends' field
Cabal file warning inC:\Users\mikep\Documents\Code\GitHub\stack\stack.cabal@316:5: The field "build-tools" is deprecated in the Cabal specification version 2.0. Please use 'build-tool-depends' field

In case it is relevant (after applying the fix):

stack exec -- cabal --version
cabal-install version 3.2.0.0
compiled using version 3.2.0.0 of the Cabal library

I understand that hpack does not generate build-tool-depends fields for hsc2hs. This proposed pull request fixes the warnings, by using hpack's verbatim feature.

  • [x] Any changes that could be relevant to users have been recorded in the ChangeLog.md
  • [x] The documentation has been updated, if necessary.

Tested by building, and using, stack on Windows 10 version 2004.

+12 -11

0 comment

2 changed files

mpilgrem

pr closed time in a day

PR closed commercialhaskell/stack

breaking change with optparse-applicative 0.16.0.0

cannot compile with cabal since there is a breaking change with optparse-applicative 0.16.0.0 release

+2 -2

3 comments

2 changed files

BebeSparkelSparkel

pr closed time in a day

PullRequestReviewEvent

push eventcommercialhaskell/stack

Mike Pilgrem

commit sha 4a9955930b2ca06b6c3d9df8f0ae67dc1e4c8681

Fix #5364 Add new LogFunc to environment The 'SQL' debug log messages take their logging function from the environment, not from the `configRunner` of the `Config`. This proposed change uses a new helper function, `withLocalLogFunc`, to modify that part of the environment.

view details

Michael Snoyman

commit sha 3245226c367357ada04e87905900c99ccc90e23e

Merge pull request #5365 from mpilgrem/fix5364 Fix #5364 Add the new LogFunc to the environment too

view details

push time in a day

issue closedcommercialhaskell/stack

Let 'SQL' debug log message colours be customisable via config.yaml

Accepted pull request https://github.com/commercialhaskell/stack/pull/5360 was a partial fix for https://github.com/commercialhaskell/stack/issues/5356. This issue records the specific residual issue, which I am working on, in stack --version Version 2.4.0, Git revision 1b1bed5b84b3aed76cf27b02cadd46d09efc611f (8207 commits) PRE-RELEASE x86_64 hpack-0.33.0

In short, the 'SQL' debug log messages in verbose output take colours which are customisable from the command line (GlobalOpts) but not from config.yaml.

So far, I have worked out that:

(1) the logging takes place in Database.Persist.Sql.rawQueryRes of the persistent package, making use of the Control.Monad.Logger.LoggingT type of the monad-logger package; and

(2) RIO.Orphans of package rio-orphans exports an instance of MonadLogger:

instance HasLogFunc env => MonadLogger (RIO env) where
  monadLoggerLog loc source level msg =
      let ?callStack = GS.fromCallSiteList [("", GS.SrcLoc
            { GS.srcLocPackage = LegacyLogger.loc_package loc
            , GS.srcLocModule = LegacyLogger.loc_module loc
            , GS.srcLocFile = LegacyLogger.loc_filename loc
            , GS.srcLocStartLine = fst $ LegacyLogger.loc_start loc
            , GS.srcLocStartCol = snd $ LegacyLogger.loc_start loc
            , GS.srcLocEndLine = fst $ LegacyLogger.loc_end loc
            , GS.srcLocEndCol = snd $ LegacyLogger.loc_end loc
            })]
       in logGeneric source rioLogLevel (display $ LegacyLogger.toLogStr msg)
    where
      rioLogLevel =
        case level of
          LegacyLogger.LevelDebug -> LevelDebug
          LegacyLogger.LevelInfo  -> LevelInfo
          LegacyLogger.LevelWarn  -> LevelWarn
          LegacyLogger.LevelError  -> LevelError
          LegacyLogger.LevelOther name -> LevelOther name

So, it must be a problem with the 'wrong env' somewhere.

closed time in a day

mpilgrem

PR merged commercialhaskell/stack

Fix #5364 Add the new LogFunc to the environment too

The 'SQL' debug log messages take their logging function from the environment, not from the configRunner of the Config. This proposed change uses a new helper function, withLocalLogFunc, to modify that part of the environment.

  • [x] Any changes that could be relevant to users have been recorded in the ChangeLog.md
  • [x] The documentation has been updated, if necessary.

Tested by building, installing and using stack with the change on Windows 10 version 2004.

+5 -1

0 comment

1 changed file

mpilgrem

pr closed time in a day

PullRequestReviewEvent

push eventcommercialhaskell/stack

Ondřej Slámečka

commit sha 7b14603baeee43705c9c19d565704f1912541a61

Add zlib-devel to the list of prerequisites on CentOS It is needed with Amazon Linux.

view details

Michael Snoyman

commit sha 25203a3efc56633963693556155b3c34f840d7aa

Merge pull request #5366 from OndrejSlamecka/patch-1 Add zlib-devel to the list of prerequisites on CentOS

view details

push time in a day

PR merged commercialhaskell/stack

Add zlib-devel to the list of prerequisites on CentOS

I had to install it today on an older version of Amazon Linux.

Note: Documentation fixes for https://docs.haskellstack.org/en/stable/ should target the "stable" branch, not master.

Please include the following checklist in your PR:

  • [x] Any changes that could be relevant to users have been recorded in the ChangeLog.md
  • [x] The documentation has been updated, if necessary.

Please also shortly describe how you tested your change. Bonus points for added tests!

+1 -1

0 comment

1 changed file

OndrejSlamecka

pr closed time in a day

PullRequestReviewEvent

Pull request review commentyesodweb/wai

Network.Wai.Test: Add support for source locations to assertion primitives

 Name:                wai-extra-Version:             3.0.32+Version:             3.1.0

That's not what I meant. I still want @kazu-yamamoto's sign-off before introducing those lower bounds on the rest of the packages here

sol

comment created time in a day

PullRequestReviewEvent

Pull request review commentyesodweb/wai

Network.Wai.Test: Add support for source locations to assertion primitives

 Name:                wai-extra-Version:             3.0.32+Version:             3.1.0

Please include a lower bound on base for 4.10 here to prevent untested GHC versions from being used.

sol

comment created time in a day

PullRequestReviewEvent

PR closed yesodweb/wai

Fix GHC 7.10 build failure in wai-extra

wai-extra-3.0.31 fails to build with GHC 7.10.3, as demonstrated in this failing Travis build:

<details>

[ 4 of 32] Compiling Network.Wai.Test ( Network/Wai/Test.hs, interpreted )

Network/Wai/Test.hs:210:15:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertBool’:
      assertBool :: HasCallStack => String -> Bool -> Session ()

Network/Wai/Test.hs:213:17:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertString’:
      assertString :: HasCallStack => String -> Session ()

Network/Wai/Test.hs:216:18:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertFailure’:
      assertFailure :: HasCallStack => String -> Session ()

Network/Wai/Test.hs:223:22:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertContentType’:
      assertContentType :: HasCallStack =>
                           ByteString -> SResponse -> Session ()

Network/Wai/Test.hs:240:17:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertStatus’:
      assertStatus :: HasCallStack => Int -> SResponse -> Session ()

Network/Wai/Test.hs:250:15:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertBody’:
      assertBody :: HasCallStack =>
                    L8.ByteString -> SResponse -> Session ()

Network/Wai/Test.hs:258:23:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertBodyContains’:
      assertBodyContains :: HasCallStack =>
                            L8.ByteString -> SResponse -> Session ()

Network/Wai/Test.hs:268:17:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertHeader’:
      assertHeader :: HasCallStack =>
                      CI ByteString -> ByteString -> SResponse -> Session ()

Network/Wai/Test.hs:287:19:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertNoHeader’:
      assertNoHeader :: HasCallStack =>
                        CI ByteString -> SResponse -> Session ()

Network/Wai/Test.hs:301:29:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertClientCookieExists’:
      assertClientCookieExists :: HasCallStack =>
                                  String -> ByteString -> Session ()

Network/Wai/Test.hs:309:31:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertNoClientCookieExists’:
      assertNoClientCookieExists :: HasCallStack =>
                                    String -> ByteString -> Session ()

Network/Wai/Test.hs:317:28:
    Non type-variable argument
      in the constraint: ?callStack::GHC.Stack.CallStack
    (Use FlexibleContexts to permit this)
    In the type signature for ‘assertClientCookieValue’:
      assertClientCookieValue :: HasCallStack =>
                                 String -> ByteString -> ByteString -> Session ()

</details>

I opted to fix the issue by always enabling FlexibleContexts, even though newer versions of GHC technically do not require it.


Before submitting your PR, check that you've:

  • [X] Bumped the version number

After submitting your PR:

  • [x] Update the Changelog.md file with a link to your PR
  • [x] Check that CI passes (or if it fails, for reasons unrelated to your change, like CI timeouts)

<!---Thanks so much for contributing! :)

If these checkboxes don't apply to your PR, you can delete them-->

+6 -1

4 comments

3 changed files

RyanGlScott

pr closed time in a day

pull request commentyesodweb/wai

Fix GHC 7.10 build failure in wai-extra

I rereleased the old version under a new version number, and we'll be putting out a new major release with the breaking changes, dropping GHC 7.10 support in the process. This should be resolved, so closing. If there are still issues, please let me know

RyanGlScott

comment created time in a day

push eventyesodweb/wai

Michael Snoyman

commit sha 3bd1613fde9245bff922148fb8c0fa70e8bd0e5d

Revert "Undo WaiTestFailure change in previous release" This reverts commit dcd4e9fb5678f5f6107652bf7fe849f235b69f51.

view details

Michael Snoyman

commit sha a708b1e59e9f4925f655c298c794791faaebdc4f

Revert "Network.Wai.Test: Add support for source locations to assertion primitives" This reverts commit 357ef40c7a7f0ef31da92550f1e8f3ed513e5540.

view details

Michael Snoyman

commit sha 9dd5e80a66ce8a631f2743b33db28170c293d9fe

Version bump/old ChangeLog

view details

push time in a day

issue commentyesodweb/wai

wai-app-static generates non-standard (unquoted) ETag headers...

I'd prefer not adding a new dependency in this library

vdukhovni

comment created time in a day

PR opened yesodweb/wai

Reviewers
Drop older GHCs

@kazu-yamamoto we recently had a PR that broke older GHCs. This is a safety mechanism to prevent that from happening.

+28 -27

0 comment

14 changed files

pr created time in a day

create barnchyesodweb/wai

branch : drop-older-ghc

created branch time in a day

created tagyesodweb/wai

tagwai-extra-3.0.32

Haskell Web Application Interface

created time in a day

issue commentyesodweb/wai

wai-app-static generates non-standard (unquoted) ETag headers...

I'm OK with the backwards-incompatible approach. For the more efficient etag: yes, it should be a separate PR, and ideally have a flag to control the behavior. I'm OK if the new behavior is the default though.

vdukhovni

comment created time in a day

push eventyesodweb/yesod

Maximilian Tagher

commit sha 30f189a48c4e2ebf36e4970d63c53a9d21bff3c6

Remove GHandler from handlerToIO docs

view details

Maximilian Tagher

commit sha f0db028ec0f11d419272bee0f6cd9d21575a3408

..

view details

Maximilian Tagher

commit sha 6e5fa23dc227a937324568e61d6d0fd6694c6aae

..

view details

Michael Snoyman

commit sha 84ca72e1d02657f884a631a2c55ca9176312a733

Merge pull request #1695 from yesodweb/removeGHandlerFromDocs Remove GHandler from handlerToIO docs

view details

push time in a day

PR merged yesodweb/yesod

Remove GHandler from handlerToIO docs

I noticed these docs reference the (very) outdated GHandler. This is the last trace of GHandler, except for Yesod.Helpers.Crud, which appears to have been removed from yesod-form for over 10 years (https://github.com/yesodweb/yesod/blame/eb5f7a95cd89295b26c85eab63f06083415156a5/yesod-form/yesod-form.cabal#L69) (possibly it can just be deleted?).

Before submitting your PR, check that you've:

After submitting your PR:

  • [x] Update the Changelog.md file with a link to your PR
  • [ ] Check that CI passes (or if it fails, for reasons unrelated to your change, like CI timeouts)

<!---Thanks so much for contributing! :)

If these checkboxes don't apply to your PR, you can delete them-->

+19 -15

2 comments

3 changed files

MaxGabriel

pr closed time in a day

PullRequestReviewEvent

pull request commentyesodweb/wai

Network.Wai.Test: Re-enable support for source locations + turn WaiTestFailure into a pattern synonym

After seeing the hoops I'm asking you to jump through here, I'm thinking my original stance on the major version bump. How's this for a plan:

  • Re-release the last working version (for older GHCs) to fix Ryan's builds
  • Introduce a breaking change that:
    • Drops support for older GHCs (it's entirely accidental that this hasn't happened yet)
    • Drops the WaiTestFailure type

If you're OK with this plan, I'll move ahead with it. Sorry for the extra legwork.

sol

comment created time in a day

issue commentsnoyberg/http-client

setRequestBodyURLEncoded and urlEncodeBody adds newline word8 that is not a valid value

Do you have a repro of this behavior causing things to break?

BebeSparkelSparkel

comment created time in a day

push eventhaskell/process

Vladislav Zavialov

commit sha a7f21f2f5b5d43450f852dfbc04a0b195fd7d834

Bump base upper bound to 4.16

view details

Michael Snoyman

commit sha aadf0f9a804312eb4a5a3d213549d123f85e86d1

Merge pull request #195 from int-index/wip/bump-base-4.16 Bump base upper bound to 4.16

view details

push time in a day

PR merged haskell/process

Bump base upper bound to 4.16

Context: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4082#note_300462

+1 -1

0 comment

1 changed file

int-index

pr closed time in a day

issue commentyesodweb/wai

wai-app-static generates non-standard (unquoted) ETag headers...

Are you interested in opening up a PR with the change you're hoping to see?

On Sun, Sep 20, 2020, 11:23 AM Viktor Dukhovni notifications@github.com wrote:

It also compares ETag values in a way that does not conform to the the specification.

The code in question https://github.com/yesodweb/wai/blob/master/wai-app-static/Network/Wai/Application/Static.hs#L155-L174 just takes the base64-encoded bytestring as the "ETag" header value, but RFC7232, Section 2.3 https://tools.ietf.org/html/rfc7232#section-2.3 requires quoted ETag values.

  • Quotes should be added around the default "strong" ETags after base64 encoding.
  • The need to add quotes should be documented as a requirement on custom ETagLookup methods provided by application developers.
  • When quoting custom ETag values, application developers need to prefix W/ if they choose to generate weak ETag values.

(If compatibility were not a concern, the ETagLookup type could be changed to have a sum-type return value with "weak" and "strong" variants, and then the quoting and W/ prefixing done in the library based on the etag variant).

Then, when comparing ETag values in the if-none-match case, the weak comparison criteria from RFC7242 Section 2.3.2 https://tools.ietf.org/html/rfc7232#section-2.3.2 should be used to ignore any W/ prefix of an ETag of the form: W/"<visible-ascii-string-sans-quotes>".

Finally, I have (for POSIX system) a potential candidate for a much more efficient ETag that hashes just file metadata (device, inode, size, ctime seconds, ctime nanoseconds), that should be good enough for the vast majority of users. It is only somewhat weak on systems where the ctime resolution is only 1 second (nanoseconds always zero) and when files are rapidly cycled, perhaps multiple times within the same second, possibly replacing a file's content with content of the same size. Barring such exotic conditions, the below is much faster than a content hash.

It could be used as a weak Etag, by including in the hash the current time rounded to a multiple of the cache maxAge (if specified), which would ensure that the ETag changes every ~maxAge seconds.

module Etag (getEtag) where import qualified Crypto.Hash as Himport qualified Data.ByteArray as BAimport qualified Data.ByteArray.Encoding as BAimport qualified Foreign.Marshal.Alloc as Fimport qualified Foreign.Ptr as Fimport qualified Foreign.Storable as Fimport qualified System.IO.Error as Eimport qualified System.Posix.Files as Pimport Control.Monad (guard)import Data.Bifunctor (second)import Data.ByteString (ByteString)import Data.Word (Word64) (|.>) :: (a -> b) -> (b -> c) -> (a -> c)(|.>) = flip (.)infixl 1 |.> getEtag :: FilePath -> IO (Maybe ByteString) getEtag path = E.catchIOError do stat2Etag path do const $ pure Nothing stat2Etag :: FilePath -> IO (Maybe ByteString) stat2Etag path = do stat <- P.getFileStatus path let (sec, nsec) = timeParts $ P.statusChangeTimeHiRes stat meta = [ fromIntegral $ P.deviceID stat, fromIntegral $ P.fileID stat , fromIntegral $ P.fileSize stat, sec, nsec ] (guard (P.isRegularFile stat) >>) . pure <$> hashWords meta where hashWords :: [Word64] -> IO ByteString hashWords = hashMany (H.hashInit @H.SHA256) |.> fmap H.hashFinalize |.> fmap (BA.convertToBase BA.Base64URLUnpadded)

timeParts = second (round . (* 1000000000)) . properFraction

-- | Hash a list of storable items in some fixed order.
hashMany ctx ss = go ss []
  where
    go (x:xs) acc = do
        F.alloca \ptr -> do
            F.poke ptr x
            let v = BA.MemView (F.castPtr ptr) (F.sizeOf x)
            go xs (v:acc)
    go [] acc = pure $! H.hashUpdates ctx acc

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/yesodweb/wai/issues/815, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMCB7TQ5YLKWGICHF2PKLSGW3W7ANCNFSM4RTQHIKQ .

vdukhovni

comment created time in 2 days

issue commentyesodweb/yesod-scaffold

Currently yesod scaffolding is broken on windows.

This looks like a GHC bug to me

On Sun, Sep 20, 2020, 11:50 AM Han Joosten notifications@github.com wrote:

Related to haskell/zlib#35 https://github.com/haskell/zlib/issues/35

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/yesodweb/yesod-scaffold/issues/204#issuecomment-695762122, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMCB6JT2HXHRUD5ELJQRTSGW63VANCNFSM4RTQOQIA .

hanjoosten

comment created time in 2 days

pull request commentyesodweb/wai

Fix GHC 7.10 build failure in wai-extra

If you'd like to do it yourself, I'll give you admin access on Hackage. But I won't commit to doing any of this Hackage Revision business myself.

On Fri, Sep 18, 2020 at 3:03 PM Ryan Scott notifications@github.com wrote:

Ah, OK. If this is on hold due to other concerns, would it be possible to revise the lower version bounds on base for the wai-3.0.31 release on Hackage to base >= 4.9? I only ask since this is preventing my Travis builds from turning green :(

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/yesodweb/wai/pull/813#issuecomment-694828224, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMCB4HS3OKJEL67EIIVBTSGNEBBANCNFSM4RQ47VIA .

RyanGlScott

comment created time in 4 days

more