diff --git a/.gitignore b/.gitignore index 95ca13b..4cd5311 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ /APScheduler-3.7.0.tar.gz /APScheduler-3.8.0.tar.gz /APScheduler-3.10.4.tar.gz -/apscheduler-3.11.0.tar.gz diff --git a/.packit.yaml b/.packit.yaml index a9a2f42..1ce81a2 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -6,10 +6,8 @@ specfile_path: python-APScheduler.spec upstream_package_name: APScheduler downstream_package_name: python-APScheduler upstream_project_url: https://github.com/agronholm/apscheduler -version_update_mask: '\d+\.' -upstream_tag_exclude: "^4.[0-9].[0-9]a" # exclude version 4 alpha releases -packit_instances: ["stg"] +upstream_tag_exclude: "^4.[0-9].[0-9]a" # exclude version 4 alpha releases jobs: - job: copr_build @@ -21,6 +19,7 @@ jobs: - job: pull_from_upstream trigger: release + packit_instances: ["prod", "stg"] dist_git_branches: - fedora-all diff --git a/01-test-executors.patch b/01-test-executors.patch deleted file mode 100644 index b3856b7..0000000 --- a/01-test-executors.patch +++ /dev/null @@ -1,102 +0,0 @@ -diff --git a/setup.cfg b/setup.cfg -index 002111f..012cff4 100644 ---- a/setup.cfg -+++ b/setup.cfg -@@ -7,7 +7,7 @@ upload-dir = docs/_build/html - - [tool:pytest] - asyncio_mode = strict --addopts = -rsx --cov --tb=short -+addopts = -rsx --tb=short - testpaths = tests - - [coverage:run] -diff --git a/setup.py b/setup.py -index cd93e10..59f5a80 100644 ---- a/setup.py -+++ b/setup.py -@@ -56,7 +56,6 @@ setup( - 'testing': [ - 'pytest', - 'pytest_asyncio', -- 'pytest-cov', - 'pytest-tornado5' - ], - 'doc': [ -diff --git a/tests/test_executors.py b/tests/test_executors.py -index d67e187..0140dbe 100644 ---- a/tests/test_executors.py -+++ b/tests/test_executors.py -@@ -5,6 +5,7 @@ import gc - import os - import signal - import time -+from time import sleep - - import pytest - from pytz import UTC -@@ -36,11 +37,11 @@ def executor(request, mock_scheduler): - executor_ = ThreadPoolExecutor() - else: - from apscheduler.executors.pool import ProcessPoolExecutor -- executor_ = ProcessPoolExecutor() -+ executor_ = ProcessPoolExecutor(4, {"max_tasks_per_child": 1}) - - executor_.start(mock_scheduler, 'dummy') - yield executor_ -- executor_.shutdown() -+ executor_.shutdown(True) - - - def wait_event(): -@@ -60,12 +61,12 @@ def test_max_instances(mock_scheduler, executor, create_job, freeze_time): - """Tests that the maximum instance limit on a job is respected.""" - events = [] - mock_scheduler._dispatch_event = lambda event: events.append(event) -- job = create_job(func=wait_event, max_instances=2, next_run_time=None) -+ job = create_job(func=wait_event, max_instances=2, next_run_time=None, misfire_grace_time = None) - executor.submit_job(job, [freeze_time.current]) - executor.submit_job(job, [freeze_time.current]) - - pytest.raises(MaxInstancesReachedError, executor.submit_job, job, [freeze_time.current]) -- executor.shutdown() -+ executor.shutdown(True) - assert len(events) == 2 - assert events[0].retval == 'test' - assert events[1].retval == 'test' -@@ -83,12 +84,13 @@ def test_submit_job(mock_scheduler, executor, create_job, freeze_time, timezone, - - """ - mock_scheduler._dispatch_event = MagicMock() -- job = create_job(func=func, id='foo') -+ misfire_grace_time = 1 if event_code == EVENT_JOB_MISSED else None -+ job = create_job(func=func, id='foo', misfire_grace_time=misfire_grace_time) - job._jobstore_alias = 'test_jobstore' - run_time = (timezone.localize(datetime(1970, 1, 1)) if event_code == EVENT_JOB_MISSED else - freeze_time.current) - executor.submit_job(job, [run_time]) -- executor.shutdown() -+ executor.shutdown(True) - - assert mock_scheduler._dispatch_event.call_count == 1 - event = mock_scheduler._dispatch_event.call_args[0][0] -@@ -157,18 +159,13 @@ def test_broken_pool(): - - pid = [None] - event = Event() -- scheduler = BackgroundScheduler(executors={'default': ProcessPoolExecutor(1)}) -+ scheduler = BackgroundScheduler(executors={'default': ProcessPoolExecutor(1, {"max_tasks_per_child": 1})}) - scheduler.add_listener(listener, EVENT_JOB_EXECUTED) - scheduler.add_job(os.getpid, 'date', run_date=datetime.now(UTC)) - scheduler.start() - - event.wait(3) - killed_pid = pid[0] -- os.kill(pid[0], signal.SIGTERM) -- try: -- os.waitpid(pid[0], 0) -- except OSError: -- pass - - event.clear() - scheduler.add_job(os.getpid, 'date', run_date=datetime.now(UTC)) diff --git a/README.packit b/README.packit index cfc44ec..39d81cf 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.104.1.post1.dev0+g23aec6b3.d20241128. +The file was generated using packit 0.86.0.post1.dev2+g1bec2ea8. diff --git a/python-APScheduler.spec b/python-APScheduler.spec index dc4fca4..0e3df0a 100644 --- a/python-APScheduler.spec +++ b/python-APScheduler.spec @@ -1,3 +1,4 @@ +%global srcname APScheduler %global _description %{expand: Advanced Python Scheduler (APScheduler) is a Python library that lets you schedule your Python code to be executed later, either just once or @@ -7,36 +8,39 @@ scheduler restarts and maintain their state. When the scheduler is restarted, it will then run all the jobs it should have run while it was offline.} -Name: python-APScheduler -Version: 3.11.0 +Name: python-%{srcname} +Version: 3.10.4 Release: %autorelease Summary: In-process task scheduler with Cron-like capabilities License: MIT URL: https://pypi.org/project/APScheduler/ -Source0: %{pypi_source apscheduler} +Source0: %{pypi_source %{srcname}} BuildArch: noarch %description %_description -%package -n python3-APScheduler +%package -n python3-%{srcname} Summary: %{summary} BuildRequires: python3-devel -%description -n python3-APScheduler %_description +%description -n python3-%{srcname} %_description %prep -%autosetup -n apscheduler-%{version} -p1 +%autosetup -n %{srcname}-%{version} -p1 # Remove that test as it require services (redis, zookeeper, ...) # up and running. Upstream provides a docker compose to spawn # services before running these tests. rm tests/test_jobstores.py -# Skip missing dependencies in Fedora 42 -sed -i 's/ "anyio >= 4.5.2",//' pyproject.toml -sed -i 's/,rethinkdb//' pyproject.toml +sed -i 's/pytest-tornado5/pytest-tornado/' setup.py +# Remove coverage +sed -i 's/addopts = -rsx --cov/addopts = -rsx/' setup.cfg +sed -i '/pytest-cov/d' setup.py +# It is in the tarball and is not used +rm -r APScheduler.egg-info %generate_buildrequires -%pyproject_buildrequires -x test -x tornado +%pyproject_buildrequires -x testing -x tornado %build %pyproject_wheel @@ -50,7 +54,7 @@ sed -i 's/,rethinkdb//' pyproject.toml export TZ=UTC %pytest -%files -n python3-APScheduler -f %{pyproject_files} +%files -n python3-%{srcname} -f %{pyproject_files} %doc README.rst %changelog diff --git a/sources b/sources index 884733a..79b1eec 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (apscheduler-3.11.0.tar.gz) = c66d87773d3fe353e5f0bbc4bc9ba05337b555db0810e42e2e384fd9717438fda501d0c724cd7180010b11e5d8db901922b79a163aec3a420a6a65eafb6f39f6 +SHA512 (APScheduler-3.10.4.tar.gz) = 44b78e60b7349437fb8d6e5ad3bbd764cfa653fdd65685b586119225e8daaff9b150871887812a1f3d4cd67b942c70e99d1606d38b83685953fb1bb1a82742fe