Use "uv" to generate a universal req.txt for 3.9+
be explicit about our need for cgi.FieldStorage as long as webob is giving us them
Use email authentication code for foreign logins without MFA
Email authentication code for unknown location logins
be clear about our tests' dependency on cgi
detect fetch() as ajax request
[#8574] removed the async function start_server in favor a more simple approach to keep the server running
[#8574] updated test to make use of the BetterDebuggingServer class
[#8574] adding aiosmtpd to replace smtpd package
Update smtpd and asynchat
[#8575] upgrade pymongo and pymongocrypt
[#8575] rebuild requirements.txt with python 3.9
[#8575] pre-commit version sync
[#8575] Upgrade pre_commit 4.1.0 -> no upgrade, and its deps: cfgv,identify,nodeenv,PyYAML,virtualenv,distlib,filelock,platformdirs
[#8575] Upgrade ruff 0.9.5 -> 0.9.6
[#8575] Upgrade lxml 5.3.0 -> 5.3.1
[#8575] Upgrade beaker-session-jwt 1.0.2 -> no upgrade, and its deps: Beaker,joserfc,cryptography,cffi,pycparser,pymongo,dnspython
[#8575] Upgrade ActivityStream 0.5.0 -> no upgrade, and its deps: pymongo,dnspython
[#8575] code update to prevent lint errors for extracting value from dictionary without calling .items()
[#8575] replacing Beutifulsoup func findAll with find_all
[#8575] regenerated requirements file with Python 3.9
[#8575] added new packages pyasynchat and aiosmtp
[#8575] updated pre-commit version in config file
[#8575] Upgrade pre_commit 4.0.1 -> 4.1.0, and its deps: cfgv,identify,nodeenv,PyYAML,virtualenv,distlib,filelock,platformdirs
[#8575] Upgrade pytest 8.3.3 -> 8.3.4, and its deps: iniconfig,packaging,pluggy
[#8575] Upgrade WebTest 3.0.1 -> 3.0.4, and its deps: beautifulsoup4,soupsieve,waitress,WebOb
[#8575] Upgrade ruff 0.7.2 -> 0.9.5 (OUTDATED! latest is: 0.9.4)
[#8575] Upgrade wrapt 1.16.0 -> 1.17.2
[#8575] Upgrade Werkzeug 3.1.2 -> 3.1.3, and its deps: MarkupSafe
[#8575] Upgrade setproctitle 1.3.3 -> 1.3.4
[#8575] Upgrade pysolr 3.10.0 -> no upgrade, and its deps: requests,certifi,charset-normalizer,idna,urllib3,setuptools
[#8575] Upgrade Pypeline 0.7.0 -> no upgrade, and its deps: bleach,webencodings,html5lib,six,webencodings,Creoleparser,Genshi,six,six,Markdown,textile,nh3,regex,docutils
[#8575] Upgrade Pygments 2.18.0 -> 2.19.1
[#8575] Upgrade profanityfilter 2.0.6 -> 2.1.0, and its deps: inflection
[#8575] Upgrade pillow 11.0.0 -> 11.1.0
[#8575] Upgrade PasteScript 3.6.0 -> 3.7.0, and its deps: Paste,setuptools,PasteDeploy,setuptools
[#8575] Upgrade GitPython 3.1.43 -> 3.1.44, and its deps: gitdb,smmap
[#8575] Upgrade feedgenerator 2.1.0 -> no upgrade, and its deps: pytz
[#8575] Upgrade emoji 2.14.0 -> 2.14.1
[#8575] Upgrade EasyWidgets 0.4.2 -> no upgrade, and its deps: FormEncode,MarkupSafe,Paste,setuptools,python-dateutil,six,six,WebOb
[#8575] Upgrade beaker-session-jwt 1.0.2 -> no upgrade, and its deps: Beaker,joserfc,cryptography,cffi,pycparser,pymongo,dnspython
[#8575] Upgrade beautifulsoup4 4.12.3 -> 4.13.3, and its deps: soupsieve
Python package upgrades
[#8575] pre-commit version sync
[#8575] Upgrade pre_commit 4.1.0 -> no upgrade, and its deps: cfgv,identify,nodeenv,PyYAML,virtualenv,distlib,filelock,platformdirs
[#8575] Upgrade ruff 0.9.5 -> 0.9.6
[#8575] Upgrade lxml 5.3.0 -> 5.3.1
[#8575] Upgrade beaker-session-jwt 1.0.2 -> no upgrade, and its deps: Beaker,joserfc,cryptography,cffi,pycparser,pymongo,dnspython
[#8575] Upgrade ActivityStream 0.5.0 -> no upgrade, and its deps: pymongo,dnspython
[#8575] code update to prevent lint errors for extracting value from dictionary without calling .items()
[#8575] replacing Beutifulsoup func findAll with find_all
avoid error in audit-logging if a tool is missing an option field
[#8575] regenerated requirements file with Python 3.9
[#8575] added new packages pyasynchat and aiosmtp
[#8575] updated pre-commit version in config file
[#8575] Upgrade pre_commit 4.0.1 -> 4.1.0, and its deps: cfgv,identify,nodeenv,PyYAML,virtualenv,distlib,filelock,platformdirs
[#8575] Upgrade pytest 8.3.3 -> 8.3.4, and its deps: iniconfig,packaging,pluggy
[#8575] Upgrade WebTest 3.0.1 -> 3.0.4, and its deps: beautifulsoup4,soupsieve,waitress,WebOb
[#8575] Upgrade ruff 0.7.2 -> 0.9.5 (OUTDATED! latest is: 0.9.4)
[#8575] Upgrade wrapt 1.16.0 -> 1.17.2
[#8575] Upgrade Werkzeug 3.1.2 -> 3.1.3, and its deps: MarkupSafe
[#8575] Upgrade setproctitle 1.3.3 -> 1.3.4
[#8575] Upgrade pysolr 3.10.0 -> no upgrade, and its deps: requests,certifi,charset-normalizer,idna,urllib3,setuptools
[#8575] Upgrade Pypeline 0.7.0 -> no upgrade, and its deps: bleach,webencodings,html5lib,six,webencodings,Creoleparser,Genshi,six,six,Markdown,textile,nh3,regex,docutils
[#8575] Upgrade Pygments 2.18.0 -> 2.19.1
[#8575] Upgrade profanityfilter 2.0.6 -> 2.1.0, and its deps: inflection
[#8575] Upgrade pillow 11.0.0 -> 11.1.0
[#8575] Upgrade PasteScript 3.6.0 -> 3.7.0, and its deps: Paste,setuptools,PasteDeploy,setuptools
[#8575] Upgrade GitPython 3.1.43 -> 3.1.44, and its deps: gitdb,smmap
[#8575] Upgrade feedgenerator 2.1.0 -> no upgrade, and its deps: pytz
[#8575] Upgrade emoji 2.14.0 -> 2.14.1
[#8575] Upgrade EasyWidgets 0.4.2 -> no upgrade, and its deps: FormEncode,MarkupSafe,Paste,setuptools,python-dateutil,six,six,WebOb
[#8575] Upgrade beaker-session-jwt 1.0.2 -> no upgrade, and its deps: Beaker,joserfc,cryptography,cffi,pycparser,pymongo,dnspython
[#8575] Upgrade beautifulsoup4 4.12.3 -> 4.13.3, and its deps: soupsieve
Python package upgrades
fixup! [#8574] removed the async function start_server in favor a more simple approach to keep the server running
[#8574] removed the async function start_server in favor a more simple approach to keep the server running
[#8574] updated test to make use of the BetterDebuggingServer class
[#8574] adding pyasynchat package to replace asynchat
[#8574] adding pyasynchat package to replace asynchat
[#8574] adding aiosmtpd to replace smtpd package
speedup functional tests by caching jinja bytecode across tests
Update smtpd and asynchat
update tg_context_patch for python 3.12
adding pyasynchat package to replace asynchat
adding aiosmtpd to replace smtpd package
Email authentication code for unknown location logins
increase akismet default timeout
[#8573] hide admin/update/create permissions for authorized and anonymous users
Prevent bad permissions setup
fixup! fixup! [#8573] hide admin/update/create permissions for authorized and anonymous users
fixup! [#8573] hide admin/update/create permissions for authorized and anonymous users
[#8573] hide admin/update/create permissions for authorized and anonymous users
Prevent bad permissions setup
update beaker-session-jwt
Make multifactor flow more reliable
if you end up on /auth/ or /auth/multifactor already fully logged in, skip that form
incomplete multifactor auth redirs back to form, instead of messing with session (problematic if you have any background requests like images, ajax etc)
create return_to redirect helper
Make multifactor flow more reliable