diff --git a/CHANGELOG.md b/CHANGELOG.md
index 82ebe848712c08861b848009e0556ecae5369e0c..70257bdbc49c90b6298f259ee987aa1f78ede7cb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -35,6 +35,9 @@ release.
 
 ## Unreleased
 
+
+## [0.3.0] - 2024-04-14
+
 ### Added
 - `create_csm` now dispatches to `_from_isd` and `_from_state` to test whether the sensor model can be instantiated from either and ISD or a state file.
 - `generate_image_coordinate` to `csm.py`. This provides a similar interface to `generate_ground_coordinate` and abstracts away the `csmapi` from the user.
diff --git a/code.json b/code.json
index 1c966b5b1565ac3d3d75c3d291ebf0a0853c209a..323f2ac654bfc2395d471e3d3deb9bc3e562f9da 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.3.0",
+    "status": "Production",
+
+    "permissions": {
+      "usageType": "openSource",
+      "licenses": [
+        {
+          "name": "Public Domain, CC0-1.0",
+          "URL": "https://code.usgs.gov/astrogeology/knoten/-/raw/0.3.0/LICENSE.md"
+        }
+      ]
+    },
+
+    "homepageURL": "https://code.usgs.gov/astrogeology/knoten/-/tree/0.3.0",
+    "downloadURL": "https://code.usgs.gov/astrogeology/knoten/-/archive/0.3.0/knoten-0.3.0.zip",
+    "disclaimerURL": "https://code.usgs.gov/astrogeology/knoten/-/raw/0.3.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": "2023-02-27"
+    }
+  },
   {
     "name": "knoten",
     "organization": "U.S. Geological Survey",
diff --git a/setup.py b/setup.py
index dfb0e505714c6500a5a4432e5897ba34c3416a0a..543e7f76f1f24cf7c1d5a86e2bf2f68b13fc987f 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 setup(
     name='knoten',
-    version='0.2.1',
+    version='0.3.0',
     long_description='',
     packages=find_packages(),
     include_package_data=True,