Skip to content

consider: more extensive optional dep testing for continuous and release CI #187

@shollyman

Description

@shollyman

To consider:

Establish a nox session that combines optional dependencies and runs some subset of integration testing. Issue #177 revealed a case where a partially satisfied set of optional dependencies (+pyarrow, -storage) yielded issues for a consumer of the library.

Due to the combination explosion, we shouldn't run this regularly, but a periodic and release series may make more sense.

optional deps we have in setup at head at time of writing:

extras = {
    "bqstorage": [
        "google-cloud-bigquery-storage >= 1.0.0, <2.0.0dev",
        # Due to an issue in pip's dependency resolver, the `grpc` extra is not
        # installed, even though `google-cloud-bigquery-storage` specifies it
        # as `google-api-core[grpc]`. We thus need to explicitly specify it here.
        # See: https://github.com/googleapis/python-bigquery/issues/83
        "grpcio >= 1.8.2, < 2.0dev",
        "pyarrow>=0.16.0, < 2.0dev",
    ],
    "pandas": ["pandas>=0.17.1"],
    # Exclude PyArrow dependency from Windows Python 2.7.
    'pyarrow: platform_system != "Windows" or python_version >= "3.4"': [
        # Bad Linux release for 0.14.0.
        # https://issues.apache.org/jira/browse/ARROW-5868
        "pyarrow>=0.4.1, != 0.14.0"
    ],
    "tqdm": ["tqdm >= 4.0.0, <5.0.0dev"],
    "fastparquet": [
        "fastparquet",
        "python-snappy",
        # llvmlite >= 0.32.0 cannot be installed on Python 3.5 and below
        # (building the wheel fails), thus needs to be restricted.
        # See: https://github.com/googleapis/python-bigquery/issues/78
        "llvmlite <= 0.31.0",
    ],
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    api: bigqueryIssues related to the googleapis/python-bigquery API.type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions