diff --git a/Pipfile b/Pipfile
index 6a7435fb..f8997310 100644
--- a/Pipfile
+++ b/Pipfile
@@ -4,11 +4,12 @@ url = "https://pypi.org/simple"
 verify_ssl = true
 
 [packages]
-pyperclip = ">=1.6"
-setuptools = ">=34.4"
-wcwidth = ">=0.1.7"
+pyperclip = "*"
+setuptools = "*"
+wcwidth = "*"
 
 [dev-packages]
+build = "*"
 cmd2 = { editable = true, path = "." }
 cmd2_ext_test = { editable = true, path = "plugins/ext_test" }
 codecov = "*"
@@ -22,6 +23,7 @@ pytest = "*"
 pytest-cov = "*"
 pytest-mock = "*"
 ruff = "*"
+setuptools-scm = "*"
 sphinx = "*"
 sphinx-autobuild = "*"
 sphinx-rtd-theme = "*"
diff --git a/pyproject.toml b/pyproject.toml
index 3d4298d8..6dae9cea 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,5 +1,6 @@
 [build-system]
-requires = ["setuptools>=42", "wheel", "setuptools_scm[toml]>=3.4"]
+requires = ["build", "setuptools>=64", "setuptools-scm>=8"]
+build-backend = "setuptools.build_meta"
 
 [tool.doc8]
 ignore-path = [
@@ -30,6 +31,7 @@ disallow_incomplete_defs = true
 disallow_untyped_calls = true
 disallow_untyped_defs = true
 exclude = [
+    "^build/", # .build directory
     "^docs/", # docs directory
     "^examples/", # examples directory
     "^plugins/*", # plugins directory