https://forge.softwareheritage.org/source/swh-scheduler.git
Revision 58ca79622db077d9a2a897b4671a6013bf70f97d authored by Antoine R. Dumont (@ardumont) on 15 January 2021, 14:49:41 UTC, committed by Antoine R. Dumont (@ardumont) on 19 January 2021, 09:17:05 UTC
This adds an integration test which permutes input to ensure out of order renders the
same result.

This also improves the current algorithm which revealed some hit-and-miss cases:

- Initialization of the first visit detection (through the "last_snapshot" absence
  field, the previous implementation check could fail otherwise).

- out of order policy (ignore old event) in case of supposedly "eventful" event was done
  too early which ignored too much messages (those new test cases failed in some
  permutations). This is now specifically checked in case of referenced snapshots which
  led to cases of possibly changing eventful event into uneventful one. For example, the
  case of an anterior eventful event is caught which means that the current
  most-up-to-date eventful event is actually an uneventful one).

...

Related to T2967
1 parent d3afd14
Raw File
Tip revision: 58ca79622db077d9a2a897b4671a6013bf70f97d authored by Antoine R. Dumont (@ardumont) on 15 January 2021, 14:49:41 UTC
journal_client: Improve stats detection
Tip revision: 58ca796
setup.py
#!/usr/bin/env python3
# Copyright (C) 2015-2019  The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information

from io import open
from os import path

from setuptools import find_packages, setup

here = path.abspath(path.dirname(__file__))

# Get the long description from the README file
with open(path.join(here, "README.md"), encoding="utf-8") as f:
    long_description = f.read()


def parse_requirements(name=None):
    if name:
        reqf = "requirements-%s.txt" % name
    else:
        reqf = "requirements.txt"

    requirements = []
    if not path.exists(reqf):
        return requirements

    with open(reqf) as f:
        for line in f.readlines():
            line = line.strip()
            if not line or line.startswith("#"):
                continue
            requirements.append(line)
    return requirements


setup(
    name="swh.scheduler",
    description="Software Heritage Scheduler",
    long_description=long_description,
    long_description_content_type="text/markdown",
    python_requires=">=3.7",
    author="Software Heritage developers",
    author_email="swh-devel@inria.fr",
    url="https://forge.softwareheritage.org/diffusion/DSCH/",
    packages=find_packages(),
    setup_requires=["setuptools-scm"],
    use_scm_version=True,
    install_requires=parse_requirements() + parse_requirements("swh"),
    extras_require={"testing": parse_requirements("test")},
    include_package_data=True,
    entry_points="""
        [swh.cli.subcommands]
        scheduler=swh.scheduler.cli
    """,
    classifiers=[
        "Programming Language :: Python :: 3",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
        "Operating System :: OS Independent",
        "Development Status :: 5 - Production/Stable",
    ],
    project_urls={
        "Bug Reports": "https://forge.softwareheritage.org/maniphest",
        "Funding": "https://www.softwareheritage.org/donate",
        "Source": "https://forge.softwareheritage.org/source/swh-scheduler",
        "Documentation": "https://docs.softwareheritage.org/devel/swh-scheduler/",
    },
)
back to top