Skip to content

Commit

Permalink
Merge pull request #6263 from commercialhaskell/ci/merge-stable-to-ma…
Browse files Browse the repository at this point in the history
…ster

Release process (revised) step E
  • Loading branch information
mpilgrem authored Sep 30, 2023
2 parents a427e7d + 3a39796 commit d23f7c0
Show file tree
Hide file tree
Showing 109 changed files with 603 additions and 441 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ stan.html
# HSpec-related
.hspec-failures

# macOS-related
.DS_Store

# Unexplained
*~
*.imports
Expand Down
78 changes: 43 additions & 35 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@ Other enhancements:

Bug fixes:

## v2.13.1
## v2.13.1 - 2023-09-29

Release notes:

* Further to the release notes for Stack 2.3.1, the `-static` suffix has been
removed from the statically linked Linux/x86_64 binaries.
* The binaries for Linux/Aarch64 are now statically linked.
* Binaries are now provided for macOS/AArch64.

**Changes since v2.11.1:**

Expand All @@ -45,10 +46,15 @@ Behavior changes:
* When unregistering many packages in a single step, Stack can now do that
efficiently. Stack no longer uses GHC-supplied `ghc-pkg unregister` (which is,
currently, slower).
* `stack hpc report`, `stack list`, `stack templates` and `stack uninstall`
output their information to the standard output stream rather than to the
standard error stream. Logging is still to the standard error stream.
* `stack upgrade` no longer assumes that binary upgrade is not supported on a
AArch64 machine architecture.

Other enhancements:

* Bump to Hpack 0.35.5.
* Bump to Hpack 0.36.0.
* Depend on `pantry-0.9.2`, for support for long filenames and directory names
in archives created by `git archive`.
* Avoid the duplicate resolving of usage files when parsing `*.hi` files into a
Expand Down Expand Up @@ -81,6 +87,10 @@ Bug fixes:
`-hide-all-packages`, stopping GHC from looking for a package environment in
default locations.
* Restore Stack script files without extensions (broken with Stack 2.11.1).
* Restore message suffix `due to warnings` with `dump-logs: warning` (broken
with Stack 2.11.1).
* On Windows, the `local-programs-path` directory can now be on a different
drive to the system temporary directory and MSYS2 will still be installed.

## v2.11.1 - 2023-05-18

Expand Down Expand Up @@ -180,7 +190,7 @@ Behavior changes:
[Haskell Error Index](https://errors.haskell.org/) initiative, all Stack
error messages generated by Stack itself begin with an unique code in the
form `[S-nnnn]`, where `nnnn` is a four-digit number.
* Test suite executables that seek input on the standard input channel (`stdin`)
* Test suite executables that seek input on the standard input stream (`stdin`)
will not throw an exception. Previously, they would thow an exception,
consistent with Cabal's 'exitcode-stdio-1.0' test suite interface
specification. Pass the flag `--no-tests-allow-stdin` to `stack build` to
Expand Down Expand Up @@ -396,8 +406,8 @@ Other enhancements:

Bug fixes:

* `stack new` now supports branches other than `master` as default for
GitHub repositories. See
* `stack new` now supports branches other than `master` as default for GitHub
repositories. See
[#5422](https://github.com/commercialhaskell/stack/issues/5422)

* Ignore all errors from `hi-file-parser`. See
Expand Down Expand Up @@ -433,8 +443,8 @@ Major changes:

Behavior changes:

* File watching now takes into account specified targets, old behavior could
be restored using the new flag `--watch-all`
* File watching now takes into account specified targets, old behavior could be
restored using the new flag `--watch-all`
[#5310](https://github.com/commercialhaskell/stack/issues/5310)

Other enhancements:
Expand Down Expand Up @@ -471,8 +481,8 @@ Other enhancements:
Bug fixes:

* When using the `STACK_YAML` env var with Docker, make the path absolute.
* Fix the problem of `stack repl foo:test:bar` failing without a project
build before that. See
* Fix the problem of `stack repl foo:test:bar` failing without a project build
before that. See
[#5213](https://github.com/commercialhaskell/stack/issues/5213)
* Fix `stack sdist` introducing unnecessary sublibrary syntax when using
pvp-bounds. See
Expand Down Expand Up @@ -503,8 +513,8 @@ Release notes:
former, nothing needs to change). For this release, both are supported, but
the next release will no longer have the `-static` variant.

* We are also deprecating the download links at https://stackage.org/stack.
See this page for the current installation instructions:
* We are also deprecating the download links at https://stackage.org/stack. See
this page for the current installation instructions:
https://docs.haskellstack.org/en/stable/install_and_upgrade/.

* These are the canonical locations to download the latest stable binaries from,
Expand Down Expand Up @@ -560,11 +570,11 @@ Behavior changes:

Other enhancements:

* Add `build-output-timestamps` flag in yaml. Setting it to true
prefixes each build log output line with a timestamp.
* Add `build-output-timestamps` flag in yaml. Setting it to true prefixes each
build log output line with a timestamp.

* Show warning about `local-programs-path` with spaces on windows
when running scripts. See
* Show warning about `local-programs-path` with spaces on windows when running
scripts. See
[#5013](https://github.com/commercialhaskell/stack/pull/5013)

* Add `ls dependencies json` which will print dependencies as JSON.
Expand Down Expand Up @@ -626,22 +636,21 @@ Hackage-only release:

Behavior changes:

* Disable WAL mode for SQLite3 databases, to improve compatibility with
some platforms and filesystems. See
* Disable WAL mode for SQLite3 databases, to improve compatibility with some
platforms and filesystems. See
[#4876](https://github.com/commercialhaskell/stack/issues/4876).

* By default, do not perform expiry checks in Hackage Security. See
[#4928](https://github.com/commercialhaskell/stack/issues/4928).

Other enhancements:

* Do not rerun expected test failures. This is mostly a change that
will only affect the Stackage Curator use case, but there is now an
additional message letting the user know when a previously-failed
test case is being rerun.
* Do not rerun expected test failures. This is mostly a change that will only
affect the Stackage Curator use case, but there is now an additional message
letting the user know when a previously-failed test case is being rerun.

* Move configure information for local packages back to .stack-work to
improve caching. See
* Move configure information for local packages back to .stack-work to improve
caching. See
[#4893](https://github.com/commercialhaskell/stack/issues/4893).

Bug fixes:
Expand All @@ -660,12 +669,12 @@ Bug fixes:
avoiding a SIGTERM screwing up GHC installation. See
[#4888](https://github.com/commercialhaskell/stack/issues/4888).

* Use package complete locations from lock files when resolving dependencies
in `extra-deps`. See
* Use package complete locations from lock files when resolving dependencies in
`extra-deps`. See
[#4887](https://github.com/commercialhaskell/stack/issues/4887).

* Set the `HASKELL_DIST_DIR` environment to a proper package dist
directory so `doctest` is able to load modules autogenerated by Cabal.
* Set the `HASKELL_DIST_DIR` environment to a proper package dist directory so
`doctest` is able to load modules autogenerated by Cabal.

* Expose package library when running tests.

Expand All @@ -687,11 +696,11 @@ Hackage-only release that removes `stack.yaml` from the sdist. This is because
basis on individual packages (see
[#4860](https://github.com/commercialhaskell/stack/issues/4860))

If building a `stack` executable for distribution, please download the
source code from https://github.com/commercialhaskell/stack/releases/tag/v2.1.1
and build it using Stack itself in order to ensure identical behaviour
to official binaries. This package on Hackage is provided for convenience
and bootstrapping purposes.
If building a `stack` executable for distribution, please download the source
code from https://github.com/commercialhaskell/stack/releases/tag/v2.1.1 and
build it using Stack itself in order to ensure identical behaviour to official
binaries. This package on Hackage is provided for convenience and bootstrapping
purposes.


## v2.1.1 - 2019-06-13
Expand All @@ -709,9 +718,8 @@ features, as listed below.

Major changes:

* Switch over to pantry for managing packages. This is a major change
to Stack's internals, and affects user-visible behavior in a few
places. Some highlights:
* Switch over to pantry for managing packages. This is a major change to Stack's
internals, and affects user-visible behavior in a few places. Some highlights:
* Drop support for multiple package indices and legacy
`00-index.tar` style indices. See
[#4137](https://github.com/commercialhaskell/stack/issues/4137).
Expand Down
6 changes: 3 additions & 3 deletions cabal.config
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ constraints:
, hi-file-parser ==0.1.4.0
, hinotify ==0.4.1
, hourglass ==0.2.12
, hpack ==0.35.5
, hpack ==0.36.0
, hpc ==0.6.1.0
, http-api-data ==0.5
, http-client ==0.7.14
Expand Down Expand Up @@ -152,7 +152,7 @@ constraints:
, retry ==0.9.3.1
, rio ==0.1.22.0
, rio-orphans ==0.1.2.0
, rio-prettyprint ==0.1.5.0
, rio-prettyprint ==0.1.7.0
, rts ==1.0.2
, safe ==0.3.19
, safe-exceptions ==0.1.7.4
Expand All @@ -163,7 +163,7 @@ constraints:
, socks ==0.6.1
, split ==0.2.3.5
, splitmix ==0.1.0.4
, stack ==2.14.0
, stack ==2.13.1
, static-bytes ==0.1.0
, stm ==2.5.1.0
, stm-chans ==3.0.0.9
Expand Down
2 changes: 1 addition & 1 deletion cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
-- specified by the snapshot specifed in Stack's project-level YAML
-- configuration file (`stack.yaml`). The relevant version of GHC can be
-- confirmed by reviewing the snapshot on Stackage. For example, at:
-- https://www.stackage.org/lts-21.12/cabal.config.
-- https://www.stackage.org/lts-21.13/cabal.config.
--
with-compiler: ghc-9.4.7
import: cabal.config
Expand Down
12 changes: 6 additions & 6 deletions doc/GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ packages:

The value of the `resolver` key tells Stack *how* to build your package: which
GHC version to use, versions of package dependencies, and so on. Our value here
says to use [LTS Haskell 21.12](https://www.stackage.org/lts-21.12), which
says to use [LTS Haskell 21.13](https://www.stackage.org/lts-21.13), which
implies GHC 9.4.7 (which is why `stack build` installs that version of GHC if it
is not already available to Stack). There are a number of values you can use for
`resolver`, which we'll cover later.
Expand Down Expand Up @@ -503,7 +503,7 @@ also known as *snapshots*. We mentioned the LTS resolvers, and you can get quite
a bit of information about it at
[https://www.stackage.org/lts](https://www.stackage.org/lts), including:

* The appropriate resolver value (`resolver: lts-21.12`, as is currently the
* The appropriate resolver value (`resolver: lts-21.13`, as is currently the
latest LTS)
* The GHC version used
* A full list of all packages available in this snapshot
Expand All @@ -522,16 +522,16 @@ towards by default as well).

## Resolvers and changing your compiler version

Let's explore package sets a bit further. Instead of `lts-21.12`, let's change
Let's explore package sets a bit further. Instead of `lts-21.13`, let's change
our `stack.yaml` file to use the
[latest nightly](https://www.stackage.org/nightly). Right now, this is currently
2023-09-16 - please see the resolver from the link above to get the latest.
2023-09-24 - please see the resolver from the link above to get the latest.

Then, commanding `stack build` again will produce:

~~~text
stack build
# Downloaded nightly-2023-09-16 build plan.
# Downloaded nightly-2023-09-24 build plan.
# build output ...
~~~

Expand Down Expand Up @@ -1340,7 +1340,7 @@ yields output like:

~~~text
Run from outside a project, using implicit global project config
Using latest snapshot resolver: lts-21.12
Using latest snapshot resolver: lts-21.13
Writing global (non-project-specific) config file to: /home/michael/.stack/global/stack.yaml
Note: You can change the snapshot via the resolver field there.
I installed the stm package via --package stm
Expand Down
27 changes: 8 additions & 19 deletions doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,7 @@ Windows.
M2 chip. These chips use an architecture known as ARM64 or AArch64.

For Mac computers with Apple silicon, the easiest way to install Stack
directly (rather than use GHCup) is to obtain the 'unofficial'
`osx-aarch64` binary distribution released by the GHCup developers and
copy it to a location on the PATH. `*.tar.gz` archive files containing
those binary distributions are available at the directories here:
[:material-cloud-download-outline:](https://downloads.haskell.org/ghcup/unofficial-bindists/stack/).

It is still possible to use the commands:
directly (rather than use GHCup) is to command:

~~~text
curl -sSL https://get.haskellstack.org/ | sh
Expand All @@ -111,19 +105,14 @@ Windows.
wget -qO- https://get.haskellstack.org/ | sh
~~~

However, those commands will download and install the version of Stack
for Intel-based Mac computers. Mac computers with Apple silicon will
use Apple's
[Rosetta 2 application](https://support.apple.com/en-gb/HT211861) to
use that version of Stack.

Apple's Terminal application will not detect automatically that Rosetta
has not yet been installed. Rosetta can be manually installed by
commanding:
!!! note

~~~text
softwareupdate --install-rosetta
~~~
The script at [get.haskellstack.org](https://get.haskellstack.org/)
will ask for root access using `sudo`. It needs such access in order
to use your platform's package manager to install dependencies and
to install to `/usr/local/bin`. If you prefer more control, follow
the manual installation instructions in the
[install and upgrade guide](install_and_upgrade.md).

=== "Windows"

Expand Down
2 changes: 1 addition & 1 deletion doc/Stack_and_VS_Code.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ enabled). For further information about these options, see the `install-ghc`

For this workaround to work, each time that a resolver is used that references a
different version of GHC, then GHCup must be used to install it (if GHCup has
not already installed that version). For example, to use `resolver: lts-21.12`
not already installed that version). For example, to use `resolver: lts-21.13`
(GHC 9.4.7), the command `ghcup install ghc 9.4.7` must have been used to
install GHC 9.4.7. That may be a minor inconvenience for some people, as one the
primary benefits of Stack over other Haskell build tools has been that Stack
Expand Down
24 changes: 13 additions & 11 deletions doc/build_command.md
Original file line number Diff line number Diff line change
Expand Up @@ -555,18 +555,20 @@ package is targetted in a multi-package project (for example, using
`stack build <package_name>`).

* **One target package:** The build output for the target package is sent to the
standard error output stream of the console as it happens.
standard error stream of the console as it happens.

* **More than one target package:** The build output from GHC (as opposed to
from Stack) for each target package is sent to a log file for that package,
unless an error occurs that prevents that. At the end of the build, the
location of the directory containing the log files is reported. To also output
the contents of the log files to the standard error output stream of the
console at the end of the build, use Stack's `dump-logs` option. For further
unless an error occurs that prevents that. If color in output is in use, there
will be two files, one with extension `.log` without color codes and one with
extension `.log-color` with color codes. At the end of the build, the location
of the directory containing the log files is reported. To also output the
contents of the log files to the standard error output stream of the console
at the end of the build, use Stack's `dump-logs` option. For further
information about that option, see the
[YAML configuration](yaml_configuration.md#dump-logs) documentation. The
default `dump-logs` mode is to output the contents of the log files that are
warnings.
default `dump-logs` mode is to output the contents of any log files that
include GHC warnings.

### `--[no]-open` flag

Expand All @@ -585,7 +587,7 @@ This can be useful with `stack build --dry-run`.

### `--progress-bar` option

:octicons-tag-24: UNRELEASED
[:octicons-tag-24: 2.13.1](https://github.com/commercialhaskell/stack/releases/tag/v2.13.1)

Default: `capped`

Expand All @@ -606,10 +608,10 @@ Default: Enabled
Cabal defines a test suite interface
['exitcode-stdio-1.0'](https://hackage.haskell.org/package/Cabal-syntax-3.8.1.0/docs/Distribution-Types-TestSuiteInterface.html#v:TestSuiteExeV1.0)
where the test suite takes the form of an executable and the executable takes
nothing on the standard input channel (`stdin`). Pass this flag to override that
specification and allow the executable to receive input on that channel. If you
nothing on the standard input stream (`stdin`). Pass this flag to override that
specification and allow the executable to receive input on that stream. If you
pass `--no-tests-allow-stdin` and the executable seeks input on the standard
input channel, an exception will be thown.
input stream, an exception will be thown.

## Examples

Expand Down
1 change: 0 additions & 1 deletion doc/coverage.md

This file was deleted.

Loading

0 comments on commit d23f7c0

Please sign in to comment.