diff --git a/CHANGELOG.md b/CHANGELOG.md
index 70257bdbc49c90b6298f259ee987aa1f78ede7cb..08ace3738bb184d8d5291033c0632ca5037c71bd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -35,6 +35,11 @@ release.
 
 ## Unreleased
 
+## [0.4.0] - 2024-05-10
+
+### Added
+- Added the following sensor utility functions: `phase_angle`, `emission_angle`, `slant_distance`, `target_center_distance`, `sub_spacecraft_point`, `local_radius`, `right_ascension_declination`, `line_resolution`, `sample_resolution`, and `pixel_resolution`.
+
 
 ## [0.3.0] - 2024-04-14
 
diff --git a/code.json b/code.json
index 323f2ac654bfc2395d471e3d3deb9bc3e562f9da..87a01098b2b7217e3062c7b7044e102dd6081e57 100644
--- a/code.json
+++ b/code.json
@@ -44,6 +44,51 @@
       "metadataLastUpdated": "2023-01-25"
     }
   },
+  {
+    "name": "knoten",
+    "organization": "U.S. Geological Survey",
+    "description": "GitHub code repository for the knoten package",
+    "version": "0.4.0",
+    "status": "Production",
+
+    "permissions": {
+      "usageType": "openSource",
+      "licenses": [
+        {
+          "name": "Public Domain, CC0-1.0",
+          "URL": "https://code.usgs.gov/astrogeology/knoten/-/raw/0.4.0/LICENSE.md"
+        }
+      ]
+    },
+
+    "homepageURL": "https://code.usgs.gov/astrogeology/knoten/-/tree/0.4.0",
+    "downloadURL": "https://code.usgs.gov/astrogeology/knoten/-/archive/0.4.0/knoten-0.4.0.zip",
+    "disclaimerURL": "https://code.usgs.gov/astrogeology/knoten/-/raw/0.4.0/DISCLAIMER.md",
+    "repositoryURL": "https://code.usgs.gov/astrogeology/knoten.git",
+    "vcs": "git",
+
+    "laborHours": 300,
+
+    "tags": [
+      "Planetary",
+      "Remote Sensing",
+      "Photogrammetry",
+      "Testing"
+    ],
+
+    "languages": [
+      "Python"
+    ],
+
+    "contact": {
+      "name": "Adam Paquette",
+      "email": "acpaquette@usgs.gov"
+    },
+
+    "date": {
+      "metadataLastUpdated": "2024-05-13"
+    }
+  },
   {
     "name": "knoten",
     "organization": "U.S. Geological Survey",
diff --git a/setup.py b/setup.py
index 543e7f76f1f24cf7c1d5a86e2bf2f68b13fc987f..c843d090f8c00ef4d2951e89fd82e8f578864d1d 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 setup(
     name='knoten',
-    version='0.3.0',
+    version='0.4.0',
     long_description='',
     packages=find_packages(),
     include_package_data=True,