diff --git a/.ansible-core.metadata b/.ansible-core.metadata
index 7286dea..c9cd9b4 100644
--- a/.ansible-core.metadata
+++ b/.ansible-core.metadata
@@ -1,4 +1,6 @@
-c482edef8c65b0ebf62eb0eddab3c039ac1e4589 SOURCES/ansible-6c75cf5c83da044d1fd69bc444ce4de50d728d09.tar.gz
+56057bba4714e59b0f28bbb778bdb8321a198dd7 SOURCES/ansible-c1bb0c6ab89a344bdcc07ef66887c310e661e3a6.tar.gz
+6a9e1e0eec23c0f3091fa53f91eb8701ad7caaeb SOURCES/jinja2-b08cd4bc64bb980df86ed2876978ae5735572280.tar.gz
+72c5fe7f8145d4cff66426c444c33104a9ae3d53 SOURCES/markupsafe-b5a517506d6cb8091e215a4a89e47db5eee6a68f.tar.gz
 d5b06047a8a5937c9433c8e0e88bcf2ccb6a4f84 SOURCES/packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz
 f20e820c8fa08ff162ace90735a2a89c599f7166 SOURCES/pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz
 c17fd6000af4ccf32930c41e928fea1e38cb5d0a SOURCES/straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz
diff --git a/.gitignore b/.gitignore
index 9ea2782..94a7c09 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
-SOURCES/ansible-6c75cf5c83da044d1fd69bc444ce4de50d728d09.tar.gz
+SOURCES/ansible-c1bb0c6ab89a344bdcc07ef66887c310e661e3a6.tar.gz
+SOURCES/jinja2-b08cd4bc64bb980df86ed2876978ae5735572280.tar.gz
+SOURCES/markupsafe-b5a517506d6cb8091e215a4a89e47db5eee6a68f.tar.gz
 SOURCES/packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz
 SOURCES/pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz
 SOURCES/straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz
diff --git a/SOURCES/0001-Fix-final-fact-delegation-77008-77017.patch b/SOURCES/0001-Fix-final-fact-delegation-77008-77017.patch
deleted file mode 100644
index 0d8e994..0000000
--- a/SOURCES/0001-Fix-final-fact-delegation-77008-77017.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From ae35fc04c3a2068b1d37efe813d1c6938b4f2634 Mon Sep 17 00:00:00 2001
-From: Brian Coca <bcoca@users.noreply.github.com>
-Date: Wed, 16 Feb 2022 11:55:03 -0500
-Subject: [PATCH] Fix final fact delegation (#77008) (#77017)
-
-* fix facts delegation loop overwrite
-
- partial revert of change to allow facts to be present in each loop iteration
- was not needed in final results as result processing alreayd had the disctiontion
- and ended up breaking the assumptions in the calling code.
-
- fixes #76676
-
-(cherry picked from commit c9d3518d2f3812787e1627806b5fa93f8fae48a6)
----
- .../fragments/fix_fax_delegation_loops.yml    |  2 ++
- lib/ansible/executor/task_executor.py         |  8 +------
- .../delegate_to/delegate_facts_loop.yml       | 21 ++++++++++++++++++-
- 3 files changed, 23 insertions(+), 8 deletions(-)
- create mode 100644 changelogs/fragments/fix_fax_delegation_loops.yml
-
-diff --git a/changelogs/fragments/fix_fax_delegation_loops.yml b/changelogs/fragments/fix_fax_delegation_loops.yml
-new file mode 100644
-index 0000000000..d9e07bf110
---- /dev/null
-+++ b/changelogs/fragments/fix_fax_delegation_loops.yml
-@@ -0,0 +1,2 @@
-+bugfixes:
-+  - task_executor reverts the change to push facts into delegated vars on loop finalization as result managing code already handles this and was duplicating effort to wrong result.
-diff --git a/lib/ansible/executor/task_executor.py b/lib/ansible/executor/task_executor.py
-index 1a7c666fea..05dcb96446 100644
---- a/lib/ansible/executor/task_executor.py
-+++ b/lib/ansible/executor/task_executor.py
-@@ -745,13 +745,7 @@ class TaskExecutor:
- 
-         if 'ansible_facts' in result and self._task.action not in C._ACTION_DEBUG:
-             if self._task.action in C._ACTION_WITH_CLEAN_FACTS:
--                if self._task.delegate_to and self._task.delegate_facts:
--                    if '_ansible_delegated_vars' in variables:
--                        variables['_ansible_delegated_vars'].update(result['ansible_facts'])
--                    else:
--                        variables['_ansible_delegated_vars'] = result['ansible_facts']
--                else:
--                    variables.update(result['ansible_facts'])
-+                variables.update(result['ansible_facts'])
-             else:
-                 # TODO: cleaning of facts should eventually become part of taskresults instead of vars
-                 af = wrap_var(result['ansible_facts'])
-diff --git a/test/integration/targets/delegate_to/delegate_facts_loop.yml b/test/integration/targets/delegate_to/delegate_facts_loop.yml
-index 90a25676dd..28a1488de3 100644
---- a/test/integration/targets/delegate_to/delegate_facts_loop.yml
-+++ b/test/integration/targets/delegate_to/delegate_facts_loop.yml
-@@ -5,7 +5,6 @@
-         test: 123
-       delegate_to: "{{ item }}"
-       delegate_facts: true
--      when: test is not defined
-       loop: "{{ groups['all'] | difference(['localhost']) }}"
- 
-     - name: ensure we didnt create it on current host
-@@ -19,3 +18,23 @@
-           - "'test' in hostvars[item]"
-           - hostvars[item]['test'] == 123
-       loop: "{{ groups['all'] | difference(['localhost']) }}"
-+
-+
-+- name: test that we don't polute whole group with one value
-+  hosts: localhost
-+  gather_facts: no
-+  vars:
-+    cluster_name: bleh
-+  tasks:
-+  - name: construct different fact per host in loop
-+    set_fact:
-+      vm_name: "{{ cluster_name }}-{{item}}"
-+    delegate_to: "{{ item }}"
-+    delegate_facts: True
-+    with_items: "{{ groups['all'] }}"
-+
-+  - name: ensure the fact is personalized for each host
-+    assert:
-+      that:
-+        - hostvars[item]['vm_name'].endswith(item)
-+    loop: "{{ groups['all'] }}"
--- 
-2.30.2
-
diff --git a/SPECS/ansible-core.spec b/SPECS/ansible-core.spec
index f0fc0ab..57cb89f 100644
--- a/SPECS/ansible-core.spec
+++ b/SPECS/ansible-core.spec
@@ -1,21 +1,16 @@
-# Is this a nightly build?
-%global nightly 0
-
 # We need this because we are no longer noarch, since our bundled deps might
 # conceivably need to compile arch-specific things. But we currently have no
 # useful debuginfo stuff.
 %global debug_package %{nil}
 
-%if 0%{?nightly}
-%global snap %(date +'%Y%m%d')git
-%global nightly_pretag .dev0
-%endif
-
 # Disable shebang munging for specific paths.  These files are data files.
 # ansible-test munges the shebangs itself.
 %global __brp_mangle_shebangs_exclude_from_file %{SOURCE1}
 
-%global commitId 6c75cf5c83da044d1fd69bc444ce4de50d728d09
+# Filter requires on jinja2 since bundled
+%global __requires_exclude jinja2
+
+%global commitId c1bb0c6ab89a344bdcc07ef66887c310e661e3a6
 %global python39_sitelib /usr/lib/python3.9/site-packages/
 
 # RHEL and Fedora add -s to the shebang line.  We do *not* use -s -E -S or -I
@@ -31,6 +26,8 @@
 %define vendor_pip /usr/bin/python3.9 -m pip install --no-deps -v --no-use-pep517 --no-binary :all: -t %{vendor_path}
 
 # These control which bundled dep versions we pin against
+%global jinja2_version 3.1.2
+%global markupsafe_version 2.1.0
 %global packaging_version 20.4
 %global pyparsing_version 2.4.7
 %global straightplugin_version 1.4.1
@@ -38,30 +35,22 @@
 
 Name: ansible-core
 Summary: SSH-based configuration management, deployment, and task execution system
-Version: 2.12.2
-%if 0%{?nightly}
-Release: 0.1.%{snap}%{?dist}
-%else
-Release: 2%{?dist}
-%endif
+Version: 2.13.3
+Release: 1%{?dist}
 
 Group: Development/Libraries
 License: GPLv3+
-%if 0%{?nightly}
-Source0: %{name}-%{version}%{nightly_pretag}.tar.gz
-%else
 Source0: ansible-%{commitId}.tar.gz
-%endif
 Source1: ansible-test-data-files.txt
 
 # And bundled deps
-Source2: packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz
-Source3: pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz
+Source2: jinja2-b08cd4bc64bb980df86ed2876978ae5735572280.tar.gz
+Source3: markupsafe-b5a517506d6cb8091e215a4a89e47db5eee6a68f.tar.gz
+Source4: packaging-ded06cedf6e20680eea0363fac894cb4a09e7831.tar.gz
+Source5: pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605.tar.gz
 
 # Deps to build man pages
-Source5: straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz
-
-Patch0: 0001-Fix-final-fact-delegation-77008-77017.patch
+Source6: straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed.tar.gz
 
 URL: http://ansible.com
 
@@ -75,32 +64,32 @@ Obsoletes: ansible-base
 
 # Bundled provides that are sprinkled throughout the codebase.
 Provides: bundled(python-backports-ssl_match_hostname) = 3.7.0.1
-Provides: bundled(python-distro) = 1.5.0
+Provides: bundled(python-distro) = 1.6.0
 Provides: bundled(python-selectors2) = 1.1.1
-Provides: bundled(python-six) = 1.13.0
+Provides: bundled(python-six) = 1.16.0
 
 # Things we explicitly bundle via src rpm, and put in ansible._vendor
+Provides: bundled(python-jinja2) = %{jinja2_version}
+Provides: bundled(python-markupsafe) = %{markupsafe_version}
 Provides: bundled(python-packaging) = %{packaging_version}
 Provides: bundled(python-pyparsing) = %{pyparsing_version}
 Provides: bundled(python-straightplugin) = %{straightplugin_version}
 
 BuildRequires: python3-devel
 BuildRequires: python3-docutils
-BuildRequires: python3-jinja2
 BuildRequires: python3-pip
 BuildRequires: python3-pyyaml
 BuildRequires: python3-resolvelib
 BuildRequires: python3-rpm-macros
 BuildRequires: python3-setuptools
 BuildRequires: python3-wheel
-BuildRequires: make git-core
+BuildRequires: make git-core gcc
 
-Requires: git
+Requires: git-core
 Requires: python3
-Requires: python3-jinja2
-Requires: python3-PyYAML
+Requires: python3-PyYAML >= 5.1
 Requires: python3-cryptography
-Requires: python3-resolvelib
+Requires: python3-resolvelib >= 0.5.3
 Requires: python3-six
 Requires: sshpass
 
@@ -126,11 +115,12 @@ This package installs the ansible-test command for testing modules and plugins
 developed for ansible.
 
 %prep
-%setup -q -T -b 2 -n packaging-ded06cedf6e20680eea0363fac894cb4a09e7831
-%setup -q -T -b 3 -n pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605
-%setup -q -T -b 5 -n straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed
+%setup -q -T -b 2 -n jinja2-b08cd4bc64bb980df86ed2876978ae5735572280
+%setup -q -T -b 3 -n markupsafe-b5a517506d6cb8091e215a4a89e47db5eee6a68f
+%setup -q -T -b 4 -n packaging-ded06cedf6e20680eea0363fac894cb4a09e7831
+%setup -q -T -b 5 -n pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605
+%setup -q -T -b 6 -n straightplugin-6634ea8e1e89d5bb23804f50e676f196c52c46ed
 %setup -q -n ansible-%{commitId}
-%patch0 -p 1
 
 %build
 /usr/bin/python3.9 setup.py build
@@ -140,8 +130,10 @@ developed for ansible.
 
 # Handle bundled deps:
 %{vendor_pip} \
-  ../pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605/ \
-  ../packaging-ded06cedf6e20680eea0363fac894cb4a09e7831/
+  ../jinja2-b08cd4bc64bb980df86ed2876978ae5735572280/ \
+  ../markupsafe-b5a517506d6cb8091e215a4a89e47db5eee6a68f/ \
+  ../packaging-ded06cedf6e20680eea0363fac894cb4a09e7831/ \
+  ../pyparsing-6a844ee35ca5125490a28dbd6dd2d15b6498e605/
 
 # Create system directories that Ansible defines as default locations in
 # ansible/config/base.yml
@@ -208,14 +200,44 @@ cp -p lib/ansible_core.egg-info/PKG-INFO .
 %{_datadir}/ansible/
 %{python39_sitelib}/ansible*
 %exclude %{python39_sitelib}/ansible_test
+%exclude %{python39_sitelib}/ansible/_vendor/markupsafe/_speedups.c
 
 %files -n ansible-test
 %{_bindir}/ansible-test
 %{python39_sitelib}/ansible_test
 
 %changelog
-* Tue Jul 19 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.12.2-2
-- fix facts delegation loop overwrite (rhbz#2108651)
+* Mon Aug 15 2022 James Marshall <jamarsha@redhat.com> - 2.13.3-1
+- ansible-core 2.13.3 release (rhbz#2118458)
+
+* Mon Jul 18 2022 James Marshall <jamarsha@redhat.com> - 2.13.2-1
+- ansible-core 2.13.2 release (rhbz#2108229)
+
+* Mon Jun 27 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.13.1-2
+- Update bundled jinja2 version to 3.1.2 (rhbz#2101462)
+
+* Wed Jun 22 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.13.1-1
+- ansible-core 2.13.1 release (rhbz#2100242)
+- add bundled version of jinja2 and markupsafe
+
+* Mon Jun 20 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.12.7-1
+- ansible-core 2.12.7 release (rhbz#2099317)
+- remove legacy nightly configuration
+
+* Tue May 24 2022 James Marshall <jamarsha@redhat.com> - 2.12.6-1
+- ansible-core 2.12.6 release
+
+* Fri May 13 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.12.5-2
+- switch from git to git-core dependency (rhbz#2083386)
+
+* Mon May 09 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.12.5-1
+- ansible-core 2.12.5 release
+
+* Wed Apr 06 2022 James Marshall <jamarsha@redhat.com> - 2.12.4-1
+- ansible-core 2.12.4 release
+
+* Mon Mar 14 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.12.3-1
+- ansible-core 2.12.3 release
 
 * Tue Feb 01 2022 Dimitri Savineau <dsavinea@redhat.com> - 2.12.2-1
 - ansible-core 2.12.2 release