Skip to content

Releases: unisonweb/unison

release/M2k

19 Nov 17:59
Compare
Choose a tag to compare

Our last release was M2j. Here's a summary of what's new since then:

  • New command: docs.to-html to generate HTML representations of docs in a namespace
  • New getArgs builtin [example] (Thanks @iamevn!)
  • Fuzzy find support via fzf for cd,view, and edit when run without arguments
  • Globbing support with ? as wild card [example]
  • List dependencies that don't have names within your namespace using namespace.dependencies [example]
  • Improve namespace autocompletion
  • Vim plugin: Add completion
  • ... aaand more! See the full list of PRs merged below.

See UI changes in https://github.com/unisonweb/codebase-ui/releases/tag/release%2FM2k

Upgrading

How to upgrade from an M1 series codebase

If you're already using an M2 series release (try ucm version if unsure), you can skip this section.

If you still have a V1 codebase, ucm upgrade-codebase can be used to upgrade it to the new format. We recommend that you push the converted codebase to a fresh Git repo.

$ ucm upgrade-codebase
... wait a while for this to finish
$ ucm
.> push https://github.com/myusername/myunisoncode2

Where myusername/myunisoncode2 is a fresh Git repo.

If your codebase isn't in the default location (of ~/.unison), you can pass the --codebase flag:

$ ucm --codebase /path/to/mycode upgrade-codebase

Let us know in Slack if you encounter any trouble with this.

Fetching the latest base library

.> pull https://github.com/unisonweb/base:.releases._M2k .base_m2k

You can then (optionally) delete.namespace any old versions of base you have laying around. This will complain if you're still referencing definitions from the old version of base.

If you have definitions that depend on old definitions, you can find that out by doing:

.mycode> todo .base_m2k.patch

If you do have things todo, applying the patch to your namespace will replace the old versions with the new. We recommend forking a copy of your namespace before doing this:

.> fork mycode mycode2 
.mycode2> patch .base_m2k.patch
.mycode2> todo .base_m2k.patch

Assuming that reports "Nothing to do", you can delete.namespace mycode and then delete.namespace your old version of base. If you encounter any trouble, stop by the Slack in #alphatesting and we can help.

Check out https://github.com/unisonweb/unison/issues?q=is%3Aissue+is%3Aopen+label:P1 to follow current high priority issues being worked on.

Acknowledgements

Thanks to everyone who helped with this release, either by writing code or docs or submitting bug reports. For unisonweb/unison, here's all the folks with commits in this release (alphabetically by first name):

» git shortlog -s --no-merges "release/M2j".."release/M2k" | cut -f 2- | sort -f 

Arya Irani
Chris Penner
Cody Allen
Dan Doel
iamevn
Karthik Ravikanti
Mitchell Rosen
Paul Chiusano
Rúnar Bjarnason
satotake
sbachlet
Shawn Bachlet
Simon Højberg
ssbothwell

Also see the contributors for unisonweb.org and contributors for unisonweb/codebase-ui

A number of people contributed to the Unison base library. You can view author information for any definition using the links command:

.> links base.List.filter Author

  1. base.metadata.authors.pete_ts           : Author
  
  Tip: Try using `display 1` to display the first result or `view 1` to view its source.

PRs merged since last release

git log --oneline release/M2j..release/M2k | grep 'Merge pull request #'
  • #2641 from unisonweb/cp/safer-connection-use
  • #2645 from unisonweb/fix-anchors
  • #2637 from unisonweb/fix/threadid-cmp
  • #2607 from unisonweb/cp/namespace-dependencies
  • #2644 from unisonweb/fix-folded-open
  • #2643 from unisonweb/fix-paragraph-nesting
  • #2634 from unisonweb/21-11-12-codebase-docs
  • #2626 from unisonweb/doc-folding-inline-code
  • #2633 from unisonweb/21-11-12-lookupWatchCache
  • #2616 from unisonweb/21-11-08-deleted-names-in-dependents
  • #2625 from unisonweb/topic/reexport-hash
  • #2623 from unisonweb/fix/eta-reduction
  • #2618 from unisonweb/21-11-09-branch-lenses
  • #2619 from unisonweb/render-doc-emoji
  • #2610 from unisonweb/21-11-08-ppe
  • #2617 from unisonweb/doc-to-html-improvements
  • #2600 from unisonweb/21-11-02-push-create
  • #2613 from unisonweb/doc-to-html-improvements
  • #2612 from unisonweb/fix/2567
  • #2604 from solomon-b/trunk
  • #2598 from unisonweb/21-11-04-unison-cli-modules
  • #2602 from unisonweb/remove-unpack
  • #2597 from unisonweb/21-11-05-move-beforeHash
  • #1899 from unisonweb/topic/text
  • #2595 from unisonweb/21-11-04-format
  • #2596 from unisonweb/21-11-04-input-cleanup
  • #2594 from unisonweb/fix/transcript-compilation
  • #2540 from iamevn/run-with-args
  • #2590 from satotake/measure-integraion-tests
  • #2592 from ceedubs/vim-help
  • #2584 from shawn-bachlet/trunk
  • #2579 from ceedubs/vim-completion
  • #2578 from unisonweb/cp/no-match-error
  • #2581 from unisonweb/format-input-patterns
  • #2586 from unisonweb/fix/universal-compare
  • #2585 from unisonweb/fix-doc-links
  • #2500 from unisonweb/fix/universal-compare
  • #2563 from unisonweb/21-10-26-edit-cycle
  • #2577 from unisonweb/doc-names-for-rendering-html
  • #2576 from unisonweb/doc-names-for-html-files
  • #2575 from unisonweb/ensure-folders-exist-for-doc-creation
  • #2568 from unisonweb/render-doc-html-files
  • #2561 from unisonweb/21-10-28-cons-isnt-monotonic
  • #2550 from unisonweb/cp/fzf
  • #2562 from unisonweb/work/type-equality
  • #2560 from unisonweb/cp/fix-ui-name-scoping
  • #2559 from unisonweb/ci-integration-tests
  • #2549 from unisonweb/topic/sqlite-operations-exports
  • #2554 from unisonweb/fix-doc-images
  • #2556 from plumenator/trunk
  • #2553 from unisonweb/fix/signature-links
  • #2534 from unisonweb/cp/haddock-upload
  • #2543 from satotake/add-integration-tests
  • #2501 from plumenator/trunk
  • #2552 from unisonweb/fix-type-reference-for-terms
  • #2548 from unisonweb/21-10-26-delete-old-name
  • #2488 from unisonweb/21-10-07-name-refactor
  • #2538 from unisonweb/21-10-22-fix-dupe-index-entries
  • #2541 from unisonweb/cp/abt-cleanup
  • #2544 from unisonweb/topic/weed-hashing-modules
  • #2542 from iamevn/trunk
  • #2539 from iamevn/rename-package
  • #2535 from iamevn/getCurrentDirectory
  • #2521 from unisonweb/doc-html
  • #2533 from unisonweb/topic/fix2271
  • #2529 from unisonweb/21-10-20-base32
  • #2525 from unisonweb/cp/git-fix
  • #2524 from unisonweb/fix/mvar-read
  • #2511 from unisonweb/cp/globbing
  • #2523 from unisonweb/21-10-19-empty-add
  • #2513 from unisonweb/21-10-18-relation-optimizations
  • #2509 from unisonweb/cp/name-renaming
  • #2504 from unisonweb/cp/better-namespace-completions
  • #2498 from unisonweb/cp/catch-ctrl-c-haskeline
  • #2499 from unisonweb/topic/v1-cleanup
  • #2494 from unisonweb/topic/standalone-binaries
  • #2477 from unisonweb/21-10-07-no-empty-names
  • #2486 from unisonweb/cp/no-duplicate-builds
  • #2485 from unisonweb/cp/split-cli
  • #2484 from unisonweb/cp/add-relation-benchmarks
  • #2478 from unisonweb/cp/add-relation-benchmarks
  • #2475 from unisonweb/topic/lts-18.13
  • #2470 from unisonweb/21-10-06-relation-difference
  • #2469 from unisonweb/cp/2453-better-ambiguity-message

release/M2j

07 Oct 18:41
Compare
Choose a tag to compare

Our last release was M2i. Here's a summary of what's new since then:

Fetching the latest base library

.> pull https://github.com/unisonweb/base:.releases._M2j .base_m2j

You can then (optionally) delete.namespace any old versions of base you have laying around. This will complain if you're still referencing definitions from the old version of base.

If you have definitions that depend on old definitions, you can find that out by doing:

.mycode> todo .base_m2j.patch

If you do have things todo, applying the patch to your namespace will replace the old versions with the new. We recommend forking a copy of your namespace before doing this:

.> fork mycode mycode2 
.mycode2> patch .base_m2j.patch
.mycode2> todo .base_m2j.patch

Assuming that reports "Nothing to do", you can delete.namespace mycode and then delete.namespace your old version of base. If you encounter any trouble, stop by the Slack in #alphatesting and we can help.

Known issues

  • This release adds experimental support for self-contained bytecode files (these are precompiled files that are small and package a main function and its minimal dependencies for execution with low startup times), however we learned the initial approach doesn’t work on platforms with ASLR (address space layout randomization) such as MacOS. We’re going to be redoing this in a more robust way for a later release.

What's coming in future releases?

  • More work on standalone bytecode files for running compiled Unison programs outside of UCM.
  • Changes to the PR and Update process!
  • A new docs site based on the same doc renderer used on https://share.unison-lang.org.
  • More work on Unison's distributed programming API.
  • and a bunch more...

Check out https://github.com/unisonweb/unison/issues?q=is%3Aissue+is%3Aopen+label:P1 to follow current high priority issues being worked on.

Acknowledgements

Thanks to everyone who helped with this release, either by writing code or docs or submitting bug reports. For unisonweb/unison, here's all the folks with commits in this release (alphabetically by first name):

» git shortlog -s --no-merges "release/M1m".."release/M2" | cut -f 2- | sort -f 

Arya Irani
Chris Penner
Dan Doel
Mitchell Rosen
Rebecca Mark
Rúnar Bjarnason
Simon Højberg

Also see the contributors for unisonweb.org and contributors for unisonweb/codebase-ui

A number of people contributed to the Unison base library. You can view author information for any definition using the links command:

.> links base.List.filter Author

  1. base.metadata.authors.pete_ts           : Author
  
  Tip: Try using `display 1` to display the first result or `view 1` to view its source.

PRs merged since last release

git log --oneline release/M2i..release/M2j | grep 'Merge pull request #'
  • #2460 from unisonweb/topic/refactor-type-mentions-index
  • #2468 from unisonweb/21-10-05-project-relation
  • #2466 from unisonweb/topic/fix2244
  • #2462 from unisonweb/21-10-05-unify-types
  • #2446 from unisonweb/topic/standalone-binaries
  • #2448 from unisonweb/topic/letbreak
  • #2459 from unisonweb/gitTagVersionUpdate
  • #2456 from unisonweb/use-nanoid-for-server-token
  • #2458 from unisonweb/dont-diff-in-add
  • #2457 from unisonweb/release-notes-updates

release/M2i

05 Oct 18:10
Compare
Choose a tag to compare

Our last release was M2h. Here's a summary of what's new since then:

  • Many improvements to the pretty printer for round-trip code editing. Thanks @runaroama!
  • cd .. at long last! You can move up one level in a namespace structure.
  • Codebase creation workflow improvements - work by @hojberg and @rlmark
    • The former codebase creation command ucm init --codebase myNewCodebase has been deprecated in favor of a command line flag to the ucm ucm --codebase-create myNewCodebase which also opens the codebase
  • New Scope s ability for local mutable operations which are externally pure
  • New Ref type for mutable references which to which you can be read or written to using IO. Thanks @dolio!
  • New builtin functions:
    • Builtins for working with compression: Bytes.zlib.compress, Bytes.zlib.decompress, Bytes.gzip.compress, Bytes.gzip.decompress @pchiusano
    • New unsafe.coerceAbilities builtin. @dolio
    • Added new Ref and Scope @dolio
    • Added IO.systemTimeMicroseconds - thank you @alvaroc1!
    • Added Term.Link.toText @stew
    • Added Any.unsafeExtract @stew
    • Added Code.validate for testing/debugging @dolio
    • Added Code.display for displaying Code
  • Defining structural abilities and types requires structural keyword. @hojberg and @rlmark
  • Codebase UI
    • Source is now independently collapsable and are part of the "zoom cycle" triggered by the space key.
    • Signatures of open definitions are now displayed before docs. They are collapsed if there are docs and expanded when there are none.
    • Support switching perspective to a namespace. Switch perspective via the sidebar or an open definition.
    • Support namespace perspectives both overall and adhoc in the Finder via a context menu on any open definition
    • Docs render a lot nicer and Readme's of namespaces render by default when a namespace is the perspective
  • ... aaand more! See the full list of PRs merged below.

Fetching the latest base library

.> pull https://github.com/unisonweb/base:.releases._M2i .base_m2i

You can then (optionally) delete.namespace any old versions of base you have laying around. This will complain if you're still referencing definitions from the old version of base.

If you have definitions that depend on old definitions, you can find that out by doing:

.mycode> todo .base_m2i.patch

If you do have things todo, applying the patch to your namespace will replace the old versions with the new. We recommend forking a copy of your namespace before doing this:

.> fork mycode mycode2 
.mycode2> patch .base_m2i.patch
.mycode2> todo .base_m2i.patch

Assuming that reports "Nothing to do", you can delete.namespace mycode and then delete.namespace your old version of base. If you encounter any trouble, stop by the Slack in #alphatesting and we can help.

Known issues

  • Adding definitions with default metadata to large namespaces (e.g. base) may be slow. This will be fixed in an upcoming release

What's coming in future releases?

  • Usability and performance improvements for UCM, particularly around the update process.
  • Standalone bytecode files for running compiled Unison programs outside of UCM.
  • A new docs site based on the same doc renderer used on https://share.unison-lang.org
  • A first release of Unison's distributed programming API, initially just supporting local concurrent execution.
  • and a bunch more...

Check out https://github.com/unisonweb/unison/issues?q=is%3Aissue+is%3Aopen+label:P1 to follow current high priority issues being worked on.

Acknowledgements

Thanks to everyone who helped with this release, either by writing code or docs or submitting bug reports. For unisonweb/unison, here's all the folks with commits in this release (alphabetically by first name):

» git shortlog -s --no-merges "release/M2h".."release/M2i" | cut -f 2- | sort -f 

Alvaro Carrasco
Arya Irani
Dan Doel
Paul Chiusano
Rebecca Mark
Rúnar Bjarnason
Simon Højberg
Stew O'Connor

Also see the contributors for unisonweb.org and contributors for unisonweb/codebase-ui

A number of people contributed to the Unison base library. You can view author information for any definition using the links command:

.> links base.List.filter Author

  1. base.metadata.authors.pete_ts           : Author
  
  Tip: Try using `display 1` to display the first result or `view 1` to view its source.

PRs merged since last release

git log --oneline release/M2h..release/M2i | grep 'Merge pull request #'
  • #2323 from unisonweb/feature/compress
  • #2447 from unisonweb/welcome-onboarding-state-machine-authorship
  • #2450 from unisonweb/pchiusano-patch-2
  • #2438 from unisonweb/topic/rt-decl-ctor-constants
  • #2441 from unisonweb/pchiusano-patch-2
  • #2442 from unisonweb/silence-base
  • #2436 from unisonweb/fix/ui-229
  • #2437 from alvaroc1/trunk
  • #2418 from alvaroc1/trunk
  • #2433 from unisonweb/topic/hash-module-v1b
  • #2432 from unisonweb/topic/letblockparen
  • #2430 from ceedubs/remote-support
  • #2427 from unisonweb/topic/emphroundtrip
  • #2428 from unisonweb/debug/missing-data-case
  • #2421 from alvaroc1/bug/2325
  • #2420 from unisonweb/remove-trace-from-fieldnames
  • #2415 from unisonweb/topic/listblocks
  • #2403 from unisonweb/record-fix
  • #2400 from stew/feature/any-extract
  • #2414 from unisonweb/add-no-base-flag
  • #2384 from unisonweb/topic/lts-18.9
  • #2405 from unisonweb/remove-init-command
  • #2399 from unisonweb/topic/longbinaryops
  • #2387 from stew/feature/termlinktotext
  • #2397 from unisonweb/base-download-on-init
  • #2396 from unisonweb/topic/typeapplicationparens
  • #2395 from unisonweb/random-earth-views
  • #2393 from unisonweb/topic/listpatternprecedence
  • #2386 from unisonweb/round-trip-tests-docs
  • #2391 from unisonweb/improve-welcome-message
  • #2390 from unisonweb/topic/destructuringbindparens
  • #2388 from unisonweb/fix/higher-rank
  • #2385 from unisonweb/fix/roundtrip-testing
  • #2382 from unisonweb/fix/2353
  • #2380 from unisonweb/fix/2378
  • #2377 from stew/fix/2345
  • #2375 from unisonweb/feature/up
  • #2368 from unisonweb/namespace-details
  • #2365 from unisonweb/default-codebase-if-not-exists
  • #2372 from unisonweb/fix/delay
  • #2371 from unisonweb/fix/2355
  • #2369 from unisonweb/test/unlink
  • #2364 from unisonweb/fix/2355
  • #2366 from unisonweb/stackage-18.6-temp-downgrade
  • #2363 from unisonweb/topic/weed-codebase1-5
  • #2356 from unisonweb/fix/2344
  • #2352 from unisonweb/structural-kw#2251
  • #2351 from unisonweb/topic/scope-refs
  • #2349 from unisonweb/update-stack-resolver
  • #2346 from unisonweb/topic/unsafe-coerce

release/M2h

20 Aug 16:14
Compare
Choose a tag to compare
M2h release

release/M2g

09 Jun 16:52
Compare
Choose a tag to compare
Merge branch 'trunk' into series/M2

release/M2f

08 Jun 04:48
Compare
Choose a tag to compare

Development Build

08 Jun 17:44
fabb266
Compare
Choose a tag to compare
Development Build Pre-release
Pre-release

Commits

Development Build

08 Jun 17:29
fabb266
Compare
Choose a tag to compare
Development Build Pre-release
Pre-release

Commits

M2 release (Mac)

03 Jun 20:20
Compare
Choose a tag to compare
M2 release (Mac) Pre-release
Pre-release

M2 release (Linux)

03 Jun 20:24
Compare
Choose a tag to compare
M2 release (Linux) Pre-release
Pre-release