diff --git a/docs/developer/release/release_push.py b/docs/developer/release/release_push.py
index 4105b9fe5f4..b6b9578d4c9 100755
--- a/docs/developer/release/release_push.py
+++ b/docs/developer/release/release_push.py
@@ -123,6 +123,10 @@ def stage_maven_artifacts_in_maven_central(new_checker_version):
DATAFLOW_SOURCE_JAR, DATAFLOW_JAVADOC_JAR,
pgp_user, pgp_passphrase)
+ mvn_sign_and_deploy_all(SONATYPE_OSS_URL, SONATYPE_STAGING_REPO_ID, FRAMEWORK_BINARY_RELEASE_POM, FRAMEWORK_BINARY,
+ FRAMEWORK_SOURCE_JAR, FRAMEWORK_JAVADOC_JAR,
+ pgp_user, pgp_passphrase)
+
mvn_sign_and_deploy_all(SONATYPE_OSS_URL, SONATYPE_STAGING_REPO_ID, FRAMEWORKTEST_BINARY_RELEASE_POM, FRAMEWORKTEST_BINARY,
FRAMEWORKTEST_SOURCE_JAR, FRAMEWORKTEST_JAVADOC_JAR,
pgp_user, pgp_passphrase)
diff --git a/docs/developer/release/release_vars.py b/docs/developer/release/release_vars.py
index 4268c65cd9b..908b48f3e55 100755
--- a/docs/developer/release/release_vars.py
+++ b/docs/developer/release/release_vars.py
@@ -161,6 +161,11 @@ def execute(command_args, halt_if_fail=True, capture_output=False, working_dir=N
DATAFLOW_SOURCE_JAR = os.path.join(DATAFLOW_DIST_DIR, "dataflow-"+CF_VERSION+"-source.jar")
DATAFLOW_JAVADOC_JAR = os.path.join(DATAFLOW_DIST_DIR, "dataflow-"+CF_VERSION+"-javadoc.jar")
+FRAMEWORK_DIST_DIR = os.path.join(CHECKER_FRAMEWORK, "framework", "build", "libs")
+FRAMEWORK_BINARY = os.path.join(FRAMEWORK_DIST_DIR, "framework-"+CF_VERSION+".jar")
+FRAMEWORK_SOURCE_JAR = os.path.join(FRAMEWORK_DIST_DIR, "framework-"+CF_VERSION+"-source.jar")
+FRAMEWORK_JAVADOC_JAR = os.path.join(FRAMEWORK_DIST_DIR, "framework-"+CF_VERSION+"-javadoc.jar")
+
FRAMEWORKTEST_DIST_DIR = os.path.join(CHECKER_FRAMEWORK, "framework-test", "build", "libs")
FRAMEWORKTEST_BINARY = os.path.join(FRAMEWORKTEST_DIST_DIR, "framework-test-"+CF_VERSION+".jar")
FRAMEWORKTEST_SOURCE_JAR = os.path.join(FRAMEWORKTEST_DIST_DIR, "framework-test-"+CF_VERSION+"-source.jar")
diff --git a/maven-artifacts/poms/frameworkPom.xml b/maven-artifacts/poms/frameworkPom.xml
new file mode 100644
index 00000000000..12fc8c37cff
--- /dev/null
+++ b/maven-artifacts/poms/frameworkPom.xml
@@ -0,0 +1,29 @@
+
+
+ 4.0.0
+ jar
+ Checker Framework Core Library
+ org.checkerframework
+ framework
+
+
+ 2.6.0
+
+
+
+ checker-releases
+ https://checkerframework.org/dev/m2-repo
+
+
+
+
+
+ org.checkerframework
+ dataflow
+ 2.6.0
+ jar
+
+
+
diff --git a/maven-artifacts/release/frameworkReleasePom.xml b/maven-artifacts/release/frameworkReleasePom.xml
new file mode 100644
index 00000000000..ec2ac68cce0
--- /dev/null
+++ b/maven-artifacts/release/frameworkReleasePom.xml
@@ -0,0 +1,77 @@
+
+
+ 4.0.0
+ jar
+
+ Checker Framework Core Library
+ https://checkerframework.org
+
+ The Checker Framework core classes.
+
+
+ org.checkerframework
+ framework
+
+
+
+ GNU General Public License, version 2 (GPL2), with the classpath exception
+ http://www.gnu.org/software/classpath/license.html
+ repo
+
+
+
+ The MIT License
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+
+
+ org.checkerframework
+ dataflow
+ 2.6.0
+ jar
+
+
+
+
+ 2.6.0
+
+
+ https://github.com/typetools/checker-framework.git
+ https://github.com/typetools/checker-framework.git
+
+
+
+
+
+ mernst
+ Michael Ernst
+ mernst@cs.washington.edu
+ https://homes.cs.washington.edu/~mernst/
+ University of Washington
+ https://www.cs.washington.edu/
+
+
+
+ wmdietl
+ Werner M. Dietl
+ wdietl@uwaterloo.ca
+ University of Waterloo
+ http://uwaterloo.ca/
+
+
+
+ smillst
+ Suzanne Millstein
+ smillst@cs.washington.edu
+ University of Washington PLSE Group
+ https://www.cs.washington.edu/research/plse/
+
+
+
+
+