diff --git a/CHANGELOG.md b/CHANGELOG.md
index d64eb435ab4ebd8efbb8f904daa496f9ba3e7e6d..522fddfb998d0941696ea5d17ca9da64485f524c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -34,6 +34,10 @@ release.
 -->
 ## [Unreleased]
 
+## [1.2.2]
+### [Changed]
+- Made image_registration dependency optional for conda-forge package which cannot use pip installs.
+
 ## [1.2.1]
 ### Added
 - Debug logging to `place_points_in_overlap` and `distribute_points_in_geom` to make debugging issues easier.
diff --git a/autocnet/matcher/naive_template.py b/autocnet/matcher/naive_template.py
index 90f0985281c0220480e1c6898a7b834c96e549e5..ccce1eab172668324d0dd92beb20a74896b10a74 100644
--- a/autocnet/matcher/naive_template.py
+++ b/autocnet/matcher/naive_template.py
@@ -7,7 +7,11 @@ import numpy as np
 from scipy.ndimage import center_of_mass
 from skimage.transform import rescale
 from skimage.util import img_as_float32
-from image_registration import chi2_shift
+try:
+    from image_registration import chi2_shift
+except:
+    chi2_shift = None
+
 
 log = logging.getLogger(__name__)
 
@@ -38,6 +42,9 @@ def pattern_match_chi2(image, template, usfac=16):
 
     # Swapped so that we get the adjustment to the image to match the template
     # like the other matchers.
+    if chi2_shift is None:
+        raise ValueError("chi2_shift function is not defined. You need to install the 'image_registration' package with 'pip install image_registration'.")
+
     dx, dy, err_x, err_y = chi2_shift(image, template, return_error=True, upsample_factor=usfac, boundary='constant')
     shape_y, shape_x = np.array(template.shape)//2
     err =  (err_x + err_y) / 2.
diff --git a/code.json b/code.json
index 57f70c14cd46068ba4dd61ae39cfbaf5f88bad7e..b54f13e6ac142d7cdaa517c367af77da6e5125bc 100644
--- a/code.json
+++ b/code.json
@@ -41,5 +41,48 @@
       "date": {
         "metadataLastUpdated": "2024-10-21"
       }
+    },
+    {
+      "name": "autocnet",
+      "organization": "U.S. Geological Survey",
+      "description": "Automatic control network generation",
+      "version": "1.2.2",
+      "status": "Production",
+  
+      "permissions": {
+        "usageType": "openSource",
+        "licenses": [
+          {
+            "name": "Public Domain, CC0-1.0",
+            "URL": "https://code.usgs.gov/astrogeology/autocnet/-/raw/1.2.2/LICENSE.md"
+          }
+        ]
+      },
+  
+      "homepageURL": "https://code.usgs.gov/astrogeology/autocnet",
+      "downloadURL": "https://code.usgs.gov/astrogeology/autocnet/-/archive/1.2.2/autocnet-1.2.2.zip",
+      "disclaimerURL": "https://code.usgs.gov/astrogeology/autocnet/-/raw/1.2.2/DISCLAIMER.md",
+      "repositoryURL": "https://code.usgs.gov/astrogeology/autocnet.git",
+      "vcs": "git",
+  
+      "laborHours": 0,
+  
+      "tags": [
+        "Planetary",
+        "Remote Sensing",
+        "Data Processing"
+      ],
+  
+      "languages": [
+        "Python"
+      ],
+  
+      "contact": {
+            "name": "Kelvin Rodriguez",
+            "email": "krodriguez@usgs.gov"
+      },
+      "date": {
+        "metadataLastUpdated": "2024-10-24"
+      }
     }
   ]
\ No newline at end of file
diff --git a/conda/conda-forge/meta.yaml b/conda/conda-forge/meta.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..49e4a0ead87ebd0ecb9b024fc4261e46d0f73483
--- /dev/null
+++ b/conda/conda-forge/meta.yaml
@@ -0,0 +1,97 @@
+{% set name = "autocnet" %}
+{% set version = "1.2.2" %}
+
+package:
+  name: {{ name|lower }}
+  version: {{ version }}
+
+source:
+  url: https://code.usgs.gov/astrogeology/autocnet/-/archive/1.2.2/autocnet-1.2.2.tar.gz
+  sha256: 29f30e980aae216225d8ef181b2d228c2325ca0afb6ba60f2dfe0384759e828d
+
+build:
+  script: {{ PYTHON }} -m pip install . -vv
+  skip: true  # [win]
+  number: 0
+
+requirements:
+    build:
+      - python
+      - csmapi
+      - dill
+      - geoalchemy2
+      - geopandas
+      - kalasiris
+      - knoten
+      - networkx
+      - opencv
+      - plio
+      - plurmy
+      - pyyaml
+      - redis-py
+      - scikit-image
+      - scipy
+      - shapely
+      - sqlalchemy-utils
+    host:
+      - python
+      - setuptools
+      - libgl  # [linux]
+    run:
+      - csmapi
+      - cython
+      - cyvlfeat
+      - matplotlib-base
+      - dill
+      - conda-forge::gdal >=3.5,<4.0
+      - geoalchemy2
+      - geopandas
+      - hoggorm
+      - imageio
+      - ipykernel
+      - kalasiris
+      - conda-forge::knoten
+      - libgl  # [linux]
+      - networkx >=2,<3
+      - numpy >=1.21,<2.0
+      - opencv
+      - conda-forge::plio >=1.3
+      - pandas
+      - pyyaml
+      - plio >=1.5.4
+      - plurmy
+      - psycopg2
+      - pvl >=1.0,<2
+      - proj
+      - conda-forge::pyproj
+      - python
+      - richdem
+      - scikit-image >=0.17,<0.25
+      - scikit-learn
+      - scipy
+      - shapely
+      - sqlalchemy
+      - sqlalchemy-utils
+      - redis-py <5
+      - conda-forge::usgscsm >=2.0.0
+      - vlfeat
+      - protobuf <=3.20
+
+test:
+  imports:
+    - autocnet
+    - autocnet.graph.network
+
+about:
+  home: https://github.com/DOI-USGS/Autocnet
+  summary: 'A Python library for automatic generation of control networks for the geodetic control of planetary images.'
+  description: 'Automatic control network generation'
+  doc_url: https://github.com/DOI-USGS/Autocnet#readme
+  dev_url: https://github.com/DOI-USGS/Autocnet
+  license: CC0-1.0
+  license_file: LICENSE.md
+
+extra:
+  recipe-maintainers:
+    - Kelvinrr
+    - amystamile-usgs
diff --git a/environment.yml b/environment.yml
index 2ca1d5de61e8410cb66c2f232a19e31abcd67d43..ef3f16bfa483515e081fe5b2d8662a9f322a89a1 100644
--- a/environment.yml
+++ b/environment.yml
@@ -39,7 +39,7 @@ dependencies:
   - redis-py<5
   - conda-forge::usgscsm
   - vlfeat
-  - protobuf
+  - protobuf<=3.20
   - pip
   - pip:
     - image_registration
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 3d77bcfdcfcfeb6cdfe8531b9884baa034e9830d..aacaefd61e11350ada5a912b2bbd846e9188487f 100755
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@ from setuptools import setup, find_packages
 with open('README.md', 'r') as f:
     long_description = f.read()
 
-__version__ = '1.2.1-dev'
+__version__ = '1.2.2'
 
 def setup_package():
     setup(