Releases: zulu-zsh/zulu
v1.5.0
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 updatenow prints the names of packages which have been added/updated (#106)
Bugfixes
- Running
zulu themewithout arguments now prints the current theme (#103) - Errors when switching between
masterandnextare 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
- Update Documentation (zulu-zsh/www#10)
- Bump Version
v1.4.1
Bugfixes
- Fixes a whole host of bugs caused by user-defined aliases affecting Zulu functionality (#95)
- Fixes a bug that meant switching between
masterandnextwould 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
Features
- Installing a package will now display a warning if it collides with another installed package (#81)
Enhancements:
- Simplify the
zulu listcommand internally (e7b1f37) - Improve performance of
zulu list(#84) - Ensure alphabetical order of packagefile is maintained when installing packages (0ba9cbc)
- Add
--branchand--tagoptions tozulu list(c0378ef) zulu bundle --dumpnow prints branch and tag information in packagefile (c0378ef)zulu bundlenow installs the correct branch or tag (5725551)
Bugfixes
v1.3.0
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 --nextIf 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
--nextflag 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.zshUsing 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 zunitThe --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 falseZulu 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.
Full Breakdown of Changes in v1.3.0
New Features
- Add new config file at
~/.config/zulu/config(#69) - Add new
zulu configcommand to manage config values (#69) - Adds new
zulu synccommand for syncing environment in a separate git repository. (#71) - Adds new
--nextflag tozulu initto use the bleeding-edgenextbranch. (#74) - Adds new
--branchand--tagoptions tozulu installto checkout different package versions. (#75) - Adds new
zulu switchcommand to change the version of an installed package, which accepts--branchand--tagoptions. (#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
v1.2.0
Features
- Adds a new
zulu manpathcommand for adding/removing directories from$manpath(#48) - Allows packages to specify a
post_installscript 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,--privateoptions tozulu var add, which stores private variables in a separate file, allowing you to exclude them from version control. Just add~/.config/zulu/env.privateto your.gitignorefile. (#62) - Adds new
-y,--no-confirmationoptions tozulu ugprade, which will stop the script asking for confirmation before upgrading packages. (93cb2fd) - Adds new
-t,--typeoption tozulu list, to allow filtering of packages by their type, e.g.zulu list --type theme. (d6def7b) - Adds autocompletion for the
zulu themecommand. (55a0cc5) - Adds a new
--devoption tozulu initfor 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 updateandzulu upgradecommands have been rewritten so that updates will are more likely to succeed on branches other thanmaster. 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_USEenvironment 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
srcdirectory, and the scriptbuild.zshhas been added to the repository, which concatenates all the source files into a single script with comments removed for speed. - The
self-updatecommand has been modified to run thebuild.zshscript once it has finished downloading updates. - Adds a new
compilecommand, which runszcompileon 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 compileis run in the background to compile sources on startup. A new--no-compileoption has been added tozulu initto avoid this.
- Source is now moved into
Bugfixes
- Fix array assignment errors in ZSH 5.0 within the
zulu cdpathcommand - These had already been fixed forpathandfpath. (b98d5af) - Ensure that the contents of
$path,$fpathand$cdpathare always unique. (212ca93) (Also fixed in the install script in commit e70cf7b). - Fixes a bug with the
zulu themecommand 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 installandzulu uninstallcommands are now far better at catching and reporting errors. (3e24dab and 29a192a) $IFSis 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 funccommand would fail if the value of$EDITORincluded 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)
