Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add NO_COLOR support to disable color output #137

merged 1 commit into from May 24, 2021


Copy link

@fatih fatih commented May 13, 2021

This PR adds support for the environment variable NO_COLOR. If set
(regardless of its value), the colors package disables color output.
For more information about this environment variable, please check out
this website:

closes: #136

This PR adds support for the enviroment variable `NO_COLOR`. If set
(regardless of its value), the `colors` package disables color output.
For more information about this environment variable please checkout
this website:

closes: #136
bl-ue approved these changes May 13, 2021
eitah approved these changes May 23, 2021
Copy link

@bl-ue bl-ue commented May 24, 2021

Wow, huge mess 😝

aviator-app bot pushed a commit to airplanedev/cli that referenced this issue Sep 30, 2021
[![WhiteSource Renovate](](

This PR contains the following updates:

| Package | Type | Update | Change |
| []( | require | minor | `v2.2.9` -> `v2.3.2` |
| []( | require | patch | `v20.10.5+incompatible` -> `v20.10.8` |
| []( | require | minor | `v0.12.28` -> `v0.13.3` |
| []( | require | minor | `v1.10.0` -> `v1.13.0` |
| []( | require | minor | `v5.2.0` -> `v5.4.2` |
| []( | require | minor | `v4.0.0` -> `v4.1.0` |
| []( | require | minor | `v1.9.0` -> `v1.10.0` |
| []( | require | minor | `v1.3.0` -> `v1.4.0` |
| []( | require | patch | `v0.0.12` -> `v0.0.14` |
| []( | require | minor | `v1.3.1` -> `v1.4.2` |
| []( | require | minor | `v1.1.3` -> `v1.2.1` |
| []( | require | minor | `v1.6.1` -> `v1.7.0` |
| []( | require | minor | `v3.1.0` -> `v3.2.0` |


### Release Notes


### [`v2.3.2`](

[Compare Source](

### [`v2.3.1`](

[Compare Source](

### [`v2.3.0`](

[Compare Source](

### [`v2.2.16`](

[Compare Source](

### [`v2.2.15`](

[Compare Source](

### [`v2.2.14`](

[Compare Source](

### [`v2.2.13`](

[Compare Source](

### [`v2.2.12`](

[Compare Source](

### [`v2.2.11`](

[Compare Source](

### [`v2.2.10`](

[Compare Source](



### [`v20.10.8`](

[Compare Source](

#### 20.10.8

> Due to [net/http changes]( in [Go 1.16](, HTTP proxies configured through the `$HTTP_PROXY` environment variable are no longer used for TLS (`https://`) connections. Make sure you also set an `$HTTPS_PROXY` environment variable for handling requests to `https://` URLs. Refer to the [HTTP/HTTPS proxy section in the documentation]( to learn how to configure the Docker Daemon to use a proxy server.

##### Deprecation

-   Deprecate support for encrypted TLS private keys. Legacy PEM encryption as
    specified in RFC 1423 is insecure by design. Because it does not authenticate
    the ciphertext, it is vulnerable to padding oracle attacks that can let an
    attacker recover the plaintext. Support for encrypted TLS private keys is now
    marked as deprecated, and will be removed in an upcoming release. [docker/cli#&#8203;3219](
-   Deprecate Kubernetes stack support. Following the deprecation of [Compose on Kubernetes](,
    support for Kubernetes in the `stack` and `context` commands in the Docker CLI
    is now marked as deprecated, and will be removed in an upcoming release [docker/cli#&#8203;3174](

##### Client

-   Fix `Invalid standard handle identifier` errors on Windows [docker/cli#&#8203;3132](

##### Rootless

-   Avoid `can't open lock file /run/xtables.lock: Permission denied` error on
    SELinux hosts [moby/moby#&#8203;42462](
-   Disable overlay2 when running with SELinux to prevent permission denied errors [moby/moby#&#8203;42462](
-   Fix `x509: certificate signed by unknown authority` error on openSUSE Tumbleweed [moby/moby#&#8203;42462](

##### Runtime

-   Print a warning when using the `--platform` option to pull a single-arch image
    that does not match the specified architecture [moby/moby#&#8203;42633](
-   Fix incorrect `Your kernel does not support swap memory limit` warning when
    running with cgroups v2 [moby/moby#&#8203;42479](
-   Windows: Fix a situation where containers were not stopped if `HcsShutdownComputeSystem`
    returned an `ERROR_PROC_NOT_FOUND` error [moby/moby#&#8203;42613](

#### Swarm

-   Fix a possibility where overlapping IP addresses could exist as a result of the
    node failing to clean up its old loadbalancer IPs [moby/moby#&#8203;42538](
-   Fix a deadlock in log broker ("dispatcher is stopped") [moby/moby#&#8203;42537](

##### Packaging

> **Known issue**
> The `ctr` binary shipping with the static packages of this release is not
> statically linked, and will not run in Docker images using alpine as a base
> image. Users can install the `libc6-compat` package, or download a previous
> version of the `ctr` binary as a workaround. Refer to the containerd ticket
> related to this issue for more details: [containerd/containerd#&#8203;5824](

-   Remove packaging for Ubuntu 16.04 "Xenial" and Fedora 32, as they reached EOL [docker/docker-ce-packaging#&#8203;560](
-   Update Golang runtime to Go 1.16.6
-   Update the bundled buildx version to v0.6.1 for rpm and deb packages [docker/docker-ce-packaging#&#8203;562](
-   Update static binaries and rpm and deb packages to containerd v1.4.9 and runc v1.0.1: [docker/containerd-packaging#&#8203;241](, [docker/containerd-packaging#&#8203;245](, [docker/containerd-packaging#&#8203;247](

### [`v20.10.7`](

[Compare Source](

#### 20.10.7

##### Client

-   Suppress warnings for deprecated cgroups [docker/cli#&#8203;3099](
-   Prevent sending `SIGURG` signals to container on Linux and macOS. The Go runtime
    (starting with Go 1.14) uses `SIGURG` signals internally as an interrupt to
    support preemptable syscalls. In situations where the Docker CLI was attached
    to a container, these interrupts were forwarded to the container. This fix
    changes the Docker CLI to ignore `SIGURG` signals [docker/cli#&#8203;3107](,

##### Builder

-   Update BuildKit to version v0.8.3-3-g244e8cde [moby/moby#&#8203;42448](
    -   Transform relative mountpoints for exec mounts in the executor to work around
        a breaking change in runc v1.0.0-rc94 and up. [moby/buildkit#&#8203;2137](
    -   Add retry on image push 5xx errors. [moby/buildkit#&#8203;2043](
    -   Fix build-cache not being invalidated when renaming a file that is copied using
        a `COPY` command with a wildcard. Note that this change invalidates
        existing build caches for copy commands that use a wildcard. [moby/buildkit#&#8203;2018](
    -   Fix build-cache not being invalidated when using mounts [moby/buildkit#&#8203;2076](
-   Fix build failures when `FROM` image is not cached when using legacy schema 1 images [moby/moby#&#8203;42382](

##### Logging

-   Update the hcsshim SDK to make daemon logs on Windows less verbose [moby/moby#&#8203;42292](

##### Rootless

-   Fix capabilities not being honored when an image was built on a daemon with
    user-namespaces enabled [moby/moby#&#8203;42352](

##### Networking

-   Update libnetwork to fix publishing ports on environments with kernel boot
    parameter `ipv6.disable=1`, and to fix a deadlock causing internal DNS lookups
    to fail [moby/moby#&#8203;42413](

##### Contrib

-   Update rootlesskit to v0.14.2 to fix a timeout when starting the userland proxy
    with the `slirp4netns` port driver [moby/moby#&#8203;42294](
-   Fix "Device or resource busy" errors when running docker-in-docker on a rootless
    daemon [moby/moby#&#8203;42342](

##### Packaging

-   Update containerd to v1.4.6, runc v1.0.0-rc95 to address [CVE-2021-30465](
    [moby/moby#&#8203;42398](, [moby/moby#&#8203;42395](,
-   Update containerd to v1.4.5, runc v1.0.0-rc94 [moby/moby#&#8203;42372](,
    [moby/moby#&#8203;42388](, [docker/containerd-packaging#&#8203;232](
-   Update Docker Scan plugin packages (`docker-scan-plugin`) to v0.8 [docker/docker-ce-packaging#&#8203;545](

### [`v20.10.6`](

[Compare Source](

release notes:[#&#8203;20106](



### [`v0.13.3`](

[Compare Source](

-   Support TypeScript type-only import/export specifiers ([#&#8203;1637](

    This release adds support for a new TypeScript syntax feature in the upcoming version 4.5 of TypeScript. This feature lets you prefix individual imports and exports with the `type` keyword to indicate that they are types instead of values. This helps tools such as esbuild omit them from your source code, and is necessary because esbuild compiles files one-at-a-time and doesn't know at parse time which imports/exports are types and which are values. The new syntax looks like this:

    // Input TypeScript code
    import { type Foo } from 'foo'
    export { type Bar }

    // Output JavaScript code (requires "importsNotUsedAsValues": "preserve" in "tsconfig.json")
    import {} from "foo";
    export {};

    See [microsoft/TypeScript#&#8203;45998]( for full details. From what I understand this is a purely ergonomic improvement since this was already previously possible using a type-only import/export statements like this:

    // Input TypeScript code
    import type { Foo } from 'foo'
    export type { Bar }
    import 'foo'
    export {}

    // Output JavaScript code (requires "importsNotUsedAsValues": "preserve" in "tsconfig.json")
    import "foo";
    export {};

    This feature was contributed by [@&#8203;g-plane](

### [`v0.13.2`](

[Compare Source](

-   Fix `export {}` statements with `--tree-shaking=true` ([#&#8203;1628](

    The new `--tree-shaking=true` option allows you to force-enable tree shaking in cases where it wasn't previously possible. One such case is when bundling is disabled and there is no output format configured, in which case esbuild just preserves the format of whatever format the input code is in. Enabling tree shaking in this context caused a bug where `export {}` statements were stripped. This release fixes the bug so `export {}` statements should now be preserved when you pass `--tree-shaking=true`. This bug only affected this new functionality and didn't affect existing scenarios.

### [`v0.13.1`](

[Compare Source](

-   Fix the `esbuild` package in yarn 2+

    The [yarn package manager]( version 2 and above has a mode called [PnP]( that installs packages inside zip files instead of using individual files on disk, and then hijacks node's `fs` module to pretend that paths to files inside the zip file are actually individual files on disk so that code that wasn't written specifically for yarn still works. Unfortunately that hijacking is incomplete and it still causes certain things to break such as using these zip file paths to create a JavaScript worker thread or to create a child process.

    This was an issue for the new `optionalDependencies` package installation strategy that was just released in version 0.13.0 since the binary executable is now inside of an installed package instead of being downloaded using an install script. When it's installed with yarn 2+ in PnP mode the binary executable is inside a zip file and can't be run. To work around this, esbuild detects yarn's PnP mode and copies the binary executable to a real file outside of the zip file.

    Unfortunately the code to do this didn't create the parent directory before writing to the file path. That caused esbuild's API to crash when it was run for the first time. This didn't come up during testing because the parent directory already existed when the tests were run. This release changes the location of the binary executable from a shared cache directory to inside the esbuild package itself, which should fix this crash. This problem only affected esbuild's JS API when it was run through yarn 2+ with PnP mode active.

### [`v0.13.0`](

[Compare Source](

**This release contains backwards-incompatible changes.** Since esbuild is before version 1.0.0, these changes have been released as a new minor version to reflect this (as [recommended by npm]( You should either be pinning the exact version of `esbuild` in your `package.json` file or be using a version range syntax that only accepts patch upgrades such as `~0.12.0`. See the documentation about [semver]( for more information.

-   Allow tree shaking to be force-enabled and force-disabled ([#&#8203;1518](, [#&#8203;1610](, [#&#8203;1611](, [#&#8203;1617](

    This release introduces a breaking change that gives you more control over when tree shaking happens ("tree shaking" here refers to declaration-level dead code removal). Previously esbuild's tree shaking was automatically enabled or disabled for you depending on the situation and there was no manual override to change this. Specifically, tree shaking was only enabled either when bundling was enabled or when the output format was set to `iife` (i.e. wrapped in an immediately-invoked function expression). This was done to avoid issues with people appending code to output files in the `cjs` and `esm` formats and expecting that code to be able to reference code in the output file that isn't otherwise referenced.

    You now have the ability to explicitly force-enable or force-disable tree shaking to bypass this default behavior. This is a breaking change because there is already a setting for tree shaking that does something else, and it has been moved to a separate setting instead. The previous setting allowed you to control whether or not to ignore manual side-effect annotations, which is related to tree shaking since only side-effect free code can be removed as dead code. Specifically you can annotate function calls with `/* @&#8203;__PURE__ */` to indicate that they can be removed if they are not used, and you can annotate packages with `"sideEffects": false` to indicate that imports of that package can be removed if they are not used. Being able to ignore these annotations is necessary because [they are sometimes incorrect]( This previous setting has been moved to a separate setting because it actually impacts dead-code removal within expressions, which also applies when minifying with tree-shaking disabled.

##### Old behavior

    * CLI
        * Ignore side-effect annotations: `--tree-shaking=ignore-annotations`
    * JS
        * Ignore side-effect annotations: `treeShaking: 'ignore-annotations'`
    * Go
        * Ignore side-effect annotations: `TreeShaking: api.TreeShakingIgnoreAnnotations`

##### New behavior

    * CLI
        * Ignore side-effect annotations: `--ignore-annotations`
        * Force-disable tree shaking: `--tree-shaking=false`
        * Force-enable tree shaking: `--tree-shaking=true`
    * JS
        * Ignore side-effect annotations: `ignoreAnnotations: true`
        * Force-disable tree shaking: `treeShaking: false`
        * Force-enable tree shaking: `treeShaking: true`
    * Go
        * Ignore side-effect annotations: `IgnoreAnnotations: true`
        * Force-disable tree shaking: `TreeShaking: api.TreeShakingFalse`
        * Force-enable tree shaking: `TreeShaking: api.TreeShakingTrue`

-   The npm package now uses `optionalDependencies` to install the platform-specific binary executable ([#&#8203;286](, [#&#8203;291](, [#&#8203;319](, [#&#8203;347](, [#&#8203;369](, [#&#8203;547](, [#&#8203;565](, [#&#8203;789](, [#&#8203;921](, [#&#8203;1193](, [#&#8203;1270](, [#&#8203;1382](, [#&#8203;1422](, [#&#8203;1450](, [#&#8203;1485](, [#&#8203;1546](, [#&#8203;1547](, [#&#8203;1574](, [#&#8203;1609](

    This release changes esbuild's installation strategy in an attempt to improve compatibility with edge cases such as custom registries, custom proxies, offline installations, read-only file systems, or when post-install scripts are disabled. It's being treated as a breaking change out of caution because it's a significant change to how esbuild works with JS package managers, and hasn't been widely tested yet.

    **The old installation strategy** manually downloaded the correct binary executable in a [post-install script]( The binary executable is hosted in a separate platform-specific npm package such as [`esbuild-darwin-64`]( The install script first attempted to download the package via the `npm` command in case npm had custom network settings configured. If that didn't work, the install script attempted to download the package from before giving up. This was problematic for many reasons including:

    -   Not all of npm's settings can be forwarded due to npm bugs such as [](, and npm has said these bugs will never be fixed.
    -   Some people have configured their network environments such that downloading from will hang instead of either succeeding or failing.
    -   The installed package was broken if you used `npm --ignore-scripts` because then the post-install script wasn't run. Some people enable this option so that malicious packages must be run first before being able to do malicious stuff.

    **The new installation strategy** automatically downloads the correct binary executable using npm's `optionalDependencies` feature to depend on all esbuild packages for all platforms but only have the one for the current platform be installed. This is a built-in part of the package manager so my assumption is that it should work correctly in all of these edge cases that currently don't work. And if there's an issue with this, then the problem is with the package manager instead of with esbuild so this should hopefully reduce the maintenance burden on esbuild itself. Changing to this installation strategy has these drawbacks:

    -   Old versions of certain package managers (specifically npm and yarn) print lots of useless log messages during the installation, at least one for each platform other than the current one. These messages are harmless and can be ignored. However, they are annoying. There is nothing I can do about this. If you have this problem, one solution is to upgrade your package manager to a newer version.

    -   Installation will be significantly slower in old versions of npm, old versions of pnpm, and all versions of yarn. These package managers download all packages for all platforms even though they aren't needed and actually cannot be used. This problem has been fixed in npm and pnpm and the problem has been communicated to yarn: []( If you have this problem, one solution is to use a newer version of npm or pnpm as your package manager.

    -   This installation strategy does not work if you use `npm --no-optional` since then the package with the binary executable is not installed. If you have this problem, the solution is to not pass the `--no-optional` flag when installing packages.

    -   There is still a small post-install script but it's now optional in that the `esbuild` package should still function correctly if post-install scripts are disabled (such as with `npm --ignore-scripts`). This post-install script optimizes the installed package by replacing the `esbuild` JavaScript command shim with the actual binary executable at install time. This avoids the overhead of launching another `node` process when using the `esbuild` command. So keep in mind that installing with `--ignore-scripts` will result in a slower `esbuild` command.

    Despite the drawbacks of the new installation strategy, I believe this change is overall a good thing to move forward with. It should fix edge case scenarios where installing esbuild currently doesn't work at all, and this only comes at the expense of the install script working in a less-optimal way (but still working) if you are using an old version of npm. So I'm going to switch installation strategies and see how it goes.

    The platform-specific binary executables are still hosted on npm in the same way, so anyone who wrote code that downloads builds from npm using the instructions here should not have to change their code: However, note that these platform-specific packages no longer specify the `bin` field in `package.json` so the `esbuild` command will no longer be automatically put on your path. The `bin` field had to be removed because of a collision with the `bin` field of the `esbuild` package (now that the `esbuild` package depends on all of these platform-specific packages as optional dependencies).

In addition to the breaking changes above, the following features are also included in this release:

-   Treat `x` guarded by `typeof x !== 'undefined'` as side-effect free

    This is a small tree-shaking (i.e. dead code removal) improvement. Global identifier references are considered to potentially have side effects since they will throw a reference error if the global identifier isn't defined, and code with side effects cannot be removed as dead code. However, there's a somewhat-common case where the identifier reference is guarded by a `typeof` check to check that it's defined before accessing it. With this release, code that does this will now be considered to have no side effects which allows it to be tree-shaken:

    // Original code
    var __foo = typeof foo !== 'undefined' && foo;
    var __bar = typeof bar !== 'undefined' && bar;

    // Old output (with --bundle, which enables tree-shaking)
    var __foo = typeof foo !== 'undefined' && foo;
    var __bar = typeof bar !== 'undefined' && bar;

    // New output (with --bundle, which enables tree-shaking)
    var __bar = typeof bar !== 'undefined' && bar;

### [`v0.12.29`](

[Compare Source](

-   Fix compilation of abstract class fields in TypeScript ([#&#8203;1623](

    This release fixes a bug where esbuild could incorrectly include a TypeScript abstract class field in the compiled JavaScript output. This is incorrect because the official TypeScript compiler never does this. Note that this only happened in scenarios where TypeScript's `useDefineForClassFields` setting was set to `true` (or equivalently where TypeScript's `target` setting was set to `ESNext`). Here is the difference:

    // Original code
    abstract class Foo {
      abstract foo: any;

    // Old output
    class Foo {

    // New output
    class Foo {

-   Proxy from the `__require` shim to `require` ([#&#8203;1614](

    Some background: esbuild's bundler emulates a CommonJS environment. The bundling process replaces the literal syntax `require(<string>)` with the referenced module at compile-time. However, other uses of `require` such as `require(someFunction())` are not bundled since the value of `someFunction()` depends on code evaluation, and esbuild does not evaluate code at compile-time. So it's possible for some references to `require` to remain after bundling.

    This was causing problems for some CommonJS code that was run in the browser and that expected `typeof require === 'function'` to be true (see [#&#8203;1202](, since the browser does not provide a global called `require`. Thus esbuild introduced a shim `require` function called `__require` (shown below) and replaced all references to `require` in the bundled code with `__require`:

    var __require = x => {
      if (typeof require !== 'undefined') return require(x);
      throw new Error('Dynamic require of "' + x + '" is not supported');

    However, this broke code that referenced `require.resolve` inside the bundle, which could hypothetically actually work since you could assign your own implementation to `window.require.resolve` (see [#&#8203;1579]( So the implementation of `__require` was changed to this:

    var __require = typeof require !== 'undefined' ? require : x => {
      throw new Error('Dynamic require of "' + x + '" is not supported');

    However, that broke code that assigned to `window.require` later on after the bundle was loaded ([#&#8203;1614]( So with this release, the code for `__require` now handles all of these edge cases:

    -   `typeof require` is still `function` even if `window.require` is undefined
    -   `window.require` can be assigned to either before or after the bundle is loaded
    -   `require.resolve` and arbitrary other properties can still be accessed
    -   `require` will now forward any number of arguments, not just the first one

    Handling all of these edge cases is only possible with the [Proxy API]( So the implementation of `__require` now looks like this:

    var __require = (x =>
      typeof require !== 'undefined' ? require :
      typeof Proxy !== 'undefined' ? new Proxy(x, {
        get: (a, b) => (typeof require !== 'undefined' ? require : a)[b]
      }) : x
    )(function(x) {
      if (typeof require !== 'undefined') return require.apply(this, arguments);
      throw new Error('Dynamic require of "' + x + '" is not supported');

-   Consider `typeof x` to have no side effects

    The `typeof` operator does not itself trigger any code evaluation so it can safely be removed if evaluating the operand does not cause any side effects. However, there is a special case of the `typeof` operator when the operand is an identifier expression. In that case no reference error is thrown if the referenced symbol does not exist (e.g. `typeof x` does not throw an error if there is no symbol named `x`). With this release, esbuild will now consider `typeof x` to have no side effects even if evaluating `x` would have side effects (i.e. would throw a reference error):

    // Original code
    var unused = typeof React !== 'undefined';

    // Old output
    var unused = typeof React !== 'undefined';

    // New output

    Note that there is actually an edge case where `typeof x` *can* throw an error: when `x` is being referenced inside of its TDZ, or temporal dead zone (i.e. before it's declared). This applies to `let`, `const`, and `class` symbols. However, esbuild doesn't currently handle TDZ rules so the possibility of errors thrown due to TDZ rules is not currently considered. This typically doesn't matter in real-world code so this hasn't been a priority to fix (and is actually tricky to fix with esbuild's current bundling approach). So esbuild may incorrectly remove a `typeof` expression that actually has side effects. However, esbuild already incorrectly did this in previous releases so its behavior regarding `typeof` and TDZ rules hasn't changed in this release.



### [`v1.13.0`](

[Compare Source](

This release updates the following dependencies: v0.1.9 v0.0.14

### [`v1.12.0`](

[Compare Source](

This release adds support for the `NO_COLOR`. For more information check out: The pull request adding this change is: [](

### [`v1.11.0`](

[Compare Source](

This release removes the `vendor/` folder introduced by the PR: [](



### [`v5.4.2`](

[Compare Source](

#### Change Log

-   Revert "plumbing: format/packfile, prevent large objects from being read into memory completely ([#&#8203;303]( ([`da81027`](

### [`v5.4.1`](

[Compare Source](

#### Change Log

-   remote: patch default timeout for List from 600ms to 10s ([#&#8203;321](

### [`v5.4.0`](

[Compare Source](

#### Change Log

-   Repository: test, use raw string to avoid double-escape [#&#8203;288]( ([jeffwidman](
-   Remote: new ListContext function [#&#8203;278]( ([xiujuan95](
-   Remote: add support for deepening shallow clones [#&#8203;311]( ([marwatk](
-   Submodele, fetch submodules pointing to orphaned but still reachable commits [#&#8203;284]( ([edigaryev](
-   plumbing: object/patch, printStat strings.Repeat cause panic [#&#8203;310]( ([cookeem](
-   plumbing: format/packfile, prevent large objects from being read into memory completely [#&#8203;303]( ([zeripath](
-   plumbing: transport/ssh, support more formats in `NewPublicKeys` SSH helper [#&#8203;298]( ([hiddeco](
-   \*: replace by [#&#8203;283]( ([johanfleury](
-   \*: typo fixes [#&#8203;291]( ([jeffwidman](
-   \*: minor doc fixes [#&#8203;287]( ([jeffwidman](
-   \*: remove unused unexported const [#&#8203;286]( ([jeffwidman](

### [`v5.3.0`](

[Compare Source](

#### Change Log

-   transport: ssh, fix cloning large repositories [#&#8203;272]( ([dcu](
-   diff: Allow srcPrefix and dstPrefix to be configured [#&#8203;265]( ([yabberyabber](
-   Remote: add RequireRemoteRefs to PushOptions [#&#8203;258]( ([asuffield](
-   plumbing: gitignore, Fix gitconfig path in LoadSystemPatterns doc [#&#8203;256]( ([andrewarchi](
-   plumbing: wire up contexts for Transport.AdvertisedReferences [#&#8203;246]( ([asuffield](
-   worktree: Don't remove root directory when cleaning [#&#8203;230]( ([hansmi](
-   \*: add insecureSkipTLS and cabundle [#&#8203;228]( ([StrongMonkey](
-   git: worktree_commit, just store objects not already stored [#&#8203;224]( ([jsteuer](
-   plumbing: packp: adding "object-format" and "filter" capabilities [#&#8203;222]( ([rofc](
-   Submodule: fix relative submodule resolution [#&#8203;195]( ([adracus](
-   git: worktree, Support relative submodule URL. [#&#8203;184]( ([mikyk10](
-   config: add init.defaultBranch to the config [#&#8203;178]( ([tomlazar](
-   config: support insteadOf for remotes' URLs [#&#8203;79]( ([kostyay](



### [`v4.1.0`](

[Compare Source](

-   Adds support for go1.17 ([#&#8203;89](
-   Adds RFC7519-compliant `RegisteredClaims` struct ([#&#8203;15]( Use this instead of `StandardClaims` (deprecated but not removed).
-   Adds generic `crypto.Signer` for `ed25519.PublicKey` ([#&#8203;95](
-   Adds regular code scanning ([#&#8203;101](
-   Corrects "exp" logic to conform to ([#&#8203;86](
-   Adds additional parsing tests ([#&#8203;106](
-   Changed error string ([#&#8203;97](
-   Various Code fixes and cleanup ([#&#8203;53](, [#&#8203;83](, [#&#8203;102](, [#&#8203;103](



### [`v1.10.0`](

[Compare Source](

<!-- Optional: add a release summary here -->

New release after long time (sorry, I was burnout).

Main points in this release:

-   Thanks to the contributors four new languages substitution was added (French, Norwegian Nynorsk, Dutch (Flemish) and Slovenian). Thank you!
-   Forked to with added fix for handling Unicode U+10000. More Unicode characters handling will be added in the future.

##### 🚀 New features and improvements

-   Adding french language ([#&#8203;48]( by [@&#8203;fraiss-c](
-   Add Norwegian language subs ([#&#8203;50]( by [@&#8203;marcusirgens](
-   Added Slovenian substitutions and tests ([#&#8203;52]( by [@&#8203;stefanb](
-   Remove forcing of go version 1.13 in modules ([#&#8203;42]( by [@&#8203;matrixik](

##### 🐛 Bug Fixes

-   Change to gosimple/unidecode fork ([#&#8203;56]( by [@&#8203;matrixik]( (this will fix panic reported in [#&#8203;53](

##### 🧰 Maintenance

-   Update README and always run tests on master ([#&#8203;58]( by [@&#8203;matrixik](
-   Fix langs alphabetic order in the code ([#&#8203;57]( by [@&#8203;matrixik](
-   Fix running tests in github workflow ([#&#8203;55]( by [@&#8203;matrixik](
-   Add github workflow files and remove travis ([#&#8203;54]( by [@&#8203;matrixik](



### [`v1.4.0`](

[Compare Source](

![It's been a long road](

Sorry all, it's been a long time between releases. I have small children now!

Biggest changes are:
[#&#8203;133]( Fix missing newline on exported files [@&#8203;gnarlex](
[#&#8203;109]( Export ints without quotes [@&#8203;mniak](
[#&#8203;70]( Support keynames starting with export [@&#8203;hairyhenderson](

I'll try and come back and amend the release with other PR contributors, but thank you to everyone who sent patches in.

Next release will include multiline variables.



### [`v0.0.14`](

[Compare Source](

### [`v0.0.13`](

[Compare Source](



### [`v1.4.2`](

[Compare Source](

### [`v1.4.1`](

[Compare Source](

### [`v1.4.0`](

[Compare Source](

### [`v1.3.3`](

[Compare Source](

### [`v1.3.2`](

[Compare Source](



### [`v1.2.1`](

[Compare Source](

##### Bug fixes

-   Quickfix for []( after v1.2.0 where parallel use of the `cmd.RegisterFlagCompletionFunc()` (and subsequent map) now works correctly and flag completions now work again

### [`v1.2.0`](

[Compare Source](

### :stars: v1.2.0 - The completions release

Welcome to v1.2.0 of Cobra! This release focuses on code completions, several critical bug fixes, some documentation updates, and security bumps. Upgrading should be simple but note please take note of the introduction of completions V2 and their default use. The v1 completions library is still available, but will be *deprecated* in the future. Please open an issue with any problems!


#### New Features

-   Automatically adds `completion` command for shell completions. If a `completion` command is already provided, uses that instead. This will *automatically* provide shell completions for bash, zsh, fish, and PowerShell  [](
    -   Users can configure the command auto creation:
        -   disable the creation of the completion command
        -   disable completion descriptions
        -   disable the `--no-descriptions` flag for "always on" completion descriptions
-   Introduction of bash completions V2, a uniform completion approach which include completion descriptions. The V1 bash completions are still available *and will be deprecated* in a latter release - [](
    -   Note that projects providing completion through a different command name (say a command named "complete") will continue to use v1 for their own command but will also provide cobra's implicit "completion" command which will use v2, unless of course, these projects take the time to disable the default "completion" command as noted above.
-   Commands now support context being passed to completions - [](
    -   An example can be found here: [](
-   Removed dependency on`mitchellh/go-homedir` in favor of core Go `os.UserHomeDir()` -

#### Bug Fixes

-   Fix trailing whitespace not being handled in powershell completion scripts [](
-   Bash completion variable leak fix [](
-   Fish shell completions correctly ignore trailing empty lines [](
-   PowerShell completions fix for "no file comp directive" - [](
-   Custom completions now correctly handle multiple shorthand flags together - [](
-   zsh completions now correctly handle `ShellDirectiveCompletionNoSpace` and file completion all the time - [](
-   Multiple fixes / improvements to the fish shell support - [](
-   Fix home directory config not loading correctly - [](
-   Fix for `RegisterFlagCompletionFunc` as a global var not working in multi-threaded programs: [](
-   Custom completions correctly do not complete flags after args when interspersed is false [#&#8203;1308](

#### Testing

-   Deprecated Travis CI. Now fully using Github Actions -
-   Added test cases and enhancements (thank you to everyone for taking the time to add tests to your PRs!)
-   Shoutout to [@&#8203;marckhouzam]( and [@&#8203;Luap99]( for their hard work on a cobra command completions testing library. [Check out the repo here!](

#### Security

-   Bump viper to 1.8.1. This corrects several issues with vulnerabilities existing in the dependency tree - [](

#### Other

-   Add PR labeler with pull_request_target to enable tests to run from forks - [](
-   CI using MSYS2 windows machines pull latest - [](
-   Multiple small fixes to spelling / documentation - []( []( [](

**Thank you to *all* our amazing contributors :snake::rocket:**



### [`v1.7.0`](

[Compare Source](

Minor feature improvements and bug fixes



### [`v3.2.0`](

[Compare Source](



### Configuration

📅 **Schedule**: At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help]( if that's undesired.


 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box.


This PR has been generated by [WhiteSource Renovate]( View repository job log [here](
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet

Successfully merging this pull request may close these issues.

3 participants