diff --git a/Makefile b/Makefile
deleted file mode 100644
index dc00154..0000000
--- a/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env make
-
-override venv ?= ${shell git rev-parse --show-toplevel}/.venv
-
-create-venv: override python_version ?= 3.11
-ifeq "${shell uname}" "Darwin"
-create-venv: python_executable = ${shell which 'python${python_version}'}
-else
-create-venv: python_executable = ${shell which --tty-only --show-dot --show-tilde 'python${python_version}'}
-endif
-create-venv: ${python_executable}
- @${python_executable} -m 'venv' '${venv}'
- @${venv}/bin/pip --require-virtualenv install -r 'requirements.txt'
-
-recreate-venv:
- @rm -rf '${venv}'
- @${MAKE} create-venv
-
-update-venv: ${venv}/bin/pip
- @${venv}/bin/pip freeze -l --require-virtualenv | sed 's/==/>=/' \
- | xargs ${venv}/bin/pip --require-virtualenv install -U
diff --git a/Taskfile.yml b/Taskfile.yml
index d48c794..d9512ee 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -7,18 +7,29 @@ vars:
tasks:
- create-venv:
+ dev-tools:bootstrap:
cmds:
- - python3.12 -m 'venv' '{{.VENV_DIR}}'
- - >-
- {{.VENV_DIR}}/bin/pip --require-virtualenv install -r '{{.REQUIREMENTS_FILE}}'
+ - task: python:create-venv
+ - npm install
- recreate-venv:
+ dev-tools:update:
cmds:
- - rm -rf '{{.VENV_DIR}}'
- - task: create-venv
+ - task: python:update-venv
+ - npm update --save
- update-venv:
+ python:create-venv:
+ vars:
+ PYTHON_VERSION: 3.12
+ cmds:
+ - "python{{.PYTHON_VERSION}} -m 'venv' '{{.VENV_DIR}}'"
+ - "{{.VENV_DIR}}/bin/pip --require-virtualenv install -r '{{.REQUIREMENTS_FILE}}'"
+
+ python:recreate-venv:
+ cmds:
+ - "rm -rf '{{.VENV_DIR}}'"
+ - task: python:create-venv
+
+ python:update-venv:
cmd: >-
{{.VENV_DIR}}/bin/pip freeze -l --require-virtualenv | sed 's/==/>=/'
| xargs {{.VENV_DIR}}/bin/pip --require-virtualenv install -U
diff --git a/knowledge base/npm.md b/knowledge base/npm.md
index bc2b284..b5635f5 100644
--- a/knowledge base/npm.md
+++ b/knowledge base/npm.md
@@ -1,12 +1,26 @@
# Node Package Manager CLI
-## Table of contents
-
1. [TL;DR](#tldr)
1. [Further readings](#further-readings)
## TL;DR
+
+ Setup
+
+```sh
+# Disable SSL verification.
+npm config set 'strict-ssl'='false'
+
+# Use custom CA certificates.
+npm config set 'cafile'='path/to/ca/cert.pem'
+```
+
+
+
+
+ Usage
+
```sh
# Search for packages.
npm search 'typescript'
@@ -22,17 +36,15 @@ npm i -g '@pnp/cli-microsoft365@latest'
npm clean-install '@pnp/cli-microsoft365'
npm ci -g '@pnp/cli-microsoft365@latest'
+# Update packages.
+npm update
+npm up --save
+
# Remove packages.
npm uninstall '@pnp/cli-microsoft365'
```
-```sh
-# Disable SSL verification.
-npm config set 'strict-ssl'='false'
-
-# Use a custom CA certificate.
-npm config set 'cafile'='path/to/ca/cert.pem'
-```
+
## Further readings
diff --git a/knowledge base/task.md b/knowledge base/task.md
index ec8d8c4..3f0f4b4 100644
--- a/knowledge base/task.md
+++ b/knowledge base/task.md
@@ -37,8 +37,9 @@ Cons:
# Install the executable.
brew install 'go-task'
choco install 'go-task'
-sudo dnf install 'go-task'
-sudo snap install 'task' --classic
+dnf install 'go-task'
+snap install 'task' --classic
+zypper install 'https://github.com/go-task/task/releases/download/v3.39.2/task_linux_amd64.rpm'
# Setup the shell's completion.
task --completion 'fish' > ~/'.config/fish/completions/task.fish'
@@ -72,6 +73,7 @@ task --completion 'bash' > '/etc/bash_completion.d/task'
```sh
task 'assets' 'build'
+ task --dry 'bootstrap'
```
If task names are omitted, a task named `default` will be assumed.
diff --git a/package.json b/package.json
index 983a257..0c9fce6 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,7 @@
{
"devDependencies": {
- "@commitlint/cli": "^19.4.0",
- "@commitlint/config-conventional": "^19.2.2"
+ "@commitlint/cli": "^19.5.0",
+ "@commitlint/config-conventional": "^19.5.0",
+ "@evilmartians/lefthook": "^1.8.2"
}
}