From 00d7973925c20b3421a69cd3b03813f8460d4bb4 Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 22 Jul 2019 19:18:38 +0200 Subject: [PATCH 1/4] makewheel: remove outdated comment [skip ci] --- makepanda/makewheel.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/makepanda/makewheel.py b/makepanda/makewheel.py index fea29bd17f..ad903b021f 100644 --- a/makepanda/makewheel.py +++ b/makepanda/makewheel.py @@ -1,10 +1,5 @@ """ Generates a wheel (.whl) file from the output of makepanda. - -Since the wheel requires special linking, this will only work if compiled with -the `--wheel` parameter. - -Please keep this file work with Panda3D 1.9 until that reaches EOL. """ from __future__ import print_function, unicode_literals from distutils.util import get_platform From 7d6ba557d3a751302bcc057500023752bda62e1f Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 22 Jul 2019 19:46:30 +0200 Subject: [PATCH 2/4] Add project_urls to setup.cfg [skip ci] --- setup.cfg | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/setup.cfg b/setup.cfg index b829da87a3..1ce05a650d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -30,6 +30,11 @@ classifiers = Topic :: Software Development :: Libraries :: Python Modules author = Panda3D Team author_email = etc-panda3d@lists.andrew.cmu.edu +project_urls = + Source=https://github.com/panda3d/panda3d + Tracker=https://github.com/panda3d/panda3d/issues + Documentation=https://www.panda3d.org/manual/ + Funding=https://opencollective.com/panda3d [tool:pytest] testpaths = tests From 9caae6520e6f757020c1a79c193d89fbc21790ce Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 22 Jul 2019 20:00:56 +0200 Subject: [PATCH 3/4] makewheel: add more project URLs to wheel metadata [skip ci] --- makepanda/makewheel.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/makepanda/makewheel.py b/makepanda/makewheel.py index ad903b021f..5535e803d9 100644 --- a/makepanda/makewheel.py +++ b/makepanda/makewheel.py @@ -113,6 +113,8 @@ Root-Is-Purelib: false Tag: {0}-{1}-{2} """ +PROJECT_URLS = dict([line.split('=', 1) for line in GetMetadataValue('project_urls').strip().splitlines()]) + METADATA = { "license": GetMetadataValue('license'), "name": GetMetadataValue('name'), @@ -121,9 +123,7 @@ METADATA = { "summary": GetMetadataValue('description'), "extensions": { "python.details": { - "project_urls": { - "Home": GetMetadataValue('url'), - }, + "project_urls": dict(PROJECT_URLS, Home=GetMetadataValue('url')), "document_names": { "license": "LICENSE.txt" }, @@ -560,6 +560,7 @@ def makewheel(version, output_dir, platform=None): "Summary: {summary}\n" \ "License: {license}\n".format(**METADATA), "Home-page: {0}\n".format(homepage), + ] + ["Project-URL: {0}, {1}\n".format(*url) for url in PROJECT_URLS.items()] + [ "Author: {0}\n".format(author), "Author-email: {0}\n".format(email), "Platform: {0}\n".format(platform), From 224a32090f843c11dd408434981266ab57587bbd Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 26 Jul 2019 08:27:31 +0200 Subject: [PATCH 4/4] task: fix other task chains still running after exception occurs A task returning DS_interrupt would only interrupt the current task chain, not the entire task manager. This meant that other tasks might get run with an exception state set, causing the exception state to get stomped on or the Python interpreter to complain. Fixes #692 --- panda/src/event/asyncTaskManager.cxx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/panda/src/event/asyncTaskManager.cxx b/panda/src/event/asyncTaskManager.cxx index a570609f8a..b10c7ea935 100644 --- a/panda/src/event/asyncTaskManager.cxx +++ b/panda/src/event/asyncTaskManager.cxx @@ -480,6 +480,12 @@ poll() { for (unsigned int i = 0; i < _task_chains.size(); ++i) { AsyncTaskChain *chain = _task_chains[i]; chain->do_poll(); + + if (chain->_state == AsyncTaskChain::S_interrupted) { + // If a task returned DS_interrupt, we need to interrupt the entire + // manager, since an exception state may have been set. + break; + } } // Just in case the clock was ticked explicitly by one of our polling