Bug 239302 - www/py-requests: Update to 2.22.0
Summary: www/py-requests: Update to 2.22.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Kai Knoblich
URL: https://github.com/psf/requests/blob/...
Keywords:
Depends on:
Blocks: 229322 241566
  Show dependency treegraph
 
Reported: 2019-07-19 15:27 UTC by Steve Wills
Modified: 2019-11-13 01:48 UTC (History)
3 users (show)

See Also:
koobs: maintainer-feedback+
kai: merge-quarterly+


Attachments
patch (1.98 KB, patch)
2019-07-19 15:27 UTC, Steve Wills
kai: maintainer-approval+
Details | Diff
py-requests-2.22-with-fixed-tests.patch (2.54 KB, patch)
2019-11-02 09:37 UTC, Kai Knoblich
kai: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Wills freebsd_committer 2019-07-19 15:27:04 UTC
New version available, I'll post a patch
Comment 1 Steve Wills freebsd_committer 2019-07-19 15:27:07 UTC
Created attachment 205892 [details]
patch

patch to update port
Comment 2 Kai Knoblich freebsd_committer 2019-11-02 09:29:57 UTC
Taking this PR as discussed with koobs@.

Set this PR also as a blocker for bug #229322 (= net/py-urllib3) because www/py-requests 2.22 loosens the pinned requirements for www/py-urllib3 in the setup.py:

> 'urllib3>=1.21.1,<1.26,!=1.25.0,!=1.25.1',

Once www/py-requests 2.22 lands into the Ports tree we can update www/py-urllib3 to 1.25.6 (if possible).
Comment 3 Kai Knoblich freebsd_committer 2019-11-02 09:37:57 UTC
Created attachment 208789 [details]
py-requests-2.22-with-fixed-tests.patch

Attached is an updated version based on swills@' initial patch which does following:

- Removes obsolete CONFLICTS_INSTALL entry
- Backports a patch from upstream that fixes the unittests in conjunction with devel/py-pytest >= 4 
- Update the comments regarding the supported Python versions

Set maintainer approval for it as it was given implicitly regarding this PR.

Also keep swills@' patch for now as it has sorted RUN_DEPENDS which we can commit after www/py-requests 2.22 has landed.
Comment 4 Kai Knoblich freebsd_committer 2019-11-02 09:59:07 UTC
QA is so far ok:

- poudriere (11.3-, 12.0-RELEASE, 13.0-CURRENT@r353466 amd64 i386) for each py27 + py36 flavor -> OK
- portlint -> OK
- "small" exp-run against all direct consumers (= {BUILD,RUN,TEST}_DEPENDS) on 11.3-RELEASE amd64 for py27 + py36 -> OK

The upgrade from 2.21 to 2.22 is a rather "small" one because it contains no API changes. The overall condition of the consumers is good so far as given from the list below:

>  Port				       | Requirements	       | Remarks
> -------------------------------------+-----------------------+-------------------------------------------------------
> astro/py-spacetrack:			N/A			Noted as 'requests' in setup.py
> audio/beets:				N/A			Noted as 'requests' in setup.py
> audio/py-discogs-client:		N/A			Noted as 'requests' in setup.py
> audio/py-gmusicapi:			>=1.1.0,!=1.2.0		setup.py /in requirements ==2.11.1 but not used
> audio/py-pyacoustid:			N/A			Noted as 'requests' in setup.py
> audio/py-soundcloud:			>=0.14.0		setup.py
> audio/py-soundscrape:			>=2.9.0			requirements.txt
> benchmarks/py-locust:			>=2.9.1			setup.py
> biology/py-Genesis-PyAPI:		>=2.6.0			setup.py
> biology/py-multiqc:			N/A			Noted as 'requests' in setup.py
> biology/py-orange3-bioinformatics:	N/A			Noted as 'requests' in requirements.txt
> databases/clickhouse:			N/A			No version given, but required by some Python sources
> databases/couchdb2:			==2.20.1		src/mango/requirements.txt, only used for testing
> databases/py-influxdb:		>=2.17.0		requirements.txt
> databases/py-python-arango:		N/A			Noted as 'requests' in setup.py
> databases/py-python-swiftclient:	>=1.1.0			requirements.txt
> databases/py-sispy:			N/A			Required by sispy/http.py
> databases/py-tableschema:		>=2.5			setup.py
> deskutils/dosage:			>=2.0			requirements.txt
> deskutils/py-bugwarrior:		N/A			Noted as 'requests' in setup.py
> deskutils/py-pystash:			>=2.2.0			setup.py
> deskutils/py-vdirsyncer:		>=2.4.1,!=2.9.0		setup.py
> deskutils/virt-manager:		N/A			Required by virtints/install/urlfetcher.py
> devel/b2:				>=2.9.1			requirements.txt
> devel/bpython:			N/A			Noted as 'requests' in setup.py
> devel/euca2ools:			N/A			Noted as 'requests' in setup.py
> devel/git-review:			>=1.1			requirements.txt
> devel/py-IBMQuantumExperience:	N/A			Noted as 'requests' in setup.py
> devel/py-azure-cosmos:		>=2.10.0		setup.py
> devel/py-azure-datalake-store:	>=2.20.0		setup.py
> devel/py-azure-keyvault:		>=2.18.4		setup.py
> devel/py-azure-multiapi-storage:	N/A			Noted as 'requests' in setup.py
> devel/py-azure-storage-common:	N/A			Noted as 'requests' in setup.py
> devel/py-cabby:			>=2.7.0			requirements.txt
> devel/py-certsrv:			N/A			Noted as 'requests' in setup.py
> devel/py-codecov:			>=2.7.9			setup.py
> devel/py-cookiecutter:		>=2.18.0		setup.py
> devel/py-coreapi:			N/A			Noted as 'requests' in setup.py
> devel/py-flex:			>=2.4.3			Noted as 'requests' in setup.py
> devel/py-glance-store:		>=2.14.2		requirements.txt
> devel/py-gtfslib:			N/A			Noted as 'requests' in setup.py
> devel/py-jenkins-job-builder:		N/A			might not be required anymore, no references in setup.py/code
> devel/py-jira:			>=2.10.0		requirements.txt
> devel/py-jsonref:			>=1.2			jsonref.py
> devel/py-keystoneauth1:		>=2.14.2		requirements.txt
> devel/py-keystonemiddleware:		>=2.14.2		requirements.txt
> devel/py-opengrok-tools:		>=2.20.0		setup.py / requirements ==2.20.0, patched out
> devel/py-os-brick:			>=2.14.2		requirements.txt
> devel/py-oslo.policy:			>=2.14.2		requirements.txt
> devel/py-oslo.vmware:			>=2.14.2		requirements.txt
> devel/py-osprofiler:			>=2.10.0		requirements.txt
> devel/py-pooch:			N/A			Noted as 'requests' in setup.py
> devel/py-prance:			~=2.21			setup.py
> devel/py-pyfcm:			N/A			pycfm/__meta__.py
> devel/py-pygithub:			>=2.14.0		setup.py
> devel/py-pymaven-patch:		>=2.7.0<3.0.0		requirements.txt
> devel/py-pymisp:			N/A			Noted as 'requests' in setup.py
> devel/py-pyral:			>=2.12.5		setup.py
> devel/py-pytest:			N/A			Noted as 'requests' in setup.py
> devel/py-pytest-localserver:		N/A			Noted as 'requests' in setup.py
> devel/py-python-bugzilla:		N/A			Noted as 'requests' in requirements.txt
> devel/py-python-gist:			N/A			Noted as 'requests' in setup.py
> devel/py-python-gitlab:		>=2.4.2			setup.py
> devel/py-python-jenkins:		N/A			Noted as 'requests' in requirements.txt
> devel/py-pytvmaze:			N/A			Noted as 'requests' in requirements.txt
> devel/py-rauth:			>=1.2.3			setup.py
> devel/py-responses:			>=2.0			setup.py
> devel/py-streamparse:			N/A			Noted as 'requests' in setup.py
> devel/py-tabulator:			>=2.8			setup.py
> devel/py-tinyrpc:			N/A			Noted as 'requests' in setup.py
> devel/py-twine:			>=2.5.0,!2.15!,2.16	setup.py
> devel/py-update_checker:		>=2.3.0			setup.py
> devel/py-wlc:				N/A			Noted as 'requests' in requirements.txt
> devel/py-yandex-money-sdk:		>2.4.0			setup.py
> devel/py-yarg:			N/A			Noted as 'requests' in setup.py
> devel/youcompleteme:			>=2.5.1			ycmd/examples/requirements.txt
> dns/py-cloudflare:			N/A			Noted as 'requests' in setup.py
> dns/py-dns-lexicon:			N/A			Noted as 'requests' in setup.py
> dns/py-ns1-python:			N/A			ns1/rest/resource.py
> dns/py-tldextract:			>=2.1.0			setup.py
> finance/electrum:			N/A			Seems to use a vendored version now / was required for 3.2.0
> finance/py-stripe:			>=2.20			setup.py
> games/anki:				N/A			Noted as 'requests' in requirements.txt
> games/craft:				N/A			server.py
> games/pyfa:				N/A			setup.py with 'import requests.certs'
> graphics/py-OWSLib:			>=1.0			requirements.txt
> graphics/py-imgurpython:		N/A			Noted as 'requests' in setup.py
> graphics/py-plotly:			N/A			Noted as 'requests' in setup.py
> graphics/py-pyepsg:			N/A			Noted as 'requests' in setup.py
> graphics/qgis:			N/A			Might not be required, tests require Python 3 and urllib.requests is used
> graphics/qgis-ltr:			N/A			Might not be required, tests require Python 3 and urllib.requests is used
> graphics/rapid-photo-downloader:	N/A			Noted as 'requests' in requirements.txt
> graphics/variety:			N/A			Noted as 'requests' in requirements.txt
> mail/py-premailer:			N/A			Noted as 'requests' in setup.py
> math/py-nevergrad:			>=2.21.0		requirements/bench.txt
> math/py-pandas-datareader:		>=2.3.0			requirements.txt
> misc/orange3:				N/A			Noted as 'requests' in requirements-core.txt
> misc/pubs:				N/A			Noted as 'requests' in setup.py
> misc/py-cinder:			>=2.14.2		requirements.txt
> misc/py-serverfiles:			>=2.11.1		setup.py
> misc/py-socli:			N/A			setup.py / requirements.txt ==2.22.0, only used for CI by Travis
> misc/py-toil:				>2,<3			setup.py
> misc/snakemake:			N/A			Noted as 'requests' in setup.py
> multimedia/livestreamer:		>=1.0<3.0		setup.py
> multimedia/mythtv:			N/A			Required by some Python sources
> multimedia/py-moviepy:		>=2.8.1,<3.0		setup.py
> multimedia/py-soco:			N/A			Noted as 'requests' in requirements.txt
> multimedia/py-subliminal:		>=2.0			setup.py
> net-im/py-fbmq:			>=2.0			setup.py
> net-im/py-libturpial:			N/A			Noted as 'requests' in setup.py / requirements.txt >=2.0.0
> net-im/toot:				>=2.13<3.0		setup.py
> net-mgmt/py-adal:			>=2.0.0			setup.py
> net-mgmt/py-msrest:			~=2.16			setup.py
> net-mgmt/py-nxapi-plumbing:		>=2.7.0			requirements.txt
> net-mgmt/py-pynxos:			>=2.7.0			requirements.txt
> net-mgmt/py-pyzabbix:			>=1.0			setup.py
> net-p2p/tribler:			N/A			Required by some Python code
> net/cloud-init:			N/A			Noted as 'requests' in requirements.txt
> net/cloud-init-azure:			N/A			Noted as 'requests' in requirements.txt
> net/py-GeoIP2:			>=2.9			requirements.txt
> net/py-cloudflare-scrape-js2py:	>=2.9.2			setup.py
> net/py-confluent-kafka:		N/A			Noted as 'requests;python_version<"3.2"' in setup.py
> net/py-gspread:			>=2.2.1			setup.py
> net/py-python-barbicanclient:		>=2.10.0		setup.py
> net/py-python-ceilometerclient:	>=2.8.1,!=2.9.0		requirements.txt
> net/py-python-designateclient:	>=2.10.0,!=2.12.2	requirements.txt
> net/py-python-glanceclient:		>=2.14.2		requirements.txt
> net/py-python-heatclient:		>=2.10.0,!=2.12.2	requirements.txt
> net/py-python-keystoneclient:		>=2.14.2		requirements.txt
> net/py-python-neutronclient:		>=2.14.2		requirements.txt
> net/py-python-novaclient:		N/A			Required by some Python code
> net/py-python-twitter:		N/A			Noted as 'requests' in setup.py
> net/py-pyvmomi:			>=2.3.0			requirements.txt
> net/py-rainbowstream:			==2.5.3			setup.py / Patched out
> net/py-ripe.atlas.cousteau:		>=2.7.0			setup.py
> net/py-ripe.atlas.tools:		>=2.7.0			setup.py
> net/py-sbws:				N/A			Noted as 'requests' in setup.py
> net/py-shodan:			>=2.2.1			requirements.txt
> net/py-smart_open:			N/A			Noted as 'requests' in setup.py
> net/py-socketio-client:		>=2.7.0			setup.py
> net/py-softlayer:			>=2.18.4		setup.py
> net/py-tweepy:			>=2.4.3			>=2.4.3 requirements.txt
> net/py-zeep:				>=2.7.0			setup.py
> net/s3ql:				N/A			Noted as 'requests' in setup.py
> ports-mgmt/distilator:		N/A			Noted as 'requests' in requirements.txt
> print/cloudprint:			>=2.7.0			setup.py
> science/dvc:				>=2.18.4		setup.py
> science/psychopy:			N/A			Noted as 'requests' in setup.py
> science/py-obspy:			N/A			Noted as 'requests' in setup.py
> science/py-pymatgen:			N/A			Noted as 'requests' in setup.py / requirements.txt == 2.21.0, but not used
> science/py-pyosf:			N/A			Noted as 'requests' in setup.py
> security/metasploit:			N/A			Required by some Python code
> security/py-acme:			>=2.6.0			setup.py
> security/py-gpsoauth:			N/A			Noted as 'requests' in setup.py / requirements.txt == 2.9.1, but not used
> security/py-pass-audit:		N/A			Noted as 'requests' in setup.py
> security/py-plaso:			>=2.18.0		setup.cfg
> security/py-pysaml2:			>=1.0.0			setup.cfg
> security/py-pywinrm:			>=2.9.1			setup.py
> security/py-requests-credssp:		>=2.0.0			setup.py
> security/py-requests-kerberos:	>=1.0.0			setup.py
> security/py-social-auth-core:		>=2.9.1			requirements-base.txt
> security/py-stix2:			N/A			Noted as 'requests' in setup.py
> security/py-taxii2-client:		N/A			Noted as 'requests' in setup.py
> security/py-trezor:			>=2.4.0			setup.py
> security/theonionbox:			>=2.21			setup.py
> security/wapiti:			N/A			Noted as 'requests' in setup.py
> sysutils/ansible:			N/A			Noted as 'requests' in test/runner/requirements/units.txt
> sysutils/docker-compose:		<2.21			setup.py / Patched out
> sysutils/iocage:			>=2.18.4		setup.py
> sysutils/iocage-devel:		>=2.18.4		setup.py
> sysutils/ntfy:			N/A			Noted as 'requests' in setup.py / requirements.txt == 2.10.0 but not used
> sysutils/py-azure-cli:		~=2.22			setup.py
> sysutils/py-azure-cli-core:		~=2.20			setup.py
> sysutils/py-dlipower:			N/A			Noted as 'requests' in setup.py
> sysutils/py-docker:			>=2.14.2,!2.18.0	setup.py
> sysutils/py-hcloud:			>=2.20,2.23		setup.py
> sysutils/py-packet-python:		N/A			Noted as 'requests' in setup.py
> sysutils/py-python-consul:		>=2.0			requirements.txt
> sysutils/py-python-nomad:		N/A			Noted as 'requests' in setup.py
> sysutils/py-salt:			>=1.0.0			base/requirements.txt
> textproc/py-duecredit:		N/A			Noted as 'requests' in setup.py
> textproc/py-elasticsearch:		>=2.0.0<3.0.0		setup.py
> textproc/py-elasticsearch5:		>=2.0.0,<3.0.0		setup.py
> textproc/py-elasticsearch6:		>=2.0.0,<3.0.0		setup.py
> textproc/py-sphinx:			>=2.0.0			setup.py
> textproc/py-transifex-client:		>=2.19.1,<3.0.0		setup.py
> textproc/scancode-toolkit:		>=2.7.0,<3.0.0		setup.py
> textproc/xml2rfc:			>=2.5.0			requirements.txt
> www/buku:				>=2.18.4		setup.py
> www/chrome-gnome-shell:		>=2.0			README.md
> www/linkchecker:			>=2.2.0			setup.py
> www/py-MechanicalSoup:		>=2.0			requirements.txt
> www/py-arxiv:				N/A			Noted as 'requests' in setup.py
> www/py-aws-requests-auth:		>=0.14.0		setup.py
> www/py-azure-storage:			N/A			Noted as 'requests' in setup.py
> www/py-bokeh:				N/A			Required by some Python code
> www/py-cachecontrol:			N/A			Noted as 'requests' in setup.py
> www/py-caldav:			N/A			Noted as 'requests' in setup.py
> www/py-ddgr:				N/A			Might be not needed anymore
> www/py-django-allauth:		N/A			Noted as 'requests' in setup.py
> www/py-django-mezzanine:		>=2.1.0			setup.py
> www/py-falcon:			N/A			Noted as 'requests' in setup.py
> www/py-flexget:			>=2.20			requirements.txt
> www/py-folium:			N/A			Noted as 'requests' in requirements.txt
> www/py-frappe-bench:			N/A			Noted as 'requests' in setup.py
> www/py-gandi.cli:			N/A			Noted as 'requests' in setup.py
> www/py-google-api-core:		>=2.18.0,<3.0.0dev	setup.py
> www/py-google-resumable-media:	>=2.18.0,<3.0.0dev	setup.py
> www/py-grequests:			N/A			Noted as 'requests' in requirements.txt
> www/py-grip:				>=2.4.1			requirements.txt
> www/py-httmock:			>=1.0.0			setup.py
> www/py-httpie:			>=2.21.0		setup.py
> www/py-hyper:				N/A			Noted as 'requests' in requirements.txt
> www/py-inlinestyler:			>=1.0.0			setup.py
> www/py-instabot:			>=2.21.0		setup.py
> www/py-internetarchive:		>=2.9.1,<3.0.0		setup.py
> www/py-lektor:			N/A			Noted as 'requests' in setup.py
> www/py-mwoauth:			N/A			Noted as 'requests' in setup.py / ==2.21.0 requirements.txt but not used
> www/py-planet:			N/A			Noted as 'requests' in setup.py
> www/py-prawcore:			>=2.6.0,<3.0		setup.py
> www/py-puppetboard:			N/A			Required by some Python code / ==1.2.3 in requirements.txt but not used
> www/py-puppetboard02:			N/A			Required by some Python code / ==2.6.0 in requirements.txt but not used
> www/py-puppetboard03:			>=2.13.0		requirements.txt
> www/py-pyocclient:			>=2.0.1			setup.py
> www/py-python-digitalocean:		N/A			Noted as 'requests' in setup.py / >=2.2.1 requirements.txt
> www/py-pywikibot:			>=2.20.0		setup.py
> www/py-requestbuilder:		>=2.4			setup.py
> www/py-requests-aws4auth:		N/A			Noted as 'requests' in setup.py
> www/py-requests-cache:		>=1.1.0			setup.py
> www/py-requests-file:			>=1.0.0			requirements.txt
> www/py-requests-futures:		>=1.2.0			setup.py
> www/py-requests-mock:			>=2.3,<3		requirements.txt
> www/py-requests-oauthlib:		>=2.0.0			requirements.txt
> www/py-requests-toolbelt:		>=2.0.1,<3.0.0		setup.py
> www/py-requests_ntlm:			>=2.0.0			setup.py
> www/py-rollbar:			>=0.12.1		setup.py
> www/py-slumber:			N/A			Noted as 'requests' in setup.py
> www/py-sseclient:			>=2.9			setup.py
> www/py-starlette:			N/A			Noted as 'requests' in setup.py
> www/py-trello:			>=0.9.1			setup.py
> www/py-treq:				>=2.1.0			setup.py
> www/py-tvdb_api:			N/A			Noted as 'requests' in setup.py
> www/py-txrequests:			>=1.2.0			setup.py
> www/py-urlwatch:			N/A			Noted as 'requests' in setup.py
> www/py-wagtail:			>=2.11.1,<3.0		setup.py
> www/py-weboob:			>=2.0.0			setup.py
> www/py-wikipedia:			>=2.0.0,<3.0.0		requirements.txt
> www/py-wsgidav:			N/A			Required by various sources
> www/pycarddav:			N/A			Noted as 'requests' in setup.py
> www/rtv:				>=2.4.0			setup.py
> www/seahub:				N/A			Required by various sources / ==2.20.1 in requirements.txt but not used
> www/searx:				==2.19.1		requirements.txt but patched out
Comment 5 Kai Knoblich freebsd_committer 2019-11-02 10:06:12 UTC
Asking for an exp-run because www/py-requests is a crucial port and to double check if everything is in order.
Comment 6 commit-hook freebsd_committer 2019-11-08 16:44:35 UTC
A commit references this bug:

Author: kai
Date: Fri Nov  8 16:44:11 UTC 2019
New revision: 517078
URL: https://svnweb.freebsd.org/changeset/ports/517078

Log:
  www/py-requests: Update to 2.22.0

  * Backport a patch from upstream that fixes the unittests in conjunction
    with devel/py-pytest >= 4.

  * Remove obsolete CONFLICTS_INSTALL entry as www/py-requests1 no longer
    exists in the Ports tree.

  This update includes a pinned urllib3 version bump to < 1.26, which clears
  the way for a net/urllib3 update to 1.25.6 [1].

  Changelog:

  https://github.com/requests/requests/blob/v2.22.0/HISTORY.md

  PR:		239302, 229322 [1]
  Submitted by:	swills (based on)
  Approved by:	koobs (maintainer)
  MFH:		2019Q4

Changes:
  head/www/py-requests/Makefile
  head/www/py-requests/distinfo
  head/www/py-requests/files/patch-tests_test__utils.py
Comment 7 commit-hook freebsd_committer 2019-11-10 14:43:56 UTC
A commit references this bug:

Author: kai
Date: Sun Nov 10 14:43:21 UTC 2019
New revision: 517209
URL: https://svnweb.freebsd.org/changeset/ports/517209

Log:
  MFH: r517078

  www/py-requests: Update to 2.22.0

  * Backport a patch from upstream that fixes the unittests in conjunction
    with devel/py-pytest >= 4.

  * Remove obsolete CONFLICTS_INSTALL entry as www/py-requests1 no longer
    exists in the Ports tree.

  This update includes a pinned urllib3 version bump to < 1.26, which clears
  the way for a net/urllib3 update to 1.25.6 [1].

  Changelog:

  https://github.com/requests/requests/blob/v2.22.0/HISTORY.md

  PR:		239302, 229322 [1]
  Submitted by:	swills (based on)
  Approved by:	koobs (maintainer)

  Approved by:	ports-secteam (joneum)

Changes:
_U  branches/2019Q4/
  branches/2019Q4/www/py-requests/Makefile
  branches/2019Q4/www/py-requests/distinfo
  branches/2019Q4/www/py-requests/files/patch-tests_test__utils.py
Comment 8 Kai Knoblich freebsd_committer 2019-11-10 14:49:23 UTC
Comment on attachment 205892 [details]
patch

^ Triage: The maintainer-approval was also given for the initial patch that contains sorted {RUN,TEST}_DEPENDS.
Comment 9 commit-hook freebsd_committer 2019-11-10 14:54:01 UTC
A commit references this bug:

Author: kai
Date: Sun Nov 10 14:53:09 UTC 2019
New revision: 517210
URL: https://svnweb.freebsd.org/changeset/ports/517210

Log:
  www/py-requests: Sort dependencies

  * Sort {RUN,TEST}_DEPENDS with portfmt

  PR:		239302
  Submitted by:	swills (remaining part of the patch)
  Approved by:	koobs (maintainer)

Changes:
  head/www/py-requests/Makefile
Comment 10 Kai Knoblich freebsd_committer 2019-11-10 14:56:06 UTC
The changes were also merged into the 2019Q4 branch and the dependencies were sorted afterwards on the head branch, all done!
Comment 11 Kubilay Kocak freebsd_committer freebsd_triage 2019-11-13 01:48:11 UTC
You're a champion Kai, thank you for helping me out on this issue