Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
09bfa64
Upgrade Python version to 3.12 in environment.yml
beckermr Aug 29, 2025
bcc8147
Merge branch 'main' into beckermr-patch-2
beckermr Aug 29, 2025
8f7324c
Merge branch 'main' into beckermr-patch-2
beckermr Sep 4, 2025
279afd2
Merge branch 'main' into beckermr-patch-2
beckermr Nov 3, 2025
b220d39
Merge branch 'main' into beckermr-patch-2
beckermr Nov 8, 2025
ba0098f
Merge branch 'main' into beckermr-patch-2
beckermr Nov 9, 2025
4481732
relock w/ conda-lock
regro-cf-autotick-bot Nov 9, 2025
a1648ce
Update conda and conda-forge dependencies versions
beckermr Nov 9, 2025
e5a1be5
Update environment.yml
beckermr Nov 9, 2025
9e02b2f
Merge remote-tracking branch 'origin/main' into beckermr-patch-2
ytausch Jan 21, 2026
ecc0a08
Merge branch 'main' into beckermr-patch-2
beckermr Jan 23, 2026
7312f91
fix: yaml parsing has changed a bit
beckermr Jan 23, 2026
eaa5831
fix: deprecated ruamel yaml usage
beckermr Jan 23, 2026
2087052
style: ruff it up
beckermr Jan 23, 2026
4c80646
fix: more fixes
beckermr Jan 23, 2026
9766a4f
fix: try to fix tests again
beckermr Jan 23, 2026
7f7d658
style: pre the committ
beckermr Jan 23, 2026
31703fb
Merge branch 'main' into beckermr-patch-2
beckermr Jan 23, 2026
003e799
fix: more test failures
beckermr Jan 23, 2026
b78dee5
fix: fix tests again
beckermr Jan 23, 2026
57e1d25
Merge branch 'main' into beckermr-patch-2
beckermr Jan 24, 2026
12bc1f8
fix: address api changes
beckermr Jan 24, 2026
3571e23
test: update pinnings
beckermr Jan 24, 2026
f6a755b
fix: more yaml updates
beckermr Jan 24, 2026
a628ccf
Merge branch 'main' into beckermr-patch-2
beckermr Jan 24, 2026
dff35be
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 24, 2026
3c76b96
fix: roll back submodule
beckermr Jan 24, 2026
75c2cfb
Merge branch 'beckermr-patch-2' of https://github.com/regro/cf-script…
beckermr Jan 24, 2026
f0687ef
fix: roll back again
beckermr Jan 24, 2026
2ba4136
fix: correct syntax
beckermr Jan 24, 2026
02399e5
fix: remove more warnings
beckermr Jan 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37,323 changes: 19,082 additions & 18,241 deletions conda-lock.yml

Large diffs are not rendered by default.

9 changes: 5 additions & 4 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,18 @@ platforms:
dependencies:
- attrs
- backoff
- bcrypt <5
- bcrypt
- cachecontrol
- cachetools
- click
- conda
- conda >=25
- conda-build >=25
- conda-lock
- conda-forge-feedstock-check-solvable >=0.8.0
- conda-forge-feedstock-ops >=0.12.0
- conda-forge-pinning
- conda-libmamba-solver
- conda-forge-metadata >=0.3.0
- conda-forge-metadata >=0.12.0
- conda-package-handling
- conda-smithy >=3.34.1
- conda-build >=3.24.0
Expand Down Expand Up @@ -49,7 +50,7 @@ dependencies:
- pygithub
- pymongo
- pynamodb
- python=3.11
- python=3.12
- python-dateutil
- python-graphviz
- rattler-build >=0.35.4
Expand Down
14 changes: 10 additions & 4 deletions tests/test_r_ucrt.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,11 @@
about:
home: https://magrittr.tidyverse.org, https://github.com/tidyverse/magrittr
license: MIT
summary: Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a value, or the result of an expression, into the next function call/expression. There is flexible support for the type of right-hand side expressions. For more information, see package vignette. To quote
Rene Magritte, "Ceci n'est pas un pipe."
summary: |
Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a
value, or the result of an expression, into the next function call/expression. There is flexible support for the
type of right-hand side expressions. For more information, see package vignette. To
quote Rene Magritte, "Ceci n'est pas un pipe."
license_family: MIT
license_file:
- {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT
Expand Down Expand Up @@ -123,8 +126,11 @@
about:
home: https://magrittr.tidyverse.org, https://github.com/tidyverse/magrittr
license: MIT
summary: Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a value, or the result of an expression, into the next function call/expression. There is flexible support for the type of right-hand side expressions. For more information, see package vignette. To quote
Rene Magritte, "Ceci n'est pas un pipe."
summary: |
Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a
value, or the result of an expression, into the next function call/expression. There is flexible support for the
type of right-hand side expressions. For more information, see package vignette. To
quote Rene Magritte, "Ceci n'est pas un pipe."
license_family: MIT
license_file:
- {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT
Expand Down
11 changes: 4 additions & 7 deletions tests/test_update_deps.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import networkx as nx
import pytest
from ruamel import yaml
from test_migrators import run_test_migration

from conda_forge_tick.lazy_json_backends import load
Expand Down Expand Up @@ -137,7 +136,7 @@ def test_get_grayskull_comparison():
attrs = load(f)
d, rs = get_grayskull_comparison(attrs)
assert rs != ""
assert d["run"]["cf_minus_df"] == {"python <3.9"}
assert d["run"]["cf_minus_df"] == {"python <3.9", "stdlib-list"}
assert any(_d.startswith("python") for _d in d["run"]["df_minus_cf"])


Expand All @@ -151,7 +150,6 @@ def test_update_run_deps():
lines = [ln + "\n" for ln in lines]
recipe = CondaMetaYAML("".join(lines))

d["run"]["df_minus_cf"].remove("pyyaml")
recipe.meta["requirements"]["run"].append("pyyaml")
updated_deps = _update_sec_deps(recipe, d, ["host", "run"], update_python=False)
print("\n" + recipe.dumps())
Expand Down Expand Up @@ -299,7 +297,6 @@ def test_get_dep_updates_and_hints_disabled(disabled_param):
- python <3.9
- pip
run:
- pyyaml
- python <3.9
- stdlib-list

Expand Down Expand Up @@ -899,8 +896,8 @@ def test_apply_dep_update_v1(
"df_minus_cf": {"python >=3.7"},
},
"run": {
"cf_minus_df": {"python <3.9"},
"df_minus_cf": {"pyyaml", "python >=3.7"},
"cf_minus_df": {"python <3.9", "stdlib-list"},
"df_minus_cf": {"python >=3.7"},
},
},
),
Expand Down Expand Up @@ -950,7 +947,7 @@ def test_get_grayskull_comparison_full(

@pytest.fixture
def conda_build_config() -> str:
return yaml.dump({"python_min": ["3.9"]})
return 'python_min: ["3.9"]\n'


@pytest.mark.parametrize(
Expand Down
6 changes: 4 additions & 2 deletions tests/test_v1_yaml/cross_compile/rbase_recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,10 @@ tests:
about:
license: MIT
summary: |
Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a value, or the result of an expression, into the next function call/expression. There is flexible support for the type of right-hand side expressions. For more information, see package vignette. To quote
Rene Magritte, "Ceci n'est pas un pipe."
Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a
value, or the result of an expression, into the next function call/expression. There is flexible support for the
type of right-hand side expressions. For more information, see package vignette. To
quote Rene Magritte, "Ceci n'est pas un pipe."
license_file:
- lib/R/share/licenses/MIT
- LICENSE
Expand Down
6 changes: 4 additions & 2 deletions tests/test_v1_yaml/cross_compile/rbase_recipe_correct.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,10 @@ tests:
about:
license: MIT
summary: |
Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a value, or the result of an expression, into the next function call/expression. There is flexible support for the type of right-hand side expressions. For more information, see package vignette. To quote
Rene Magritte, "Ceci n'est pas un pipe."
Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a
value, or the result of an expression, into the next function call/expression. There is flexible support for the
type of right-hand side expressions. For more information, see package vignette. To
quote Rene Magritte, "Ceci n'est pas un pipe."
license_file:
- lib/R/share/licenses/MIT
- LICENSE
Expand Down
7 changes: 5 additions & 2 deletions tests/test_yaml/cross_compile/rbase_recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,11 @@ test:
about:
home: https://magrittr.tidyverse.org, https://github.com/tidyverse/magrittr
license: MIT
summary: Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a value, or the result of an expression, into the next function call/expression. There is flexible support for the type of right-hand side expressions. For more information, see package vignette. To quote
Rene Magritte, "Ceci n'est pas un pipe."
summary: |
Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a
value, or the result of an expression, into the next function call/expression. There is flexible support for the
type of right-hand side expressions. For more information, see package vignette. To
quote Rene Magritte, "Ceci n'est pas un pipe."
license_family: MIT
license_file:
- {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT
Expand Down
7 changes: 5 additions & 2 deletions tests/test_yaml/cross_compile/rbase_recipe_correct.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,11 @@ test:
about:
home: https://magrittr.tidyverse.org, https://github.com/tidyverse/magrittr
license: MIT
summary: Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a value, or the result of an expression, into the next function call/expression. There is flexible support for the type of right-hand side expressions. For more information, see package vignette. To quote
Rene Magritte, "Ceci n'est pas un pipe."
summary: |
Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a
value, or the result of an expression, into the next function call/expression. There is flexible support for the
type of right-hand side expressions. For more information, see package vignette. To
quote Rene Magritte, "Ceci n'est pas un pipe."
license_family: MIT
license_file:
- {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT
Expand Down
19 changes: 13 additions & 6 deletions tests_integration/lib/_integration_test_helper.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import io
import logging
import shutil
import subprocess
Expand All @@ -6,7 +7,7 @@
from tempfile import TemporaryDirectory
from typing import Any

from github import Github, PullRequest
from github import Auth, Github, PullRequest
from ruamel import yaml

from conda_forge_tick.git_utils import GitCli
Expand Down Expand Up @@ -96,7 +97,7 @@ def _overwrite_github_repository_with_tmpdir(

@staticmethod
def _get_matching_pr(feedstock: str, pr_title_contains: str) -> PullRequest:
gh = Github(get_github_token(GitHubAccount.CONDA_FORGE_ORG))
gh = Github(auth=Auth.Token(get_github_token(GitHubAccount.CONDA_FORGE_ORG)))

full_feedstock_name = feedstock + FEEDSTOCK_SUFFIX
repo = gh.get_organization(GitHubAccount.CONDA_FORGE_ORG).get_repo(
Expand Down Expand Up @@ -163,7 +164,8 @@ def _get_pr_content_recipe_v1(
cli.clone_repo(pr.head.repo.clone_url, target_dir)
cli.checkout_branch(target_dir, pr.head.ref)
with open(target_dir / "recipe" / "recipe.yaml") as f:
return yaml.safe_load(f)
yaml_ = yaml.YAML(typ="safe", pure=True)
return yaml_.load(f)

def _assert_version_pr_content_v1(
self,
Expand All @@ -174,7 +176,10 @@ def _assert_version_pr_content_v1(
old_hash: str,
):
recipe = self._get_pr_content_recipe_v1(pr)
recipe_raw = yaml.dump(recipe)
yaml_ = yaml.YAML(typ="full", pure=True)
sio = io.StringIO()
yaml_.dump(recipe, stream=sio)
recipe_raw = sio.getvalue()
assert recipe["context"]["version"] == new_version
assert recipe["source"]["sha256"] == new_hash
assert old_version not in recipe_raw
Expand Down Expand Up @@ -238,8 +243,10 @@ def assert_bot_pr_contents_v1(
self._assert_version_pr_meta(feedstock, pr)

recipe = self._get_pr_content_recipe_v1(pr)
recipe_raw = yaml.dump(recipe)

yaml_ = yaml.YAML(typ="full", pure=True)
sio = io.StringIO()
yaml_.dump(recipe, stream=sio)
recipe_raw = sio.getvalue()
for included_str in included:
assert included_str in recipe_raw, f"{included_str} not in recipe_raw"

Expand Down
4 changes: 2 additions & 2 deletions tests_integration/lib/_run_test_cases.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import logging
from importlib import resources

from github import Github
from github import Auth, Github

from conda_forge_tick.settings import settings

Expand All @@ -14,7 +14,7 @@


def close_all_open_pull_requests():
github = Github(get_github_token(GitHubAccount.CONDA_FORGE_ORG))
github = Github(auth=Auth.Token(get_github_token(GitHubAccount.CONDA_FORGE_ORG)))
org = github.get_organization(GitHubAccount.CONDA_FORGE_ORG)

for repo in org.get_repos():
Expand Down
4 changes: 2 additions & 2 deletions tests_integration/lib/_setup_repositories.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from dataclasses import dataclass
from typing import Protocol

from github import Github
from github import Auth, Github
from github.Repository import Repository

from ._definitions import TEST_CASE_MAPPING, GitHubAccount
Expand Down Expand Up @@ -144,7 +144,7 @@ def prepare_accounts(setup_infos: Iterable[GitHubAccountSetup]):
"""
for setup_info in setup_infos:
# for each account, we need to create a separate GitHub instance because different tokens are needed
github = Github(get_github_token(setup_info.account))
github = Github(auth=Auth.Token(get_github_token(setup_info.account)))

owner: RepositoryOwner
existing_repos: Iterable[Repository]
Expand Down
Loading