Skip to content

Releases: zulu-zsh/zulu

v1.5.0

17 Nov 12:47
Compare
Choose a tag to compare

Features

Adds a new --bare option to Zulu init (#98)

This launches Zulu without loading any packages, aliases, functions or variables. This is useful when debugging issues on behalf of users, to rule out any environment-specific issues.

Adds support for global aliases (#99)

Running zulu alias add -g G ' | grep ' will now add G as a global alias. These can be removed as before with zulu alias rm 'G'.

IMPORTANT: Global aliases must be quoted when deleting, otherwise the contents of the aliases will be substituted into the command.

Enhancements

  • zulu update now prints the names of packages which have been added/updated (#106)

Bugfixes

  • Running zulu theme without arguments now prints the current theme (#103)
  • Errors when switching between master and next are now handled and reported (#100)
  • Fixes a rare parse error on install (#105, thanks @AdrieanKhisbe)
  • Fixes an issue where package name was occasionally used in place of repository when installing a package as a dependency (#107)

Todo

v1.4.1

28 Jul 11:57
Compare
Choose a tag to compare

Bugfixes

  • Fixes a whole host of bugs caused by user-defined aliases affecting Zulu functionality (#95)
  • Fixes a bug that meant switching between master and next would not take effect until the shell was restarted. (f204e51)
  • Fixes a bug where keybindings for up/down/left/right would not work after zle-line-init (439ad54, zsh-users/zsh-history-substring-search#70)

v1.4.0

10 Jul 23:17
Compare
Choose a tag to compare

Features

  • Installing a package will now display a warning if it collides with another installed package (#81)

Enhancements:

  • Simplify the zulu list command internally (e7b1f37)
  • Improve performance of zulu list (#84)
  • Ensure alphabetical order of packagefile is maintained when installing packages (0ba9cbc)
  • Add --branch and --tag options to zulu list (c0378ef)
  • zulu bundle --dump now prints branch and tag information in packagefile (c0378ef)
  • zulu bundle now installs the correct branch or tag (5725551)

Bugfixes

  • Print correct usage information for zulu info --help. It previously showed the usage info for zulu install. (89e4f8e)
  • Print correct usage information for zulu switch --help. It previously showed the usage info for zulu path. (889e881)
  • Unit tests now pass (#92)

v1.3.0

01 Apr 23:31
Compare
Choose a tag to compare

We love the ZSH community, and we rely on Zulu users for bug reports, feature requests and suggestions to help us make Zulu better. To that end, in this release we've added some great new features to help you to help us.

Announcing Zulu Next

We're pleased to announce the release of Zulu Next. This is a new beta channel of Zulu that will receive more regular updates, so If you like being at the cutting-edge of things, you can switch to Zulu Next to try out new features before they make it into the main release. To use Zulu Next, all you need to do is add the --next flag to the zulu init call in your .zshrc:

zulu init --next

If you do decide to switch to Zulu Next, we'd love it if you could give us some feedback on new features, and report any bugs you find. You can do that in our issue tracker. Issues referring to features in the next branch will be tagged with the next label. You can find the documentation for Zulu Next at https://next.zulu.sh.

To be able to make this work, and to make updating more seamless, Zulu will now carefully enforce the branch that its core repository has checked out - master if you call zulu init in your .zshrc, and next if you call zulu init --next. If you are working on Zulu itself and have uncommitted changes in ~/.zulu/core they will be lost when the shell session restarts. You can avoid this by turning on dev mode, which will disable the branch check on startup. Just add zulu init --dev to your .zshrc.

NOTE: Whilst this version is in beta, you'll need to switch to the next branch manually, as the --next flag does not yet exist in master. You can do that by running the following commands, then restarting your terminal session:

cd ~/.zulu/core
git fetch origin
git checkout next
./build.zsh

Using Different Versions of Packages

A new zulu switch command has been added, which will allow you to specify a different branch, tag or commit to checkout for a specific package.

# Switch to the next branch for the zunit package
zulu switch --branch next zunit

# Switch to the tag v0.7.0 for the zunit package
zulu switch --tag v0.7.0 zunit

The --branch and --tag options have also been added to zulu install, so that you can specify the version when installing a package.

Analytics

As well as Zulu Next, we've added some anonymous usage analytics into Zulu core, to help us better understand the features which are important to our users, and how they use them. If you wish to opt-out of this feature, just run the following command after updating to v1.3.0:

zulu config set analytics false

Zulu Configuration File

We've added a new configuration file at ~/.config/zulu/config.yml and a command zulu config to manage it, which will let you change the way Zulu works. There aren't many options yet, (just the analytics opt-out you can see above), but the number of available options will grow as Zulu evolves, allowing you to have much more control over how your environment operates.

Syncing

We know many of our users use multiple computers, so we've added a really easy way to sync your Zulu configuration across machines. All you'll need is a git repository, hosted on Github, Gitlab, Bitbucket or a similiar service. Just run zulu sync to get started, and follow the instructions.

New Default Theme

The old default theme filthy was quite feature-rich, and overkill for the majority of users. The new default theme is much simpler, and is available in the package index now as zulu-theme.

screen shot 2017-04-04 at 23 36 28

Full Breakdown of Changes in v1.3.0

New Features

  • Add new config file at ~/.config/zulu/config (#69)
  • Add new zulu config command to manage config values (#69)
  • Adds new zulu sync command for syncing environment in a separate git repository. (#71)
  • Adds new --next flag to zulu init to use the bleeding-edge next branch. (#74)
  • Adds new --branch and --tag options to zulu install to checkout different package versions. (#75)
  • Adds new zulu switch command to change the version of an installed package, which accepts --branch and --tag options. (#75)

Other

  • Zulu now collects a small amount of anonymous usage data to support development efforts. You can opt-out of this by running zulu config set analytics false. (#70)

v1.2.1

12 Mar 12:39
v1.2.1
11bd9aa
Compare
Choose a tag to compare

Bugfixes

  • Ensure the polyfill for color is used throughout the application, rather than calling it directly.

v1.2.0

08 Mar 22:02
Compare
Choose a tag to compare

Features

  • Adds a new zulu manpath command for adding/removing directories from $manpath (#48)
  • Allows packages to specify a post_install script in their index file, which will be run during linking (#58)
  • The progress spinner can be disabled globally by setting $ZULU_NO_PROGRESS=1. This is helpful when running zulu commands within a script. (6f5bddf)
  • Adds new -p,--private options to zulu var add, which stores private variables in a separate file, allowing you to exclude them from version control. Just add ~/.config/zulu/env.private to your .gitignore file. (#62)
  • Adds new -y,--no-confirmation options to zulu ugprade, which will stop the script asking for confirmation before upgrading packages. (93cb2fd)
  • Adds new -t,--type option to zulu list, to allow filtering of packages by their type, e.g. zulu list --type theme. (d6def7b)
  • Adds autocompletion for the zulu theme command. (55a0cc5)
  • Adds a new --dev option to zulu init for Zulu developers. When enabled, Zulu will load the source for a command when it is executed, preventing the need to rebuild Zulu and reload the environment between changes. (#64)

Improvements

  • The zulu self-update, zulu update and zulu upgrade commands have been rewritten so that updates will are more likely to succeed on branches other than master. Local changes in the respective repositories are also now preserved between updates. (9b7191b, fea7606 and 12503d3)
  • Package installation is now faster, as commit histories are not downloaded. (#57)
  • Startup update checks are now done asynchronously for better startup times (#51)
  • If you use zvm, the ZVM_AUTO_USE environment variable is unset before doing package upgrades to prevent the ZSH version being changed (#50)
  • Huge changes made to the way Zulu and its packages are loaded in order to dramatically increase startup performance. (#56)
    • Source is now moved into src directory, and the script build.zsh has been added to the repository, which concatenates all the source files into a single script with comments removed for speed.
    • The self-update command has been modified to run the build.zsh script once it has finished downloading updates.
    • Adds a new compile command, which runs zcompile on Zulu itself, all files in ~/.zulu/{bin,share,init}, the completion cache and the following files in the user's $ZDOTDIR:
      • .zlogin
      • .zshenv
      • .zprofile
      • .zshrc
      • .zlogout
        The end result is a massive increase in startup speed.
    • zulu compile is run in the background to compile sources on startup. A new --no-compile option has been added to zulu init to avoid this.

Bugfixes

  • Fix array assignment errors in ZSH 5.0 within the zulu cdpath command - These had already been fixed for path and fpath. (b98d5af)
  • Ensure that the contents of $path, $fpath and $cdpath are always unique. (212ca93) (Also fixed in the install script in commit e70cf7b).
  • Fixes a bug with the zulu theme command which would store a theme name, even if the theme did not exist and the command returned an error. (6faa801)
  • Fixes a typo in Zulu's completion script which prevented results from being cached properly. (76c2b7c)
  • The zulu install and zulu uninstall commands are now far better at catching and reporting errors. (3e24dab and 29a192a)
  • $IFS is handled safely in a number of places where it was previously being reassigned globally.
  • A few internal functions were checking if they were already defined before being registered, meaning that after an update the older definition would not be replaced with the newer one, causing unexpected behaviour until the shell was restarted. This has been resolved. (5a4c399)
  • The zulu func command would fail if the value of $EDITOR included spaces (e.g. EDITOR='cat -e'). This has now been resolved. (de6b454)

Other

  • Most of Zulu's functionality is now covered by unit tests (#47)
  • Documentation has been updated (zulu-zsh/www#1)

v1.1.6

03 Mar 00:58
v1.1.6
ebafa7d
Compare
Choose a tag to compare

Bugfixes

  • Fixed a bug where the selected theme would change if another installed theme was updated. (#60)

This release also includes a check for a build script on self-update, which is required to be able to upgrade to v1.2.0 (#49).

v1.1.5

15 Feb 21:54
6458ed4
Compare
Choose a tag to compare

Bugfixes

  • Fix a syntax error in zulu install in ZSH 5.0
  • Fix more $IFS issues with zulu link

v1.1.4

15 Feb 12:32
v1.1.4
Compare
Choose a tag to compare
  • Add --ignore-dependencies option to zulu install
  • Add --no-autoselect-themes option to zulu install and zulu link

v1.1.3

15 Feb 12:46
2e76963
Compare
Choose a tag to compare

Fixes a bug with the zulu link command to prevent it from modifying $IFS globally.