Skip to content

Releases: unisonweb/unison

release/0.5.15

01 Feb 22:30
f98ea54
Compare
Choose a tag to compare

What's Changed

New features:

  • LSP support for "format file" / "format selection" / "format on save"
  • New edit.namespace command, see here for example usage (reported by @ceedubs)

Bug fixes:

  • Better tab-completion of branch-relative paths
  • Nicer errors when type-directed name resolution fails (reported by @hojberg)
  • Fixed bug when parsing docs for a unique type with unique omitted (reported by @hojberg)
  • Fixed an indentation issue in Docs that was causing parse failures (reported by @alvaroc1)
  • Fixed a bug with use and names starting with _ (reported by @alvaroc1)
  • Fixed raw text-block indentation (reported by @SystemFw)
  • Fixed an issue where string gets transformed to ''string'' and then fails to parse if string contains ' (reported by @SystemFw)
  • Fixed a type-checking bug where local functions were not generalized (reported by @SystemFw)
  • Fixed a Set.findMin: empty set has no minimal element bug on update (reported by @alvaroc1)
  • UCM now deletes a remote branch mapping when a push fails because the branch doesn't exist.

Speed-ups:

  • LSP no longer preloads names for the entire codebase
  • docs.to-html no longer preloads names for the entire codebase

All PRs since last release:

Full Changelog: release/0.5.14...release/0.5.15

release/0.5.14

23 Jan 03:43
f991abe
Compare
Choose a tag to compare

What's changed:

  • We've implemented the first stage of getting rid of “metadata”.
    • link, links, and unlink commands go away.
    • “default metadata” is no longer applied from your config file on add, nor copied on update.
    • diff.namespace doesn’t report anything about metadata. Note that we used to rely on metadata to exclude uninteresting changes from a diff. That already doesn’t work with the new update process, but we will fix this again eventually.
  • Types are now unique by default, if neither unique nor structural is specified. unique is also left off when viewing the code for a unique type (reported by @ceedubs and others)
  • fork now lets you refer to paths in other branches using project/branch:path syntax. Other commands will support this soon, at which point you hopefully won’t need to go outside of projects for scratch space anymore.
  • UCM no longer searches the global namespace for names not present in or below your current namespace. The upshot is that many commands will complete much more quickly, but you will now see hashes where you would currently see a crazy out-of-scope name. But you wanted to fix that name anyway.
    • This situation is particularly likely when you are cded deeper into your project, into a subnamespace that isn’t completely self-contained, we’re looking into solutions to this. view.global, names.global, and namespace.dependencies will still do a global search. view and display will use the global names if provided an absolute argument.
  • upgrade command now tells you what file to edit (reported by @stew)
  • edit and other commands which modify your scratch file now uniformly produce output in transcript output.md files. It will show up in an ```unison:added-by-ucm <filename.u> code block.
  • Fixed an issue where numbered args unexpectedly got cleared (reported by @ceedubs)
  • Fixed an issue where sub-types of Doc and [Test.Result] showed up on Share as Docs and Tests when they shouldn’t have.
  • Fixed an issue where update/upgrade produced a scratch file that ambiguously referred to aliases in a way that couldn’t typecheck.
  • Globbing (view foo.?) went away; you probably won’t notice. The improved fzf support introduced in 0.5.13 is nicer anyway.

All PRs since last release

Full Changelog: release/0.5.13...release/0.5.14

release/0.5.13

05 Jan 22:02
014b3fc
Compare
Choose a tag to compare

Fixed these bugs:

  • add.run CallStack error issue on 0.5.11 (reported by @rlmark)
  • Feedback when a scratch file change is picked up (reported by @ceedubs)
  • speed up find, by eliminating historical name search (reported by @stew and others)
    • may show a few more hashes than previously; you can use names.global <hash> to investigate the name, and then alias.term or alias.type to create a name in your branch.
  • extend fzf support to all required arguments (multiply reported by @ceedubs)
  • Nat.fromHex fails for some input when it is a substring of larger Text (reported by @hagl)
  • Baffling error messages when using / instead of Float./ (reported by @stefanholzmueller)
  • update issue with sum type, adding a new type constructor (reported by @kylegoetz)

All PRs since last release

Full Changelog: release/0.5.12...release/0.5.13

release/0.5.12

21 Dec 18:36
8e12c77
Compare
Choose a tag to compare

What's Changed

  • new io.test.all command runs all the IO tests in your namespace
  • new rename command, is the same as move
  • namespace.dependencies now ignores lib. You can cd into lib and run it there if you are curious about the state of your libraries.
  • auto-completion improvements for many project commands
  • several bugfixes

All PRs since last release

Full Changelog: release/0.5.11...release/0.5.12

release/0.5.11

13 Dec 17:09
a91e3c3
Compare
Choose a tag to compare

What's changed:

  • New move command will move existing namespaces, terms, and types, all at once.
  • Several fixes to upgrade, pretty-printing, docs parsing, and type-directed name resolution.
  • A fix related to displaying docs in Unison Local.
  • We've switched to a less weird version numbering scheme (0.5.11 instead of M5k)

All PRs since last release:

Full Changelog: release/M5j...release/0.5.11

release/M5j

01 Dec 14:41
7778bdc
Compare
Choose a tag to compare

What's changed:

  • We fixed a bug where saving a scratch file with watch expressions could cause UCM to crash with a SQL error. #4454
  • Updates are faster when nothing new needs to be typechecked.

All PRs since last release:

  • in update, don't bother typechecking again if we haven't changed the unison file by @mitchellwrosen in #4446
  • Unique type churn transcript: add case of revert by @ceedubs in #4447
  • update transcripts due to out-of-order merges by @aryairani in #4451
  • bugfix: update no longer tries to put non-test watches into the namespace by @mitchellwrosen in #4454
  • PackageImports to workaround stack ghci failure by @aryairani in #4453

Full Changelog: release/M5i...release/M5j

release/M5i

28 Nov 22:03
4ffbc7e
Compare
Choose a tag to compare

This release fixes some bugs related to the new update process. Upgrading is recommended!

All changes since last release:

Full Changelog: release/M5h...release/M5i

release/M5h

14 Nov 19:10
68d6f93
Compare
Choose a tag to compare

What's new:

Simplified update process

See the #4374 for more details. TL;DR:

Given your already type-checked scratch file, UCM attempts to substitute the new definitions everywhere the old were referenced in your namespace and other definitions, propagating recursively.

  • If successful, you are done!
  • If unsuccessful, UCM will load the dependent definitions into the scratch file for you to edit until they typecheck.

Library upgrade command

See #4386 for more details. TL;DR:

With both an <old> and <new> version of a library installed under lib.<old> and lib.<new> respectively, the upgrade <old> <new> command will attempt to replace any usages in your project of definitions from <old> with definitions from <new> with the same names.

  • If successful, <old> is removed from lib, and you are done!
  • If unsuccessful, UCM will switch you to a new temporary branch (without <old>), and load the dependent definitions into the scratch file for you to edit until they typecheck.
  • When you finish the migration, you can update and then use the merge command to merge the temporary branch into your original branch.

Kind checking

We have kind checking now!

Various improvements to

  • Error messages
  • Pretty-printing and code round-trips
  • Request timeout fixes for Share

All changes since last release:

New Contributors

Full Changelog: release/M5g...release/M5h

release/M5g

21 Sep 20:00
f761c09
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: release/M5f...release/M5g

release/M5f

29 Aug 15:26
04ba01c
Compare
Choose a tag to compare

What's Changed

Full Changelog: release/M5e...release/M5f