Releases: unisonweb/unison
release/0.5.13
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 thenalias.term
oralias.type
to create a name in your branch.
- may show a few more hashes than previously; you can use
- 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 ofFloat./
(reported by @stefanholzmueller) - update issue with sum type, adding a new type constructor (reported by @kylegoetz)
All PRs since last release
- Adding a message for when ucm started reloading changes by @unorsk in #4540
- Fix TDNR bug by @tstat in #4558
- Use explicit 'writeSource' method when writing back to scratch files from UCM by @ChrisPenner in #4541
- Bump lsp lib and handle trace notifications by @ChrisPenner in #4372
- cleanup: dont use NamesWithHistory by @mitchellwrosen in #4566
- Bump tj-actions/changed-files from 37 to 41 in /.github/workflows by @dependabot in #4552
- bugfix: make addDefinitionsToUnisonFile not strip decl names from constructors by @mitchellwrosen in #4559
- FZF on argument types by @ChrisPenner in #4519
- update the name of the pre-release build again by @aryairani in #4565
- refactor: delete NamesWithHistory by @mitchellwrosen in #4569
- Improve error messages on un-resolvable fuzzy command invocations by @ChrisPenner in #4573
Full Changelog: release/0.5.12...release/0.5.13
release/0.5.12
What's Changed
- new
io.test.all
command runs all the IO tests in your namespace - new
rename
command, is the same asmove
namespace.dependencies
now ignoreslib
. You cancd
intolib
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
- io.test.all by @ChrisPenner in #4507
- make
namespace.dependencies
ignorelib
by @mitchellwrosen in #4509 - Partial implementation for native execution/compilation via a standalone executable by @dolio in #4511
- Better project-branch completion for many project commands by @ChrisPenner in #4513
- add
rename
as an alias formove
by @aryairani in #4523 - don't
isTest
-check entiredeepTerms
onview
/edit
by @ChrisPenner in #4520 - bugtweak: force result of
synthesizeForce
earlier by @mitchellwrosen in #4530 - update the name of the pre-release build by @aryairani in #4508
- bugfix: make
run
able to run things that don't return builtins by @mitchellwrosen in #4533 - fix "branch already exists" error message to show project, too by @mitchellwrosen in #4505
- Fix bug in
Bytes.fromBase16
when chunks have an odd size by @runarorama in #4529
Full Changelog: release/0.5.11...release/0.5.12
release/0.5.11
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:
- verify 'stack ghci' startup on mac at least by @aryairani in #4455
- Add a new Pattern.captureAs builtin by @stew in #4452
- Allow layout blocks within Doc transclusion by @pchiusano in #4458
- Change urls to use
/docs
instead of/learn
by @pchiusano in #4459 - bugfix: tweak upgrade to ignore aliases of old things by @mitchellwrosen in #4471
- Add
move
command that moves existing namespaces,terms, and types by @tstat in #4477 - Use minimal suffix that's distinct from local var names by @ChrisPenner in #4481
- switch generic-monoid to semigroups (the two overlapping packages) by @aryairani in #4457
- bugfix: make
upgrade
not require a latest-touched file (default to "scratch.u") by @mitchellwrosen in #4479 - provide some deps for the nix linker by @tstat in #4464
- Return evaluation errors rather than just silencing them. by @ChrisPenner in #4433
- Don't typecheck dependents of unchanged defns in upgrade by @tstat in #4486
- Unison Local - Search for docs by exact name, not suffix by @ChrisPenner in #4485
- bugfix: make upgrade not over-suffixify in certain cases by @mitchellwrosen in #4500
- Bugfix: Prefer shallow lib depth in TDNR by @tstat in #4502
- update UpdateIncompleteConstructorSet message by @aryairani in #4503
- use semver for ucm by @aryairani in #4504
Full Changelog: release/M5j...release/0.5.11
release/M5j
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
This release fixes some bugs related to the new update
process. Upgrading is recommended!
All changes since last release:
- Update release-steps.md by @aryairani in #4390
- Force push to avoid keeping tons of old docs by @ChrisPenner in #4396
- Fix spacing in
create.author
help by @pchiusano in #4401 - add some more info than just calling
fromJust
by @aryairani in #4404 - Improve kind error messages by @tstat in #4398
- Add build-tools only devShell that doesn't depend on haskell.nix by @tstat in #4394
- Nix flake: set default app to haskell-nix unison-cli app by @ceedubs in #4412
- Fix bug in scratch file updates by @tstat in #4414
- fix for test watches in
update
by @aryairani in #4413 - Fix name resolution bug in the parser by @tstat in #4419
- Add support for the
controls
attribute in Video by @hojberg in #4431 - fix unsigned int error in update by @aryairani in #4434
- Add entity validation on pull. by @ChrisPenner in #4377
- don't use
deepTermMetadata
fortest
by @aryairani in #4428 - Fix suffixification bug #4424 by @tstat in #4437
Full Changelog: release/M5h...release/M5i
release/M5h
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 fromlib
, 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 themerge
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:
- refactor: add generic-lens to prelude, export orphan IsLabel instance by @mitchellwrosen in #4332
- Restructure decompilation by @dolio in #4336
- Add new BranchV3 type by @mitchellwrosen in #4333
- Add Term Hash Validation by @ChrisPenner in #4329
- Add kind inference by @tstat in #4331
- add expectDeclNumConstructors by @mitchellwrosen in #4341
- JIT: Added
Code.lookup
function and various supporting code changes by @dolio in #4339 - quick fix for delete.type #4315 for next steps by @sixfourtwelve in #4342
- Fill out more scheme builtins by @dolio in #4355
- improve rendering of uncaught exceptions by @mitchellwrosen in #4358
- Fix kind inference context bug by @tstat in #4366
- Delay kind defaulting by @tstat in #4359
- Assorted pretty-printing round trip fixes by @pchiusano in #4368
- Implement Murmurhash in racket by @jaredly in #4365
- Fix parser issue caused by virtual semicolons being emitted inside parens by @pchiusano in #4369
- Scheme builtin optimization and associated tweaks by @dolio in #4371
- Add missing spaces to
pull
explanation by @JohanWinther in #4361 - Align client timeouts with server-side timeouts by @ChrisPenner in #4364
- Add @lexi-lambda to contributors by @pchiusano in #4379
- Add @SystemFw to contributors by @SystemFw in #4380
- print/parse
update
by @aryairani in #4374 - Bump haskell.nix dependency by @tstat in #4376
- feat: add
upgrade
command by @mitchellwrosen in #4386 - update
update
info messages by @aryairani in #4387 - make findCtorNames return an Output instead of error by @aryairani in #4388
New Contributors
- @JohanWinther made their first contribution in #4361
Full Changelog: release/M5g...release/M5h
release/M5g
What's Changed
- Warn on invalid awk version by @ChrisPenner in #4291
- Use gawk if installed by @ChrisPenner in #4292
- add haskell-language-server-wrapper symlink by @mitchellwrosen in #4298
- try to set a custom workflow name on release by @aryairani in #4289
- [jit] Add setCurrentDirectory, renameDirectory, isDirectory, systemTime, systemTimeMicroseconds, isSeekable, and handlePosition by @jaredly in #4296
- Port Name lookups to Postgres by @ChrisPenner in #4265
- refactor: eliminate duplicate ShortHash type by @mitchellwrosen in #4299
- Add extra help line for delete command by @sixfourtwelve in #4302
- Add @sixfourtwelve to the contribution list by @sixfourtwelve in #4307
- Relax hash-mismatch errors if the remote head is what we wanted by @ChrisPenner in #4309
- Add logic to flip welcome hint message by @sixfourtwelve in #4304
- Prefer triple backtick syntax during doc source printing, even for old docs by @pchiusano in #4312
- Add tip for existing branches by @sixfourtwelve in #4308
- Endpoint exposing chosen project, branch and working path by @chuwy in #4285
- Make
pull.without-history
work for Share project branches by @ChrisPenner in #4301 - Add windows stack build retry on pre-release by @ChrisPenner in #4313
- refactor: one reference type by @mitchellwrosen in #4310
- Add fuzzy-finder for project switching by @ChrisPenner in #4317
- Modify intermediate code/value format to be less Haskell-runtime specific by @dolio in #4311
- Fix compile error in benchmarks by @pchiusano in #4323
- Allow multiple ignored bindings in a block by @pchiusano in #4324
- Fixes to suffix-based name resolution when local file names shadow codebase names by @pchiusano in #4325
- Add new combinator for getting ALL the dependencies of a decl. by @ChrisPenner in #4322
- refactor: replace runEitherTransaction with more ergonomic runTransactionWithRollback by @mitchellwrosen in #4327
- Add missing dependency crawling for MCode by @dolio in #4326
New Contributors
- @sixfourtwelve made their first contribution in #4302
Full Changelog: release/M5f...release/M5g
release/M5f
What's Changed
- bump haskell.nix to support new lsp by @tstat in #4275
- Don't completely crash mid-update on missing metadata by @ChrisPenner in #4281
- Clear temp entity tables on login by @ChrisPenner in #4286
- Implement verified hashing for racket backend, with assorted changes by @dolio in #4287
- feat: allow pulling /releases/latest by @mitchellwrosen in #4288
Full Changelog: release/M5e...release/M5f
release/M5e
What's Changed
- cloud jit: implement createTempDirectory removeDirectory createDirectory renameFile isFileOpen ready by @jaredly in #4276
Full Changelog: release/M5d...release/M5e
release/M5d
What's Changed
- Remove Share paths from release flow by @ChrisPenner in #4248
- Add autocomplete for
ui
by @ChrisPenner in #4249 - remove cache.iog.io by @aryairani in #4251
- Add github action to populate nix development cache by @tstat in #4244
- Change runtime term link representation to allow code validation by @dolio in #4255
- Add -y when calling into racket by @dolio in #4264
- Bump LSP lib versions by @ChrisPenner in #4262
- Project UI support by @ChrisPenner in #4246
- Provide mechanism for hashing BranchFormatFull by @ChrisPenner in #4261
- Adds APIs for listing project and branch names in Unison Local by @ChrisPenner in #4250
- fixes #4239, pretty printing for single arg infix op terms no longer displays "error" by @kylegoetz in #4260
- Only run ormolu formatter on trunk by @ChrisPenner in #4270
- disable nix-dev-cache temporarily by @aryairani in #4271
- Round tripping code now yields same hash after reparsing in all known cases by @pchiusano in #4267
- Fix bug where constructors would incorrectly print with a prefix by @pchiusano in #4274
Full Changelog: release/M5c...release/M5d