diff --git a/pkgs/feature-template/{{cookiecutter.base_dir}}/src/{{cookiecutter.feature_id}}/install.sh b/pkgs/feature-template/{{cookiecutter.base_dir}}/src/{{cookiecutter.feature_id}}/install.sh index 02e365ca3..83311a3c1 100644 --- a/pkgs/feature-template/{{cookiecutter.base_dir}}/src/{{cookiecutter.feature_id}}/install.sh +++ b/pkgs/feature-template/{{cookiecutter.base_dir}}/src/{{cookiecutter.feature_id}}/install.sh @@ -148,6 +148,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + {% for pipx_package in cookiecutter.content.pipx %} if [ "${{ pipx_package.display_name | to_screaming_snake_case }}" != "none" ]; then if [ "${{ pipx_package.display_name | to_screaming_snake_case }}" = "latest" ]; then diff --git a/src/angular-cli/devcontainer-feature.json b/src/angular-cli/devcontainer-feature.json index 5cc8ea95b..3dc21a034 100644 --- a/src/angular-cli/devcontainer-feature.json +++ b/src/angular-cli/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Angular CLI", "id": "angular-cli", - "version": "1.1.2", + "version": "1.1.3", "description": "Angular CLI is a command-line interface tool that you use to initialize, develop, scaffold, and maintain Angular applications directly from a command shell.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/angular-cli", "installAfter": [ diff --git a/src/ansible/devcontainer-feature.json b/src/ansible/devcontainer-feature.json index 0c7c8dbd2..07366acec 100644 --- a/src/ansible/devcontainer-feature.json +++ b/src/ansible/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Ansible", "id": "ansible", - "version": "1.1.2", + "version": "1.1.3", "description": "Ansible is a suite of software tools that enables infrastructure as code.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/ansible", "installAfter": [ diff --git a/src/ansible/install.sh b/src/ansible/install.sh index 95e50807e..106527fc5 100644 --- a/src/ansible/install.sh +++ b/src/ansible/install.sh @@ -101,6 +101,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$ANSIBLE" != "none" ]; then if [ "$ANSIBLE" = "latest" ]; then diff --git a/src/aws-cdk/devcontainer-feature.json b/src/aws-cdk/devcontainer-feature.json index 94b36e2d6..b4ede98fd 100644 --- a/src/aws-cdk/devcontainer-feature.json +++ b/src/aws-cdk/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "AWS Cloud Development Kit (AWS CDK)", "id": "aws-cdk", - "version": "1.1.2", + "version": "1.1.3", "description": "AWS CDK is an open-source software development framework to define cloud infrastructure in code and provision it through AWS CloudFormation.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/aws-cdk", "installAfter": [ diff --git a/src/bandit/devcontainer-feature.json b/src/bandit/devcontainer-feature.json index a39e9fd41..dd29cfe51 100644 --- a/src/bandit/devcontainer-feature.json +++ b/src/bandit/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Bandit", "id": "bandit", - "version": "1.1.2", + "version": "1.1.3", "description": "Bandit is a tool designed to find common security issues in Python code.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/bandit", "installAfter": [ diff --git a/src/bandit/install.sh b/src/bandit/install.sh index 6cc57d04b..9b8414984 100644 --- a/src/bandit/install.sh +++ b/src/bandit/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$BANDIT" != "none" ]; then if [ "$BANDIT" = "latest" ]; then diff --git a/src/black/devcontainer-feature.json b/src/black/devcontainer-feature.json index d195f23bf..58f552d33 100644 --- a/src/black/devcontainer-feature.json +++ b/src/black/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Black", "id": "black", - "version": "1.1.2", + "version": "1.1.3", "description": "Black is an uncompromising Python code formatter.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/black", "installAfter": [ diff --git a/src/black/install.sh b/src/black/install.sh index 716b2ca7b..d77e29e49 100644 --- a/src/black/install.sh +++ b/src/black/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$BLACK" != "none" ]; then if [ "$BLACK" = "latest" ]; then diff --git a/src/brownie/devcontainer-feature.json b/src/brownie/devcontainer-feature.json index e3b6aa35a..527c17aed 100644 --- a/src/brownie/devcontainer-feature.json +++ b/src/brownie/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Brownie", "id": "brownie", - "version": "1.1.2", + "version": "1.1.3", "description": "Brownie is a Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/brownie", "installAfter": [ diff --git a/src/brownie/install.sh b/src/brownie/install.sh index bac532945..c3f11c747 100644 --- a/src/brownie/install.sh +++ b/src/brownie/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$BROWNIE" != "none" ]; then if [ "$BROWNIE" = "latest" ]; then diff --git a/src/cookiecutter/devcontainer-feature.json b/src/cookiecutter/devcontainer-feature.json index 45cf9ef16..1d5a8ef4e 100644 --- a/src/cookiecutter/devcontainer-feature.json +++ b/src/cookiecutter/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Cookiecutter", "id": "cookiecutter", - "version": "1.1.2", + "version": "1.1.3", "description": "Cookiecutter creates projects from project templates.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/cookiecutter", "installAfter": [ diff --git a/src/cookiecutter/install.sh b/src/cookiecutter/install.sh index e81dd3470..094bb9f05 100644 --- a/src/cookiecutter/install.sh +++ b/src/cookiecutter/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$COOKIECUTTER" != "none" ]; then if [ "$COOKIECUTTER" = "latest" ]; then diff --git a/src/coverage-py/devcontainer-feature.json b/src/coverage-py/devcontainer-feature.json index 6d66fdae3..855a2de03 100644 --- a/src/coverage-py/devcontainer-feature.json +++ b/src/coverage-py/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Coverage.py", "id": "coverage-py", - "version": "1.1.2", + "version": "1.1.3", "description": "Coverage.py is a tool for measuring code coverage of Python programs.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/coverage-py", "installAfter": [ diff --git a/src/coverage-py/install.sh b/src/coverage-py/install.sh index dd56e1592..e268d9e31 100644 --- a/src/coverage-py/install.sh +++ b/src/coverage-py/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$COVERAGE" != "none" ]; then if [ "$COVERAGE" = "latest" ]; then diff --git a/src/datasette/devcontainer-feature.json b/src/datasette/devcontainer-feature.json index 3b6907c3e..6909f5721 100644 --- a/src/datasette/devcontainer-feature.json +++ b/src/datasette/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Datasette", "id": "datasette", - "version": "1.1.2", + "version": "1.1.3", "description": "Datasette is a tool for exploring and publishing data and is aimed at data journalists, museum curators, archivists, local governments, scientists and researchers.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/datasette", "installAfter": [ diff --git a/src/datasette/install.sh b/src/datasette/install.sh index b1e77ae51..25b01d1b5 100644 --- a/src/datasette/install.sh +++ b/src/datasette/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$DATASETTE" != "none" ]; then if [ "$DATASETTE" = "latest" ]; then diff --git a/src/express-generator/devcontainer-feature.json b/src/express-generator/devcontainer-feature.json index 011487cec..9a4a09601 100644 --- a/src/express-generator/devcontainer-feature.json +++ b/src/express-generator/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Express Application Generator", "id": "express-generator", - "version": "1.1.2", + "version": "1.1.3", "description": "Express Application Generator is a handy tool for creating skeleton Express web apps.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/express-generator", "installAfter": [ diff --git a/src/fkill/devcontainer-feature.json b/src/fkill/devcontainer-feature.json index 415e412a8..7e8e9dca0 100644 --- a/src/fkill/devcontainer-feature.json +++ b/src/fkill/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "fkill", "id": "fkill", - "version": "1.1.2", + "version": "1.1.3", "description": "fkill fabulously kill processes. Cross-platform.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/fkill", "installAfter": [ diff --git a/src/flake8/devcontainer-feature.json b/src/flake8/devcontainer-feature.json index e1a98822c..7c01e0560 100644 --- a/src/flake8/devcontainer-feature.json +++ b/src/flake8/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Flake8", "id": "flake8", - "version": "1.1.2", + "version": "1.1.3", "description": "Flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/flake8", "installAfter": [ diff --git a/src/flake8/install.sh b/src/flake8/install.sh index 2f5030fc7..e3a00a81a 100644 --- a/src/flake8/install.sh +++ b/src/flake8/install.sh @@ -119,6 +119,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$FLAKE8" != "none" ]; then if [ "$FLAKE8" = "latest" ]; then diff --git a/src/flit/devcontainer-feature.json b/src/flit/devcontainer-feature.json index bb3c9f7eb..afd861727 100644 --- a/src/flit/devcontainer-feature.json +++ b/src/flit/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Flit", "id": "flit", - "version": "1.1.2", + "version": "1.1.3", "description": "Flit is a simple way to put Python packages and modules on PyPI.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/flit", "installAfter": [ diff --git a/src/flit/install.sh b/src/flit/install.sh index 2c34d85ca..ebe705f0d 100644 --- a/src/flit/install.sh +++ b/src/flit/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$FLIT" != "none" ]; then if [ "$FLIT" = "latest" ]; then diff --git a/src/gdbgui/devcontainer-feature.json b/src/gdbgui/devcontainer-feature.json index 918b2c58e..01e005930 100644 --- a/src/gdbgui/devcontainer-feature.json +++ b/src/gdbgui/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "gdbgui", "id": "gdbgui", - "version": "1.1.2", + "version": "1.1.3", "description": "gdbgui is a browser-based frontend to gdb (gnu debugger).", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/gdbgui", "installAfter": [ diff --git a/src/gdbgui/install.sh b/src/gdbgui/install.sh index 4246dae50..3ce11e596 100644 --- a/src/gdbgui/install.sh +++ b/src/gdbgui/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$GDBGUI" != "none" ]; then if [ "$GDBGUI" = "latest" ]; then diff --git a/src/glances/devcontainer-feature.json b/src/glances/devcontainer-feature.json index 50488f06d..39f85600d 100644 --- a/src/glances/devcontainer-feature.json +++ b/src/glances/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Glances", "id": "glances", - "version": "1.1.2", + "version": "1.1.3", "description": "Glances is a cross-platform monitoring tool which aims to present a large amount of monitoring information through a curses or Web based interface.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/glances", "installAfter": [ diff --git a/src/glances/install.sh b/src/glances/install.sh index 01552214d..bcdc767ce 100644 --- a/src/glances/install.sh +++ b/src/glances/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$GLANCES" != "none" ]; then if [ "$GLANCES" = "latest" ]; then diff --git a/src/hatch/devcontainer-feature.json b/src/hatch/devcontainer-feature.json index 941f498bb..b5f782077 100644 --- a/src/hatch/devcontainer-feature.json +++ b/src/hatch/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Hatch", "id": "hatch", - "version": "1.1.2", + "version": "1.1.3", "description": "Hatch is a modern, extensible Python project manager.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/hatch", "installAfter": [ diff --git a/src/hatch/install.sh b/src/hatch/install.sh index 9fd3e1077..5027bf69b 100644 --- a/src/hatch/install.sh +++ b/src/hatch/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$HATCH" != "none" ]; then if [ "$HATCH" = "latest" ]; then diff --git a/src/isort/devcontainer-feature.json b/src/isort/devcontainer-feature.json index a0557cff6..3143ec528 100644 --- a/src/isort/devcontainer-feature.json +++ b/src/isort/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "isort", "id": "isort", - "version": "1.1.2", + "version": "1.1.3", "description": "isort is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/isort", "installAfter": [ diff --git a/src/isort/install.sh b/src/isort/install.sh index 286253f5a..2fab68b27 100644 --- a/src/isort/install.sh +++ b/src/isort/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$ISORT" != "none" ]; then if [ "$ISORT" = "latest" ]; then diff --git a/src/jest/devcontainer-feature.json b/src/jest/devcontainer-feature.json index bdfca8a45..8145ee01e 100644 --- a/src/jest/devcontainer-feature.json +++ b/src/jest/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Jest", "id": "jest", - "version": "1.1.2", + "version": "1.1.3", "description": "Jest is a delightful JavaScript Testing Framework with a focus on simplicity", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/jest", "installAfter": [ diff --git a/src/jrnl/devcontainer-feature.json b/src/jrnl/devcontainer-feature.json index ffc06f4fb..b8bf47587 100644 --- a/src/jrnl/devcontainer-feature.json +++ b/src/jrnl/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "jrnl", "id": "jrnl", - "version": "1.1.2", + "version": "1.1.3", "description": "jrnl is a simple journal application for the command line.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/jrnl", "installAfter": [ diff --git a/src/jrnl/install.sh b/src/jrnl/install.sh index 6b83b9d38..7239cf320 100644 --- a/src/jrnl/install.sh +++ b/src/jrnl/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$JRNL" != "none" ]; then if [ "$JRNL" = "latest" ]; then diff --git a/src/jshint/devcontainer-feature.json b/src/jshint/devcontainer-feature.json index 73d93a352..f44828b8e 100644 --- a/src/jshint/devcontainer-feature.json +++ b/src/jshint/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "JSHint", "id": "jshint", - "version": "1.1.2", + "version": "1.1.3", "description": "JSHint a tool that helps to detect errors and potential problems in your JavaScript code.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/jshint", "installAfter": [ diff --git a/src/lektor/devcontainer-feature.json b/src/lektor/devcontainer-feature.json index e65474f86..158cc3dcb 100644 --- a/src/lektor/devcontainer-feature.json +++ b/src/lektor/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Lektor", "id": "lektor", - "version": "1.1.2", + "version": "1.1.3", "description": "Lektor is a static website generator.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/lektor", "installAfter": [ diff --git a/src/lektor/install.sh b/src/lektor/install.sh index 394f7d744..61d3183ad 100644 --- a/src/lektor/install.sh +++ b/src/lektor/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$LEKTOR" != "none" ]; then if [ "$LEKTOR" = "latest" ]; then diff --git a/src/less/devcontainer-feature.json b/src/less/devcontainer-feature.json index ad798b188..da11d6059 100644 --- a/src/less/devcontainer-feature.json +++ b/src/less/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Less (Leaner Style Sheets)", "id": "less", - "version": "1.1.2", + "version": "1.1.3", "description": "Less is a backwards-compatible language extension for CSS", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/less", "installAfter": [ diff --git a/src/localstack/devcontainer-feature.json b/src/localstack/devcontainer-feature.json index 873a7faa6..299ac61b5 100644 --- a/src/localstack/devcontainer-feature.json +++ b/src/localstack/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Localstack", "id": "localstack", - "version": "1.1.2", + "version": "1.1.3", "description": "Localstack is a fully functional local AWS cloud stack.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/localstack", "installAfter": [ diff --git a/src/localstack/install.sh b/src/localstack/install.sh index 53f215bc0..706e570c9 100644 --- a/src/localstack/install.sh +++ b/src/localstack/install.sh @@ -101,6 +101,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$LOCALSTACK" != "none" ]; then if [ "$LOCALSTACK" = "latest" ]; then diff --git a/src/meltano/devcontainer-feature.json b/src/meltano/devcontainer-feature.json index fa4efdb35..ca336cc78 100644 --- a/src/meltano/devcontainer-feature.json +++ b/src/meltano/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Meltano ELT", "id": "meltano", - "version": "1.1.2", + "version": "1.1.3", "description": "Meltano lets you extract and load data with a software development-inspired approach that that delivers flexibility and limitless collaboration.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/meltano", "installAfter": [ diff --git a/src/meltano/install.sh b/src/meltano/install.sh index 4b2ca019f..029883d90 100644 --- a/src/meltano/install.sh +++ b/src/meltano/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$MELTANO" != "none" ]; then if [ "$MELTANO" = "latest" ]; then diff --git a/src/mitmproxy/devcontainer-feature.json b/src/mitmproxy/devcontainer-feature.json index daa55ca01..b7fa75706 100644 --- a/src/mitmproxy/devcontainer-feature.json +++ b/src/mitmproxy/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "mitmproxy", "id": "mitmproxy", - "version": "1.1.2", + "version": "1.1.3", "description": "mitmproxy is an interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/mitmproxy", "installAfter": [ diff --git a/src/mitmproxy/install.sh b/src/mitmproxy/install.sh index 0efd2a38a..2da538364 100644 --- a/src/mitmproxy/install.sh +++ b/src/mitmproxy/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$MITMPROXY" != "none" ]; then if [ "$MITMPROXY" = "latest" ]; then diff --git a/src/mkdocs/devcontainer-feature.json b/src/mkdocs/devcontainer-feature.json index eded7873b..eb04a32c6 100644 --- a/src/mkdocs/devcontainer-feature.json +++ b/src/mkdocs/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "MkDocs", "id": "mkdocs", - "version": "1.1.2", + "version": "1.1.3", "description": "MkDocs is a fast, simple and downright gorgeous static site generator that's geared towards building project documentation.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/mkdocs", "installAfter": [ diff --git a/src/mkdocs/install.sh b/src/mkdocs/install.sh index 2e22678cd..7998385e9 100644 --- a/src/mkdocs/install.sh +++ b/src/mkdocs/install.sh @@ -111,6 +111,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$MKDOCS" != "none" ]; then if [ "$MKDOCS" = "latest" ]; then diff --git a/src/mocha/devcontainer-feature.json b/src/mocha/devcontainer-feature.json index 815aba2b7..8cc247449 100644 --- a/src/mocha/devcontainer-feature.json +++ b/src/mocha/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Mocha", "id": "mocha", - "version": "1.1.2", + "version": "1.1.3", "description": "Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/mocha", "installAfter": [ diff --git a/src/mypy/devcontainer-feature.json b/src/mypy/devcontainer-feature.json index b85beb7be..dbfa256db 100644 --- a/src/mypy/devcontainer-feature.json +++ b/src/mypy/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Mypy", "id": "mypy", - "version": "1.1.2", + "version": "1.1.3", "description": "Mypy is a static type checker for Python.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/mypy", "installAfter": [ diff --git a/src/mypy/install.sh b/src/mypy/install.sh index de60da900..70fd1f89b 100644 --- a/src/mypy/install.sh +++ b/src/mypy/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$MYPY" != "none" ]; then if [ "$MYPY" = "latest" ]; then diff --git a/src/nox/devcontainer-feature.json b/src/nox/devcontainer-feature.json index cb7acb6ce..9cd83da69 100644 --- a/src/nox/devcontainer-feature.json +++ b/src/nox/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "nox", "id": "nox", - "version": "1.1.2", + "version": "1.1.3", "description": "nox is a command-line tool that automates testing in multiple Python environments.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/nox", "installAfter": [ diff --git a/src/nox/install.sh b/src/nox/install.sh index a5cd60bc8..d110d92f9 100644 --- a/src/nox/install.sh +++ b/src/nox/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$NOX" != "none" ]; then if [ "$NOX" = "latest" ]; then diff --git a/src/pdm/devcontainer-feature.json b/src/pdm/devcontainer-feature.json index 18ca4782f..bf8413607 100644 --- a/src/pdm/devcontainer-feature.json +++ b/src/pdm/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "PDM", "id": "pdm", - "version": "1.1.2", + "version": "1.1.3", "description": "PDM is a modern Python package and dependency manager supporting the latest PEP standards.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/pdm", "installAfter": [ diff --git a/src/pdm/install.sh b/src/pdm/install.sh index fab13ca85..5248a1fe9 100644 --- a/src/pdm/install.sh +++ b/src/pdm/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$PDM" != "none" ]; then if [ "$PDM" = "latest" ]; then diff --git a/src/pipenv/devcontainer-feature.json b/src/pipenv/devcontainer-feature.json index 44fbada3e..436ab6c34 100644 --- a/src/pipenv/devcontainer-feature.json +++ b/src/pipenv/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Pipenv", "id": "pipenv", - "version": "1.1.2", + "version": "1.1.3", "description": "Pipenv automatically creates and manages a virtualenv for your projects.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/pipenv", "installAfter": [ diff --git a/src/pipenv/install.sh b/src/pipenv/install.sh index 189d93573..59a602242 100644 --- a/src/pipenv/install.sh +++ b/src/pipenv/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$PIPENV" != "none" ]; then if [ "$PIPENV" = "latest" ]; then diff --git a/src/poetry/devcontainer-feature.json b/src/poetry/devcontainer-feature.json index ff28f248e..1c5f37198 100644 --- a/src/poetry/devcontainer-feature.json +++ b/src/poetry/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Poetry", "id": "poetry", - "version": "1.1.2", + "version": "1.1.3", "description": "Poetry is a tool for dependency management and packaging in Python.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/poetry", "installAfter": [ diff --git a/src/poetry/install.sh b/src/poetry/install.sh index 637230623..a63701340 100644 --- a/src/poetry/install.sh +++ b/src/poetry/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$POETRY" != "none" ]; then if [ "$POETRY" = "latest" ]; then diff --git a/src/pre-commit/devcontainer-feature.json b/src/pre-commit/devcontainer-feature.json index d2a261426..3d8cd41ff 100644 --- a/src/pre-commit/devcontainer-feature.json +++ b/src/pre-commit/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Pre-Commit", "id": "pre-commit", - "version": "1.1.2", + "version": "1.1.3", "description": "Pre-Commit is a framework for managing and maintaining multi-language pre-commit hooks.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/pre-commit", "installAfter": [ diff --git a/src/pre-commit/install.sh b/src/pre-commit/install.sh index d72329308..662bddfde 100644 --- a/src/pre-commit/install.sh +++ b/src/pre-commit/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$PRE_COMMIT" != "none" ]; then if [ "$PRE_COMMIT" = "latest" ]; then diff --git a/src/pyinfra/install.sh b/src/pyinfra/install.sh index f5dd22648..43ea2fd35 100644 --- a/src/pyinfra/install.sh +++ b/src/pyinfra/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$PYINFRA" != "none" ]; then if [ "$PYINFRA" = "latest" ]; then diff --git a/src/pylint/devcontainer-feature.json b/src/pylint/devcontainer-feature.json index 6176763de..21fc1e43c 100644 --- a/src/pylint/devcontainer-feature.json +++ b/src/pylint/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Pylint", "id": "pylint", - "version": "1.1.2", + "version": "1.1.3", "description": "Pylint is a static code analyser for Python 2 or 3.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/pylint", "installAfter": [ diff --git a/src/pylint/install.sh b/src/pylint/install.sh index 5acc616e4..353eba238 100644 --- a/src/pylint/install.sh +++ b/src/pylint/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$PYLINT" != "none" ]; then if [ "$PYLINT" = "latest" ]; then diff --git a/src/pyscaffold/devcontainer-feature.json b/src/pyscaffold/devcontainer-feature.json index 460dae4c2..37431b18c 100644 --- a/src/pyscaffold/devcontainer-feature.json +++ b/src/pyscaffold/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "PyScaffold", "id": "pyscaffold", - "version": "1.1.2", + "version": "1.1.3", "description": "PyScaffold is a python project template generator with batteries included.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/pyscaffold", "installAfter": [ diff --git a/src/pyscaffold/install.sh b/src/pyscaffold/install.sh index 35499182a..09cda33fa 100644 --- a/src/pyscaffold/install.sh +++ b/src/pyscaffold/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$PYSCAFFOLD" != "none" ]; then if [ "$PYSCAFFOLD" = "latest" ]; then diff --git a/src/qrcode/devcontainer-feature.json b/src/qrcode/devcontainer-feature.json index d168c592f..c914640ab 100644 --- a/src/qrcode/devcontainer-feature.json +++ b/src/qrcode/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "qrcode", "id": "qrcode", - "version": "1.1.2", + "version": "1.1.3", "description": "qrcode is a command line QR-Code generator.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/qrcode", "installAfter": [ diff --git a/src/qrcode/install.sh b/src/qrcode/install.sh index 60cbc3017..75c0b0c33 100644 --- a/src/qrcode/install.sh +++ b/src/qrcode/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$QRCODE" != "none" ]; then if [ "$QRCODE" = "latest" ]; then diff --git a/src/tox/devcontainer-feature.json b/src/tox/devcontainer-feature.json index e7170d9b3..986302b49 100644 --- a/src/tox/devcontainer-feature.json +++ b/src/tox/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "tox", "id": "tox", - "version": "1.1.2", + "version": "1.1.3", "description": "tox is a generic virtual environment management and test command line tool.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/tox", "installAfter": [ diff --git a/src/tox/install.sh b/src/tox/install.sh index c69b54df3..5341e59dc 100644 --- a/src/tox/install.sh +++ b/src/tox/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$TOX" != "none" ]; then if [ "$TOX" = "latest" ]; then diff --git a/src/twine/devcontainer-feature.json b/src/twine/devcontainer-feature.json index 165b2be80..baabb019f 100644 --- a/src/twine/devcontainer-feature.json +++ b/src/twine/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Twine", "id": "twine", - "version": "1.1.2", + "version": "1.1.3", "description": "Twine is a utility for publishing Python packages on PyPI.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/twine", "installAfter": [ diff --git a/src/twine/install.sh b/src/twine/install.sh index 615c1244c..27e9327a9 100644 --- a/src/twine/install.sh +++ b/src/twine/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$TWINE" != "none" ]; then if [ "$TWINE" = "latest" ]; then diff --git a/src/typescript/devcontainer-feature.json b/src/typescript/devcontainer-feature.json index 9fee3fa2e..dca4ea44b 100644 --- a/src/typescript/devcontainer-feature.json +++ b/src/typescript/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "TypeScript", "id": "typescript", - "version": "1.1.2", + "version": "1.1.3", "description": "TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/typescript", "installAfter": [ diff --git a/src/vue-cli/devcontainer-feature.json b/src/vue-cli/devcontainer-feature.json index 0fb91e20d..02d049259 100644 --- a/src/vue-cli/devcontainer-feature.json +++ b/src/vue-cli/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Vue CLI", "id": "vue-cli", - "version": "1.1.2", + "version": "1.1.3", "description": "Vue CLI is a full system for rapid Vue.js development.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/vue-cli", "installAfter": [ diff --git a/src/vulture/devcontainer-feature.json b/src/vulture/devcontainer-feature.json index 4ae05431c..e2045c1d0 100644 --- a/src/vulture/devcontainer-feature.json +++ b/src/vulture/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Vulture", "id": "vulture", - "version": "1.1.2", + "version": "1.1.3", "description": "Vulture finds unused code in Python programs.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/vulture", "installAfter": [ diff --git a/src/vulture/install.sh b/src/vulture/install.sh index 98eb94954..df05a2994 100644 --- a/src/vulture/install.sh +++ b/src/vulture/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$VULTURE" != "none" ]; then if [ "$VULTURE" = "latest" ]; then diff --git a/src/yamllint/devcontainer-feature.json b/src/yamllint/devcontainer-feature.json index 6ad760246..5380ce21a 100644 --- a/src/yamllint/devcontainer-feature.json +++ b/src/yamllint/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "yamllint", "id": "yamllint", - "version": "1.0.1", + "version": "1.1.3", "description": "yamllint is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/yamllint", "installAfter": [ @@ -9,12 +9,12 @@ ], "options": { "version": { - "type": "string", + "type": "boolean", "proposals": [ "latest" ], "default": "latest", - "description": "Select the yamllint version you would like to install" + "description": "Select the version of yamllint to install." } } } \ No newline at end of file diff --git a/src/yamllint/install.sh b/src/yamllint/install.sh index b7b21b6e3..173aa85f6 100644 --- a/src/yamllint/install.sh +++ b/src/yamllint/install.sh @@ -1,78 +1,123 @@ #!/usr/bin/env bash - -UTIL_VERSION="${VERSION:-"latest"}" +#------------------------------------------------------------------------------------------------------------- +# This code was generated by the DevContainers Feature Cookiecutter +# Docs: https://github.com/devcontainers-contrib/cookiecutter-devcontainers-feature +#------------------------------------------------------------------------------------------------------------- set -e + + +# pipx version for yamllint +YAMLLINT=${VERSION:-"latest"} + + + # Clean up rm -rf /var/lib/apt/lists/* - if [ "$(id -u)" -ne 0 ]; then echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' exit 1 fi - -updaterc() { - if [ "${UPDATE_RC}" = "true" ]; then - echo "Updating /etc/bash.bashrc and /etc/zsh/zshrc..." - if [[ "$(cat /etc/bash.bashrc)" != *"$1"* ]]; then - echo -e "$1" >> /etc/bash.bashrc - fi - if [ -f "/etc/zsh/zshrc" ] && [[ "$(cat /etc/zsh/zshrc)" != *"$1"* ]]; then - echo -e "$1" >> /etc/zsh/zshrc +# Checks if packages are installed and installs them if not +check_packages() { + if ! dpkg -s "$@" > /dev/null 2>&1; then + if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then + echo "Running apt-get update..." + apt-get update -y fi + apt-get -y install --no-install-recommends "$@" fi } + + + +# code bellow is mostly taken from the base python feature https://raw.githubusercontent.com/devcontainers/features/main/src/python/install.sh +updaterc() { + echo "Updating /etc/bash.bashrc and /etc/zsh/zshrc..." + if [[ "$(cat /etc/bash.bashrc)" != *"$1"* ]]; then + echo -e "$1" >> /etc/bash.bashrc + fi + if [ -f "/etc/zsh/zshrc" ] && [[ "$(cat /etc/zsh/zshrc)" != *"$1"* ]]; then + echo -e "$1" >> /etc/zsh/zshrc + fi +} # settings these will allow us to clean leftovers later on export PYTHONUSERBASE=/tmp/pip-tmp export PIP_CACHE_DIR=/tmp/pip-tmp/cache - - # install python if does not exists if ! type pip3 > /dev/null 2>&1; then echo "Installing python3..." - # If the python feature script had option to install pipx without the - # additional tools we would have used that, but since it doesnt - # we have to disable it with INSTALLTOOLS=false and install - # pipx manually later on - - export VERSION="system" + # we set INSTALLTOOLS=false in order to save disk space, but as + # a result we will need to install pipx manually later on + check_packages curl + export VERSION="system" export INSTALLTOOLS="false" curl -fsSL https://raw.githubusercontent.com/devcontainers/features/main/src/python/install.sh | $SHELL fi - -# configuring install location -# changing /usr/local/bin as we know it will be in PATH of all users -export PIPX_BIN_DIR="/usr/local/bin" +# install pipx if not exists +export PIPX_HOME=${PIPX_HOME:-"/usr/local/py-utils"} +export PIPX_BIN_DIR="${PIPX_HOME}/bin" if ! type pipx > /dev/null 2>&1; then - echo "Installing pipx..." - export PIPX_HOME=/opt/pipx - mkdir -p ${PIPX_HOME} - chmod -R g+r+w "${PIPX_HOME}" + USERNAME="" + POSSIBLE_USERS=("vscode" "node" "codespace" "$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)") + for CURRENT_USER in "${POSSIBLE_USERS[@]}"; do + if id -u ${CURRENT_USER} > /dev/null 2>&1; then + USERNAME=${CURRENT_USER} + break + fi + done + if [ "${USERNAME}" = "" ]; then + USERNAME=root + fi + + PATH="${PATH}:${PIPX_BIN_DIR}" + + # Create pipx group, dir, and set sticky bit + if ! cat /etc/group | grep -e "^pipx:" > /dev/null 2>&1; then + groupadd -r pipx + fi + usermod -a -G pipx ${USERNAME} + umask 0002 + mkdir -p ${PIPX_BIN_DIR} + chown -R "${USERNAME}:pipx" ${PIPX_HOME} + chmod -R g+r+w "${PIPX_HOME}" + find "${PIPX_HOME}" -type d -print0 | xargs -0 -n 1 chmod g+s pip3 install --disable-pip-version-check --no-cache-dir --user pipx 2>&1 /tmp/pip-tmp/bin/pipx install --pip-args=--no-cache-dir pipx PIPX_COMMAND=/tmp/pip-tmp/bin/pipx + + updaterc "export PIPX_HOME=\"${PIPX_HOME}\"" + updaterc "export PIPX_BIN_DIR=\"${PIPX_BIN_DIR}\"" + updaterc "if [[ \"\${PATH}\" != *\"\${PIPX_BIN_DIR}\"* ]]; then export PATH=\"\${PATH}:\${PIPX_BIN_DIR}\"; fi" + else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U -if [ "${UTIL_VERSION}" == "latest" ]; then - util_command="yamllint" -else - util_command="yamllint==$UTIL_VERSION" -fi -echo "Installing yamllint ..." -"${PIPX_COMMAND}" install --system-site-packages --force --pip-args '--no-cache-dir --force-reinstall' ${util_command} +if [ "$YAMLLINT" != "none" ]; then + if [ "$YAMLLINT" = "latest" ]; then + util_command="yamllint" + else + util_command="yamllint==$YAMLLINT" + fi + "${PIPX_COMMAND}" install --system-site-packages --force --pip-args '--no-cache-dir --force-reinstall' ${util_command} +fi # cleaning after pip rm -rf /tmp/pip-tmp + + + # Clean up rm -rf /var/lib/apt/lists/* diff --git a/src/yapf/devcontainer-feature.json b/src/yapf/devcontainer-feature.json index 84c249890..8e5fc2bb7 100644 --- a/src/yapf/devcontainer-feature.json +++ b/src/yapf/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "yapf", "id": "yapf", - "version": "1.1.2", + "version": "1.1.3", "description": "yapf is a formatter for Python files.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/yapf", "installAfter": [ diff --git a/src/yapf/install.sh b/src/yapf/install.sh index 00905afc5..40d8e6b17 100644 --- a/src/yapf/install.sh +++ b/src/yapf/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$YAPF" != "none" ]; then if [ "$YAPF" = "latest" ]; then diff --git a/src/youtube-dl/devcontainer-feature.json b/src/youtube-dl/devcontainer-feature.json index 8af1b3ead..c21231746 100644 --- a/src/youtube-dl/devcontainer-feature.json +++ b/src/youtube-dl/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "youtube-dl", "id": "youtube-dl", - "version": "1.1.2", + "version": "1.1.3", "description": "youtube-dl is a command-line program to download videos from YouTube.com and other video sites.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/youtube-dl", "installAfter": [ diff --git a/src/youtube-dl/install.sh b/src/youtube-dl/install.sh index 19475e491..7c59127dc 100644 --- a/src/youtube-dl/install.sh +++ b/src/youtube-dl/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$YOUTUBE_DL" != "none" ]; then if [ "$YOUTUBE_DL" = "latest" ]; then diff --git a/src/yt-dlp/devcontainer-feature.json b/src/yt-dlp/devcontainer-feature.json index 7be181d78..eea4a6fd1 100644 --- a/src/yt-dlp/devcontainer-feature.json +++ b/src/yt-dlp/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "yt-dlp", "id": "yt-dlp", - "version": "1.1.2", + "version": "1.1.3", "description": "yt-dlp is a youtube-dl fork with additional features and fixes.", "documentationURL": "http://github.com/devcontainers-contrib/features/tree/main/src/yt-dlp", "installAfter": [ diff --git a/src/yt-dlp/install.sh b/src/yt-dlp/install.sh index 2643a877b..3f5650387 100644 --- a/src/yt-dlp/install.sh +++ b/src/yt-dlp/install.sh @@ -99,6 +99,9 @@ if ! type pipx > /dev/null 2>&1; then else PIPX_COMMAND=pipx fi +# make sure pipx uses the latest version of setuptools wheel and pip +$(pipx environment --value PIPX_SHARED_LIBS)/bin/pip install pip setuptools wheel -U + if [ "$YT_DLP" != "none" ]; then if [ "$YT_DLP" = "latest" ]; then