@@ -494,6 +494,11 @@ def prerelease(session: nox.sessions.Session, tests_path):
494
494
CURRENT_DIRECTORY / "testing" / f"constraints-{ session .python } .txt"
495
495
)
496
496
497
+ # Ignore officially released versions of certain packages specified in
498
+ # testing/constraints-*.txt and install a more recent, pre-release versions
499
+ # directly
500
+ already_installed = set ()
501
+
497
502
# PyArrow prerelease packages are published to an alternative PyPI host.
498
503
# https://arrow.apache.org/docs/python/install.html#installing-nightly-packages
499
504
session .install (
@@ -504,6 +509,8 @@ def prerelease(session: nox.sessions.Session, tests_path):
504
509
"--upgrade" ,
505
510
"pyarrow" ,
506
511
)
512
+ already_installed .add ("pyarrow" )
513
+
507
514
session .install (
508
515
"--extra-index-url" ,
509
516
"https://pypi.anaconda.org/scipy-wheels-nightly/simple" ,
@@ -512,16 +519,48 @@ def prerelease(session: nox.sessions.Session, tests_path):
512
519
"--upgrade" ,
513
520
"pandas" ,
514
521
)
522
+ already_installed .add ("pandas" )
523
+
524
+ # TODO(shobs):
525
+ # Commit https://github.com/ibis-project/ibis/commit/c20ba7feab6bdea6c299721310e04dbc10551cc2
526
+ # introduced breaking change that removed the following:
527
+ # ibis.expr.rules.column
528
+ # ibis.expr.rules.value
529
+ # ibis.expr.rules.any
530
+ # Let's exclude ibis head from prerelease install list for now. Instead, use
531
+ # a working ibis-framework version resolved via setup.by (currently resolves
532
+ # to version 6.2.0 due to version requirement "6.2.0,<7.0.0dev").
533
+ # We should enable the head back once bigframes support a version that
534
+ # includes the above commit.
535
+ # session.install(
536
+ # "--upgrade",
537
+ # "-e", # Use -e so that py.typed file is included.
538
+ # "git+https://github.com/ibis-project/ibis.git#egg=ibis-framework",
539
+ # )
540
+ session .install ("--no-deps" , "ibis-framework==6.2.0" )
541
+ already_installed .add ("ibis-framework" )
542
+
543
+ # Workaround https://github.com/googleapis/python-db-dtypes-pandas/issues/178
544
+ session .install ("--no-deps" , "db-dtypes" )
545
+ already_installed .add ("db-dtypes" )
546
+
547
+ # Ensure we catch breaking changes in the client libraries early.
548
+ session .install (
549
+ "--upgrade" ,
550
+ "-e" ,
551
+ "git+https://github.com/googleapis/python-bigquery.git#egg=google-cloud-bigquery" ,
552
+ )
553
+ already_installed .add ("google-cloud-bigquery" )
515
554
session .install (
516
555
"--upgrade" ,
517
- "-e" , # Use -e so that py.typed file is included.
518
- "git+https://github.com/ibis-project/ibis .git#egg=ibis-framework " ,
556
+ "-e" ,
557
+ "git+https://github.com/googleapis/python-bigquery-storage .git#egg=google-cloud-bigquery-storage " ,
519
558
)
520
- # Workaround https://github.com/googleapis/python-db-dtypes-pandas/issues/178
521
- session .install ("--no-deps" , "db-dtypes" )
559
+ already_installed .add ("google-cloud-bigquery-storage" )
522
560
523
561
# Workaround to install pandas-gbq >=0.15.0, which is required by test only.
524
562
session .install ("--no-deps" , "pandas-gbq" )
563
+ already_installed .add ("pandas-gbq" )
525
564
526
565
session .install (
527
566
* set (UNIT_TEST_STANDARD_DEPENDENCIES + SYSTEM_TEST_STANDARD_DEPENDENCIES ),
@@ -541,9 +580,6 @@ def prerelease(session: nox.sessions.Session, tests_path):
541
580
constraints_text = constraints_file .read ()
542
581
543
582
# Ignore leading whitespace and comment lines.
544
- already_installed = frozenset (
545
- ("db-dtypes" , "pandas" , "pyarrow" , "ibis-framework" , "pandas-gbq" )
546
- )
547
583
deps = [
548
584
match .group (1 )
549
585
for match in re .finditer (
0 commit comments