This is a major release containing four new features:
- A new dependencies development mode.
- Support for lock files.
- Download tarballs when downloading packages from GitHub.
- A setup command.
This is a bugfix release. It enhances the security in multiple aspects:
- URLs default to
- SSL certificates are checked.
- Shell escaping bugs have been fixed.
This is a major release containing multiple improvements and bug fixes:
nimble dumpnow provides
- Calls to the Nim compiler now display
--hints:offoutput by default. The
--verboseflag will print the full Nim command as well as regular compiler output.
- Custom tasks can now be passed compiler flags as well as run flags when run
nimble <compflags> task <runflags>. This includes the custom
testtask if defined. Compile flags are forwarded to
nim ethat executes the
.nimbletask and can be used to set
--define:xxxand other compiler flags that are applicable in Nimscript mode. Run flags can be accessed per usual from
- The default
nimble testtask also allows passing compiler flags but given run flags are not really applicable for multiple test binaries, it allows specifying compile flags before or after the
nimble installalso allows passing compiler flags similar to the default
nimble testand no longer requires the
- The Nim compiler to be used by Nimble can now be specified with the
--nimflag. This is useful for debugging purposes.
- Nimble now supports project local dependency mode - if a
nimbledepsdirectory exists within a project, Nimble will use it to store all package dependencies instead of
~/.nimble/bin. This enables isolation of a project and its dependencies from other projects being developed.
-l | --localdepsflag can be used to setup a project in local dependency mode.
- Nimble output can now be suppressed using
- Binaries compiled by Nimble can now be named differently than the source file
namedBintable instead of
bin. In addition, binary names that clash with a
pkgnamedirectory containing .nim files no longer require appending
pkgto the directory.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.11.4...v0.12.0
0.11.4 - 19/05/2020
This is a minor release containing just 2 commits and a few minor bug fixes.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.11.2...v0.11.4
0.11.2 - 02/05/2020
This is a minor release containing just 15 commits. This release brings mostly bug fixes with some minor new features:
==operator can now be used in version requirements.
- Handling of arguments for
nimble runhas been improved.
nimble runcommand can now be used without any arguments if the package has only one binary specified.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.11.0...v0.11.2
0.11.0 - 22/09/2019
This is a major release containing nearly 60 commits. Most changes are bug fixes, but this release also includes a couple new features:
- Binaries can now be built and run using the new
NimblePkgVersionis now defined so you can easily get the package version in your source code (example).
Some other highlights:
- Temporary files are now kept when the
--debugflag is used.
- Fixed dependency resolution issues with "#head" packages (#432 and #672).
installcommand can now take Nim compiler flags via the new
- Command line arguments are now passed properly to tasks (#633).
testcommand now respects the specified backend (#631).
dumpcommand will no longer prompt and now has an implicit
- Fixed bugs with the new nimscript executor (#665).
- Fixed multiple downloads and installs of the same package (#678).
- Nimble init no longer overwrites existing files (#581).
- Fixed incorrect submodule version being pulled when in a non-master branch (#675).
Full changelog: https://github.com/nim-lang/nimble/compare/v0.10.2...v0.11.0
0.10.2 - 03/06/2019
This is a small release which avoids object variant changes that are now
treated as runtime errors (Nim #1286). It also adds support for
Multiple bug fixes are also included:
- Fixed an issue where failing tasks were not returning a non-zero return value (#655).
- Error out if
binis a Nim source file (#597).
- Fixed an issue where nimble task would not run if file of same name exists.
- Fixed an issue that prevented multiple instances of nimble from running on the same package.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.10.0...v0.10.2
0.10.0 - 27/05/2019
Nimble now uses the Nim compiler directly via
nim e to execute nimble
scripts rather than embedding the Nim VM. This has multiple benefits:
- Evolve independently from Nim enabling new versions of Nimble to work with multiple versions of Nim.
- Inherit all nimscript enhancements and bug fixes rather than having to duplicate functionality.
- Fast build time and smaller binary.
- No dependency on the compiler package which could cause dependency issues when nimble is used as a package.
Several other features and fixes have been implemented to improve general development and test workflows.
nimble testnow sports a
-cflag that allows tests to continue on failure, removes all created test binaries on completion and warns if no tests found.
nimble uninstallto remove all dependent packages during uninstall.
- Added documentation on the usage of a custom
- Package type interactive prompt is more readable.
- Save temporary files in a per-user temp dir to enable Nimble on multi-user systems.
- CTRL-C is now handled correctly in interactive prompts.
- Fixed issue where empty package list led to error.
- Fixed issue where file:// was prepended incorrectly.
- Fixed miscellaneous issues in version parsing, Github auth and briefClone.
- Miscellaneous cleanup of deprecated procs.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.9.0...v0.10.0
0.9.0 - 19/09/2018
This is a major new release which contains at least one breaking change. Unfortunately even though it was planned, support for lock files did not make it into this release. The release does however contain a large number of fixes spread across 57 commits.
The breaking change in this release is to do with the handling of binary
package. Any package that specifies a
bin value in it's .nimble file
will no longer install any Nim source code files, in other words it's not
going to be a hybrid package by default. This means that so called "hybrid
packages" now need to specify
installExt = @["nim"] in their metadata,
otherwise they will become binary packages only.
- Breaking: hybrid packages require
installExt = @["nim"](Commit)
initcommand can now show a list of choices for information such as the license.
initcommand now creates correct project structures for all package types.
- Fatal errors are no longer created when the path inside a .nimble-link file doesn't exist.
developcommand now always clones HEAD and grabs the full repo history.
- The default
testtask no longer executes all tests (only those starting with 't').
- Colour is no longer used when
publishnow shows the URL of the created PR.
getPkgDirprocedure has been fixed in the Nimble file API.
- Improved handling of proxy environment variables.
- Codebase has been improved not to rely on
nilin strings and seqs.
- The handling of pre- and post-hooks has been improved significantly.
- Fixed the
pathcommand for packages with a
srcDirand optimised the package look-up.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.8.10...v0.9.0
0.8.10 - 23/02/2018
The first release of 2018! Another fairly big release containing 40 commits. This release fixes many issues, with most being fixed by our brilliant contributors. Thanks a lot everyone!
One big new feature is the new support for multiple Nimble packages in a single
Git/Hg repository. You can now specify
?subdir=<dir> at the end of your
repo's URL and Nimble will know to look in
<dir> for your package.
- Implemented support for multi-package repos. See #421 for the relevant issue.
- Better error message when the user has an outdated stdlib version that confuses Nimble
- The validity of a Nimble package can now be checked using the new
- Nimble no longer silently ignores an erroneous '@' in for example
nimble install compiler@.
- Issues with the
nimble pathcommand have been fixed.
nimble publishcommand has been improved and stabilised.
- Messages for the
NIM_LIB_PREFIXenv var have been improved.
before installis now called when packages are installed by their name. See #280.
- Fixed issue with
nimble init. See #446.
- Nimble now rejects reserved names on Windows.
NIMBLE_DIRenvironment variable is now supported, in addition to the command line flag and config setting.
initcommand has been improved significantly.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.8.8...v0.8.10
0.8.8 - 03/09/2017
This is a relatively big release containing 57 commits, with multiple new features and many bug fixes.
- Implemented the
developcommand. See readme for details.
- Implemented a default
testtask for packages that don't define it.
- Lowered the memory consumption in cases where a package contained many files.
- Nimble now accepts .nimble symlinks.
- Locally stored package list files can now be specified in the Nimble config.
- Fixed branch checkout and handling of branch names with dashes.
- Improved URL detection in
- Fixed many issues related to binary management. Packages are now resymlinked when an newer version is removed. (#331)
- Fixed issues with CLI arg passing to the Nim compiler. (#351)
- Improved performance of
- Fixed issue where warnings weren't suppressed for some commands. (#290)
- Special versions other than
#headare no longer considered to be newest.
- Improves the reverse dependency lookup by cross checking it with the installed list of packages. (#287)
Full changelog: https://github.com/nim-lang/nimble/compare/v0.8.6...v0.8.8
0.8.6 - 05/05/2017
Yet another point release which includes various bug fixes and improvements.
- Improves heuristic for finding Nim standard library to support choosenim
installations and adds ability to override it via
--noColoroption to remove color from the output.
- Fixes bug when
srcDircontains trailing slash.
- Fixes failure when
-dflag is passed to
- Show raw output for certain commands.
- GitHub API token can now be specified via the
- GitHub API token is now stored in
~/.nimble/api_tokenso that it doesn't need to be specified each time.
- Fixes multiple flags not being passed in Nimble task.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.8.4...v0.8.6
0.8.4 - 29/01/2017
Another bug fix release which resolves problems related to stale nimscriptapi
files in /tmp/, no compilation output when
nimble build fails, and issues
with the new package validation on Windows.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.8.2...v0.8.4
0.8.2 - 08/01/2017
This is a small bug fix release which resolves problems with the installation of Aporia (and likely other Nimble packages).
0.8.0 - 05/01/2017
This is a large release containing multiple new features and many bug fixes.
- Implemented a completely new output system.
- Supports different message types and priorities. Each is differently encoded using a color and a brightness.
- The amount of messages shown can be changed by using the new
--debugflags, by default only high priority messages are shown.
- Duplicate warnings are filtered out to prevent too much noise.
- Package namespaces are now validated. You will see a warning whenever an incorrectly namespaced package is read by Nimble, this can occur either during installation or when the installed package database is being loaded. The namespacing rules are described in Nimble's readme. Consider these warnings to be unstable, if you see something that you think is incorrect please report it.
- Special version dependencies are now installed into a directory with that
special version in its name. For example,
compiler@#headwill be installed into
~/.nimble/pkgs/compiler-#head. This reduces the amount of redundant installs. See #88 for more information.
- External dependencies can now be specified in .nimble files. Nimble doesn't install these, but does instruct the user on how they can be installed. More information about this feature can be found in the readme.
- Nimble now supports package aliases in the packages.json files.
- Fixed regression that caused transitive dependencies to not be installed.
- Fixed problem with
installcommand when a
srcdirectory is present in the current directory.
- Improved quoting of process execution arguments.
- Many improvements to custom
--nimbleDirhandling. All commands should now support it correctly.
nimble -vwill no longer read the Nimble config before displaying the version.
- Refresh command now supports a package list name as argument.
- Fixes issues with symlinks not being removed correctly.
- Changed the way the
dumpcommand locates the .nimble file.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.7.10...v0.8.0
Full list of issues which have been closed: https://github.com/nim-lang/nimble/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%222016-10-09+..+2017-01-05%22+
0.7.10 - 09/10/2016
This release includes multiple bug fixes.
- Reverted patch that breaks binary stubs in Git Bash on Windows.
nimscriptapi.nimfile is now statically compiled into the binary. This should fix the "could not find nimscriptapi.nim" errors. The file can still be overriden by placing a file named
nimblepkgdirectory that is placed alongside the Nimble binary, or by a
~/.nimble/pkgs/nimble-ver/nimblepkg/. For more information see the code that looks for this file.
- Nim files can now be imported in .nimble nimscript files. (Issue #186)
- Requiring a specific git commit hash no longer fails. (Issue #129)
Full changelog: https://github.com/nim-lang/nimble/compare/v0.7.8...v0.7.10
0.7.8 - 28/09/2016
This is a hotfix release which fixes crashes when Nimble (or Nim) is installed
C:\Program Files or other paths with spaces in them.
0.7.6 - 26/09/2016
This is a small release designed to coincide with the release of Nim 0.15.0.
- Fixes compilation on 0.15.0.
- Fixes #239.
- Fixes #215.
- VCS information is now stored in the Nimble package metadata.
0.7.4 - 06/06/2016
This release is mainly a bug fix release. The installation problems introduced by v0.7.0 should now be fixed.
- Fixed symlink install issue (Thank you @yglukhov).
- Fixed permission issue when installing packages (Thank you @SSPkrolik).
- Work around for issue #204. (Thank you @Jeff-Ciesielski).
- Fixed FD leak. (Thank you @yglukhov).
- Implemented the
--depsOnlyoption for the
- Various fixes to installation/nimscript support problems introduced by v0.7.0.
Full changelog: https://github.com/nim-lang/nimble/compare/v0.7.2...v0.7.4
0.7.2 - 11/02/2016
This is a hotfix release which alleviates problems when building Nimble.
See Issue #203 for more information.
0.7.0 - 30/12/2015
This is a major release.
Significant changes include NimScript support, configurable package list
URLs, a new
publish command, the removal of the dependency on
OpenSSL, and proxy support. More detailed list of changes follows:
chcpon Windows XP and Windows Vista (Thank you @vegansk).
- Fixed incorrect command line processing (Issue #151)
- Removed advertising clause from license (Issue #153)
publishcommand (Thank you for taking the initiative @Araq)
- Implemented NimScript support. Nimble now import a portion of the Nim compiler source code for this. (Thank you for taking the initiative @Araq)
- Fixes incorrect logic for finding the Nim executable (Issue #125).
- Renamed the
updatecommand will mean something else soon! (Issue #158)
- Improvements to the
initcommand. (Issue #96)
- Package names must now officially be valid Nim identifiers. Package's with dashes in particular will become invalid in the next version. Warnings are shown now but the next version will show an error. (Issue #126)
- Added error message when no build targets are present. (Issue #108)
- Implemented configurable package lists. Including fallback URLs (Issue #75).
- Removed the OpenSSL dependency (Commit ec96ee7)
- Implemented proxy support. This can be configured using the
https_proxyenvironment variables or Nimble's configuration (Issue #86).
- Fixed issues with reverse dependency storage (Issue #113 and #168).
Full changelog: https://github.com/nim-lang/nimble/compare/v0.6.2...v0.7.0
0.6.4 - 30/12/2015
This is a hotfix release fixing compilation with Nim 0.12.0.
See Issue #180 for more info.
0.6.2 - 19/06/2015
binDiroption to specify where the build output should be placed (Thank you @minciue).
- Fixed deprecated code (Thank you @lou15b).
- Fixes to old
.babelfolder handling (Thank you @ClementJnc).
- Added ability to list only the installed packages via
nimble list --installed(Thank you @hiteshjasani.
- Fixes compilation with Nim v0.11.2 (Thank you @JCavallo).
- Implements the
--nimbleDiroption (Thank you @ClementJnc).
nimble uninstallnot giving an error when no package name is specified (Thank you @dom96).
- When installing and building
a tagged version of a package fails, Nimble will
now attempt to install and build the
#headof the repo (Thank you @dom96).
- Fixed cloning of git repositories with non-standard default branches (Thank you @dom96).
Full changelog: https://github.com/nim-lang/nimble/compare/v0.6...v0.6.2
0.6.0 - 26/12/2014
- Renamed from Babel to Nimble
- Introduces compatibility with Nim v0.10.0+
- Implemented the
initcommand which generates a .nimble file for new projects. (Thank you @singularperturbation)
- Improved cloning of git repositories. (Thank you @gradha)
pathcommand issues (Thank you @gradha)
- Fixes problems with symlinking when there is a space in the path. (Thank you @philip-wernersbach)
- The code page will now be changed when executing Nimble binary packages. This adds support for Unicode in cmd.exe (#54).
.cmdfiles are now used in place of
.batfiles. Shell files for Cygwin/Git bash are also now created.
0.4.0 - 24/06/2014
- Introduced the ability to delete packages.
- When installing packages, a list of files which have been copied is stored in the babelmeta.json file.
- When overwriting an already installed package babel will no longer delete the whole directory but only the files which it installed.
- Versions are now specified on the command line after the '@' character when
installing and uninstalling packages. For example:
babel install email@example.com
babel install foobar@#head.
- The babel package installation directory can now be changed in the new config.
- Fixes a number of issues.