Releases: unisonweb/unison
release/M2k
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
forcd
,view
, andedit
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
Our last release was M2i. Here's a summary of what's new since then:
- Doc rendering now crops long docs! Thanks @hojberg
- Performance improvements from the Unison team - @mitchellwrosen @aryairani and @ChrisPenner
- Fix for base download on initialization -You're the best @ChrisPenner
- Experimental work on standalone byte code files - @dolio 🧠
- ... aaand more! See the full list of PRs merged below.
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
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 ucmucm --codebase-create myNewCodebase
which also opens the codebase
- The former codebase creation command
- 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
andScope
@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
- Builtins for working with compression:
- 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
M2h release
release/M2g
Merge branch 'trunk' into series/M2