Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Update dependencies to latest versions #1010

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions .github/workflows/GithubActionTests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
docker build -t quay.io/bioconda/bioconda-utils-test-env-cos7:latest -f ./Dockerfile.test ./

- name: Run tests '${{ matrix.py_test_marker }}'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
eval "$(conda shell.bash hook)"
conda activate bioconda
Expand Down Expand Up @@ -73,6 +75,8 @@ jobs:
python setup.py install

- name: Run tests
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
eval "$(conda shell.bash hook)"
conda activate bioconda
Expand Down
20 changes: 10 additions & 10 deletions bioconda_utils/bioconda_utils-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@ conda-forge-pinning=2024.06.01.05.54.15

# basics
python=3.10.*
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm too afraid to bump python to 3.12 ... but if someone says its a good idea, please let me know!

conda=24.5.*
conda=24.9.*
conda-libmamba-solver=24.1.*
conda-build=24.5.*
conda-index=0.4.*
conda-package-streaming=0.9.*
conda-build=24.9.*
conda-index=0.5.*
conda-package-streaming=0.11.*
mamba=1.5.*
boa=0.17.*
#boa=0.17.*
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we using this one? This one is currently blocked by conda-forge/boa-feedstock#85

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the boa imports were all removed in #980

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#boa=0.17.*


argh=0.31.* # CLI
colorlog=6.* # Logging
tqdm=4.66.* # Progress monitor
yaspin=2.* #
ruamel.yaml=0.18.* # Recipe YAML parsing
pyaml=24.04.* # Faster YAML parser (deprecate?)
networkx=3.3.* # (networkx>3.3 needs python>=3.10)
pyaml=24.09.* # Faster YAML parser (deprecate?)
networkx=3.4.* # (networkx>3.3 needs python>=3.10)
pandas=2.2.* #
libblas=*=*openblas # Avoid large mkl package (pulled in by pandas)
boltons=24.0.* #
Expand All @@ -43,10 +43,10 @@ aiohttp=3.9.* # HTTP lib
aiohttp-jinja2 # jinja2 renderer for aiohttp.web
aiohttp-session #
aiohttp-security #
aiofiles=23.* # async open
aioftp=0.22.* # FTP lib
aiofiles=24.* # async open
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codebase verification

aiofiles updated to version 24.1.0 with Potential Breaking Changes

The aiofiles dependency has been updated from version 23.* to 24.1.0. This major version update includes the following changes that may impact the project's compatibility:

  • Dropped Python 3.7 Support: Ensure that the project is using Python 3.8 or higher. If your project still relies on Python 3.7, you will need to upgrade the Python version or revert aiofiles to version 23.2.1.
  • Updated Async Idioms: The removal of types.coroutine and making AiofilesContextManager awaitable may require refactoring your asynchronous code to align with the new patterns introduced in this version.

Please review your project's Python version and asynchronous I/O implementations to ensure compatibility with aiofiles 24.1.0.

🔗 Analysis chain

Review changelog: aiofiles major version update

The aiofiles version has been updated from 23.* to 24.*. This major version update may include significant changes or potential breaking changes. While keeping dependencies up-to-date is important, it's crucial to review the changelog for any breaking changes that might affect the project's async I/O operations.

Please run the following script to review the changelog and check for any breaking changes:


Action Required: Verify aiofiles 24. Release Details*

The previous attempt to verify the aiofiles 24.* release targeted the wrong repository and did not provide the necessary information. Please run the following script to accurately review the aiofiles changelog and check for any breaking changes:


Action Required: Verify the Existence of aiofiles 24. Release*

The previous script incorrectly targeted the 'conda/conda-package-streaming' repository and failed to find the aiofiles 24.* release. Please run the following script to list all releases in the 'Tinche/aiofiles' repository and identify the correct release tag:


Action Required: Review aiofiles 24.1.0 Changelog for Breaking Changes

The aiofiles has been updated to version 24.1.0. To ensure compatibility and identify any potential breaking changes introduced in this major version update, please run the following script to review the changelog:


Action Required: Review aiofiles v24.1.0 Changelog for Breaking Changes

The aiofiles has been updated to version 24.1.0. To ensure compatibility and identify any potential breaking changes introduced in this major version update, please run the following script to review the changelog:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Review changelog and check for breaking changes in aiofiles 24.*

# Test: Search for breaking changes
gh search issues "aiofiles 24 breaking change" --repo Tinche/aiofiles

# Display changelog
echo "Please review the following changelog:"
gh release view --repo Tinche/aiofiles 24.0.0

Length of output: 269


Script:

#!/bin/bash
# Description: Review changelog and check for breaking changes in aiofiles 24.*

# Search for breaking changes in issues
gh search issues "aiofiles 24 breaking change" --repo Tinche/aiofiles

# Display changelog for version 24.0.0
echo "Please review the following changelog:"
gh release view --repo Tinche/aiofiles 24.0.0

Length of output: 224


Script:

#!/bin/bash
# Description: List all releases in the Tinche/aiofiles repository to verify aiofiles 24.* release

# List all releases
gh release list --repo Tinche/aiofiles

# Optionally, search for releases matching 24.*
gh release list --repo Tinche/aiofiles | grep '^v?24\.' 

Length of output: 215


Script:

#!/bin/bash
# Description: Fetch and review the changelog for aiofiles 24.1.0 to identify breaking changes

# Display changelog for version 24.1.0
echo "Fetching changelog for aiofiles v24.1.0..."
gh release view --repo Tinche/aiofiles 24.1.0

Length of output: 160


Script:

#!/bin/bash
# Description: Fetch and review the changelog for aiofiles v24.1.0 to identify breaking changes

# Display changelog for version v24.1.0
echo "Fetching changelog for aiofiles v24.1.0..."
gh release view --repo Tinche/aiofiles v24.1.0

Length of output: 956

aioftp=0.23.* # FTP lib
backoff=2.2.* # retrying of failed API calls
cachetools=5.3.* # request caching (NEEDED?)
cachetools=5.5.* # request caching (NEEDED?)

# client API wrappers
gitpython=3.1.* # githandler
Expand Down
4 changes: 2 additions & 2 deletions versioneer.py
Original file line number Diff line number Diff line change
Expand Up @@ -339,9 +339,9 @@ def get_config_from_root(root):
# configparser.NoOptionError (if it lacks "VCS="). See the docstring at
# the top of versioneer.py for instructions on writing your setup.cfg .
setup_cfg = os.path.join(root, "setup.cfg")
parser = configparser.SafeConfigParser()
parser = configparser.ConfigParser()
with open(setup_cfg, "r") as f:
parser.readfp(f)
parser.read_file(f)
Comment on lines 340 to +344
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Consider updating error handling for better robustness

While the changes to use ConfigParser and read_file are excellent, it might be beneficial to update the error handling in this function. Consider catching specific exceptions that might be raised by the new methods, such as configparser.Error or its subclasses, to provide more precise error messages and improve the overall robustness of the function.

Here's a suggested improvement:

try:
    parser = configparser.ConfigParser()
    with open(setup_cfg, "r") as f:
        parser.read_file(f)
except configparser.Error as e:
    print(f"Error parsing {setup_cfg}: {e}", file=sys.stderr)
    return 1
except IOError as e:
    print(f"Error reading {setup_cfg}: {e}", file=sys.stderr)
    return 1

VCS = parser.get("versioneer", "VCS") # mandatory

def get(parser, name):
Expand Down