From 5589e81af15819023c60c99d3d10b8a19901e4e3 Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Wed, 7 Feb 2024 11:22:40 -0600 Subject: [PATCH] Prep 0.15.15 (#4533) * Drop old bug entry * Update version to 0.15.15 * Update changelog --- .../bug_fix-moveQuantifiersToFront-scoping.md | 23 --------- ...ature_add-exclude-file-to-more-commands.md | 5 -- CHANGELOG.d/feature_glob-input-files.md | 38 --------------- CHANGELOG.md | 47 +++++++++++++++++++ npm-package/package.json | 4 +- purescript.cabal | 2 +- 6 files changed, 50 insertions(+), 69 deletions(-) delete mode 100644 CHANGELOG.d/bug_fix-moveQuantifiersToFront-scoping.md delete mode 100644 CHANGELOG.d/feature_add-exclude-file-to-more-commands.md delete mode 100644 CHANGELOG.d/feature_glob-input-files.md diff --git a/CHANGELOG.d/bug_fix-moveQuantifiersToFront-scoping.md b/CHANGELOG.d/bug_fix-moveQuantifiersToFront-scoping.md deleted file mode 100644 index 5d701a22cb..0000000000 --- a/CHANGELOG.d/bug_fix-moveQuantifiersToFront-scoping.md +++ /dev/null @@ -1,23 +0,0 @@ -* Fix scoping issues in `moveQuantifiersToFront` - -As a side effect of replacing `UnusableDeclaration` with -an updated `NoInstanceFound` error, a bug appeared in how -scoping is handled when constraints are involved. - -```purs --- | a0 -class Foo a where --- | a1 - foo :: forall a. a -``` -Before this fix, `foo`'s type signature was being transformed to -`foo :: forall @a a. Foo a => a` -where two type variables with the same identifier -are present rather than the correct signature of -`foo :: forall @a0. Foo a0 => (forall a1. a1)`. - -With this fix, the above type class declaration -will now compile and trigger a `ShadowedName` -warning since the type class member's `a` -(i.e. `a1` above) shadows the type class head's `a` -(i.e. `a0` above). diff --git a/CHANGELOG.d/feature_add-exclude-file-to-more-commands.md b/CHANGELOG.d/feature_add-exclude-file-to-more-commands.md deleted file mode 100644 index b613e791c3..0000000000 --- a/CHANGELOG.d/feature_add-exclude-file-to-more-commands.md +++ /dev/null @@ -1,5 +0,0 @@ -* Add `--exclude-file` to more commands - - This CLI arg was added to the `compile` command, but not to other commands - where such a usage would be relevant (e.g. `docs`, `repl`, `graph`, and `ide`). - \ No newline at end of file diff --git a/CHANGELOG.d/feature_glob-input-files.md b/CHANGELOG.d/feature_glob-input-files.md deleted file mode 100644 index 076b94cf4c..0000000000 --- a/CHANGELOG.d/feature_glob-input-files.md +++ /dev/null @@ -1,38 +0,0 @@ -* Enable passing source input globs via `--source-globs-file path/to/file` - - `--source-globs-file` support has been added to the following commands: - `compile`, `docs`, `graph`, `ide`, and `publish`. - - Due to a [shell character limitation on Windows](https://learn.microsoft.com/en-us/troubleshoot/windows-client/shell-experience/command-line-string-limitation) where a large list of - source globs cannot be passed (e.g. `purs compile ... glob1000/src/**/*.purs`), - source globs can be stored in a file according to the format below - and the file is passed in instead via `purs compile ---source-globs-file path/to/file`. - - ``` - # Lines starting with '#' are comments. - # Blank lines are ignored. - # Otherwise, every line is a glob. - - .spago/foo-1.2.3/src/**/*.purs - .spago/bar-2.3.3/src/**/*.purs - my-package/src/**/*.purs - my-package/tests/**/*.purs - ``` - - `--source-globs-file` is an optional argument. Mixing it with the normal source globs is fine. - Assuming `.spago/source-globs` contains `src/**/*.purs`, each command below will use - the same input globs: - ```sh - purs compile src/**/*.purs - purs compile --source-globs .spago/source-globs - purs compile --source-globs .spago/source-globs src/**/*.purs - ``` - - In the command... - ``` - purs compile inputGlob1 inputGlob2 --source-globs-file fileWithMoreGlobs --exclude-files excludeGlob1 - ``` - the files passed to the compiler are: all the files found by - `inputGlob1`, `inputGlob2`, and all the globs listed in `fileWithMoreGlobs` - minus the files found by `excludeGlob1`. - \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 309b8ac703..27a87cc478 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,53 @@ Notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.15.15 + +New features: + +* Add `--exclude-file` to more commands (#4530 by @JordanMartinez) + + This CLI arg was added to the `compile` command, but not to other commands + where such a usage would be relevant (e.g. `docs`, `repl`, `graph`, and `ide`). + +* Enable passing source input globs via `--source-globs-file path/to/file` (#4530 by @JordanMartinez) + + `--source-globs-file` support has been added to the following commands: + `compile`, `docs`, `graph`, `ide`, and `publish`. + + Due to a [shell character limitation on Windows](https://learn.microsoft.com/en-us/troubleshoot/windows-client/shell-experience/command-line-string-limitation) where a large list of + source globs cannot be passed (e.g. `purs compile ... glob1000/src/**/*.purs`), + source globs can be stored in a file according to the format below + and the file is passed in instead via `purs compile ---source-globs-file path/to/file`. + + ``` + # Lines starting with '#' are comments. + # Blank lines are ignored. + # Otherwise, every line is a glob. + + .spago/foo-1.2.3/src/**/*.purs + .spago/bar-2.3.3/src/**/*.purs + my-package/src/**/*.purs + my-package/tests/**/*.purs + ``` + + `--source-globs-file` is an optional argument. Mixing it with the normal source globs is fine. + Assuming `.spago/source-globs` contains `src/**/*.purs`, each command below will use + the same input globs: + ```sh + purs compile src/**/*.purs + purs compile --source-globs .spago/source-globs + purs compile --source-globs .spago/source-globs src/**/*.purs + ``` + + In the command... + ``` + purs compile inputGlob1 inputGlob2 --source-globs-file fileWithMoreGlobs --exclude-files excludeGlob1 + ``` + the files passed to the compiler are: all the files found by + `inputGlob1`, `inputGlob2`, and all the globs listed in `fileWithMoreGlobs` + minus the files found by `excludeGlob1`. + ## 0.15.14 Bugfixes: diff --git a/npm-package/package.json b/npm-package/package.json index 8470f00e4c..56772d2b55 100644 --- a/npm-package/package.json +++ b/npm-package/package.json @@ -1,6 +1,6 @@ { "name": "purescript", - "version": "0.15.14", + "version": "0.15.15", "license": "ISC", "description": "PureScript wrapper that makes it available as a local dependency", "author": { @@ -43,7 +43,7 @@ ], "scripts": { "prepublishOnly": "node -e \"require('fs').copyFileSync('purs.bin.placeholder', 'purs.bin');\"", - "postinstall": "install-purescript --purs-ver=0.15.14", + "postinstall": "install-purescript --purs-ver=0.15.15", "test": "echo 'Error: no test specified' && exit 1" } } diff --git a/purescript.cabal b/purescript.cabal index 5403791867..6550a803dd 100644 --- a/purescript.cabal +++ b/purescript.cabal @@ -2,7 +2,7 @@ cabal-version: 2.4 name: purescript -- Note: don't add prerelease identifiers here! Add them in app/Version.hs and npm-package/package.json instead. -version: 0.15.14 +version: 0.15.15 synopsis: PureScript Programming Language Compiler description: A small strongly, statically typed programming language with expressive types, inspired by Haskell and compiling to JavaScript. category: Language