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
.
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)