From 285531ccc74972af38ed5e336cdfc410f7c20572 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 3 Jul 2026 18:25:52 -0700 Subject: [PATCH 01/69] buildsetup ci --- .github/CI_README.md | 105 -- .github/actions/cleanup-conda/action.yml | 34 - .github/actions/create-conda-env/action.yml | 24 - .github/actions/git-workaround/action.yml | 15 - .github/actions/prepare-rtl/action.yml | 38 - .github/actions/run-tests/action.yml | 36 - .github/scripts/build-default-bitstreams.py | 265 ---- .github/scripts/build-extra-tests.sh | 12 - .github/scripts/build-zephyr.sh | 24 - .github/scripts/check-commit.sh | 120 -- .github/scripts/ci_variables.py | 61 - .github/scripts/clean-old-files.sh | 29 - .github/scripts/defaults.sh | 97 -- .github/scripts/fabric_cfg.py | 9 - .github/scripts/github_common.py | 14 - .github/scripts/install-conda.sh | 186 --- .github/scripts/remote-do-rtl-build.sh | 58 - .github/scripts/run-linux-poweroff.py | 86 -- .github/scripts/run-metasims.py | 74 - .github/scripts/run-tests.sh | 207 --- .github/scripts/utils.py | 56 - .github/workflows/build-setup-rhel.yml | 65 + .github/workflows/build-setup-ubuntu.yml | 49 + .github/workflows/check-ci-disable.yml | 102 ++ .github/workflows/chipyard-chisel7.yml | 44 - .github/workflows/chipyard-full-flow.yml | 207 --- .github/workflows/chipyard-run-tests.yml | 1344 ----------------- .github/workflows/config/release-notes.json | 56 - .github/workflows/firesim-cluster-tests.yml | 213 --- .github/workflows/pr-ci.yml | 43 + .github/workflows/release-notes.yml | 51 - .github/workflows/require-label.yml | 24 - .github/workflows/update-circt.yml.disabled | 27 - .gitignore | 1 + conda-reqs/chipyard-base.yaml | 2 +- ...s-riscv-tools-linux-64-lean.conda-lock.yml | 162 +- ...ements-riscv-tools-linux-64.conda-lock.yml | 312 ++-- 37 files changed, 498 insertions(+), 3754 deletions(-) delete mode 100644 .github/CI_README.md delete mode 100644 .github/actions/cleanup-conda/action.yml delete mode 100644 .github/actions/create-conda-env/action.yml delete mode 100644 .github/actions/git-workaround/action.yml delete mode 100644 .github/actions/prepare-rtl/action.yml delete mode 100644 .github/actions/run-tests/action.yml delete mode 100755 .github/scripts/build-default-bitstreams.py delete mode 100755 .github/scripts/build-extra-tests.sh delete mode 100755 .github/scripts/build-zephyr.sh delete mode 100755 .github/scripts/check-commit.sh delete mode 100644 .github/scripts/ci_variables.py delete mode 100755 .github/scripts/clean-old-files.sh delete mode 100755 .github/scripts/defaults.sh delete mode 100644 .github/scripts/fabric_cfg.py delete mode 100644 .github/scripts/github_common.py delete mode 100755 .github/scripts/install-conda.sh delete mode 100755 .github/scripts/remote-do-rtl-build.sh delete mode 100755 .github/scripts/run-linux-poweroff.py delete mode 100755 .github/scripts/run-metasims.py delete mode 100755 .github/scripts/run-tests.sh delete mode 100644 .github/scripts/utils.py create mode 100644 .github/workflows/build-setup-rhel.yml create mode 100644 .github/workflows/build-setup-ubuntu.yml create mode 100644 .github/workflows/check-ci-disable.yml delete mode 100644 .github/workflows/chipyard-chisel7.yml delete mode 100644 .github/workflows/chipyard-full-flow.yml delete mode 100644 .github/workflows/chipyard-run-tests.yml delete mode 100644 .github/workflows/config/release-notes.json delete mode 100644 .github/workflows/firesim-cluster-tests.yml create mode 100644 .github/workflows/pr-ci.yml delete mode 100644 .github/workflows/release-notes.yml delete mode 100644 .github/workflows/require-label.yml delete mode 100644 .github/workflows/update-circt.yml.disabled diff --git a/.github/CI_README.md b/.github/CI_README.md deleted file mode 100644 index a4efc35a0a..0000000000 --- a/.github/CI_README.md +++ /dev/null @@ -1,105 +0,0 @@ -Chipyard Continuous Integration (CI) -=========== - -Website: https://github.com/ucb-bar/chipyard/actions - -GitHub Actions Brief Explanation ---------------------------- - -CI is executed by Github Actions (GA). GA is controlled by `.yml` files in the `.github/workflows/` directory. -In our case, we have just one workflow named `chipyard-run-tests.yml`. -It defines a number of `jobs` within it that do particular tasks. -All jobs in the workflow must pass for the CI run to be successful. -In general, a job is run in parallel with others unless it depends on some other job. -The dependency of one job on the completion of another is specified via the `needs` field. - -For example: -```yaml - prepare-chipyard-cores: - name: prepare-chipyard-cores - needs: [make-keys, setup-complete] -``` -This specifies that the `prepare-chipyard-cores` job needs the both the `make-keys` and the `setup-complete` steps to -be completed before it can run. - -Chipyard runs its CI using a docker image created from `dockerfiles/Dockerfile` and on Berkeley's compute infrastructure. -See its [README](../dockerfiles/README.md) for more details. - -Finally, within each job's `steps:` section, the steps are run sequentially and state persists throughout a job. -So when you run something like `checkout` the next step has the checked out code. - -[Composite Actions](https://docs.github.com/en/actions/creating-actions) (CA) allow for limited subroutine like code re-use within GA. -We use both community created and our own Composite Actions in our CI process. CA capabilities are changing rapidly. -Nesting of composite actions was only recently unveiled. There is a lot of room for more code reuse, in particular -we specify things over and over like docker image tag and checkout commands. - -One use of CA: our process relies on caching to avoid running time-consuming and intensive tasks more often than necessary. - -The following is an example of using the cache@v2 composite action. A step `uses: actions/cache@v2` which take as parameters the -path that contains the data to be cached and a key. Paths can have multiple targets. -The following step can look at the result of the cache operation, if there was cache miss, then we run the command that -will generate the data to be cached. The caching of the generated data is implicit. ->Note: GA cache documentation suggests using the yml level `if: steps.cache-primes.outputs.cache-hit != 'true'` to -> determine whether to run the data generation command. -> At the time of this writing the if construct has a bug and will not run correctly within a composite action. The use -> of a bash based if is a [hack found on stackoverflow](https://stackoverflow.com/questions/65473359/github-action-unable-to-add-if-condition-in-steps) -```yaml - - uses: actions/cache@v2 - id: rtl-build-id - with: - path: | - sims/verilator - sims/firesim/sim - generators/gemmini/software/gemmini-rocc-tests - key: ${{ inputs.group-key }}-${{ github.ref }}-${{ github.sha }} - - name: run rtl build script if not cached - run: | - if [[ "${{ steps.rtl-build-id.outputs.cache-hit }}" != 'true' ]]; then - echo "Cache miss on ${{ inputs.group-key }}-${{ github.ref }}-${{ github.sha }}" - ./.github/scripts/${{ inputs.build-script }} ${{ inputs.group-key }} ${{ inputs.build-type }} - else - echo "cache hit do not prepare rtl" - fi - shell: bash -``` - -Our own composite actions are defined in the `.github/actions//action.yml` - -.github/scripts directory -------------------- - -This directory contains most the collateral for the Chipyard CI to work. -The following is included in `.github/scripts/: directory - - `remote-do-rtl-build.sh` # use verilator to build a sim executable (remotely) - `defaults.sh` # default variables used - `check-commit.sh` # check that submodule commits are valid - `build-extra-tests.sh` # build default chipyard tests located in tests/ - `clean-old-files.sh` # clean up build server files - `do-fpga-rtl-build.sh` # similar to `do-rtl-build` but using fpga/ - `remote-install-verilator.sh` # install verilator on build server - `remote-run-firesim-scala-tests.sh` # run firesim scala tests - `run-tests.sh # run tests for a specific set of designs - -How things are set up for Chipyard ---------------------------------- - -The steps for CI to run are as follows. -1. Build the toolchains in parallel (note: `esp-tools` is currently not used in the run). -The docker image sets up the `PATH` and `RISCV` variable so that `riscv-tools` is the default (currently the `env.sh` script that is created at tool build is unused). -2. Create the simulator binary. -This requires the `riscv-tools` for `fesvr` and `verilator` to be able to build the binary. -This stores all collateral for the tests (srcs, generated-srcs, sim binary, etc) to run "out of the gate" in the next job (make needs everything or else it will run again). -3. Finally, run the desired tests. - -Other CI Setup --------------- - -You need to install conda on the build servers that exist. - -Notes on CIRCLE CI ------------------- -This code is heavily based on the origin [CircleCI]() work. There a quite a few differences -- CCI allows a much larger cache. The entire CY directory with toolchains and RTL could be cached, with GA there is a 5Gb total cache limit -- GA support more parallel jobs 20 vs 4 -- GA seems to allow much longer run times diff --git a/.github/actions/cleanup-conda/action.yml b/.github/actions/cleanup-conda/action.yml deleted file mode 100644 index 336beec080..0000000000 --- a/.github/actions/cleanup-conda/action.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: cleanup-conda -description: 'Remove extra conda environments' - -runs: - using: "composite" - steps: - - name: Remove extra conda environments - run: | - conda env list - CONDA_REMOVE_NAMES=$(conda env list | awk '{print $1}' | tail -n +3 | grep "${{ env.conda-env-name-no-time }}" || true) - if [ -z "$CONDA_REMOVE_NAMES" ]; then - echo "No matching conda environments for ${{ env.conda-env-name-no-time }}. Skip removal." - else - echo "Removing $CONDA_REMOVE_NAMES conda environments." - for env in $CONDA_REMOVE_NAMES; do - conda env remove -n $env - done - fi - IS_NUMBER_REGEX='^[0-9]+$' - conda env list | awk '{print $1}' | tail -n +4 | while read envname; do - ENV_DATE=$(echo $envname | sed "s/cy-[[:digit:]]\+-\(.*\)-\(riscv\|esp\)-tools/\1/") - if ! [[ $ENV_DATE =~ $IS_NUMBER_REGEX ]]; then - echo "Skipping removal of $envname since it cannot be parsed into a date" - else - NUM_DIFF=$(( ( $(date +%s) - $(date --date="$ENV_DATE" +%s) )/(60*60*24) )) - if (( $NUM_DIFF > 2 )); then - echo "Removing $envname since it is $NUM_DIFF days old." - conda env remove -n $envname - else - echo "Skipping removal of $envname since it is $NUM_DIFF days old." - fi - fi - done - shell: bash -leo pipefail {0} diff --git a/.github/actions/create-conda-env/action.yml b/.github/actions/create-conda-env/action.yml deleted file mode 100644 index 7faa2a70f4..0000000000 --- a/.github/actions/create-conda-env/action.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: create-conda-env -description: 'Create conda environments if they dont exist' -runs: - using: "composite" - steps: - - name: Create conda environments - run: | - conda env list - if conda env list | grep -q "envs/${{ env.conda-env-name-no-time }}"; then - echo "Using pre-existing conda environments with prefix ${{ env.conda-env-name-no-time }}" - else - echo "Creating a conda environment for each toolchain with the toolchain installed" - ./build-setup.sh \ - --conda-env-name ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) \ - --github-token ${{ github.token }} \ - --verbose \ - --skip-submodules \ - --skip-ctags \ - --skip-precompile \ - --skip-firesim \ - --skip-marshal \ - --skip-clean - fi - shell: bash -leo pipefail {0} diff --git a/.github/actions/git-workaround/action.yml b/.github/actions/git-workaround/action.yml deleted file mode 100644 index c9d923d36d..0000000000 --- a/.github/actions/git-workaround/action.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: git-workaround -description: 'Workaround https://github.com/actions/checkout/issues/766' - -runs: - using: "composite" - steps: - - name: Workaround - run: | - if git config --global -l | grep -q "safe.directory=$GITHUB_WORKSPACE"; then - echo "Skip adding safe directory" - else - echo "Add $GITHUB_WORKSPACE to global git config" - git config --global --add safe.directory "$GITHUB_WORKSPACE" - fi - shell: bash -leo pipefail {0} diff --git a/.github/actions/prepare-rtl/action.yml b/.github/actions/prepare-rtl/action.yml deleted file mode 100644 index 5366460687..0000000000 --- a/.github/actions/prepare-rtl/action.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: prepare-rtl -description: 'Builds RTL based on parameters, caches the entire chipyard root dir when done' - -inputs: - group-key: - description: group key - required: true - build-script: - description: rtl build script to use - required: false - default: "remote-do-rtl-build.sh" - build-type: - description: type of build - required: false - default: "sim" - -runs: - using: "composite" - steps: - - uses: actions/cache@v3 - id: rtl-build-id - with: - path: | - sims/verilator - sims/firesim/sim - generators/gemmini/software/gemmini-rocc-tests - key: ${{ inputs.group-key }}-${{ github.sha }} - - - name: Run RTL build if not cached - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) - if [[ "${{ steps.rtl-build-id.outputs.cache-hit }}" != 'true' ]]; then - echo "Cache miss on ${{ inputs.group-key }}-${{ github.sha }}" - ./.github/scripts/${{ inputs.build-script }} ${{ inputs.group-key }} ${{ inputs.build-type }} - else - echo "Cache hit do not rebuild RTL for ${{ inputs.group-key }}" - fi - shell: bash -leo pipefail {0} diff --git a/.github/actions/run-tests/action.yml b/.github/actions/run-tests/action.yml deleted file mode 100644 index 65c22f241e..0000000000 --- a/.github/actions/run-tests/action.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: run-tests -description: 'Runs tests according to input parameters' - -inputs: - group-key: - description: group key - required: true - project-key: - description: project key - required: true - run-script: - description: rtl build script to use - required: false - default: "run-tests.sh" - -runs: - using: "composite" - steps: - - name: Init submodules (since only the RTL is cached) - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) - git submodule sync - ./scripts/init-submodules-no-riscv-tools.sh --full - shell: bash -leo pipefail {0} - - # Note: You shouldn't need the other inputs since it shouldn't build RTL from scratch - - name: Build RTL - uses: ./.github/actions/prepare-rtl - with: - group-key: ${{ inputs.group-key }} - - - name: Run RTL tests - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) - ./.github/scripts/${{ inputs.run-script }} ${{ inputs.project-key }} - shell: bash -leo pipefail {0} diff --git a/.github/scripts/build-default-bitstreams.py b/.github/scripts/build-default-bitstreams.py deleted file mode 100755 index 038b973e14..0000000000 --- a/.github/scripts/build-default-bitstreams.py +++ /dev/null @@ -1,265 +0,0 @@ -#!/usr/bin/env python3 - -from pathlib import Path -from fabric.api import prefix, run, settings, execute # type: ignore -import sys - -import fabric_cfg -from ci_variables import ci_env, remote_fsim_dir, remote_cy_dir -from github_common import move_and_commit_gh_file -from utils import print_last_firesim_log - -from typing import List, Tuple - -URL_PREFIX = f"https://raw.githubusercontent.com/{ci_env['GH_ORG']}/{ci_env['GH_REPO']}" - -shared_build_dir = "/scratch/buildbot/FIRESIM_BUILD_DIR" - -from_chipyard_firesim_build_recipes = "sims/firesim-staging/sample_config_build_recipes.yaml" -from_chipyard_firesim_hwdb = ci_env['CHIPYARD_HWDB_PATH'] -# this must point to build recipe in clone setup for firesim s.t. the makefrag it points to itself points to the working clone -setup_clone_firesim_build_recipes = f"{remote_cy_dir}/{from_chipyard_firesim_build_recipes}" -workspace_firesim_hwdb = f"{ci_env['GITHUB_WORKSPACE']}/{from_chipyard_firesim_hwdb}" -assert Path(setup_clone_firesim_build_recipes).exists() -assert Path(workspace_firesim_hwdb).exists() - -# host assumptions: -# - firesim's machine-launch-script requirements are already installed (i.e. sudo scripts on all machines) -# - XILINX_VITIS, XILINX_XRT, XILINX_VIVADO are setup (in environtment - LD_LIBRARY_PATH/PATH/etc) -# priority == roughly the more powerful and available -# ipaddr, buildtool:version, use unique build dir, unique build dir path, priority (0 is highest)(unused by code but used to track which machine has most resources) -build_hosts = [ - ( "localhost", "vivado:2022.1", False, "", 0), - ("buildbot1@as4", "vivado:2022.1", True, "/scratch/buildbot1/FIRESIM_BUILD_DIR", 0), - ("buildbot2@as4", "vivado:2022.1", True, "/scratch/buildbot2/FIRESIM_BUILD_DIR", 0), - ( "a17", "vitis:2022.1", False, "", 0), - ("buildbot1@a17", "vitis:2022.1", True, "/scratch/buildbot1/FIRESIM_BUILD_DIR", 0), - ("buildbot2@a17", "vitis:2021.1", True, "/scratch/buildbot2/FIRESIM_BUILD_DIR", 0), - ("buildbot3@a17", "vitis:2021.1", True, "/scratch/buildbot3/FIRESIM_BUILD_DIR", 0), - ("buildbot4@a17", "vitis:2021.1", True, "/scratch/buildbot4/FIRESIM_BUILD_DIR", 0), - ( "firesim1", "vitis:2021.1", False, "", 1), - ( "jktgz", "vivado:2023.1", False, "", 2), - ( "jktqos", "vivado:2023.1", False, "", 2), -] - -def positive_hash(any) -> int: - return hash(any) % 2**sys.hash_info.width - -# add builds to run into a config_build.yaml -def modify_config_build(in_config_build_yaml, out_config_build_yaml, hwdb_entries_to_gen: List[str]) -> None: - global shared_build_dir - - # comment out old lines - build_yaml_lines = open(in_config_build_yaml).read().split("\n") - with open(out_config_build_yaml, "w") as byf: - for line in build_yaml_lines: - if "- midas" in line: - # comment out midasexample lines - byf.write("# " + line + '\n') - elif 'default_build_dir:' in line: - byf.write(line.replace('null', shared_build_dir) + '\n') - else: - byf.write(line + '\n') - - # add new builds to run - build_yaml_lines = open(out_config_build_yaml).read().split("\n") - with open(out_config_build_yaml, "w") as byf: - for line in build_yaml_lines: - if "builds_to_run:" in line and not "#" in line: - byf.write(line + '\n') - start_space_idx = line.index('b') - for hwdb_to_gen in hwdb_entries_to_gen: - byf.write((' ' * (start_space_idx + 4)) + f"- {hwdb_to_gen}" + '\n') - else: - byf.write(line + '\n') - -# add hosts for builds to run into a config_build.yaml -def add_host_list(in_build_yaml: str, out_build_yaml: str, hostlist: List[Tuple[str, bool, str]]) -> None: - build_yaml_lines = open(in_build_yaml).read().split("\n") - with open(out_build_yaml, "w") as byf: - for line in build_yaml_lines: - if "build_farm_hosts:" in line and not "#" in line: - byf.write(line + '\n') - start_space_idx = line.index('b') - for host, use_unique, unique_build_dir in hostlist: - if use_unique: - byf.write((' ' * (start_space_idx + 4)) + f"- {host}:" + '\n') - byf.write((' ' * (start_space_idx + 8)) + f"override_build_dir: {unique_build_dir}" + '\n') - else: - byf.write((' ' * (start_space_idx + 4)) + f"- {host}" + '\n') - elif '- localhost' in line and not '#' in line: - byf.write("# " + line + '\n') - else: - byf.write(line + '\n') - -# replace hwdb entry in config_hwdb.yaml with a link -def replace_in_hwdb(hwdb_file: str, hwdb_entry_name: str, link: str) -> None: - # replace the sample hwdb's bit line only - sample_hwdb_lines = open(hwdb_file).read().split('\n') - - with open(hwdb_file, "w") as sample_hwdb_file: - match_bit = False - for line in sample_hwdb_lines: - if hwdb_entry_name in line.strip().split(' ')[0].replace(':', ''): - # hwdb entry matches key name - match_bit = True - sample_hwdb_file.write(line + '\n') - elif match_bit == True: - if ("bitstream_tar:" in line.strip().split(' ')[0]): - # only replace this bit - match_bit = False - - new_bit_line = f" bitstream_tar: {link}" - print(f"Replacing {line.strip()} with {new_bit_line}") - - # print out the bit line - sample_hwdb_file.write(new_bit_line + '\n') - else: - raise Exception("::ERROR:: Something went wrong") - else: - # if no match print other lines - sample_hwdb_file.write(line + '\n') - - if match_bit == True: - raise Exception(f"::ERROR:: Unable to replace URL for {hwdb_entry_name} in {hwdb_file}") - - # strip newlines from end of file - with open(hwdb_file, "r+") as sample_hwdb_file: - content = sample_hwdb_file.read() - content = content.rstrip('\n') - sample_hwdb_file.seek(0) - - sample_hwdb_file.write(content) - sample_hwdb_file.truncate() - -def run_local_buildbitstreams(): - """Runs local buildbitstreams""" - - global workspace_firesim_hwdb - - with prefix(f"cd {remote_fsim_dir}"): - with prefix('source sourceme-manager.sh --skip-ssh-setup'): - - def build_upload(build_yaml: str, hwdb_entries: List[str], platforms: List[str]) -> List[str]: - global URL_PREFIX - global setup_clone_firesim_build_recipes - - print(f"Printing {build_yaml}...") - run(f"cat {build_yaml}") - - rc = 0 - with settings(warn_only=True): - # pty=False needed to avoid issues with screen -ls stalling in fabric - build_result = run(f"timeout 10h firesim buildbitstream -b {build_yaml} -r {setup_clone_firesim_build_recipes} --forceterminate", pty=False) - rc = build_result.return_code - - if rc != 0: - print(f"Buildbitstream failed.") - print_last_firesim_log(200) - raise Exception(f"Failed with code: {rc}") - - hwdb_entry_dir = f"{remote_fsim_dir}/deploy/built-hwdb-entries" - links = [] - - for hwdb_entry_name, platform in zip(hwdb_entries, platforms): - hwdb_entry = f"{hwdb_entry_dir}/{hwdb_entry_name}" - - print(f"Printing {hwdb_entry}...") - run(f"cat {hwdb_entry}") - - with open(hwdb_entry, 'r') as hwdbef: - lines = hwdbef.readlines() - for line in lines: - if "bitstream_tar:" in line: - file_path = Path(line.strip().split(' ')[1].replace('file://', '')) # 2nd element (i.e. the path) (no URI) - file_name = f"{platform}/{hwdb_entry_name}.tar.gz" - run(f"shasum -a 256 {file_path}") - sha = move_and_commit_gh_file(file_path, file_name, f"{ci_env['GITHUB_WORKSPACE']}/{ci_env['GH_REPO']}", f"Committing files from {ci_env['GITHUB_REPOSITORY']}:{ci_env['GITHUB_SHA']}") - link = f"{URL_PREFIX}/{sha}/{file_name}" - print(f"Uploaded bitstream_tar for {hwdb_entry_name} to {link}") - links.append(link) - break - - return links - - - def do_builds(batch_hwdbs, hwdb_file_to_replace): - assert len(build_hosts) >= len(batch_hwdbs), f"Need at least {len(batch_hwdbs)} build_hosts to run builds" - - # map hwdb tuple to build_hosts - hwdb_2_host = {} - for hwdb, platform, buildtool_version in batch_hwdbs: - for host_name, host_buildtool_version, host_use_unique, host_unique_build_dir, host_prio in build_hosts: - if host_buildtool_version == buildtool_version: - if not host_name in [h[0] for h in hwdb_2_host.values()]: - hwdb_2_host[hwdb] = (host_name, host_use_unique, host_unique_build_dir) - break - - assert len(hwdb_2_host) == len(batch_hwdbs), "Unable to map build_hosts to hwdb build" - - hwdbs_ordered = [hwdb[0] for hwdb in batch_hwdbs] - platforms_ordered = [hwdb[1] for hwdb in batch_hwdbs] - hosts_ordered = hwdb_2_host.values() - - print("Mappings") - print(f"HWDBS: {hwdbs_ordered}") - print(f"Platforms: {platforms_ordered}") - print(f"build_hosts: {hosts_ordered}") - - og_build_yaml = f"{remote_fsim_dir}/deploy/config_build.yaml" - intermediate_build_yaml = f"{remote_fsim_dir}/deploy/config_build_{positive_hash(tuple(hwdbs_ordered))}.yaml" - final_build_yaml = f"{remote_fsim_dir}/deploy/config_build_{positive_hash(tuple(hosts_ordered))}.yaml" - - modify_config_build(og_build_yaml, intermediate_build_yaml, hwdbs_ordered) - add_host_list(intermediate_build_yaml, final_build_yaml, hosts_ordered) - links = build_upload(final_build_yaml, hwdbs_ordered, platforms_ordered) - for hwdb, link in zip(hwdbs_ordered, links): - replace_in_hwdb(hwdb_file_to_replace, hwdb, link) - - print(f"Printing {hwdb_file_to_replace}...") - run(f"cat {hwdb_file_to_replace}") - - # wipe old data - print("Cleaning old build directories") - for host_name, host_use_unique, host_unique_build_dir in hosts_ordered: - if host_use_unique: - run(f"ssh {host_name} rm -rf {host_unique_build_dir}") - else: - run(f"ssh {host_name} rm -rf {shared_build_dir}") - - # note: next two statements can be duplicated to run different builds in phases - # i.e. run 4 agfis in 1st phase, then 6 in next - - # order of following list roughly corresponds to build host to use. - # i.e. if 1st hwdb in list wants a host with V0 of tools, it will get the 1st host with V0 of tools - # in the build_hosts list - - # hwdb_entry_name, platform_name, buildtool:version - batch_hwdbs_in = [ - # hwdb's to verify FPGA builds - - # TODO: disable due to not having xrt installed on localhost - #("vitis_firesim_rocket_singlecore_no_nic", "vitis", "vitis:2022.1"), - - ("nitefury_firesim_rocket_singlecore_no_nic", "rhsresearch_nitefury_ii", "vitis:2022.1"), - ("alveo_u200_firesim_rocket_singlecore_no_nic", "xilinx_alveo_u200", "vitis:2021.1"), - ("alveo_u250_firesim_rocket_singlecore_no_nic", "xilinx_alveo_u250", "vitis:2021.1"), - ("alveo_u280_firesim_rocket_singlecore_no_nic", "xilinx_alveo_u280", "vitis:2021.1"), - - # TODO: disable due to not having a license - #("xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic", "xilinx_vcu118", "vivado:2023.1"), - - # extra hwdb's to run CI with - ("alveo_u250_firesim_rocket_quadcore_no_nic", "xilinx_alveo_u250", "vivado:2022.1"), - ("alveo_u250_firesim_boom_singlecore_no_nic", "xilinx_alveo_u250", "vivado:2022.1"), - ("alveo_u250_firesim_rocket_singlecore_nic", "xilinx_alveo_u250", "vivado:2022.1"), - - # extra hwdb's - ("alveo_u250_firesim_gemmini_rocket_singlecore_no_nic", "xilinx_alveo_u250", "vitis:2021.1"), - ] - - # replace hwdb entries in workspace area - do_builds(batch_hwdbs_in, workspace_firesim_hwdb) - -if __name__ == "__main__": - execute(run_local_buildbitstreams, hosts=["localhost"]) diff --git a/.github/scripts/build-extra-tests.sh b/.github/scripts/build-extra-tests.sh deleted file mode 100755 index 68ad20493c..0000000000 --- a/.github/scripts/build-extra-tests.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# turn echo on and error on earliest command -set -ex - -# get shared variables -SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" -source $SCRIPT_DIR/defaults.sh - -cmake $LOCAL_CHIPYARD_DIR/tests/ -S $LOCAL_CHIPYARD_DIR/tests/ -B $LOCAL_CHIPYARD_DIR/tests/build/ -D CMAKE_BUILD_TYPE=Debug -cmake --build $LOCAL_CHIPYARD_DIR/tests/build/ --target clean -cmake --build $LOCAL_CHIPYARD_DIR/tests/build/ --target all diff --git a/.github/scripts/build-zephyr.sh b/.github/scripts/build-zephyr.sh deleted file mode 100755 index a5eab3a887..0000000000 --- a/.github/scripts/build-zephyr.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# turn echo on and error on earliest command -set -ex - -# get shared variables -SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" -source $SCRIPT_DIR/defaults.sh - -# install Zephyr dependencies -git submodule update --init $LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr -cd $LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr/ -west init -l . -west config manifest.file west-riscv.yml -west update - -# set environment variables for Zephyr -export ZEPHYR_BASE=$LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr -export ZEPHYR_TOOLCHAIN_VARIANT=cross-compile -export CROSS_COMPILE=$RISCV/bin/riscv64-unknown-elf- - - -# Build hello world -west build -p -b chipyard_riscv64 samples/chipyard/hello_world/ \ No newline at end of file diff --git a/.github/scripts/check-commit.sh b/.github/scripts/check-commit.sh deleted file mode 100755 index 1152da95d2..0000000000 --- a/.github/scripts/check-commit.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/bash - -# check to see that submodule commits are present on the master branch - -# turn echo on and error on earliest command -set -ex - -# get shared variables -SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" -source $SCRIPT_DIR/defaults.sh - -cd $LOCAL_CHIPYARD_DIR - -# ignore the private vlsi submodules -git config submodule.vlsi/hammer-mentor-plugins.update none - -# initialize submodules and get the hashes -git submodule update --init -status=$(git submodule status) - -all_names=() - - -search_submodule() { - echo "Running check on submodule $submodule in $dir" - hash=$(echo "$status" | grep "$dir.*$submodule " | awk '{print$1}' | grep -o "[[:alnum:]]*") - for branch in "${branches[@]}" - do - echo "Searching for $hash in origin/$branch of $submodule" - (git -C $dir/$submodule branch -r --contains "$hash" | grep "origin/$branch") && true # needs init'ed submodules - if [ $? -eq 0 ] - then - all_names+=("$dir/$submodule $hash 0") - return - fi - done - all_names+=("$dir/$submodule $hash 1") - return -} - -search () { - for submodule in "${submodules[@]}" - do - search_submodule - done -} - - -submodules=("cva6" "boom" "ibex" "gemmini" "icenet" "nvdla" "rocket-chip" "rocket-chip-blocks" "rocket-chip-inclusive-cache" "testchipip" "riscv-sodor" "mempress" "bar-fetchers" "shuttle" "constellation" "fft-generator" "hardfloat" "caliptra-aes-acc" "rocc-acc-utils" "diplomacy" "rerocc" "compress-acc" "saturn" "ara" "vexiiriscv" "tacit" "radiance") -dir="generators" -branches=("master" "main" "dev") -search - -submodules=("riscv-tools-feedstock") -dir="toolchains/riscv-tools" -branches=("main") -search - -submodules=("riscv-isa-sim" "riscv-pk" "riscv-tests") -dir="toolchains/riscv-tools" -branches=("master") -search - -# riscv-openocd doesn't use its master branch -submodules=("riscv-openocd") -dir="toolchains/riscv-tools" -branches=("riscv") -search - -submodules=("libgloss") -dir="toolchains" -branches=("master") -search - -submodules=("firesim") -dir="sims" -branches=("main") -search - - -submodules=("coremark" "firemarshal" "nvdla-workload" "spec2017" "zephyrproject/zephyr") -dir="software" -branches=("master" "dev") -search - -submodules=("DRAMSim2" "axe" "dsptools" "rocket-dsp-utils" "torture" "fixedpoint" "cde" "firrtl2") -dir="tools" -branches=("master" "dev" "main") -search - -submodules=("fpga-shells") -dir="fpga" -branches=("main") -search - -# turn off verbose printing to make this easier to read -set +x - -# print 0's -for str in "${all_names[@]}"; -do - if [ 0 = $(echo "$str" | awk '{print$3}') ]; then - echo "$str" - fi -done - -echo "" - -# check if there was a non-zero return code and print 1's -EXIT=0 -for str in "${all_names[@]}"; -do - if [ ! 0 = $(echo "$str" | awk '{print$3}') ]; then - echo "$str" - EXIT=1 - fi -done - -echo "Done checking all submodules" -exit $EXIT diff --git a/.github/scripts/ci_variables.py b/.github/scripts/ci_variables.py deleted file mode 100644 index 2693ed7064..0000000000 --- a/.github/scripts/ci_variables.py +++ /dev/null @@ -1,61 +0,0 @@ -import os - -# This package contains utilities that rely on environment variable -# definitions present only on the CI container instance. - -GITHUB_ACTIONS_ENV_VAR_NAME = 'GITHUB_ACTIONS' -RUN_LOCAL = os.environ.get(GITHUB_ACTIONS_ENV_VAR_NAME, 'false') == 'false' - -# When running locally (not in a CI pipeline) run commands out of the clone hosting this file. -# Should be equivalent to GITHUB_WORKSPACE if running locally -local_cy_dir = os.path.normpath((os.path.realpath(__file__)) + "/../../..") - -def get_ci_value(env_var: str, default_value: str = "") -> str: - if RUN_LOCAL: - return default_value - else: - return os.environ.get(env_var, default_value) - -# Create a env. dict that is populated from the environment or from defaults. -ci_env = { - # If not running under a CI pipeline defaults are provided that - # will suffice to run scripts that do not use GHA API calls. - # To manually provide environment variable settings, export GITHUB_ACTIONS=true, and provide - # values for all of the environment variables listed. - GITHUB_ACTIONS_ENV_VAR_NAME: 'false' if RUN_LOCAL else 'true', # type: ignore - # This is used as a unique tag for all instances launched in a workflow - 'GITHUB_RUN_ID': get_ci_value('GITHUB_RUN_ID'), - # Self explanatory - 'GITHUB_SHA': get_ci_value('GITHUB_SHA'), - # Multiple clones of the Chipyard repository exists on a CI machine. We expect state - # to persist between jobs in a workflow and faciliate that by having jobs run - # out of a centralized clone (REMOTE_WORK_DIR)-- not the default clones setup by - # the GHA runners (GITHUB_WORKSPACE) - # This is the location of the clone setup by the GHA runner infrastructure by default - # expanduser to replace the ~ present in the default, for portability - 'GITHUB_WORKSPACE': os.path.expanduser(os.environ['GITHUB_WORKSPACE']) if not RUN_LOCAL else local_cy_dir, - # Self explanatory - 'GITHUB_API_URL': get_ci_value('GITHUB_API_URL'), - # We look this up, instead of hardcoding "ucb-bar/chipyard", to support running - # this CI pipeline under forks. - 'GITHUB_REPOSITORY': get_ci_value('GITHUB_REPOSITORY'), - # Path to webhook payload on the runner machine - 'GITHUB_EVENT_PATH': get_ci_value('GITHUB_EVENT_PATH'), - # Chipyard repo used on local CI machine to run tests from (cached across all workflow CI jobs) - # CI scripts should refer variables - # derived from this path so that they may be reused across workflows that may - # initialize the Chipyard repository differently (e.g., as a submodule of a - # larger project.) - 'REMOTE_WORK_DIR': get_ci_value('REMOTE_WORK_DIR', local_cy_dir if RUN_LOCAL else ""), - # Github token with more permissions to access repositories across the FireSim org. - 'PERSONAL_ACCESS_TOKEN': get_ci_value('PERSONAL_ACCESS_TOKEN'), - # Path to Chipyard's HWDB file (if it exists) - 'CHIPYARD_HWDB_PATH': get_ci_value('CHIPYARD_HWDB_PATH'), - # Org/repo name of repository to store build bitstreams - 'GH_ORG': get_ci_value('GH_ORG'), - 'GH_REPO': get_ci_value('GH_REPO'), -} - -# for most uses these should be used (over using GITHUB_WORKSPACE) -remote_cy_dir = ci_env['REMOTE_WORK_DIR'] -remote_fsim_dir = ci_env['REMOTE_WORK_DIR'] + "/sims/firesim" diff --git a/.github/scripts/clean-old-files.sh b/.github/scripts/clean-old-files.sh deleted file mode 100755 index 5824c4b74f..0000000000 --- a/.github/scripts/clean-old-files.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# clean directories that are older than 14 days -# argument is used as the directory to look in - -age () { - local AGE_SEC - local CUR_SEC - local DIFF_SEC - local SEC_PER_DAY - - SEC_PER_DAY=86400 - - CUR_SEC=$(date +%s) - AGE_SEC=$(stat -c %Y -- "$1") - DIFF_SEC=$(expr $CUR_SEC - $AGE_SEC) - - echo $(expr $DIFF_SEC / $SEC_PER_DAY) -} - -for d in $1/*/ ; do - DIR_AGE="$(age $d)" - if [ $DIR_AGE -ge 14 ]; then - echo "Deleting $d since is it $DIR_AGE old" - rm -rf $d - else - echo "Keep $d since it is $DIR_AGE old" - fi -done diff --git a/.github/scripts/defaults.sh b/.github/scripts/defaults.sh deleted file mode 100755 index 9bfc1d119a..0000000000 --- a/.github/scripts/defaults.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/bash - -# make parallelism -CI_MAKE_NPROC=8 -# chosen based on a 24c system shared with 1 other project -REMOTE_MAKE_NPROC=4 - -# remote variables -REMOTE_WORK_DIR=$GITHUB_WORKSPACE -REMOTE_CHIPYARD_DIR=$GITHUB_WORKSPACE -REMOTE_SIM_DIR=$REMOTE_CHIPYARD_DIR/sims/verilator -REMOTE_FIRESIM_DIR=$REMOTE_CHIPYARD_DIR/sims/firesim/sim -REMOTE_FPGA_DIR=$REMOTE_CHIPYARD_DIR/fpga - -# local variables (aka within the docker container) -LOCAL_CHIPYARD_DIR=$GITHUB_WORKSPACE -LOCAL_SIM_DIR=$LOCAL_CHIPYARD_DIR/sims/verilator -LOCAL_FIRESIM_DIR=$LOCAL_CHIPYARD_DIR/sims/firesim/sim - -# CI uses temp directories with very long names -# explicitly force socket creation to use /tmp to avoid name length errors -# https://github.com/sbt/sbt/pull/6887 -REMOTE_JAVA_TMP_DIR=$(mktemp -d -t ci-cy-XXXXXXXX) -REMOTE_COURSIER_CACHE=$REMOTE_WORK_DIR/.coursier-cache - -# key value store to get the build groups -declare -A grouping -grouping["group-cores"]="chipyard-cva6 chipyard-ibex chipyard-rocket chipyard-hetero chipyard-boomv3 chipyard-boomv4 chipyard-sodor chipyard-digitaltop chipyard-multiclock-rocket chipyard-nomem-scratchpad chipyard-spike chipyard-clone chipyard-prefetchers chipyard-shuttle chipyard-shuttle3 chipyard-vexiiriscv chipyard-tacit-rocket chipyard-radiance" -grouping["group-peripherals"]="chipyard-dmirocket chipyard-dmiboomv3 chipyard-dmiboomv4 chipyard-spiflashwrite chipyard-mmios chipyard-nocores chipyard-manyperipherals chipyard-chiplike chipyard-tethered chipyard-symmetric chipyard-llcchiplet" -grouping["group-accels"]="chipyard-compressacc chipyard-mempress chipyard-gemmini chipyard-manymmioaccels chipyard-nvdla chipyard-aes256ecb chipyard-rerocc chipyard-rocketvector chipyard-shuttlevector chipyard-hlsacc" # chipyard-shuttleara - Add when Ara works again -grouping["group-constellation"]="chipyard-constellation" -grouping["group-tracegen"]="tracegen tracegen-boomv3 tracegen-boomv4" -grouping["group-other"]="icenet testchipip constellation rocketchip-amba rocketchip-tlsimple rocketchip-tlwidth rocketchip-tlxbar chipyard-clusters" -grouping["group-fpga"]="arty35t arty100t nexysvideo vc707 vcu118" - -# key value store to get the build strings -declare -A mapping -mapping["chipyard-rocket"]=" CONFIG=QuadChannelRocketConfig" -# TODO: Verilator chokes on cospikeCheckpointingRocketConfig -# mapping["chipyard-dmirocket"]=" CONFIG=dmiCospikeCheckpointingRocketConfig" -mapping["chipyard-dmirocket"]=" CONFIG=dmiRocketConfig" -mapping["chipyard-mempress"]=" CONFIG=MempressRocketConfig" -mapping["chipyard-compressacc"]=" CONFIG=ZstdCompressorRocketConfig" -mapping["chipyard-hlsacc"]=" CONFIG=GCDHLSRocketConfig" -mapping["chipyard-prefetchers"]=" CONFIG=PrefetchingRocketConfig" -mapping["chipyard-digitaltop"]=" TOP=DigitalTop" -mapping["chipyard-manymmioaccels"]=" CONFIG=ManyMMIOAcceleratorRocketConfig" -mapping["chipyard-nvdla"]=" CONFIG=SmallNVDLARocketConfig verilog" -mapping["chipyard-hetero"]=" CONFIG=LargeBoomAndRocketConfig" -mapping["chipyard-boomv3"]=" CONFIG=MediumBoomV3CosimConfig" -mapping["chipyard-dmiboomv3"]=" CONFIG=dmiCheckpointingMediumBoomV3Config" -mapping["chipyard-boomv4"]=" CONFIG=MediumBoomV4CosimConfig" -mapping["chipyard-dmiboomv4"]=" CONFIG=dmiCheckpointingMediumBoomV4Config" -mapping["chipyard-spike"]=" CONFIG=SpikeZicntrConfig EXTRA_SIM_FLAGS='+spike-ipc=10'" -mapping["chipyard-gemmini"]=" CONFIG=GemminiRocketConfig" -mapping["chipyard-cva6"]=" CONFIG=CVA6Config" -mapping["chipyard-ibex"]=" CONFIG=IbexConfig" -mapping["chipyard-vexiiriscv"]=" CONFIG=VexiiRiscvConfig" -mapping["chipyard-spiflashwrite"]=" CONFIG=SmallSPIFlashRocketConfig EXTRA_SIM_FLAGS='+spiflash0=${LOCAL_CHIPYARD_DIR}/tests/spiflash.img'" -mapping["chipyard-manyperipherals"]=" CONFIG=ManyPeripheralsRocketConfig EXTRA_SIM_FLAGS='+spiflash0=${LOCAL_CHIPYARD_DIR}/tests/spiflash.img'" -mapping["chipyard-chiplike"]=" CONFIG=ChipLikeRocketConfig MODEL=FlatTestHarness MODEL_PACKAGE=chipyard.example verilog" -mapping["chipyard-tethered"]=" CONFIG=VerilatorCITetheredChipLikeRocketConfig" -mapping["chipyard-symmetric"]=" CONFIG=MultiSimMultiLinkSymmetricChipletRocketConfig" -mapping["chipyard-llcchiplet"]=" CONFIG=MultiSimLLCChipletRocketConfig" -mapping["chipyard-cloneboom"]=" CONFIG=Cloned64MegaBoomV3Config verilog" -mapping["chipyard-nocores"]=" CONFIG=NoCoresConfig verilog" -mapping["tracegen"]=" CONFIG=NonBlockingTraceGenL2Config" -mapping["tracegen-boomv3"]=" CONFIG=BoomV3TraceGenConfig" -mapping["tracegen-boomv4"]=" CONFIG=BoomV4TraceGenConfig" -mapping["chipyard-sodor"]=" CONFIG=Sodor5StageConfig" -mapping["chipyard-shuttle"]=" CONFIG=ShuttleConfig" -mapping["chipyard-shuttle3"]=" CONFIG=Shuttle3WideConfig" -mapping["chipyard-tacit-rocket"]=" CONFIG=TacitRocketConfig" -mapping["chipyard-multiclock-rocket"]=" CONFIG=MulticlockRocketConfig" -mapping["chipyard-nomem-scratchpad"]=" CONFIG=MMIOScratchpadOnlyRocketConfig" -mapping["chipyard-constellation"]=" CONFIG=SharedNoCConfig" -mapping["chipyard-clusters"]=" CONFIG=ClusteredRocketConfig verilog" -mapping["chipyard-aes256ecb"]=" CONFIG=AES256ECBRocketConfig" -mapping["chipyard-rerocc"]=" CONFIG=ReRoCCTestConfig" -mapping["chipyard-rocketvector"]=" CONFIG=MINV128D64RocketConfig" -mapping["chipyard-shuttlevector"]=" CONFIG=GENV256D128ShuttleConfig" -mapping["chipyard-shuttleara"]=" CONFIG=V4096Ara2LaneShuttleConfig USE_ARA=1 verilog" -mapping["chipyard-radiance"]=" CONFIG=RadianceFP16ClusterConfig verilog" - -mapping["constellation"]=" SUB_PROJECT=constellation" -mapping["icenet"]="SUB_PROJECT=icenet" -mapping["testchipip"]="SUB_PROJECT=testchipip" -mapping["rocketchip-amba"]="SUB_PROJECT=rocketchip CONFIG=AMBAUnitTestConfig" -mapping["rocketchip-tlsimple"]="SUB_PROJECT=rocketchip CONFIG=TLSimpleUnitTestConfig" -mapping["rocketchip-tlwidth"]="SUB_PROJECT=rocketchip CONFIG=TLWidthUnitTestConfig" -mapping["rocketchip-tlxbar"]="SUB_PROJECT=rocketchip CONFIG=TLXbarUnitTestConfig" - -mapping["arty35t"]="SUB_PROJECT=arty35t verilog" -mapping["arty100t"]="SUB_PROJECT=arty100t verilog" -mapping["nexysvideo"]="SUB_PROJECT=nexysvideo verilog" -mapping["vc707"]="SUB_PROJECT=vc707 verilog" -mapping["vcu118"]="SUB_PROJECT=vcu118 verilog" diff --git a/.github/scripts/fabric_cfg.py b/.github/scripts/fabric_cfg.py deleted file mode 100644 index ba1043a3c6..0000000000 --- a/.github/scripts/fabric_cfg.py +++ /dev/null @@ -1,9 +0,0 @@ -from fabric.api import env # type: ignore - -# Common fabric settings -env.output_prefix = False -env.abort_on_prompts = True -env.timeout = 100 -env.connection_attempts = 10 -env.disable_known_hosts = True -env.keepalive = 60 # keep long SSH connections running diff --git a/.github/scripts/github_common.py b/.github/scripts/github_common.py deleted file mode 100644 index 7c638a1b03..0000000000 --- a/.github/scripts/github_common.py +++ /dev/null @@ -1,14 +0,0 @@ -from fabric.api import prefix, run # type: ignore - -# move and commit a binary file to a Github repository. -# it is another persons job to create the repository and push it (to avoid needing an SSH key here). -# by default this uses the bar-tender bot credentials. -def move_and_commit_gh_file(local_abs_file_path, gh_rel_file_path, repo_path, commit_msg): - print(f":DEBUG: Attempting to commit {local_abs_file_path} to {repo_path}/{gh_rel_file_path}") - - with prefix(f"cd {repo_path}"): - run(f"mv {local_abs_file_path} ./{gh_rel_file_path}") - run(f"git add -u") - run(f"""git commit -m "{commit_msg}" --author="bar-tender " """) - # return the sha of the commit you added - return run("git rev-parse HEAD") diff --git a/.github/scripts/install-conda.sh b/.github/scripts/install-conda.sh deleted file mode 100755 index b6fcce1891..0000000000 --- a/.github/scripts/install-conda.sh +++ /dev/null @@ -1,186 +0,0 @@ -#!/bin/bash - -export HOME="${HOME:-/root}" - -CONDA_INSTALL_PREFIX=/opt/conda -CONDA_INSTALLER_VERSION=23.1.0-1 -CONDA_INSTALLER="https://github.com/conda-forge/miniforge/releases/download/${CONDA_INSTALLER_VERSION}/Miniforge3-${CONDA_INSTALLER_VERSION}-Linux-x86_64.sh" -CONDA_CMD="conda" # some installers install mamba or micromamba - -DRY_RUN_OPTION="" -DRY_RUN_ECHO=() -REINSTALL_CONDA=0 - -usage() -{ - echo "Usage: $0 [options]" - echo - echo "Options:" - echo "[--help] List this help" - echo "[--prefix ] Install prefix for conda. Defaults to /opt/conda." - echo " If /bin/conda already exists, it will be used and install is skipped." - echo "[--dry-run] Pass-through to all conda commands and only print other commands." - echo " NOTE: --dry-run will still install conda to --prefix" - echo "[--reinstall-conda] Repairs a broken base environment by reinstalling." - echo " NOTE: will only reinstall conda and exit" - echo - echo "Examples:" - echo " % $0" - echo " Install into default system-wide prefix (using sudo if needed) and add install to system-wide /etc/profile.d" - echo " % $0 --prefix ~/conda" - echo " Install into $HOME/conda" -} - - -while [ $# -gt 0 ]; do - case "$1" in - --help) - usage - exit 1 - ;; - --prefix) - shift - CONDA_INSTALL_PREFIX="$1" - shift - ;; - --dry-run) - shift - DRY_RUN_OPTION="--dry-run" - DRY_RUN_ECHO=(echo "Would Run:") - ;; - --reinstall-conda) - shift - REINSTALL_CONDA=1 - ;; - *) - echo "Invalid Argument: $1" - usage - exit 1 - ;; - esac -done - -if [[ $REINSTALL_CONDA -eq 1 && -n "$DRY_RUN_OPTION" ]]; then - echo "::ERROR:: --dry-run and --reinstall-conda are mutually exclusive. Pick one or the other." -fi - -set -ex -set -o pipefail - -# uname options are not portable so do what https://www.gnu.org/software/coreutils/faq/coreutils-faq.html#uname-is-system-specific -# suggests and iteratively probe the system type -if ! type uname >&/dev/null; then - echo "::ERROR:: need 'uname' command available to determine if we support this sytem" - exit 1 -fi - -if [[ "$(uname)" != "Linux" ]]; then - echo "::ERROR:: $0 only supports 'Linux' not '$(uname)'" - exit 1 -fi - -if [[ "$(uname -mo)" != "x86_64 GNU/Linux" ]]; then - echo "::ERROR:: $0 only supports 'x86_64 GNU/Linux' not '$(uname -io)'" - exit 1 -fi - -if [[ ! -r /etc/os-release ]]; then - echo "::ERROR:: $0 depends on /etc/os-release for distro-specific setup and it doesn't exist here" - exit 1 -fi - -OS_FLAVOR=$(grep '^ID=' /etc/os-release | awk -F= '{print $2}' | tr -d '"') -OS_VERSION=$(grep '^VERSION_ID=' /etc/os-release | awk -F= '{print $2}' | tr -d '"') - -# platform-specific setup -case "$OS_FLAVOR" in - ubuntu) - ;; - centos) - ;; - *) - echo "::ERROR:: Unknown OS flavor '$OS_FLAVOR'. Unable to do platform-specific setup." - exit 1 - ;; -esac - - -# everything else is platform-agnostic and could easily be expanded to Windows and/or OSX - -SUDO="" -prefix_parent=$(dirname "$CONDA_INSTALL_PREFIX") -if [[ ! -e "$prefix_parent" ]]; then - mkdir -p "$prefix_parent" || SUDO=sudo -elif [[ ! -w "$prefix_parent" ]]; then - SUDO=sudo -fi - -if [[ -n "$SUDO" ]]; then - echo "::INFO:: using 'sudo' to install conda" - # ensure files are read-execute for everyone - umask 022 -fi - -if [[ -n "$SUDO" || "$(id -u)" == 0 ]]; then - INSTALL_TYPE=system -else - INSTALL_TYPE=user -fi - -# to enable use of sudo and avoid modifying 'secure_path' in /etc/sudoers, we specify the full path to conda -CONDA_EXE="${CONDA_INSTALL_PREFIX}/bin/$CONDA_CMD" - -if [[ -x "$CONDA_EXE" && $REINSTALL_CONDA -eq 0 ]]; then - echo "::INFO:: '$CONDA_EXE' already exists, skipping conda install" -else - wget -O install_conda.sh "$CONDA_INSTALLER" || curl -fsSLo install_conda.sh "$CONDA_INSTALLER" - if [[ $REINSTALL_CONDA -eq 1 ]]; then - conda_install_extra="-u" - echo "::INFO:: RE-installing conda to '$CONDA_INSTALL_PREFIX'" - else - conda_install_extra="" - echo "::INFO:: installing conda to '$CONDA_INSTALL_PREFIX'" - fi - # -b for non-interactive install - $SUDO bash ./install_conda.sh -b -p "$CONDA_INSTALL_PREFIX" $conda_install_extra - rm ./install_conda.sh - - # get most up-to-date conda version - "${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" update $DRY_RUN_OPTION -y -n base -c conda-forge conda - - # see https://conda-forge.org/docs/user/tipsandtricks.html#multiple-channels - # for more information on flexible channel_priority - "${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set channel_priority flexible - # By default, don't mess with people's PS1, I personally find it annoying - "${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set changeps1 false - # don't automatically activate the 'base' environment when initializing shells - "${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set auto_activate_base false - # automatically use the ucb-bar channel for specific packages https://anaconda.org/ucb-bar/repo - "${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --add channels ucb-bar - - # conda-build is a special case and must always be installed into the base environment - $SUDO "$CONDA_EXE" install $DRY_RUN_OPTION -y -n base conda-build - - # conda-libmamba-solver is a special case and must always be installed into the base environment - # see https://www.anaconda.com/blog/a-faster-conda-for-a-growing-community - $SUDO "$CONDA_EXE" install $DRY_RUN_OPTION -y -n base conda-libmamba-solver - - # Use the fast solver by default - "${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set experimental_solver libmamba - - # conda-lock is a special case and must always be installed into the base environment - $SUDO "$CONDA_EXE" install $DRY_RUN_OPTION -y -n base conda-lock=1.4 - - conda_init_extra_args=() - if [[ "$INSTALL_TYPE" == system ]]; then - # if we're installing into a root-owned directory using sudo, or we're already root - # initialize conda in the system-wide rcfiles - conda_init_extra_args=(--no-user --system) - fi - $SUDO "${CONDA_EXE}" init $DRY_RUN_OPTION "${conda_init_extra_args[@]}" bash - - if [[ $REINSTALL_CONDA -eq 1 ]]; then - echo "::INFO:: Done reinstalling conda. Exiting" - exit 0 - fi -fi diff --git a/.github/scripts/remote-do-rtl-build.sh b/.github/scripts/remote-do-rtl-build.sh deleted file mode 100755 index e765414abb..0000000000 --- a/.github/scripts/remote-do-rtl-build.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash - -# create the different verilator builds -# usage: -# do-rtl-build.sh sim -# run rtl build for simulations and copy back results -# do-rtl-build.sh fpga -# run rtl build for fpga and don't copy back results - -# turn echo on and error on earliest command -set -ex - -# get shared variables -SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" -source $SCRIPT_DIR/defaults.sh - -cd $REMOTE_CHIPYARD_DIR -git submodule sync -./scripts/init-submodules-no-riscv-tools.sh --full - -# Constellation can run without espresso, but this improves -# elaboration time drastically -pushd $REMOTE_CHIPYARD_DIR/generators/constellation -scripts/install-espresso.sh $RISCV -popd - -if [ $1 = "group-accels" ]; then - pushd $REMOTE_CHIPYARD_DIR/generators/gemmini/software - git submodule update --init --recursive gemmini-rocc-tests - pushd gemmini-rocc-tests - ./build.sh - popd - popd -fi - -# choose what make dir to use -case $2 in - "sim") - REMOTE_MAKE_DIR=$REMOTE_SIM_DIR - ;; - "fpga") - REMOTE_MAKE_DIR=$REMOTE_FPGA_DIR - ;; -esac - -# enter the verilator directory and build the specific config on remote server -make -C $REMOTE_MAKE_DIR clean - -read -a keys <<< ${grouping[$1]} - -# need to set the PATH to use the new verilator (with the new verilator root) -for key in "${keys[@]}" -do - export COURSIER_CACHE=$REMOTE_COURSIER_CACHE - export JVM_MEMORY=10G - export JAVA_TMP_DIR=$REMOTE_JAVA_TMP_DIR - make -j$REMOTE_MAKE_NPROC -C $REMOTE_MAKE_DIR ${mapping[$key]} -done diff --git a/.github/scripts/run-linux-poweroff.py b/.github/scripts/run-linux-poweroff.py deleted file mode 100755 index cf51182149..0000000000 --- a/.github/scripts/run-linux-poweroff.py +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env python3 - -from fabric.api import prefix, run, execute # type: ignore - -import fabric_cfg -from ci_variables import ci_env, remote_fsim_dir, remote_cy_dir -from utils import search_match_in_last_workloads_output_file, create_args, FpgaPlatform, print_last_firesim_log, print_last_firesim_workload, run_warn_only - -args = create_args() -if args.platform != FpgaPlatform.xilinx_alveo_u250: - raise Exception(f"Unable to run this script with {args.platform}") - -def run_linux_poweroff(): - """ Runs Linux Poweroff Tests - All Single-node Tests (Single-core Rocket/BOOM, Multi-core Rocket)""" - - # assumptions: - # - machine-launch-script requirements are already installed - # - repo is already setup fully - - with prefix(f"cd {remote_fsim_dir}"): - with prefix('source sourceme-manager.sh --skip-ssh-setup'): - with prefix(f'cd {remote_cy_dir}/software/firemarshal'): - # build outputs.yaml (use this workload since firemarshal can guestmount) - run("./marshal -v build test/outputs.yaml") - run("./marshal -v install test/outputs.yaml") - - def run_w_timeout(workload_path, config_runtime, workload, timeout, num_passes): - print(f"Starting workload run {workload}.") - log_tail_length = 300 - - def run_firesim_cmd(typ, extra_args = ""): - timeout_prefix = f"timeout {timeout} " - firesim_opts = f"-c {workload_path}/{config_runtime} -a {remote_cy_dir}/sims/firesim-staging/sample_config_hwdb.yaml -r {remote_cy_dir}/sims/firesim-staging/sample_config_build_recipes.yaml" - return run_warn_only(f"{timeout_prefix} firesim {firesim_opts} {extra_args} {typ}", pty=False) - - rc = run_firesim_cmd("launchrunfarm") - if rc != 0: - print_last_firesim_log(log_tail_length) - - rc = run_firesim_cmd("infrasetup") - if rc != 0: - print_last_firesim_log(log_tail_length) - - rc = run_firesim_cmd("runworkload") - if rc != 0: - print_last_firesim_log(log_tail_length) - - # This is a janky solution to the fact the manager does not - # return a non-zero exit code or some sort of result summary. - # The expectation here is that the PR author will manually - # check these output files for correctness until it can be - # done programmatically.. - print_last_firesim_workload(log_tail_length) - - # need to confirm that instance is off - print("Terminating runfarm. Assuming this will pass.") - run_firesim_cmd("terminaterunfarm", "-q") - print_last_firesim_log(log_tail_length) - - # using rc of runworkload - if rc != 0: - raise Exception(f"Workload {workload} failed with code: {rc}") - else: - print(f"Workload run {workload} successful. Checking workload files...") - - def check(match_key, file_name = 'uartlog'): - out_count = search_match_in_last_workloads_output_file(file_name, match_key) - assert out_count == num_passes, f"Workload {file_name} files are malformed: '{match_key}' found {out_count} times (!= {num_passes}). Something went wrong." - - # first driver completed successfully - check('*** PASSED ***') - - # verify login was reached (i.e. linux booted) - check('running /etc/init.d/S99run') - - # verify reaching poweroff - check('Power down') - - print(f"Workload run {workload} successful.") - - run_w_timeout(f"{remote_cy_dir}/sims/firesim-staging/ci/{args.platform}", "config_runtime_rocket_singlecore.yaml", "linux-poweroff-singlenode-rocketsinglecore", "30m", 1) - run_w_timeout(f"{remote_cy_dir}/sims/firesim-staging/ci/{args.platform}", "config_runtime_rocket_quadcore.yaml", "linux-poweroff-singlenode-rocketquadcore", "30m", 1) - run_w_timeout(f"{remote_cy_dir}/sims/firesim-staging/ci/{args.platform}", "config_runtime_boom_singlecore.yaml", "linux-poweroff-singlenode-boomsinglecore", "30m", 1) - -if __name__ == "__main__": - execute(run_linux_poweroff, hosts=["localhost"]) diff --git a/.github/scripts/run-metasims.py b/.github/scripts/run-metasims.py deleted file mode 100755 index 7c736b232f..0000000000 --- a/.github/scripts/run-metasims.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env python3 - -from pathlib import Path -from fabric.api import prefix, run, execute # type: ignore - -import fabric_cfg -from ci_variables import ci_env, remote_fsim_dir, remote_cy_dir -from utils import print_last_firesim_log, print_last_firesim_workload, run_warn_only - -def run_parallel_metasim(): - """ Runs parallel baremetal metasimulations """ - - # assumptions: - # - machine-launch-script requirements are already installed - # - VCS is installed - - with prefix(f"cd {remote_fsim_dir}"): - with prefix('source sourceme-manager.sh --skip-ssh-setup'): - with prefix(f'cd {remote_cy_dir}/software/firemarshal'): - # build hello world baremetal test - run("./marshal -v build test/bare.yaml") - run("./marshal -v install test/bare.yaml") - - def run_w_timeout(workload: str, timeout: str): - """ Run workload with a specific timeout - - :arg: workload (str) - workload yaml (abs path) - :arg: timeout (str) - timeout amount for the workload to run - """ - log_tail_length = 300 - - def run_firesim_cmd(typ, extra_args = ""): - timeout_prefix = f"timeout {timeout} " - firesim_opts = f"-c {workload} -a {remote_cy_dir}/sims/firesim-staging/sample_config_hwdb.yaml -r {remote_cy_dir}/sims/firesim-staging/sample_config_build_recipes.yaml" - return run_warn_only(f"{timeout_prefix} firesim {firesim_opts} {extra_args} {typ}", pty=False) - - # unique tag based on the ci workflow and filename is needed to ensure - # run farm is unique to each linux-poweroff test - with prefix(f"export FIRESIM_RUNFARM_PREFIX={ci_env['GITHUB_RUN_ID']}-{Path(__file__).stem}"): - rc = run_firesim_cmd("launchrunfarm") - if rc != 0: - print_last_firesim_log(log_tail_length) - - rc = run_firesim_cmd("infrasetup") - if rc != 0: - print_last_firesim_log(log_tail_length) - - rc = run_firesim_cmd("runworkload") - if rc != 0: - print_last_firesim_log(log_tail_length) - - # This is a janky solution to the fact the manager does not - # return a non-zero exit code or some sort of result summary. - # The expectation here is that the PR author will manually - # check these output files for correctness until it can be - # done programmatically.. - print_last_firesim_workload(log_tail_length) - - # need to confirm that instance is off - print("Terminating runfarm. Assuming this will pass.") - run_firesim_cmd("terminaterunfarm", "-q") - print_last_firesim_log(log_tail_length) - - # using rc of runworkload - if rc != 0: - raise Exception(f"Workload {workload} failed with code: {rc}") - else: - print(f"Workload {workload} successful.") - - run_w_timeout(f"{remote_cy_dir}/sims/firesim-staging/ci/hello-world-localhost-vcs-metasim.yaml", "45m") - run_w_timeout(f"{remote_cy_dir}/sims/firesim-staging/ci/hello-world-localhost-verilator-metasim.yaml", "45m") - -if __name__ == "__main__": - execute(run_parallel_metasim, hosts=["localhost"]) diff --git a/.github/scripts/run-tests.sh b/.github/scripts/run-tests.sh deleted file mode 100755 index 1b4bc143f1..0000000000 --- a/.github/scripts/run-tests.sh +++ /dev/null @@ -1,207 +0,0 @@ -#!/bin/bash - -# run the different tests - -# turn echo on and error on earliest command -set -ex - -# get remote exec variables -SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" -source $SCRIPT_DIR/defaults.sh - -DISABLE_SIM_PREREQ="BREAK_SIM_PREREQ=1" -MAPPING_FLAGS=${mapping[$1]} - -run_bmark () { - make run-bmark-tests-fast -j1 -C $LOCAL_SIM_DIR $DISABLE_SIM_PREREQ $MAPPING_FLAGS $@ -} - -run_asm () { - make run-asm-tests-fast -j1 -C $LOCAL_SIM_DIR $DISABLE_SIM_PREREQ $MAPPING_FLAGS $@ -} - -run_tracegen () { - make tracegen -C $LOCAL_SIM_DIR $DISABLE_SIM_PREREQ $MAPPING_FLAGS $@ -} - -run_binary () { - make run-binary-fast -C $LOCAL_SIM_DIR $DISABLE_SIM_PREREQ $MAPPING_FLAGS $@ -} - -build_tests() { - (cd $LOCAL_CHIPYARD_DIR/tests && cmake . && make) -} - -case $1 in - chipyard-rocket) - run_bmark LOADMEM=1 - run_asm LOADMEM=1 - build_tests - - # Test run-binary with and without loadmem - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv LOADMEM=1 - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv - ;; - chipyard-dmirocket) - # Test checkpoint-restore without cospike - # TODO: This is broken on verilator for some reason - # $LOCAL_CHIPYARD_DIR/scripts/generate-ckpt.sh -b $RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv -i 10000 - # run_binary LOADARCH=$PWD/dhrystone.riscv.0x80000000.unused.10000.defaultspikedts.loadarch EXTRA_SIM_FLAGS="+cospike-enable=0" - # Test cospike without checkpoint-restore - run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv LOADMEM=1 - ;; - chipyard-boomv3|chipyard-boomv4|chipyard-shuttle|chipyard-spike|chipyard-shuttle3) - run_asm LOADMEM=1 - run_bmark LOADMEM=1 - ;; - chipyard-dmiboomv3|chipyard-dmiboomv4) - # Test checkpoint-restore - $LOCAL_CHIPYARD_DIR/scripts/generate-ckpt.sh -b $RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv -i 10000 - run_binary LOADARCH=$PWD/dhrystone.riscv.0x80000000.unused.10000.defaultspikedts.loadarch - ;; - chipyard-hetero) - run_bmark LOADMEM=1 - ;; - chipyard-prefetchers) - run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv LOADMEM=1 - ;; - chipyard-gemmini) - GEMMINI_SOFTWARE_DIR=$LOCAL_SIM_DIR/../../generators/gemmini/software/gemmini-rocc-tests - rm -rf $GEMMINI_SOFTWARE_DIR/riscv-tests - cd $LOCAL_SIM_DIR - run_binary BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal LOADMEM=1 - run_binary BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal LOADMEM=1 - run_binary BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal LOADMEM=1 - ;; - chipyard-mempress) - (cd $LOCAL_CHIPYARD_DIR/generators/mempress/software/src && make) - run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/mempress/software/src/mempress-rocc.riscv LOADMEM=1 - ;; - chipyard-compressacc) - (cd $LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress && ./build-hcb-single-file.sh) - run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress/009987_cl0_ws12.riscv LOADMEM=1 - ;; - chipyard-manymmioaccels) - build_tests - - # test streaming-passthrough - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/streaming-passthrough.riscv LOADMEM=1 - - # test streaming-fir - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/streaming-fir.riscv LOADMEM=1 - - # test fft - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/fft.riscv LOADMEM=1 - ;; - chipyard-nvdla) - build_tests - - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/nvdla.riscv LOADMEM=1 - ;; - chipyard-manyperipherals) - # SPI Flash read tests - build_tests - - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashread.riscv - ;; - chipyard-spiflashwrite) - build_tests - - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashwrite.riscv LOADMEM=1 - [[ "`xxd $LOCAL_CHIPYARD_DIR/tests/spiflash.img | grep 1337\ 00ff\ aa55\ face | wc -l`" == "6" ]] || false - ;; - chipyard-tethered) - build_tests - - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv LOADMEM=1 EXTRA_SIM_FLAGS="+cflush_addr=0x2010200" - ;; - chipyard-symmetric) - build_tests - - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/symmetric.riscv LOADMEM=1 EXTRA_SIM_FLAGS="+offchip_sel=0" - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/symmetric.riscv LOADMEM=1 EXTRA_SIM_FLAGS="+offchip_sel=1" - ;; - chipyard-llcchiplet) - build_tests - - run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv LOADMEM=1 - ;; - chipyard-rerocc) - make -C $LOCAL_CHIPYARD_DIR/generators/rerocc/software - run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/rerocc/software/test.riscv LOADMEM=1 - ;; - chipyard-rocketvector|chipyard-shuttlevector) - run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-sgemm.riscv LOADMEM=1 - run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-strcmp.riscv LOADMEM=1 - run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-daxpy.riscv LOADMEM=1 - run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-memcpy.riscv LOADMEM=1 - ;; - chipyard-shuttleara) - # Ara does not work with verilator - # run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-sgemm.riscv LOADMEM=1 - # Ara cannot run strcmp - # run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-strcmp.riscv LOADMEM=1 - # run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-daxpy.riscv LOADMEM=1 - # run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-memcpy.riscv LOADMEM=1 - ;; - tracegen) - run_tracegen - ;; - tracegen-boomv3) - run_tracegen - ;; - tracegen-boomv4) - run_tracegen - ;; - chipyard-cva6) - run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv - ;; - chipyard-ibex) - # Ibex cannot run the riscv-tests binaries for some reason - # run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/isa/rv32ui-p-simple - ;; - chipyard-vexiiriscv) - run_asm LOADMEM=1 - run_bmark LOADMEM=1 - ;; - chipyard-sodor) - run_asm - ;; - chipyard-constellation) - run_binary LOADMEM=1 BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv - ;; - chipyard-tacit-rocket) - run_binary LOADMEM=1 BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv - ;; - chipyard-zephyr) - run_binary LOADMEM=1 BINARY=$LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr/build/zephyr/zephyr.elf - ;; - chipyard-radiance) - # Verilator fails to build sim binary, just generate verilog - ;; - icenet) - run_binary BINARY=none - ;; - testchipip) - run_binary BINARY=none - ;; - constellation) - run_binary BINARY=none - ;; - rocketchip-amba) - run_binary BINARY=none - ;; - rocketchip-tlsimple) - run_binary BINARY=none - ;; - rocketchip-tlwidth) - run_binary BINARY=none - ;; - rocketchip-tlxbar) - run_binary BINARY=none - ;; - *) - echo "No set of tests for $1. Did you spell it right?" - exit 1 - ;; -esac diff --git a/.github/scripts/utils.py b/.github/scripts/utils.py deleted file mode 100644 index 4e9d86b6b3..0000000000 --- a/.github/scripts/utils.py +++ /dev/null @@ -1,56 +0,0 @@ -from fabric.api import run, settings # type: ignore -from enum import Enum -import argparse -import os -from ci_variables import remote_fsim_dir - -def search_match_in_last_workloads_output_file(file_name: str = "uartlog", match_key: str = "*** PASSED ***") -> int: - # if grep doesn't find any results, this command will fail - out = run(f"""cd deploy/results-workload/ && LAST_DIR=$(ls | tail -n1) && if [ -d "$LAST_DIR" ]; then grep -an "{match_key}" $LAST_DIR/*/{file_name}; fi""") - out_split = [e for e in out.split('\n') if match_key in e] - out_count = len(out_split) - print(f"Found {out_count} '{match_key}' strings in {file_name}") - return out_count - -class FpgaPlatform(Enum): - vitis = 'vitis' - xilinx_alveo_u250 = 'xilinx_alveo_u250' - - def __str__(self): - return self.value - -def create_args(): - parser = argparse.ArgumentParser(description='') - parser.add_argument('--platform', type=FpgaPlatform, choices=list(FpgaPlatform), required=True) - args = parser.parse_args() - return args - -def setup_shell_env_vars(): - # if the following env. vars exist, then propagate to fabric subprocess - shell_env_vars = { - "TEST_DISABLE_VERILATOR", - "TEST_DISABLE_VIVADO", - "TEST_DISABLE_BENCHMARKS", - } - export_shell_env_vars = set() - for v in shell_env_vars: - if v in os.environ: - export_shell_env_vars.add(f"{v}={os.environ[v]}") - - return ("export " + " ".join(export_shell_env_vars)) if export_shell_env_vars else "true" - -def run_warn_only(*args, **kwargs): - rc = 0 - with settings(warn_only=True): - # pty=False needed to avoid issues with screen -ls stalling in fabric - rc = run(*args, **kwargs).return_code - return rc - -def print_last_firesim_log(log_lines = 300): - print(f"Printing last {log_lines} lines of most recent log.") - run(f"""cd {remote_fsim_dir}/deploy/logs && LAST_LOG=$(ls | tail -n1) && if [ -f "$LAST_LOG" ]; then tail -n{log_lines} $LAST_LOG; fi""") - -def print_last_firesim_workload(log_lines = 300): - workload_path = f"{remote_fsim_dir}/deploy/results-workload" - print(f"Printing last {log_lines} lines of all output files. See {workload_path} for more info.") - run(f"""cd {workload_path} && LAST_DIR=$(ls | tail -n1) && if [ -d "$LAST_DIR" ]; then tail -n{log_lines} $LAST_DIR/*/*; fi""") diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml new file mode 100644 index 0000000000..e18b922eb2 --- /dev/null +++ b/.github/workflows/build-setup-rhel.yml @@ -0,0 +1,65 @@ +name: build-setup rhel + +on: + workflow_call: + +permissions: + contents: read + +defaults: + run: + shell: bash -leo pipefail {0} + +jobs: + build-setup-rhel: + name: build-setup rhel + runs-on: ubuntu-latest + steps: + - name: Maximize build space + uses: jimfangx/maximize-build-space@master + with: + root-reserve-mb: 512 + swap-size-mb: 1024 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + + - name: Check out pull request + uses: actions/checkout@v4 + + - name: Run build setup in RHEL 9 + run: | + docker run --rm \ + --volume "${GITHUB_WORKSPACE}:/workspace" \ + --workdir /workspace \ + registry.access.redhat.com/ubi9/ubi:latest \ + bash -leo pipefail -c ' + dnf install -y \ + bzip2 \ + findutils \ + git \ + gzip \ + make \ + patch \ + procps-ng \ + python3 \ + tar \ + unzip \ + wget \ + which \ + xz + + git config --global --add safe.directory /workspace + + wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" + bash Miniforge3.sh -b -p "${HOME}/conda" + source "${HOME}/conda/etc/profile.d/conda.sh" + if [ -f "${HOME}/conda/etc/profile.d/mamba.sh" ]; then + source "${HOME}/conda/etc/profile.d/mamba.sh" + fi + conda activate + + ./build-setup.sh riscv-tools + grep -F "Setup complete!" build-setup.log + ' diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml new file mode 100644 index 0000000000..44fc90e1a9 --- /dev/null +++ b/.github/workflows/build-setup-ubuntu.yml @@ -0,0 +1,49 @@ +name: build-setup ubuntu + +on: + workflow_call: + +permissions: + contents: read + +defaults: + run: + shell: bash -leo pipefail {0} + +jobs: + build-setup-ubuntu: + name: build-setup ubuntu + runs-on: ubuntu-24.04 + steps: + - name: Maximize build space + uses: jimfangx/maximize-build-space@master + with: + root-reserve-mb: 512 + swap-size-mb: 1024 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + + - name: Install conda + run: | + wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" + bash Miniforge3.sh -b -p "${HOME}/conda" + source "${HOME}/conda/etc/profile.d/conda.sh" + if [ -f "${HOME}/conda/etc/profile.d/mamba.sh" ]; then + source "${HOME}/conda/etc/profile.d/mamba.sh" + fi + conda activate + + - name: Check out pull request + uses: actions/checkout@v4 + + - name: Run build setup + run: | + source "${HOME}/conda/etc/profile.d/conda.sh" + if [ -f "${HOME}/conda/etc/profile.d/mamba.sh" ]; then + source "${HOME}/conda/etc/profile.d/mamba.sh" + fi + conda activate + ./build-setup.sh riscv-tools + grep -F "Setup complete!" build-setup.log diff --git a/.github/workflows/check-ci-disable.yml b/.github/workflows/check-ci-disable.yml new file mode 100644 index 0000000000..2fbe7ae14e --- /dev/null +++ b/.github/workflows/check-ci-disable.yml @@ -0,0 +1,102 @@ +name: check-ci-disable + +on: + workflow_call: + inputs: + pr-number: + required: true + type: number + pr-head-ref: + required: true + type: string + pr-head-repo-id: + required: true + type: number + pr-labels: + required: true + type: string + outputs: + ci_disabled: + value: ${{ jobs.check-ci-disable.outputs.ci_disabled }} + +permissions: + actions: write + contents: read + pull-requests: read + +defaults: + run: + shell: bash -leo pipefail {0} + +jobs: + check-ci-disable: + name: check-ci-disable + runs-on: ubuntu-latest + outputs: + ci_disabled: ${{ steps.ci-label.outputs.ci_disabled }} + steps: + - name: Check ci:disable label + id: ci-label + env: + PR_LABELS: ${{ inputs.pr-labels }} + run: | + if jq -e 'index("ci:disable") != null' <<< "${PR_LABELS}" > /dev/null; then + echo "ci_disabled=true" >> "${GITHUB_OUTPUT}" + echo "ci:disable is present; downstream CI workflows will be skipped." >> "${GITHUB_STEP_SUMMARY}" + else + echo "ci_disabled=false" >> "${GITHUB_OUTPUT}" + echo "ci:disable is not present; downstream CI workflows may run." >> "${GITHUB_STEP_SUMMARY}" + fi + + - name: Cancel active CI runs for this PR + if: ${{ steps.ci-label.outputs.ci_disabled == 'true' }} + uses: actions/github-script@v7 + env: + PR_NUMBER: ${{ inputs.pr-number }} + PR_HEAD_REF: ${{ inputs.pr-head-ref }} + PR_HEAD_REPO_ID: ${{ inputs.pr-head-repo-id }} + with: + script: | + const { owner, repo } = context.repo; + const prNumber = Number(process.env.PR_NUMBER); + const prHeadRef = process.env.PR_HEAD_REF; + const prHeadRepoId = Number(process.env.PR_HEAD_REPO_ID); + const activeStatuses = ['queued', 'in_progress', 'requested', 'waiting', 'pending']; + const currentRunId = context.runId; + const cancelled = []; + + function isSamePullRequest(run) { + const pullRequests = run.pull_requests || []; + const matchesPrNumber = pullRequests.some((runPr) => runPr.number === prNumber); + if (matchesPrNumber) { + return true; + } + + const runRepoId = run.head_repository && run.head_repository.id; + return runRepoId === prHeadRepoId && run.head_branch === prHeadRef; + } + + for (const status of activeStatuses) { + const runs = await github.paginate(github.rest.actions.listWorkflowRunsForRepo, { + owner, + repo, + event: 'pull_request', + status, + per_page: 100, + }); + + for (const run of runs) { + if (run.id === currentRunId || !isSamePullRequest(run)) { + continue; + } + + await github.rest.actions.cancelWorkflowRun({ + owner, + repo, + run_id: run.id, + }); + cancelled.push(`${run.name || run.workflow_id}#${run.run_number}`); + } + } + + core.info(`Cancelled ${cancelled.length} active run(s): ${cancelled.join(', ') || 'none'}`); diff --git a/.github/workflows/chipyard-chisel7.yml b/.github/workflows/chipyard-chisel7.yml deleted file mode 100644 index 0f4ea828aa..0000000000 --- a/.github/workflows/chipyard-chisel7.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: chipyard-chisel7 - -on: - pull_request: - branches: - - main - - '1.[0-9]*.x' - workflow_dispatch: - -defaults: - run: - shell: bash -leo pipefail {0} - -jobs: - chisel7-firrtl: - name: chisel7-firrtl - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install DTC (device-tree-compiler) - run: | - sudo apt-get update - sudo apt-get install -y device-tree-compiler - - - name: Set up JDK 17 (Temurin) - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '17' - cache: 'sbt' - - - name: Init submodules (saturn only) - run: | - scripts/init-submodules-no-riscv-tools-nolog.sh --saturn - - - name: Run firrtl target with Chisel 7 - env: - USE_CHISEL7: "1" - run: | - cd sims/verilator - make firrtl - diff --git a/.github/workflows/chipyard-full-flow.yml b/.github/workflows/chipyard-full-flow.yml deleted file mode 100644 index 3de358c984..0000000000 --- a/.github/workflows/chipyard-full-flow.yml +++ /dev/null @@ -1,207 +0,0 @@ -name: chipyard-ci-full-flow - -on: - # run ci on pull requests targeting following branches (runs on the merge commit) - pull_request: - branches: - - main - - '1.[0-9]*.x' - schedule: - # run at 00:00 on sunday - - cron: "0 0 * * 0" - -defaults: - run: - shell: bash -leo pipefail {0} - -env: - # temporary directories should be located in /scratch (since it's larger) - REMOTE_WORK_DIR: /scratch/buildbot/cy-ci-shared/cy-workdir-${{ github.sha }} - JAVA_TMP_DIR: /scratch/buildbot/cy-ci-shared/cy-javatmpdir-${{ github.sha }} - -jobs: - cancel-prior-workflows: - name: cancel-prior-workflows - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.12.1 - with: - access_token: ${{ github.token }} - - start-workflow: - name: start-workflow - # unable to access env context in job.if thus have to put gh-a context expression directly here. - # note that the check is using a boolean true instead of string 'true' since it's directly using - # the expression not a variable like if checking against the env context string. - if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:disable') != true }} - runs-on: ubuntu-22.04 - steps: - - run: true - - # Set up a set of boolean conditions to control which branches of the CI - # workflow will execute This is based off the conditional job execution - # example here: https://github.com/dorny/paths-filter#examples - change-filters: - name: filter-jobs-on-changes - runs-on: ubuntu-latest - needs: start-workflow - # Queried by downstream jobs to determine if they should run. - outputs: - needs-rtl: ${{ steps.filter.outputs.all_count != steps.filter.outputs.skip-rtl_count }} - steps: - - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - uses: dorny/paths-filter@v3 - id: filter - with: - filters: | - all: - - '**' - - # If any of the files changed match, do a doc build - docs: &docs-filter - - 'docs/**' - - '.readthedocs.yml' - - # If all files match to this filter, skip the main ci pipeline - skip-rtl: - - *docs-filter - - '**/*.md' - - '**/.gitignore' - - '.github/ISSUE_TEMPLATE/**' - - '.github/PULL_REQUEST_TEMPLATE.md' - - '.github/dependabot.yml' - - '.mergify.yml' - - full-flow: - name: full-flow - needs: [change-filters, cancel-prior-workflows] - if: needs.change-filters.outputs.needs-rtl == 'true' - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - uses: actions/checkout@v4 - - name: Setup repo copy - run: | - git clone $GITHUB_WORKSPACE ${{ env.REMOTE_WORK_DIR }} - - name: Setup repo - run: | - cd ${{ env.REMOTE_WORK_DIR }} - eval "$(conda shell.bash hook)" - mkdir ${{ env.JAVA_TMP_DIR }} - export MAKEFLAGS="-j32" - git submodule sync - ./build-setup.sh -v - - name: Run config finder - run: | - cd ${{ env.REMOTE_WORK_DIR }} - eval "$(conda shell.bash hook)" - source env.sh - cd sims/verilator - make find-config-fragments - make find-configs - - name: Run smoke test - run: | - cd ${{ env.REMOTE_WORK_DIR }} - eval "$(conda shell.bash hook)" - source env.sh - cd sims/verilator - make verilog - - name: VLSI test - run: | - cd ${{ env.REMOTE_WORK_DIR }} - eval "$(conda shell.bash hook)" - source env.sh - - cd vlsi - - # remove extra channels if put in by default (avoid clashing deps) - conda config --remove channels litex-hub || true - conda config --remove channels defaults || true - - # NOTE: most conda installs are in separate conda envs because they mess up - # each other's versions (for no apparent reason) and we need the latest versions - - # installs for example-sky130.yml - conda create -y --prefix ./.conda-sky130 -c defaults -c litex-hub open_pdks.sky130a=1.0.457_0_g32e8f23 - git clone https://github.com/rahulk29/sram22_sky130_macros.git - git -C sram22_sky130_macros checkout 1f20d16 - - # installs for example-openroad.yml - conda create -y --prefix ./.conda-yosys -c defaults -c litex-hub yosys=0.27_4_gb58664d44 - conda create -y --prefix ./.conda-openroad -c defaults -c litex-hub openroad=2.0_7070_g0264023b6 - conda create -y --prefix ./.conda-klayout -c defaults -c litex-hub klayout=0.28.5_98_g87e2def28 - conda create -y --prefix ./.conda-signoff -c defaults -c litex-hub magic=8.3.376_0_g5e5879c netgen=1.5.250_0_g178b172 - - echo "# Tutorial configs" > tutorial.yml - echo "# pdk" > tutorial.yml - echo "technology.sky130.sky130A: $PWD/.conda-sky130/share/pdk/sky130A" >> tutorial.yml - echo "technology.sky130.sram22_sky130_macros: $PWD/sram22_sky130_macros" >> tutorial.yml - echo "" >> tutorial.yml - echo "# tools" >> tutorial.yml - echo "synthesis.yosys.yosys_bin: $PWD/.conda-yosys/bin/yosys" >> tutorial.yml - echo "par.openroad.openroad_bin: $PWD/.conda-openroad/bin/openroad" >> tutorial.yml - echo "par.openroad.klayout_bin: $PWD/.conda-klayout/bin/klayout" >> tutorial.yml - echo "drc.magic.magic_bin: $PWD/.conda-signoff/bin/magic" >> tutorial.yml - echo "drc.klayout.klayout_bin: $PWD/.conda-klayout/bin/klayout" >> tutorial.yml - echo "lvs.netgen.netgen_bin: $PWD/.conda-signoff/bin/netgen" >> tutorial.yml - echo "" >> tutorial.yml - echo "# speed up tutorial runs & declutter log output" >> tutorial.yml - echo "par.openroad.timing_driven: false" >> tutorial.yml - echo "par.openroad.write_reports: false" >> tutorial.yml - - export tutorial=sky130-openroad - export EXTRA_CONFS=tutorial.yml - export VLSI_TOP=RocketTile - make buildfile - make syn - # NOTE: commenting out for now bc this times out - need to debug why - # openroad freezes during some write commands after detailed route - # so need to stop the flow & run last step separately - # make par HAMMER_EXTRA_ARGS="--stop_after_step extraction" - # make redo-par HAMMER_EXTRA_ARGS="--start_before_step extraction" - # make drc - # make lvs - - name: Run FireChip bridge tests - run: | - cd ${{ env.REMOTE_WORK_DIR }} - eval "$(conda shell.bash hook)" - source env.sh - pushd sims/firesim - source sourceme-manager.sh --skip-ssh-setup - popd - cd sims/firesim-staging - export TEST_DISABLE_VERILATOR=1 - export TEST_DISABLE_VIVADO=1 - make launch-sbt SBT_COMMAND=";project firechip_bridgestubs; testOnly firechip.bridgestubs.BridgeTests" - - name: Run FireChip FireSim target tests - run: | - cd ${{ env.REMOTE_WORK_DIR }} - eval "$(conda shell.bash hook)" - source env.sh - pushd sims/firesim - source sourceme-manager.sh --skip-ssh-setup - popd - cd sims/firesim-staging - export TEST_MINIMAL_BENCHMARKS=1 # seems like dhrystone is the longest so this doesn't affect runtime much - export TEST_DISABLE_VERILATOR=1 - export TEST_DISABLE_VIVADO=1 - make launch-sbt SBT_COMMAND=";project firechip; testOnly firechip.chip.CITests" - - cleanup: - name: cleanup - needs: [full-flow] - runs-on: as4 - if: ${{ always() }} - steps: - - name: Delete repo copy and conda env - run: | - rm -rf ${{ env.REMOTE_WORK_DIR }} - rm -rf ${{ env.JAVA_TMP_DIR }} diff --git a/.github/workflows/chipyard-run-tests.yml b/.github/workflows/chipyard-run-tests.yml deleted file mode 100644 index f177a1667a..0000000000 --- a/.github/workflows/chipyard-run-tests.yml +++ /dev/null @@ -1,1344 +0,0 @@ -name: chipyard-ci-process - -on: - # run ci on pull requests targeting following branches (runs on the merge commit) - pull_request: - branches: - - main - - '1.[0-9]*.x' - -defaults: - run: - shell: bash -leo pipefail {0} - -env: - tools-cache-version: v17 - JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit - conda-env-name-no-time: cy-${{ github.run_id }} - workflow-timestamp: ${{ github.event.pull_request.updated_at }} - -jobs: - cancel-prior-workflows: - name: cancel-prior-workflows - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.12.1 - with: - access_token: ${{ github.token }} - - start-workflow: - name: start-workflow - # unable to access env context in job.if thus have to put gh-a context expression directly here. - # note that the check is using a boolean true instead of string 'true' since it's directly using - # the expression not a variable like if checking against the env context string. - if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:disable') != true }} - runs-on: ubuntu-22.04 - steps: - - run: true - - # Set up a set of boolean conditions to control which branches of the CI - # workflow will execute This is based off the conditional job execution - # example here: https://github.com/dorny/paths-filter#examples - change-filters: - name: filter-jobs-on-changes - runs-on: ubuntu-latest - needs: start-workflow - # Queried by downstream jobs to determine if they should run. - outputs: - needs-rtl: ${{ steps.filter.outputs.all_count != steps.filter.outputs.skip-rtl_count }} - steps: - - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - uses: dorny/paths-filter@v3 - id: filter - with: - filters: | - all: - - '**' - - # If any of the files changed match, do a doc build - docs: &docs-filter - - 'docs/**' - - '.readthedocs.yml' - - # If all files match to this filter, skip the main ci pipeline - skip-rtl: - - *docs-filter - - '**/*.md' - - '**/.gitignore' - - '.github/ISSUE_TEMPLATE/**' - - '.github/PULL_REQUEST_TEMPLATE.md' - - '.github/dependabot.yml' - - '.mergify.yml' - - create-conda-env-as4: - name: create-conda-env-as4 - needs: [change-filters, cancel-prior-workflows] - if: needs.change-filters.outputs.needs-rtl == 'true' - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Cleanup conda - uses: ./.github/actions/cleanup-conda - - name: Create conda env - uses: ./.github/actions/create-conda-env - - # Sentinel job to simplify how we specify which that basic setup is complete - # - # When adding new prep jobs, please add them to `needs` below - setup-complete: - name: setup-complete - needs: [create-conda-env-as4] - runs-on: ubuntu-latest - steps: - - name: Set up complete - run: echo Set up is complete! - - ########################################################################## - - commit-on-master-check: - name: commit-on-master-check - needs: [setup-complete] - if: needs.change-filters.outputs.needs-rtl == 'true' - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Check commits of each submodule - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) - .github/scripts/check-commit.sh - - documentation-check: - name: documentation-check - needs: [setup-complete] - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Check that documentation builds with no warnings/errors - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) - scripts/init-submodules-no-riscv-tools.sh --full - make -C docs html - - name: Show error log from sphinx if failed - if: ${{ failure() }} - run: cat /tmp/sphinx-err*.log - - build-extra-tests: - name: build-extra-tests - needs: [setup-complete] - if: needs.change-filters.outputs.needs-rtl == 'true' - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Generate keys - id: genkey - run: | - echo "extra-tests-cache-key=extra-tests-${{ github.sha }}" >> $GITHUB_OUTPUT - - uses: actions/cache@v4 - id: build-extra-tools-cache - with: - path: extra-tests-install - key: ${{ steps.genkey.outputs.extra-tests-cache-key }} - restore-keys: ${{ steps.genkey.outputs.extra-tests-cache-key }} - - name: Build extra tests - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) - .github/scripts/build-extra-tests.sh - - prepare-chipyard-cores: - name: prepare-chipyard-cores - needs: setup-complete - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-cores" - - prepare-chipyard-constellation: - name: prepare-chipyard-constellation - needs: setup-complete - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-constellation" - - prepare-chipyard-peripherals: - name: prepare-chipyard-peripherals - needs: setup-complete - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-peripherals" - - prepare-chipyard-accels: - name: prepare-chipyard-accels - needs: setup-complete - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-accels" - - prepare-chipyard-tracegen: - name: prepare-chipyard-tracegen - needs: setup-complete - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-tracegen" - - prepare-chipyard-other: - name: prepare-chipyard-other - needs: setup-complete - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-other" - - prepare-chipyard-fpga: - name: prepare-chipyard-fpga - needs: setup-complete - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-fpga" - build-type: "fpga" - - ########################################################################## - - chipyard-spike-gemmini-run-tests: - name: chipyard-spike-gemmini-run-tests - needs: prepare-chipyard-accels # technically doesn't depend on RTL but should be after the build.sh for Gemmini - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build Gemmini FireMarshal - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) - cd ${{ github.workspace }} && ./scripts/init-submodules-no-riscv-tools.sh --full - cd ${{ github.workspace }} && source ./scripts/fix-open-files.sh - git submodule update --init software/firemarshal && cd software/firemarshal && ./init-submodules.sh - cd ${{ github.workspace }}/generators/gemmini/software && ${{ github.workspace }}/software/firemarshal/marshal -v -d build gemmini-smoke.json - - name: Running Gemmini FireMarshal smoke test - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) - cd ${{ github.workspace }}/generators/gemmini/software && ${{ github.workspace }}/software/firemarshal/marshal -v -d launch -s gemmini-smoke.json - - chipyard-rocket-run-tests: - name: chipyard-rocket-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-rocket" - - chipyard-prefetchers-run-tests: - name: chipyard-prefetchers-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-prefetchers" - - chipyard-hetero-run-tests: - name: chipyard-hetero-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-hetero" - - chipyard-boomv3-run-tests: - name: chipyard-boomv3-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-boomv3" - - chipyard-boomv4-run-tests: - name: chipyard-boomv4-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-boomv4" - - chipyard-shuttle-run-tests: - name: chipyard-shuttle-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-shuttle" - - chipyard-shuttle3-run-tests: - name: chipyard-shuttle3-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-shuttle3" - - chipyard-radiance-run-tests: - name: chipyard-radiance-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-radiance" - - chipyard-tacit-rocket-run-tests: - name: chipyard-tacit-rocket-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-tacit-rocket" - - chipyard-rocket-zephyr-run-tests: - name: chipyard-rocket-zephyr-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build zephyr hello world - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d) - .github/scripts/build-zephyr.sh - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-zephyr" - - - chipyard-cva6-run-tests: - name: chipyard-cva6-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-cva6" - - chipyard-ibex-run-tests: - name: chipyard-ibex-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-ibex" - - chipyard-vexiiriscv-run-tests: - name: chipyard-vexiiriscv-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-vexiiriscv" - - chipyard-sodor-run-tests: - name: chipyard-sodor-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-sodor" - - chipyard-spike-run-tests: - name: chipyard-spike-run-tests - needs: prepare-chipyard-cores - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-spike" - - chipyard-dmirocket-run-tests: - name: chipyard-dmirocket-run-tests - needs: prepare-chipyard-peripherals - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-dmirocket" - - chipyard-dmiboomv3-run-tests: - name: chipyard-dmiboomv3-run-tests - needs: prepare-chipyard-peripherals - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-dmiboomv3" - - chipyard-dmiboomv4-run-tests: - name: chipyard-dmiboomv4-run-tests - needs: prepare-chipyard-peripherals - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-dmiboomv4" - - chipyard-spiflashwrite-run-tests: - name: chipyard-spiflashwrite-run-tests - needs: prepare-chipyard-peripherals - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-spiflashwrite" - - chipyard-manyperipherals-run-tests: - name: chipyard-manyperipherals-run-tests - needs: prepare-chipyard-peripherals - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-manyperipherals" - - chipyard-tethered-run-tests: - name: chipyard-tethered-run-tests - needs: prepare-chipyard-peripherals - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-tethered" - - chipyard-symmetric-run-tests: - name: chipyard-symmetric-run-tests - needs: prepare-chipyard-peripherals - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-symmetric" - - chipyard-llcchiplet-run-tests: - name: chipyard-llcchiplet-run-tests - needs: prepare-chipyard-peripherals - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-peripherals" - project-key: "chipyard-llcchiplet" - - chipyard-rerocc-run-tests: - name: chipyard-rerocc-run-tests - needs: prepare-chipyard-accels - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-rerocc" - - chipyard-rocketvector-run-tests: - name: chipyard-rocketvector-run-tests - needs: prepare-chipyard-accels - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-rocketvector" - - chipyard-shuttlevector-run-tests: - name: chipyard-shuttlevector-run-tests - needs: prepare-chipyard-accels - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-shuttlevector" - - chipyard-gemmini-run-tests: - name: chipyard-gemmini-run-tests - needs: prepare-chipyard-accels - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-gemmini" - - chipyard-manymmioaccels-run-tests: - name: chipyard-manymmioaccels-run-tests - needs: prepare-chipyard-accels - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-manymmioaccels" - - # chipyard-nvdla-run-tests: - # name: chipyard-nvdla-run-tests - # needs: prepare-chipyard-accels - # runs-on: as4 - # steps: - # - name: Delete old checkout - # run: | - # ls -alh . - # rm -rf ${{ github.workspace }}/* || true - # rm -rf ${{ github.workspace }}/.* || true - # ls -alh . - # - name: Checkout - # uses: actions/checkout@v4 - # - name: Git workaround - # uses: ./.github/actions/git-workaround - # - name: Create conda env - # uses: ./.github/actions/create-conda-env - # - name: Run tests - # uses: ./.github/actions/run-tests - # with: - # group-key: "group-accels" - # project-key: "chipyard-nvdla" - - chipyard-mempress-run-tests: - name: chipyard-mempress-run-tests - needs: prepare-chipyard-accels - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-mempress" - - chipyard-compressacc-run-tests: - name: chipyard-compressacc-run-tests - needs: prepare-chipyard-accels - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-compressacc" - - - tracegen-boomv3-run-tests: - name: tracegen-boomv3-run-tests - needs: prepare-chipyard-tracegen - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-tracegen" - project-key: "tracegen-boomv3" - - tracegen-boomv4-run-tests: - name: tracegen-boomv4-run-tests - needs: prepare-chipyard-tracegen - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-tracegen" - project-key: "tracegen-boomv4" - - tracegen-run-tests: - name: tracegen-run-tests - needs: prepare-chipyard-tracegen - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-tracegen" - project-key: "tracegen" - - icenet-run-tests: - name: icenet-run-tests - needs: prepare-chipyard-other - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-other" - project-key: "icenet" - - testchipip-run-tests: - name: testchipip-run-tests - needs: prepare-chipyard-other - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-other" - project-key: "testchipip" - - rocketchip-run-tests: - name: rocketchip-run-tests - needs: prepare-chipyard-other - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run amba tests - uses: ./.github/actions/run-tests - with: - group-key: "group-other" - project-key: "rocketchip-amba" - # Below tests segfault with verilator, work fine in VCS - # - name: Run tlsimple tests - # uses: ./.github/actions/run-tests - # with: - # group-key: "group-other" - # project-key: "rocketchip-tlsimple" - # - name: Run tlwidth tests - # uses: ./.github/actions/run-tests - # with: - # group-key: "group-other" - # project-key: "rocketchip-tlwidth" - # - name: Run tlxbar tests - # uses: ./.github/actions/run-tests - # with: - # group-key: "group-other" - # project-key: "rocketchip-tlxbar" - - constellation-run-tests: - name: constellation-run-tests - needs: prepare-chipyard-other - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-other" - project-key: "constellation" - - chipyard-constellation-run-tests: - name: chipyard-constellation-run-tests - needs: prepare-chipyard-constellation - runs-on: as4 - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v4 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-constellation" - project-key: "chipyard-constellation" - - # Sentinel job to simplify how we specify which checks need to pass in branch - # protection and in Mergify - # - # When adding new top level jobs, please add them to `needs` below - all_tests_passed: - name: "all tests passed" - needs: [commit-on-master-check, - documentation-check, - chipyard-rocket-run-tests, - chipyard-hetero-run-tests, - chipyard-boomv3-run-tests, - chipyard-boomv4-run-tests, - chipyard-shuttle-run-tests, - chipyard-shuttle3-run-tests, - chipyard-tacit-rocket-run-tests, - chipyard-rocket-zephyr-run-tests, - chipyard-cva6-run-tests, - chipyard-ibex-run-tests, - chipyard-vexiiriscv-run-tests, - chipyard-sodor-run-tests, - chipyard-dmiboomv3-run-tests, - chipyard-dmiboomv4-run-tests, - chipyard-dmirocket-run-tests, - chipyard-spiflashwrite-run-tests, - chipyard-manyperipherals-run-tests, - chipyard-tethered-run-tests, - chipyard-symmetric-run-tests, - chipyard-llcchiplet-run-tests, - chipyard-rerocc-run-tests, - chipyard-rocketvector-run-tests, - chipyard-shuttlevector-run-tests, - chipyard-gemmini-run-tests, - chipyard-manymmioaccels-run-tests, # chipyard-nvdla-run-tests, - chipyard-prefetchers-run-tests, - chipyard-mempress-run-tests, - chipyard-compressacc-run-tests, - chipyard-constellation-run-tests, - tracegen-boomv3-run-tests, - tracegen-boomv4-run-tests, - tracegen-run-tests, - icenet-run-tests, - testchipip-run-tests, - rocketchip-run-tests, - constellation-run-tests, - prepare-chipyard-fpga] - runs-on: ubuntu-latest - steps: - - run: echo Success! diff --git a/.github/workflows/config/release-notes.json b/.github/workflows/config/release-notes.json deleted file mode 100644 index d6098d7b17..0000000000 --- a/.github/workflows/config/release-notes.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "categories": [ - { - "title": "## Added", - "labels": ["changelog:added"] - }, - { - "title": "## Changed", - "labels": ["changelog:changed"] - }, - { - "title": "## Fixed", - "labels": ["changelog:fixed"] - }, - { - "title": "## Removed", - "labels": ["changelog:removed"] - }, - { - "title": "## Uncategorized", - "labels": [] - } - ], - "ignore_labels": [ - "changelog:omit" - ], - "sort": { - "order": "ASC", - "on_property": "mergedAt" - }, - "template": "${{CHANGELOG}}\n\n**Full Changelog:** ${{RELEASE_DIFF}}\n", - "pr_template": "- ${{TITLE}} (by @${{AUTHOR}} in ${{URL}})${{RELEASE_NOTES}}", - "empty_template": "- no changes", - "transformers": [ - { - "pattern": "", - "flags": "gus", - "target": "" - } - ], - "custom_placeholders": [ - { - "name": "RELEASE_NOTES", - "source": "BODY", - "transformer": { - "pattern": ".*#### Release Notes(?:[\n\\s]|(?:))*((?:\\S(?!!--)).*?)[\n\\s]*\n#.*", - "flags": "gus", - "target": "\n $1" - } - } - ], - "trim_values": false, - "max_tags_to_fetch": 200, - "max_pull_requests": 500, - "max_back_track_time_days": 365 -} diff --git a/.github/workflows/firesim-cluster-tests.yml b/.github/workflows/firesim-cluster-tests.yml deleted file mode 100644 index 9341bb6ad1..0000000000 --- a/.github/workflows/firesim-cluster-tests.yml +++ /dev/null @@ -1,213 +0,0 @@ -# ci tests that use a separate repository to run (can potentially share ci resources with other workflows) -name: firesim-cluster-tests - -on: - # run ci when pring to main (note: ci runs on the merge commit of the pr!) - pull_request: - branches: - - main - - stable - -defaults: - run: - shell: bash -leo pipefail {0} - -env: - # needed for local FPGA build bitstream (access GH repo to store bitstreams) - PERSONAL_ACCESS_TOKEN: ${{ secrets.BARTENDER_PERSONAL_ACCESS_TOKEN }} - - # temporary directories should be located in /scratch (since it's larger) - REMOTE_WORK_DIR: /scratch/buildbot/cy-ci-shared/cy-${{ github.sha }}-${{ github.workflow }} - JAVA_TMP_DIR: /scratch/buildbot/cy-ci-shared/cy-javatmpdir-${{ github.sha }}-${{ github.workflow }} - - # misc - TERM: xterm-256-color - -jobs: - cancel-prior-workflows: - name: cancel-prior-workflows - runs-on: ubuntu-22.04 - steps: - - name: Cancel previous workflow runs - if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:persist-prior-workflows') != true }} - uses: styfle/cancel-workflow-action@0.12.1 - with: - access_token: ${{ github.token }} - - start-workflow: - name: start-workflow - # unable to access env context in job.if thus have to put gh-a context expression directly here. - # note that the check is using a boolean true instead of string 'true' since it's directly using - # the expression not a variable like if checking against the env context string. - if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:disable') != true }} - runs-on: ubuntu-22.04 - steps: - - run: true - - # Set up a set of boolean conditions to control which branches of the CI - # workflow will execute. This is based off the conditional job execution - # example here: https://github.com/dorny/paths-filter#examples - filter-jobs-on-changes: - name: filter-jobs-on-changes - runs-on: ubuntu-22.04 - needs: start-workflow - # Queried by downstream jobs to determine if they should run. - outputs: - run-ci: ${{ steps.filter.outputs.all_count != steps.filter.outputs.non-ci-files_count }} - both-conda-reqs-lock-modified: ${{ - ((steps.filter.outputs.conda-reqs == 'false') && (steps.filter.outputs.conda-lockfile == 'false')) || - ((steps.filter.outputs.conda-reqs == 'true') && (steps.filter.outputs.conda-lockfile == 'true')) }} - steps: - - uses: actions/checkout@v4 - - uses: dorny/paths-filter@v3 - id: filter - with: - filters: | - all: - - '**' - - docs: &docs-handle - - 'docs/**' - - '.readthedocs.yml' - - release: &release-handle - - '.github/workflows/release-notes.yml' - - '.github/workflows/config/release-notes.json' - - non-ci-files: - - *docs-handle - - *release-handle - - '**/*.md' - - '**/.gitignore' - - '**/.gitattributes' - - '.github/ISSUE_TEMPLATE/**' - - '.github/PULL_REQUEST_TEMPLATE.md' - - '.github/dependabot.yml' - - '.mergify.yml' - - conda-reqs: - - 'conda-reqs/*.yaml' - - conda-lockfile: - - 'conda-reqs/conda-lock-reqs/*.conda-lock.yml' - - # Note: This doesn't check if the lock file is synced/faithful to the requirements file. - # This just ensures that both were modified in the same PR (ideally the lock file was regenerated - # from the requirements file). This job only runs when that condition is not met and - # so always fails. - check-conda-lock-modified: - name: check-conda-lock-modified - needs: filter-jobs-on-changes - if: needs.filter-jobs-on-changes.outputs.both-conda-reqs-lock-modified == 'false' - runs-on: ubuntu-22.04 - steps: - - name: Check conda lock file was regenerated with conda requirements file - run: | - echo "ERROR: Either the conda-reqs/*.yaml or conda-reqs/conda-lock-reqs/*.conda-lock.yml was not updated properly. Please regenerate lockfiles." - false - - setup-persistent-repo: - name: setup-persistent-repo - runs-on: as4 - needs: filter-jobs-on-changes - if: needs.filter-jobs-on-changes.outputs.run-ci == 'true' - steps: - # This forces a fresh clone of the repo during the `checkout` step - # to resolve stale submodule URLs. See https://github.com/ucb-bar/chipyard/pull/1156. - - name: Delete old checkout - run: | - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - - uses: actions/checkout@v4 - - name: Setup repo copy - run: | - mkdir -p $(dirname ${{ env.REMOTE_WORK_DIR }}) - git clone ${{ github.workspace }} ${{ env.REMOTE_WORK_DIR }} - - name: Setup Java temp. directory - run: | - mkdir -p ${{ env.JAVA_TMP_DIR }} - - name: Setup repo (for xilinx_alveo_u250 platform) - run: | - cd ${{ env.REMOTE_WORK_DIR }} - export MAKEFLAGS="-j32" - ./build-setup.sh --verbose - cd sims/firesim - source sourceme-manager.sh --skip-ssh-setup - firesim managerinit --platform xilinx_alveo_u250 - - run-metasims-xilinx_alveo_u250: - name: run-metasims-xilinx_alveo_u250 - needs: [setup-persistent-repo] - runs-on: as4 - steps: - - name: Run metasims (VCS + Verilator) - run: | - cd ${{ env.REMOTE_WORK_DIR }} - source env.sh - .github/scripts/run-metasims.py - - run-basic-linux-poweroffs-xilinx_alveo_u250: - name: run-basic-linux-poweroffs-xilinx_alveo_u250 - if: contains(github.event.pull_request.labels.*.name, 'ci:fpga-deploy') - needs: [setup-persistent-repo, run-metasims-xilinx_alveo_u250] # must not run in parallel - runs-on: as4 - steps: - - name: Run non-networked single-node Linux poweroff tests (single-core Rocket/BOOM, multi-core Rocket) w/ Xilinx Alveo U250 - run: | - cd ${{ env.REMOTE_WORK_DIR }} - source env.sh - .github/scripts/run-linux-poweroff.py --platform xilinx_alveo_u250 - - build-default-bitstreams: - name: build-default-bitstreams - if: contains(github.event.pull_request.labels.*.name, 'ci:local-fpga-buildbitstream-deploy') - needs: [setup-persistent-repo, run-metasims-xilinx_alveo_u250 ] # must not run in parallel - runs-on: as4 - env: - CHIPYARD_HWDB_PATH: sims/firesim-staging/sample_config_hwdb.yaml - GH_ORG: firesim - GH_REPO: firesim-public-bitstreams - steps: - - uses: actions/checkout@v4 - - name: Create temporary clone of repo to store built bitstreams into - uses: actions/checkout@v4 - with: - repository: ${{ env.GH_ORG }}/${{ env.GH_REPO }} - ssh-key: ${{ secrets.BARTENDER_PRIVATE_SSH_KEY }} - path: ${{ env.GH_REPO }} - fetch-depth: 1 - # requires checkout above - - name: Run buildbitstream command and update sample local bitstreams in bitstream repository - run: | - cd ${{ env.REMOTE_WORK_DIR }} - source env.sh - .github/scripts/build-default-bitstreams.py - - name: Push bitstreams built/copied in bitstream repo - run: | - cd ${{ github.workspace }}/${{ env.GH_REPO }} - git log - git diff origin/main - git push origin main - - uses: peter-evans/create-pull-request@v7 - with: - base: ${{ github.head_ref }} - add-paths: ${{ env.CHIPYARD_HWDB_PATH }} - commit-message: "Update local bitstream(s) [ci skip]" - body: "Update local bitstream(s) for PR #${{ github.event.pull_request.number }}" - branch-suffix: random - title: "Update local bitstream(s) for PR #${{ github.event.pull_request.number }} (`${{ github.head_ref }}`)" - - cleanup-local-fpga-repo: - name: cleanup-local-fpga-repo - needs: [ - run-metasims-xilinx_alveo_u250, - run-basic-linux-poweroffs-xilinx_alveo_u250, - build-default-bitstreams] - # uses a separate runner to cleanup (irrespective, of other jobs cancelled, running, etc) - runs-on: as4 - if: ${{ always() }} - steps: - - name: Delete repo copy - run: | - rm -rf ${{ env.REMOTE_WORK_DIR }} - rm -rf ${{ env.JAVA_TMP_DIR }} diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml new file mode 100644 index 0000000000..e36a7ca276 --- /dev/null +++ b/.github/workflows/pr-ci.yml @@ -0,0 +1,43 @@ +name: Chipyard Pull Request CI + +on: + pull_request: + types: + - opened + - reopened + - synchronize + - ready_for_review + - labeled + - unlabeled + +permissions: + actions: write + contents: read + pull-requests: read + +concurrency: + group: pr-ci-${{ github.event.pull_request.number }} + cancel-in-progress: ${{ contains(github.event.pull_request.labels.*.name, 'ci:disable') }} + +jobs: + check-ci-disable: + name: check-ci-disable + if: ${{ github.event.pull_request.user.login != 'dependabot[bot]' }} + uses: ./.github/workflows/check-ci-disable.yml + with: + pr-number: ${{ github.event.pull_request.number }} + pr-head-ref: ${{ github.event.pull_request.head.ref }} + pr-head-repo-id: ${{ github.event.pull_request.head.repo.id }} + pr-labels: ${{ toJson(github.event.pull_request.labels.*.name) }} + + build-setup-ubuntu: + name: build-setup ubuntu + needs: check-ci-disable + if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} + uses: ./.github/workflows/build-setup-ubuntu.yml + + build-setup-rhel: + name: build-setup rhel + needs: check-ci-disable + if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} + uses: ./.github/workflows/build-setup-rhel.yml diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml deleted file mode 100644 index 6e2f1aac8a..0000000000 --- a/.github/workflows/release-notes.yml +++ /dev/null @@ -1,51 +0,0 @@ -# adapted from https://github.com/chipsalliance/chisel/blob/main/.github/workflows/release-notes.yml - -name: Generate Release Notes - -on: - release: - types: [created] - workflow_dispatch: - inputs: - toTag: - description: 'Tag or ref for which to generate release notes' - required: true - fromTag: - # If you leave this blank, it'll select previous SemVer version - # WARNING: Cannot use anything older than a005498 because of the git tree merge - description: 'Tag or ref from which to start generating release notes' - required: false - - -jobs: - generate_release_notes: - name: Generate Release Notes - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Build Release Notes - id: release-notes - uses: mikepenz/release-changelog-builder-action@v5 - with: - configuration: .github/workflows/config/release-notes.json - failOnError: true - # Amazingly, on release where the inputs are empty, this just does the right thing - # The "toTag" is the released tag, and the "fromTag" is the previous tag according to SemVer - fromTag: ${{ github.event.inputs.fromTag }} - toTag: ${{ github.event.inputs.toTag }} - token: ${{ secrets.GITHUB_TOKEN }} - - name: Report Release Notes - # Put output through env variable to make it robust to quotes - env: - CHANGELOG: ${{steps.release-notes.outputs.changelog}} - run: echo "$CHANGELOG" >> $GITHUB_STEP_SUMMARY - - name: Upload Release Notes (on release) - if: github.event_name == 'release' - uses: softprops/action-gh-release@v2.2.1 - with: - body: ${{ steps.release-notes.outputs.changelog }} - - name: Error on uncategorized PRs - if: steps.release-notes.outputs.uncategorized_prs != 0 - run: exit 1 diff --git a/.github/workflows/require-label.yml b/.github/workflows/require-label.yml deleted file mode 100644 index 0088f6bd62..0000000000 --- a/.github/workflows/require-label.yml +++ /dev/null @@ -1,24 +0,0 @@ -# adapted from https://github.com/chipsalliance/chisel/blob/main/.github/workflows/require-label.yml - -name: Require Release Notes Label - -on: - pull_request: - branches: - - main - types: - - opened - - synchronize - - reopened - - labeled - - unlabeled - -jobs: - check_labels: - name: Check Labels - runs-on: ubuntu-latest - steps: - - uses: docker://agilepathway/pull-request-label-checker:v1.4.25 - with: - one_of: changelog:added,changelog:changed,changelog:fixed,changelog:omit,changelog:removed - repo_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/update-circt.yml.disabled b/.github/workflows/update-circt.yml.disabled deleted file mode 100644 index 30147b53d6..0000000000 --- a/.github/workflows/update-circt.yml.disabled +++ /dev/null @@ -1,27 +0,0 @@ -# DISABLED: This workflow is temporarily disabled - -# name: update-circt - -# # update weekly -# on: -# schedule: -# - cron: 0 0 * * 1 - -# defaults: -# run: -# shell: bash -leo pipefail {0} - -# jobs: -# update-circt: -# name: update-circt -# runs-on: ubuntu-latest -# steps: -# - name: Update CIRCT -# uses: circt/update-circt@v1 -# with: -# user: 'bartender' -# email: 'firesimchipyard@gmail.com' -# pr-reviewers: '' -# pr-labels: 'changelog:changed' -# circt-config: './conda-reqs/circt.json' -# github-token: ${{ secrets.BARTENDER_PERSONAL_ACCESS_TOKEN }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index c356eb9a19..9fb220b699 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ project/project/ .vscode/ tests/build/ conda-reqs/chipyard-base.yaml.bak +.github-old/ \ No newline at end of file diff --git a/conda-reqs/chipyard-base.yaml b/conda-reqs/chipyard-base.yaml index 4cfcbdc3a5..4aafcec843 100644 --- a/conda-reqs/chipyard-base.yaml +++ b/conda-reqs/chipyard-base.yaml @@ -16,7 +16,7 @@ dependencies: # documentation on package_spec syntax for constraining versions - gcc=13.2 - gxx=13.2 - - sysroot_linux-64=2.34 # need to be close to system glibc for VCS compatibility + - sysroot_linux-64=2.34 - conda-gcc-specs - binutils diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml index 5efb7750bc..40272a28ea 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml @@ -54,16 +54,16 @@ package: category: main optional: false - name: alsa-lib - version: 1.2.16 + version: 1.2.16.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.16-hb03c661_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.16.1-hb03c661_0.conda hash: - md5: 499abc445d330a2a537428a1340cd457 - sha256: 65f50a67b8715ad01eb73710d540c816aab14cc3e52a74e48fc97e4716224f2e + md5: 8904e09bda369377b3dd07e2ac828c5d + sha256: cf93ca0f1f107e95a35969a4622684e08fcb8cf37f8cf4a1e9e424828386c921 category: main optional: false - name: annotated-types @@ -80,7 +80,7 @@ package: category: main optional: false - name: anyio - version: 4.13.0 + version: 4.14.1 manager: conda platform: linux-64 dependencies: @@ -88,10 +88,10 @@ package: idna: '>=2.8' python: '' typing_extensions: '>=4.5' - url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.13.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.1-pyhcf101f3_0.conda hash: - md5: af2df4b9108808da3dc76710fe50eae2 - sha256: f09aed24661cd45ba54a43772504f05c0698248734f9ae8cd289d314ac89707e + md5: 7498bb2648f852c6a3cd5724ca80bdeb + sha256: 6119355a0b2a33e7b0dd31a740dbe01df66ffee0a643f80968afb1d53e7dbdb3 category: main optional: false - name: appdirs @@ -225,43 +225,43 @@ package: category: main optional: false - name: ca-certificates - version: 2026.5.20 + version: 2026.6.17 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.5.20-hbd8a1cb_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.6.17-hbd8a1cb_0.conda hash: - md5: 489b8e97e666c93f68fdb35c3c9b957f - sha256: 9812a303a1395e1dafbd92e5bc8a1ff6013bcbba0a09c7f03a8d23e43560aa9b + md5: a9965dd99f683c5f444428f896635716 + sha256: f8e3c730fa14ee3f170493779f06522c4acf89169f43db4f039727709b6419cf category: main optional: false - name: cachecontrol - version: 0.14.3 + version: 0.14.4 manager: conda platform: linux-64 dependencies: msgpack-python: '>=0.5.2,<2.0.0' - python: '>=3.9' + python: '>=3.10' requests: '>=2.16.0' - url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.3-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.4-pyha770c72_0.conda hash: - md5: 241ef6e3db47a143ac34c21bfba510f1 - sha256: ec791bb6f1ef504411f87b28946a7ae63ed1f3681cefc462cf1dfdaf0790b6a9 + md5: 13bdbb9b693b29134c56a9a00c23de41 + sha256: cca3a26282a5bc37a10afb1aa2006a21c45033cbc4ff012f9501f56f2a115c12 category: main optional: false - name: cachecontrol-with-filecache - version: 0.14.3 + version: 0.14.4 manager: conda platform: linux-64 dependencies: - cachecontrol: 0.14.3 + cachecontrol: 0.14.4 filelock: '>=3.8.0' - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.14.3-pyhd8ed1ab_0.conda + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.14.4-pyhd8ed1ab_0.conda hash: - md5: b4af8c1b61929b1bcb001c2953882149 - sha256: 4ba4d08fba095556b7f1e06ec1dca068b367e68aadab0aca73115d02ddfcd518 + md5: 41a7966424a8733b11410216d9a47227 + sha256: becb375d64ebda9f9ed030d529b22da21030401d0dbaee62a208e60fca9c4587 category: main optional: false - name: cachy @@ -305,15 +305,15 @@ package: category: main optional: false - name: certifi - version: 2026.5.20 + version: 2026.6.17 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.5.20-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.6.17-pyhd8ed1ab_0.conda hash: - md5: 9fefff2f745ea1cc2ef15211a20c054a - sha256: 645655a3510e38e625da136595f3f16f2130c3263630cc3bc8f60f619ddbe490 + md5: c13824fedced67005d3832c152fe9c2f + sha256: 6c13620e458ba43278379d0cdacc30c497336bddfda81681fd50d114a65c702f category: main optional: false - name: cffi @@ -346,16 +346,16 @@ package: category: main optional: false - name: click - version: 8.4.1 + version: 8.4.2 manager: conda platform: linux-64 dependencies: __unix: '' python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/click-8.4.1-pyhc90fa1f_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/click-8.4.2-pyhc90fa1f_0.conda hash: - md5: 554304a07e581a85891b15e39ea9f268 - sha256: c253a41cdf898b651a0786cbb76c6d5fc101d0dbbe719f93a124bc4fde5cdd6a + md5: 2c4bd6aeb90bb157456841c3270a0d92 + sha256: ccc4787f511964f9a1f2d2d2859c91c5d571fb60f7f09d4c4e092c9b7a94e671 category: main optional: false - name: click-default-group @@ -543,14 +543,14 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libfdt: '>=1.7.2,<1.8.0a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.7.2-hb03c661_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.7.2-h280c20c_6.conda hash: - md5: 013e85967e69bbcd34547adf7cfc9799 - sha256: 728da7d6d4d8784f8b3a98b0447b6cfc5dd8ad960d496d7af2a2090c62de0e83 + md5: b5d1065368afd380c0fa9eadbbfbcc0b + sha256: 43979c780845fe5fd6c91319595bb95b7cafe5efe371e420134d685d56e6020a category: main optional: false - name: ensureconda @@ -599,15 +599,15 @@ package: category: main optional: false - name: filelock - version: 3.29.4 + version: 3.29.5 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.29.4-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.29.5-pyhd8ed1ab_0.conda hash: - md5: 66f138d7a6dffb5c959cc4bf6dc2b797 - sha256: feb5c13cc8f256212a979783a7645abd7e27925c51ee5431babbc0efc661cdfd + md5: 288126f559a8a6cacabe59c73327fe1f + sha256: aa1035fbdc0c8fbe66a82ae4630b6ed73b832c2c0c52bd7b45b5f3bd54f51df6 category: main optional: false - name: flex @@ -926,15 +926,15 @@ package: category: main optional: false - name: idna - version: '3.17' + version: '3.18' manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/idna-3.17-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.18-pyhcf101f3_0.conda hash: - md5: c75e517ebd7a5c5272fe111e8b162228 - sha256: f9fe1f9e539c544405ccb7ba632d4ba79edf243c05554d76ace073158a80b691 + md5: 577b04680ae422adb86fc60d7b940659 + sha256: c75632ea624aa450a394f570749420c5a2e0997d0216bc29d5d45b0f39df0426 category: main optional: false - name: imagesize @@ -1040,17 +1040,17 @@ package: category: main optional: false - name: jq - version: 1.8.1 + version: 1.8.2 manager: conda platform: linux-64 dependencies: oniguruma: '>=6.9.10,<6.10.0a0' - libgcc: '>=13' + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.1-h73b1eb8_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_0.conda hash: - md5: 2714e43bfc035f7ef26796632aa1b523 - sha256: ab26cb11ad0d10f5c6637d925b044c74a3eacb5825686d3720313b3cb6d40cef + md5: e246309d3884a2b8a4cde89d17f4a1a3 + sha256: 74d0a62d64cbe84a916ab437f71c61bf113b29a2b75e80cb5cc440626eef947e category: main optional: false - name: kernel-headers_linux-64 @@ -1243,13 +1243,13 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.7.2-hb03c661_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.7.2-h280c20c_6.conda hash: - md5: 62cff995da03e1c568118e75efa04802 - sha256: 9605215209b487a23023b486870243d1d6fa0a68fbb097163c12a89919e70b48 + md5: 5056841b5c01423603f960d256aa89d1 + sha256: c8a2e7f665daa78bdbe9d0112e36909134a127be76e94375882f351345822f8f category: main optional: false - name: libffi @@ -1537,16 +1537,16 @@ package: category: main optional: false - name: libuuid - version: 2.42.1 + version: 2.42.2 manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.1-h5347b49_0.conda + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.2-h5347b49_0.conda hash: - md5: 7d0a66598195ef00b6efc55aefc7453b - sha256: 3f0edf1280e2f6684a986f821eaa3e123d2694a00b31b96ca0d4a4c12c129231 + md5: 01bb81d12c957de066ea7362007df642 + sha256: 9b1bdce27a7e31f7d241aeecff67a1f3101d52a2b1e33ccc2cdf2613072bf81f category: main optional: false - name: libwebp-base @@ -1684,19 +1684,19 @@ package: category: main optional: false - name: msgpack-python - version: 1.1.2 + version: 1.2.1 manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' + python: '' libstdcxx: '>=14' - python: '>=3.10,<3.11.0a0' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py310h03d9f68_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.1-py310haaf941d_1.conda hash: - md5: 5eea9d8f8fcf49751dab7927cb0dfc3f - sha256: 61cf3572d6afa3fa711c5f970a832783d2c281facb7b3b946a6b71a0bac2c592 + md5: e2b18dce122ab17adf136492db202aa6 + sha256: 6e76e34089e29a13ad8b8bfa139b39d812bb33964295bcecd94cd698dca35e8d category: main optional: false - name: ncurses @@ -2143,15 +2143,15 @@ package: category: main optional: false - name: sbt - version: 1.12.12 + version: 2.0.1 manager: conda platform: linux-64 dependencies: openjdk: '>=8' - url: https://conda.anaconda.org/conda-forge/noarch/sbt-1.12.12-hc364b38_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/sbt-2.0.1-hc364b38_0.conda hash: - md5: 3908031d7acff73774def3baf7fdb7f0 - sha256: 5a677c49db1305b750462a9e613a412534cbc4664c7613c3670ee73b55180da6 + md5: da519da81bd35966fb87f72964de4187 + sha256: 89181ac4559c61120f83038c18bebe83520ea40aec9182a39ae9d482a5986ac4 category: main optional: false - name: secretstorage @@ -2447,15 +2447,15 @@ package: category: main optional: false - name: typing-extensions - version: 4.15.0 + version: 4.16.0 manager: conda platform: linux-64 dependencies: - typing_extensions: ==4.15.0 - url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + typing_extensions: ==4.16.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda hash: - md5: edd329d7d3a4ab45dcf905899a7a6115 - sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c + md5: c680b5747e8c4c8f23dca0bb7042a8fc + sha256: b141933ece3518f6d7b75dfb59451e2f26b405a44c18e2518a83e9a02e09315c category: main optional: false - name: typing-inspection @@ -2472,15 +2472,15 @@ package: category: main optional: false - name: typing_extensions - version: 4.15.0 + version: 4.16.0 manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda hash: - md5: 0caa1af407ecff61170c9437a808404d - sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 + md5: c70ad746c22219b9700931707482992c + sha256: 2d888f90af0686044882c74193ec80a90ec1943145d94a7b1b048958acda1848 category: main optional: false - name: tzdata @@ -2544,7 +2544,7 @@ package: category: main optional: false - name: virtualenv - version: 21.5.0 + version: 21.5.1 manager: conda platform: linux-64 dependencies: @@ -2555,10 +2555,10 @@ package: platformdirs: '>=3.9.1,<5' python-discovery: '>=1.4.2' typing_extensions: '>=4.13.2' - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.5.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.5.1-pyhcf101f3_0.conda hash: - md5: ae6c3161f863cba63c9dbd18efd819ad - sha256: 7d2656432734025a1337aa0fc35b047743eafea8b54c18dda8bda0dea4c0c28d + md5: e449fb99b714be1e13fa5564dacd1af5 + sha256: 0a7b0a2ada7ad719f9d4f8874eb10911e1fcfdecefc86456105eb806ebd60ac4 category: main optional: false - name: watchfiles diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index 8cc584f02f..a879507c95 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -56,15 +56,15 @@ package: category: main optional: false - name: aiohappyeyeballs - version: 2.6.2 + version: 2.7.1 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.6.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.7.1-pyhd8ed1ab_0.conda hash: - md5: 8a9936643c4a9565459c4a8eb5d4e3ff - sha256: 6c6ddfeefead96d44f09c955b04967a579583af2dc63518faf029e46825e41ab + md5: e51e09bf3b91c62b7461a9f94e92c2c9 + sha256: 5ef589e5fd3736439781a9d48e68ce1e723b7081a471c02169908198eba4f448 category: main optional: false - name: aiohttp @@ -118,16 +118,16 @@ package: category: main optional: false - name: alsa-lib - version: 1.2.16 + version: 1.2.16.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.16-hb03c661_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.16.1-hb03c661_0.conda hash: - md5: 499abc445d330a2a537428a1340cd457 - sha256: 65f50a67b8715ad01eb73710d540c816aab14cc3e52a74e48fc97e4716224f2e + md5: 8904e09bda369377b3dd07e2ac828c5d + sha256: cf93ca0f1f107e95a35969a4622684e08fcb8cf37f8cf4a1e9e424828386c921 category: main optional: false - name: annotated-types @@ -144,7 +144,7 @@ package: category: main optional: false - name: anyio - version: 4.13.0 + version: 4.14.1 manager: conda platform: linux-64 dependencies: @@ -152,10 +152,10 @@ package: idna: '>=2.8' python: '' typing_extensions: '>=4.5' - url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.13.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.1-pyhcf101f3_0.conda hash: - md5: af2df4b9108808da3dc76710fe50eae2 - sha256: f09aed24661cd45ba54a43772504f05c0698248734f9ae8cd289d314ac89707e + md5: 7498bb2648f852c6a3cd5724ca80bdeb + sha256: 6119355a0b2a33e7b0dd31a740dbe01df66ffee0a643f80968afb1d53e7dbdb3 category: main optional: false - name: appdirs @@ -171,31 +171,31 @@ package: category: main optional: false - name: argcomplete - version: 3.6.3 + version: 3.7.0 manager: conda platform: linux-64 dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.6.3-pyhd8ed1ab_0.conda + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.7.0-pyhcf101f3_0.conda hash: - md5: 8f37c8fb7116a18da04e52fa9e2c8df9 - sha256: a2a1879c53b7a8438c898d20fa5f6274e4b1c30161f93b7818236e9df6adffde + md5: 4553b661c03a2f435d8c889eca8f2075 + sha256: fca7deee4f28060413d483851703c1287351797c1f660fb9ab63f8d175576e3f category: main optional: false - name: ast-serialize - version: 0.5.0 + version: 0.6.0 manager: conda platform: linux-64 dependencies: python: '>=3.10' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' _python_abi3_support: 1.* cpython: '>=3.10' - url: https://conda.anaconda.org/conda-forge/linux-64/ast-serialize-0.5.0-py310hd8a072f_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ast-serialize-0.6.0-py310hd8a072f_0.conda hash: - md5: 6adea4814147f458d6278d053850b0ac - sha256: cf1cf3d0fa59fe0ab6bc3af722d820c1a85a9233c786f614f377c651fec6a7f9 + md5: 530aaeffb462b062bf8e3abb66879cf0 + sha256: 98eef90c96e2185254d12e667337077b989e9892167ff2c969e19b9296f42743 category: main optional: false - name: async-timeout @@ -439,7 +439,7 @@ package: category: main optional: false - name: awscli - version: 2.35.3 + version: 2.35.13 manager: conda platform: linux-64 dependencies: @@ -456,10 +456,10 @@ package: urllib3: '>=1.25.4,<=2.6.3' wcwidth: <0.3.0 python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.35.3-py310hd3bfc61_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.35.13-py310hd3bfc61_0.conda hash: - md5: bdfe38cce05777a8cd4e8ab4b1d9f148 - sha256: 4cdc5149cf16a8f42a10f6fa93684dff5565f090798949f58428567e1042a514 + md5: b5ac9ba55a25e056de89d2fe59105577 + sha256: 1b2cc5e9cb5622bc0c1d9ef51247f9cc0cc19febf17da6511bbc08abb420f2b0 category: main optional: false - name: awscrt @@ -645,22 +645,22 @@ package: category: main optional: false - name: boto3 - version: 1.43.28 + version: 1.43.38 manager: conda platform: linux-64 dependencies: - botocore: '>=1.43.28,<1.44.0' + botocore: '>=1.43.38,<1.44.0' jmespath: '>=0.7.1,<2.0.0' python: '>=3.10' - s3transfer: '>=0.18.0,<0.19.0' - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.43.28-pyhd8ed1ab_0.conda + s3transfer: '>=0.19.0,<0.20.0' + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.43.38-pyhd8ed1ab_0.conda hash: - md5: 5fc05d6c7b3f7f2ab6c62de3bcdc1001 - sha256: b995a18ae047e0e4b1062ec78a88f07969c98d197e4ed74ad9b681c76ffebb0e + md5: a9e402d2310129646eeeed328c506f75 + sha256: 3d3073773742aafda7dc3bb602513c9c7cbeb9faeb18f66d4d9f45ba9fd8fe18 category: main optional: false - name: boto3-stubs - version: 1.43.29 + version: 1.43.40 manager: conda platform: linux-64 dependencies: @@ -668,14 +668,14 @@ package: python: '>=3.10' types-s3transfer: '' typing-extensions: '>=4.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.43.29-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.43.40-pyhd8ed1ab_0.conda hash: - md5: 0e12e5825c056d6d4febdbc9dd212ff7 - sha256: 428dbd15f13e97b86634e898bc41d46c5779bae4e0f2b5722492193151e94aad + md5: 0e4e0bf7678ab9b1c833cd2c3e847ada + sha256: 12d8d22b91acb39e102c9a0812d1d1059a59df18f8741ec53ddfbffa97a9366b category: main optional: false - name: botocore - version: 1.43.28 + version: 1.43.38 manager: conda platform: linux-64 dependencies: @@ -683,10 +683,10 @@ package: python: '>=3.10' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,!=2.2.0,<3' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.28-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.38-pyhd8ed1ab_0.conda hash: - md5: f026466ffa48f056ebfe4e96c71c630a - sha256: e8685ab16071db24ca6cc3312d771bb4b0db389f8143d8dd12974b3c6d06705b + md5: eea09f107274143eb081efcc4d6b3d61 + sha256: 8dd75af85c3fe535915d1875109df41b052e48f0aa2394649d574dead263a0c2 category: main optional: false - name: botocore-stubs @@ -777,43 +777,43 @@ package: category: main optional: false - name: ca-certificates - version: 2026.5.20 + version: 2026.6.17 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.5.20-hbd8a1cb_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.6.17-hbd8a1cb_0.conda hash: - md5: 489b8e97e666c93f68fdb35c3c9b957f - sha256: 9812a303a1395e1dafbd92e5bc8a1ff6013bcbba0a09c7f03a8d23e43560aa9b + md5: a9965dd99f683c5f444428f896635716 + sha256: f8e3c730fa14ee3f170493779f06522c4acf89169f43db4f039727709b6419cf category: main optional: false - name: cachecontrol - version: 0.14.3 + version: 0.14.4 manager: conda platform: linux-64 dependencies: msgpack-python: '>=0.5.2,<2.0.0' - python: '>=3.9' + python: '>=3.10' requests: '>=2.16.0' - url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.3-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.4-pyha770c72_0.conda hash: - md5: 241ef6e3db47a143ac34c21bfba510f1 - sha256: ec791bb6f1ef504411f87b28946a7ae63ed1f3681cefc462cf1dfdaf0790b6a9 + md5: 13bdbb9b693b29134c56a9a00c23de41 + sha256: cca3a26282a5bc37a10afb1aa2006a21c45033cbc4ff012f9501f56f2a115c12 category: main optional: false - name: cachecontrol-with-filecache - version: 0.14.3 + version: 0.14.4 manager: conda platform: linux-64 dependencies: - cachecontrol: 0.14.3 + cachecontrol: 0.14.4 filelock: '>=3.8.0' - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.14.3-pyhd8ed1ab_0.conda + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.14.4-pyhd8ed1ab_0.conda hash: - md5: b4af8c1b61929b1bcb001c2953882149 - sha256: 4ba4d08fba095556b7f1e06ec1dca068b367e68aadab0aca73115d02ddfcd518 + md5: 41a7966424a8733b11410216d9a47227 + sha256: becb375d64ebda9f9ed030d529b22da21030401d0dbaee62a208e60fca9c4587 category: main optional: false - name: cachy @@ -873,15 +873,15 @@ package: category: main optional: false - name: certifi - version: 2026.5.20 + version: 2026.6.17 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.5.20-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.6.17-pyhd8ed1ab_0.conda hash: - md5: 9fefff2f745ea1cc2ef15211a20c054a - sha256: 645655a3510e38e625da136595f3f16f2130c3263630cc3bc8f60f619ddbe490 + md5: c13824fedced67005d3832c152fe9c2f + sha256: 6c13620e458ba43278379d0cdacc30c497336bddfda81681fd50d114a65c702f category: main optional: false - name: cffi @@ -963,16 +963,16 @@ package: category: main optional: false - name: click - version: 8.4.1 + version: 8.4.2 manager: conda platform: linux-64 dependencies: __unix: '' python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/click-8.4.1-pyhc90fa1f_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/click-8.4.2-pyhc90fa1f_0.conda hash: - md5: 554304a07e581a85891b15e39ea9f268 - sha256: c253a41cdf898b651a0786cbb76c6d5fc101d0dbbe719f93a124bc4fde5cdd6a + md5: 2c4bd6aeb90bb157456841c3270a0d92 + sha256: ccc4787f511964f9a1f2d2d2859c91c5d571fb60f7f09d4c4e092c9b7a94e671 category: main optional: false - name: click-default-group @@ -1139,10 +1139,10 @@ package: manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-26.5.2-ha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-26.5.2-h643be8f_1.conda hash: - md5: 32fb06c6c1ad197bebc6081b2420b8cc - sha256: 2e352331a9a03d0840aca54284a0be764984b755f88bfd81bc3474f44874e6f3 + md5: 0002e091db2447ac9ee8bd6062601bd5 + sha256: 1c5f11bcc585e1dffabda0aad96838a3290339d68504479422533b008c10d2fd category: main optional: false - name: conda-tree @@ -1161,21 +1161,21 @@ package: category: main optional: false - name: constructor - version: 3.15.3 + version: 3.16.1 manager: conda platform: linux-64 dependencies: __linux: '' conda: '>=4.6' - conda-standalone: '' + conda-standalone: '>=24.11.0' jinja2: '' - jsonschema: '>=4' - python: '>=3.10' + python: '' ruamel.yaml: '>=0.11.14,<0.19' - url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.15.3-pyh66a16d4_0.conda + jsonschema: '>=4' + url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.16.1-pyh4826d0c_0.conda hash: - md5: f356773402c04f62bbfc46f1765a73e1 - sha256: e34cce8d58c4dcbc18e70f253e383476ad2faca8b68df56cc003115bf926eb65 + md5: faeb60369d3f3ec4a45a469da63a30ab + sha256: 96450a122632555562f0cb82d65b9e81aa5ec29e8bcf4a1520083e609b7cd2c2 category: main optional: false - name: contourpy @@ -1383,14 +1383,14 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libfdt: '>=1.7.2,<1.8.0a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.7.2-hb03c661_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.7.2-h280c20c_6.conda hash: - md5: 013e85967e69bbcd34547adf7cfc9799 - sha256: 728da7d6d4d8784f8b3a98b0447b6cfc5dd8ad960d496d7af2a2090c62de0e83 + md5: b5d1065368afd380c0fa9eadbbfbcc0b + sha256: 43979c780845fe5fd6c91319595bb95b7cafe5efe371e420134d685d56e6020a category: main optional: false - name: elfutils @@ -1487,15 +1487,15 @@ package: category: main optional: false - name: filelock - version: 3.29.4 + version: 3.29.5 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.29.4-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.29.5-pyhd8ed1ab_0.conda hash: - md5: 66f138d7a6dffb5c959cc4bf6dc2b797 - sha256: feb5c13cc8f256212a979783a7645abd7e27925c51ee5431babbc0efc661cdfd + md5: 288126f559a8a6cacabe59c73327fe1f + sha256: aa1035fbdc0c8fbe66a82ae4630b6ed73b832c2c0c52bd7b45b5f3bd54f51df6 category: main optional: false - name: findutils @@ -1707,15 +1707,15 @@ package: category: main optional: false - name: fsspec - version: 2026.4.0 + version: 2026.6.0 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.4.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.6.0-pyhd8ed1ab_0.conda hash: - md5: 2c11aa96ea85ced419de710c1c3a78ff - sha256: 079701b4ff3b317a1a158cabd48cf2b856b8b8d3ef44f152809d9acf20cc8e10 + md5: 7d7e6c826ba0743fc491ebee0e7b899c + sha256: fe0156e6d658be3531aad2a99e42e8ad1ee23c69837d469c44c1b6010373913d category: main optional: false - name: gcc @@ -2102,15 +2102,15 @@ package: category: main optional: false - name: idna - version: '3.17' + version: '3.18' manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/idna-3.17-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.18-pyhcf101f3_0.conda hash: - md5: c75e517ebd7a5c5272fe111e8b162228 - sha256: f9fe1f9e539c544405ccb7ba632d4ba79edf243c05554d76ace073158a80b691 + md5: 577b04680ae422adb86fc60d7b940659 + sha256: c75632ea624aa450a394f570749420c5a2e0997d0216bc29d5d45b0f39df0426 category: main optional: false - name: imagesize @@ -2265,17 +2265,17 @@ package: category: main optional: false - name: jq - version: 1.8.1 + version: 1.8.2 manager: conda platform: linux-64 dependencies: oniguruma: '>=6.9.10,<6.10.0a0' - libgcc: '>=13' + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.1-h73b1eb8_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_0.conda hash: - md5: 2714e43bfc035f7ef26796632aa1b523 - sha256: ab26cb11ad0d10f5c6637d925b044c74a3eacb5825686d3720313b3cb6d40cef + md5: e246309d3884a2b8a4cde89d17f4a1a3 + sha256: 74d0a62d64cbe84a916ab437f71c61bf113b29a2b75e80cb5cc440626eef947e category: main optional: false - name: jsondiff @@ -2742,13 +2742,13 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.7.2-hb03c661_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.7.2-h280c20c_6.conda hash: - md5: 62cff995da03e1c568118e75efa04802 - sha256: 9605215209b487a23023b486870243d1d6fa0a68fbb097163c12a89919e70b48 + md5: 5056841b5c01423603f960d256aa89d1 + sha256: c8a2e7f665daa78bdbe9d0112e36909134a127be76e94375882f351345822f8f category: main optional: false - name: libffi @@ -3397,16 +3397,16 @@ package: category: main optional: false - name: libuuid - version: 2.42.1 + version: 2.42.2 manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.1-h5347b49_0.conda + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.2-h5347b49_0.conda hash: - md5: 7d0a66598195ef00b6efc55aefc7453b - sha256: 3f0edf1280e2f6684a986f821eaa3e123d2694a00b31b96ca0d4a4c12c129231 + md5: 01bb81d12c957de066ea7362007df642 + sha256: 9b1bdce27a7e31f7d241aeecff67a1f3101d52a2b1e33ccc2cdf2613072bf81f category: main optional: false - name: libuv @@ -3735,19 +3735,19 @@ package: category: main optional: false - name: msgpack-python - version: 1.1.2 + version: 1.2.1 manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' + python: '' libstdcxx: '>=14' - python: '>=3.10,<3.11.0a0' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py310h03d9f68_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.1-py310haaf941d_1.conda hash: - md5: 5eea9d8f8fcf49751dab7927cb0dfc3f - sha256: 61cf3572d6afa3fa711c5f970a832783d2c281facb7b3b946a6b71a0bac2c592 + md5: e2b18dce122ab17adf136492db202aa6 + sha256: 6e76e34089e29a13ad8b8bfa139b39d812bb33964295bcecd94cd698dca35e8d category: main optional: false - name: multidict @@ -3801,31 +3801,31 @@ package: category: main optional: false - name: mypy-boto3-s3 - version: 1.43.14 + version: 1.43.31 manager: conda platform: linux-64 dependencies: boto3: '' python: '' typing-extensions: '' - url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.43.14-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.43.31-pyhcf101f3_0.conda hash: - md5: d0b1949fb1dc8601afa97571fb73a362 - sha256: 2bd5b45bfab79c62f698ece1241a7ae8cc903d06876da58f5a8c5da3a1b20f76 + md5: b9f247b94559f2302e9e7a033ab4d4f1 + sha256: 80c099d9b93c9aad5a9848f9d2550eb4d295fb01029dab0f6f13526a1fb2c414 category: main optional: false - name: mypy_boto3_ec2 - version: 1.43.27 + version: 1.43.39 manager: conda platform: linux-64 dependencies: boto3: '' python: '' typing-extensions: '' - url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.43.27-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.43.39-pyhcf101f3_0.conda hash: - md5: c0bf2d02129e96230b9b91384615f5e8 - sha256: 9c5faa4b8d0e5c6db1e5a3fb1c8f6d9693029dc21e1509487651bc9e17f87584 + md5: 8bafecf9fa348cccb84b557abfb270e0 + sha256: ccce57a8868a2c7f09728bb8ada33da5571d0e05c361e7e6b153e63cde719024 category: main optional: false - name: mypy_extensions @@ -4407,7 +4407,7 @@ package: category: main optional: false - name: pydantic-settings - version: 2.14.1 + version: 2.14.2 manager: conda platform: linux-64 dependencies: @@ -4415,10 +4415,10 @@ package: python: '' pydantic: '>=2.7.0' python-dotenv: '>=0.21.0' - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.14.1-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.14.2-pyhcf101f3_0.conda hash: - md5: 3b05fc4bb3e31efd3498136b3221c18f - sha256: a4ad48b01e5e2640561011d8d48ac038fec66670f24e22c370097747bd9200d2 + md5: a1c5305893d9956abd2079d377c5113f + sha256: de1eb2cdb22a678387ec7757f10b7815c4c2a4d62f23b2a70fe4beff7e8a1fd4 category: main optional: false - name: pyelftools @@ -4545,11 +4545,11 @@ package: category: main optional: false - name: pytest - version: 9.0.3 + version: 9.1.1 manager: conda platform: linux-64 dependencies: - colorama: '>=0.4' + colorama: '' pygments: '>=2.7.2' python: '' iniconfig: '>=1.0.1' @@ -4557,10 +4557,10 @@ package: pluggy: '>=1.5,<2' tomli: '>=1' exceptiongroup: '>=1' - url: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.3-pyhc364b38_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda hash: - md5: 6a991452eadf2771952f39d43615bb3e - sha256: 960f59442173eee0731906a9077bd5ccf60f4b4226f05a22d1728ab9a21a879c + md5: 64c98a12c4e23eb238bf66bbecafdf3c + sha256: 430051d80765207a7d782b2b188230ba1489d35c6e75fd9903f76cb9fda4af16 category: main optional: false - name: pytest-dependency @@ -4681,7 +4681,7 @@ package: category: main optional: false - name: python-librt - version: 0.11.0 + version: 0.12.0 manager: conda platform: linux-64 dependencies: @@ -4689,10 +4689,10 @@ package: libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.11.0-py310h139afa4_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.12.0-py310h139afa4_0.conda hash: - md5: 0778ec07b274273cf70621d329b7e0ee - sha256: db55465d8dce49b976248ea1c9187b3d110cad2f8dd7c8401b2ffd99d1aee2b7 + md5: 69cc19928dc2434e2e47c7332637337e + sha256: b32091f5d39e6e30bc06fd0fa379d51213e662caf15ab9b1cb513db3085c8f7b category: main optional: false - name: python-tzdata @@ -4998,28 +4998,28 @@ package: category: main optional: false - name: s3transfer - version: 0.18.0 + version: 0.19.0 manager: conda platform: linux-64 dependencies: botocore: '>=1.37.4,<2.0a.0' python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.18.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.19.0-pyhd8ed1ab_0.conda hash: - md5: ebdb9fd5092c50620a226c7e23daab3b - sha256: 0f8106314ab25781cd58fdc90f8145c115eed00d9d6af4588238399bdffcc8e5 + md5: a359066b94e013283b7e11559fbb19fc + sha256: b71e634a77ef831ac41f9d7c956dd01867a838ddd544fa5d9020a612f633f06b category: main optional: false - name: sbt - version: 1.12.12 + version: 2.0.1 manager: conda platform: linux-64 dependencies: openjdk: '>=8' - url: https://conda.anaconda.org/conda-forge/noarch/sbt-1.12.12-hc364b38_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/sbt-2.0.1-hc364b38_0.conda hash: - md5: 3908031d7acff73774def3baf7fdb7f0 - sha256: 5a677c49db1305b750462a9e613a412534cbc4664c7613c3670ee73b55180da6 + md5: da519da81bd35966fb87f72964de4187 + sha256: 89181ac4559c61120f83038c18bebe83520ea40aec9182a39ae9d482a5986ac4 category: main optional: false - name: screen @@ -5459,15 +5459,15 @@ package: category: main optional: false - name: typing-extensions - version: 4.15.0 + version: 4.16.0 manager: conda platform: linux-64 dependencies: - typing_extensions: ==4.15.0 - url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + typing_extensions: ==4.16.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda hash: - md5: edd329d7d3a4ab45dcf905899a7a6115 - sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c + md5: c680b5747e8c4c8f23dca0bb7042a8fc + sha256: b141933ece3518f6d7b75dfb59451e2f26b405a44c18e2518a83e9a02e09315c category: main optional: false - name: typing-inspection @@ -5484,15 +5484,15 @@ package: category: main optional: false - name: typing_extensions - version: 4.15.0 + version: 4.16.0 manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda hash: - md5: 0caa1af407ecff61170c9437a808404d - sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 + md5: c70ad746c22219b9700931707482992c + sha256: 2d888f90af0686044882c74193ec80a90ec1943145d94a7b1b048958acda1848 category: main optional: false - name: tzdata @@ -5607,7 +5607,7 @@ package: category: main optional: false - name: virtualenv - version: 21.5.0 + version: 21.5.1 manager: conda platform: linux-64 dependencies: @@ -5618,10 +5618,10 @@ package: platformdirs: '>=3.9.1,<5' python-discovery: '>=1.4.2' typing_extensions: '>=4.13.2' - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.5.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.5.1-pyhcf101f3_0.conda hash: - md5: ae6c3161f863cba63c9dbd18efd819ad - sha256: 7d2656432734025a1337aa0fc35b047743eafea8b54c18dda8bda0dea4c0c28d + md5: e449fb99b714be1e13fa5564dacd1af5 + sha256: 0a7b0a2ada7ad719f9d4f8874eb10911e1fcfdecefc86456105eb806ebd60ac4 category: main optional: false - name: watchfiles @@ -5751,7 +5751,7 @@ package: category: main optional: false - name: wrapt - version: 2.2.1 + version: 2.2.2 manager: conda platform: linux-64 dependencies: @@ -5759,10 +5759,10 @@ package: libgcc: '>=14' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-2.2.1-py310h7c4b9e2_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-2.2.2-py310h7c4b9e2_0.conda hash: - md5: 551230d62e51575f9c2b2c387dfc8f1d - sha256: 50f580af14d83030eceb4a5d439b9c33b05946692693df2fdcdb9bb9fda9ee90 + md5: 5eae4e242426bdd5da1daf6c6776eef4 + sha256: ba0ae448c1f531fb6f6dfeec0ec06c751b3ea21802168673c0cd02c5b6fd9aab category: main optional: false - name: xmltodict From 0fc992abed651715e8e5fb4bb9d78690edbd91d5 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 3 Jul 2026 18:33:28 -0700 Subject: [PATCH 02/69] fix buildsetup conda fs space --- .github/workflows/build-setup-rhel.yml | 21 +++++++++++++++++---- .github/workflows/build-setup-ubuntu.yml | 23 +++++++++++++---------- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index e18b922eb2..d3ddf48bf2 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -14,6 +14,9 @@ jobs: build-setup-rhel: name: build-setup rhel runs-on: ubuntu-latest + env: + DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker + RHEL_CONDA_INSTALL_DIR: /workspace/.ci/rhel-conda steps: - name: Maximize build space uses: jimfangx/maximize-build-space@master @@ -28,11 +31,20 @@ jobs: - name: Check out pull request uses: actions/checkout@v4 + - name: Move Docker storage to workspace + run: | + sudo systemctl stop docker + sudo mkdir -p "${DOCKER_DATA_ROOT}" + printf '{ "data-root": "%s" }\n' "${DOCKER_DATA_ROOT}" | sudo tee /etc/docker/daemon.json + sudo systemctl start docker + docker info --format 'Docker root: {{ .DockerRootDir }}' + - name: Run build setup in RHEL 9 run: | docker run --rm \ --volume "${GITHUB_WORKSPACE}:/workspace" \ --workdir /workspace \ + --env "CONDA_INSTALL_DIR=${RHEL_CONDA_INSTALL_DIR}" \ registry.access.redhat.com/ubi9/ubi:latest \ bash -leo pipefail -c ' dnf install -y \ @@ -52,11 +64,12 @@ jobs: git config --global --add safe.directory /workspace + mkdir -p "$(dirname "${CONDA_INSTALL_DIR}")" wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" - bash Miniforge3.sh -b -p "${HOME}/conda" - source "${HOME}/conda/etc/profile.d/conda.sh" - if [ -f "${HOME}/conda/etc/profile.d/mamba.sh" ]; then - source "${HOME}/conda/etc/profile.d/mamba.sh" + bash Miniforge3.sh -b -p "${CONDA_INSTALL_DIR}" + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" + if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then + source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" fi conda activate diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml index 44fc90e1a9..a891416027 100644 --- a/.github/workflows/build-setup-ubuntu.yml +++ b/.github/workflows/build-setup-ubuntu.yml @@ -14,6 +14,8 @@ jobs: build-setup-ubuntu: name: build-setup ubuntu runs-on: ubuntu-24.04 + env: + CONDA_INSTALL_DIR: ${{ github.workspace }}/.ci/conda steps: - name: Maximize build space uses: jimfangx/maximize-build-space@master @@ -25,24 +27,25 @@ jobs: remove-haskell: 'true' remove-codeql: 'true' + - name: Check out pull request + uses: actions/checkout@v4 + - name: Install conda run: | + mkdir -p "$(dirname "${CONDA_INSTALL_DIR}")" wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" - bash Miniforge3.sh -b -p "${HOME}/conda" - source "${HOME}/conda/etc/profile.d/conda.sh" - if [ -f "${HOME}/conda/etc/profile.d/mamba.sh" ]; then - source "${HOME}/conda/etc/profile.d/mamba.sh" + bash Miniforge3.sh -b -p "${CONDA_INSTALL_DIR}" + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" + if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then + source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" fi conda activate - - name: Check out pull request - uses: actions/checkout@v4 - - name: Run build setup run: | - source "${HOME}/conda/etc/profile.d/conda.sh" - if [ -f "${HOME}/conda/etc/profile.d/mamba.sh" ]; then - source "${HOME}/conda/etc/profile.d/mamba.sh" + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" + if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then + source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" fi conda activate ./build-setup.sh riscv-tools From 8739438b6d452a85647f424df357e0ddb558bc6c Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 3 Jul 2026 20:08:55 -0700 Subject: [PATCH 03/69] fix --- .../workflows/build-and-publish-container.yml | 71 ++++++++++++++ .github/workflows/build-setup-rhel.yml | 5 +- .github/workflows/build-setup-ubuntu.yml | 3 + .github/workflows/pr-ci.yml | 11 +++ dockerfiles/Dockerfile | 92 +++++++++++-------- dockerfiles/README.md | 3 +- sims/firesim | 2 +- 7 files changed, 148 insertions(+), 39 deletions(-) create mode 100644 .github/workflows/build-and-publish-container.yml diff --git a/.github/workflows/build-and-publish-container.yml b/.github/workflows/build-and-publish-container.yml new file mode 100644 index 0000000000..7621275e79 --- /dev/null +++ b/.github/workflows/build-and-publish-container.yml @@ -0,0 +1,71 @@ +name: build and publish container + +on: + workflow_call: + inputs: + chipyard-ref: + required: true + type: string + +permissions: + contents: read + packages: write + +defaults: + run: + shell: bash -leo pipefail {0} + +jobs: + build-and-publish-container: + name: build and publish container + runs-on: ubuntu-24.04 + env: + DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker + FORCE_NON_EC2: 1 + steps: + - name: Maximize build space + uses: jimfangx/maximize-build-space@master + with: + root-reserve-mb: 512 + swap-size-mb: 1024 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + + - name: Check out pull request + uses: actions/checkout@v4 + + - name: Move Docker storage to workspace + run: | + sudo systemctl stop docker + sudo mkdir -p "${DOCKER_DATA_ROOT}" + printf '{ "data-root": "%s" }\n' "${DOCKER_DATA_ROOT}" | sudo tee /etc/docker/daemon.json + sudo systemctl start docker + docker info --format 'Docker root: {{ .DockerRootDir }}' + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and publish container + env: + CHIPYARD_REF: ${{ inputs.chipyard-ref }} + run: | + image_name="ghcr.io/${GITHUB_REPOSITORY,,}" + short_sha="${GITHUB_SHA::12}" + unix_timestamp="$(date +%s)" + + docker build \ + --file dockerfiles/Dockerfile \ + --target base-with-tools \ + --build-arg "CHIPYARD_REPO=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" \ + --build-arg "CHIPYARD_REF=${CHIPYARD_REF}" \ + --label "org.chipyard.ci.unix-timestamp=${unix_timestamp}" \ + --tag "${image_name}:pr-${CHIPYARD_REF}-${short_sha}-${unix_timestamp}" \ + . + + docker push "${image_name}:pr-${CHIPYARD_REF}-${short_sha}-${unix_timestamp}" diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index d3ddf48bf2..a8979f4fb5 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -14,8 +14,10 @@ jobs: build-setup-rhel: name: build-setup rhel runs-on: ubuntu-latest + timeout-minutes: 120 env: DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker + FORCE_NON_EC2: 1 RHEL_CONDA_INSTALL_DIR: /workspace/.ci/rhel-conda steps: - name: Maximize build space @@ -45,6 +47,7 @@ jobs: --volume "${GITHUB_WORKSPACE}:/workspace" \ --workdir /workspace \ --env "CONDA_INSTALL_DIR=${RHEL_CONDA_INSTALL_DIR}" \ + --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ registry.access.redhat.com/ubi9/ubi:latest \ bash -leo pipefail -c ' dnf install -y \ @@ -62,7 +65,7 @@ jobs: which \ xz - git config --global --add safe.directory /workspace + git config --global --add safe.directory "*" mkdir -p "$(dirname "${CONDA_INSTALL_DIR}")" wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml index a891416027..e94a75e377 100644 --- a/.github/workflows/build-setup-ubuntu.yml +++ b/.github/workflows/build-setup-ubuntu.yml @@ -14,8 +14,10 @@ jobs: build-setup-ubuntu: name: build-setup ubuntu runs-on: ubuntu-24.04 + timeout-minutes: 120 env: CONDA_INSTALL_DIR: ${{ github.workspace }}/.ci/conda + FORCE_NON_EC2: 1 steps: - name: Maximize build space uses: jimfangx/maximize-build-space@master @@ -43,6 +45,7 @@ jobs: - name: Run build setup run: | + git config --global --add safe.directory "*" source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index e36a7ca276..f24dbd8736 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -13,6 +13,7 @@ on: permissions: actions: write contents: read + packages: write pull-requests: read concurrency: @@ -41,3 +42,13 @@ jobs: needs: check-ci-disable if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} uses: ./.github/workflows/build-setup-rhel.yml + + build-and-publish-container: + name: build and publish container + needs: + - build-setup-ubuntu + - build-setup-rhel + uses: ./.github/workflows/build-and-publish-container.yml + with: + chipyard-ref: ${{ format('{0}', github.event.pull_request.number) }} + secrets: inherit diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index a9a9af3450..67381216bc 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -2,60 +2,80 @@ # BUILD BASE FOR CI -FROM ubuntu:20.04 as base -ARG CHIPYARD_HASH +FROM ubuntu:24.04 AS base +ARG CHIPYARD_REPO=https://github.com/ucb-bar/chipyard.git +ARG CHIPYARD_REF=main MAINTAINER https://groups.google.com/forum/#!forum/chipyard -SHELL ["/bin/bash", "-c"] +SHELL ["/bin/bash", "-leo", "pipefail", "-c"] -# Install dependencies for ubuntu-req.sh +ENV CONDA_INSTALL_DIR=/opt/conda +ENV FORCE_NON_EC2=1 +ENV PATH="${CONDA_INSTALL_DIR}/bin:${PATH}" + +# Install host dependencies needed to clone Chipyard and bootstrap conda. RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + bc \ + bzip2 \ + ca-certificates \ curl \ - wget \ + findutils \ git \ + gzip \ + make \ + patch \ + procps \ + python3 \ sudo \ - ca-certificates \ - keyboard-configuration \ - console-setup \ - bc \ - unzip + tar \ + unzip \ + xz-utils \ + wget && \ + rm -rf /var/lib/apt/lists/* WORKDIR /root -# Install Chipyard and run ubuntu-req.sh to install necessary dependencies -RUN git clone https://github.com/ucb-bar/chipyard.git && \ - cd chipyard && \ - git checkout $CHIPYARD_HASH - -RUN ./chipyard/.github/scripts/install-conda.sh +# Clone Chipyard. CHIPYARD_REF can be a branch, tag, commit SHA, PR number, or refs/pull/... ref. +RUN git clone "${CHIPYARD_REPO}" chipyard && \ + cd chipyard && \ + if [[ "${CHIPYARD_REF}" =~ ^[0-9]+$ ]]; then \ + git fetch origin "pull/${CHIPYARD_REF}/merge" && \ + git checkout --detach FETCH_HEAD; \ + elif [[ "${CHIPYARD_REF}" =~ ^refs/pull/[0-9]+/(head|merge)$ ]]; then \ + git fetch origin "${CHIPYARD_REF}" && \ + git checkout --detach FETCH_HEAD; \ + else \ + git checkout "${CHIPYARD_REF}"; \ + fi && \ + git rev-parse --short HEAD + +# Install Miniforge using the same bootstrap scheme as CI. +RUN wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" && \ + bash Miniforge3.sh -b -p "${CONDA_INSTALL_DIR}" && \ + rm Miniforge3.sh && \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ + if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh"; \ + fi && \ + conda activate # BUILD IMAGE WITH TOOLCHAINS # Use above build as base -FROM base as base-with-tools - -SHELL ["/bin/bash", "-cl"] - -# Initialize repo -RUN cd chipyard && \ - export MAKEFLAGS=-"j $(nproc)" && \ - conda activate base && \ - ./setup.sh --env-name chipyard --skip-validate - -SHELL ["/opt/conda/bin/conda", "run", "-n", "chipyard", "/bin/bash", "-cl"] +FROM base AS base-with-tools -# Set up FireMarshal. Building and cleaning br-base.json builds the underlying -# buildroot image (which takes a long time) but doesn't keep all the br-base -# stuff around (since that's faster to rebuild). +# Fully initialize Chipyard. RUN cd chipyard && \ - source env.sh && \ - cd software/firemarshal && \ - ./init-submodules.sh && \ - pip3 install -r python-requirements.txt && \ - ./marshal build br-base.json && \ - ./marshal clean br-base.json + git config --global --add safe.directory "*" && \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ + if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh"; \ + fi && \ + conda activate && \ + ./build-setup.sh riscv-tools && \ + grep -F "Setup complete!" build-setup.log # Run script to set environment variables on entry ENTRYPOINT ["chipyard/scripts/entrypoint.sh"] diff --git a/dockerfiles/README.md b/dockerfiles/README.md index 887cda6297..aadf9fdaa1 100644 --- a/dockerfiles/README.md +++ b/dockerfiles/README.md @@ -8,7 +8,8 @@ Build and Deploy the Container ------------------------------ sudo docker build --target base . # to build the image for the CI - sudo docker build --target base --build-arg CHIPYARD_HASH= . # to build the image for the CI from a specific chipyard commit + sudo docker build --target base --build-arg CHIPYARD_REF= . # to build the image for the CI from a specific ref + sudo docker build --target base --build-arg CHIPYARD_REPO= --build-arg CHIPYARD_REF= . # to build from a specific repository/ref sudo docker build --target base-with-tools . # to build the full image sudo docker tag :tag . # to tag the image after the build (ex. 0.0.3) sudo docker login # login into the account to push to diff --git a/sims/firesim b/sims/firesim index da2a1cbceb..d77c1908dd 160000 --- a/sims/firesim +++ b/sims/firesim @@ -1 +1 @@ -Subproject commit da2a1cbcebbb96e21c551ebef513fd95a9d73403 +Subproject commit d77c1908dde30094347dc653e4e8e0a88b6b5be2 From aef0361ffe8a7a9feb1161645502ee1f5476eeee Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 3 Jul 2026 20:23:03 -0700 Subject: [PATCH 04/69] fix: --- .gitmodules | 2 +- sims/firesim | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 05d307b563..2f0160a8fe 100644 --- a/.gitmodules +++ b/.gitmodules @@ -63,7 +63,7 @@ url = https://github.com/ucb-bar/testchipip.git [submodule "sims/firesim"] path = sims/firesim - url = https://github.com/firesim/firesim.git + url = https://github.com/jimfangx/firesim-working.git [submodule "software/baremetal-ide"] path = software/baremetal-ide url = https://github.com/ucb-bar/Baremetal-IDE.git diff --git a/sims/firesim b/sims/firesim index d77c1908dd..047af8fbc3 160000 --- a/sims/firesim +++ b/sims/firesim @@ -1 +1 @@ -Subproject commit d77c1908dde30094347dc653e4e8e0a88b6b5be2 +Subproject commit 047af8fbc34ff04dc69df3ddd19dd4081b611bd2 From 5714beaa9ba75a9aa58148a60704cde9ec27b38e Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 3 Jul 2026 21:05:02 -0700 Subject: [PATCH 05/69] raise jvm mem limit in ci --- .github/workflows/build-setup-rhel.yml | 2 ++ .github/workflows/build-setup-ubuntu.yml | 1 + dockerfiles/Dockerfile | 1 + 3 files changed, 4 insertions(+) diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index a8979f4fb5..a2a722d51f 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -18,6 +18,7 @@ jobs: env: DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker FORCE_NON_EC2: 1 + JVM_OPTS: -Xmx3200m RHEL_CONDA_INSTALL_DIR: /workspace/.ci/rhel-conda steps: - name: Maximize build space @@ -48,6 +49,7 @@ jobs: --workdir /workspace \ --env "CONDA_INSTALL_DIR=${RHEL_CONDA_INSTALL_DIR}" \ --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ + --env "JVM_OPTS=${JVM_OPTS}" \ registry.access.redhat.com/ubi9/ubi:latest \ bash -leo pipefail -c ' dnf install -y \ diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml index e94a75e377..9a48297538 100644 --- a/.github/workflows/build-setup-ubuntu.yml +++ b/.github/workflows/build-setup-ubuntu.yml @@ -18,6 +18,7 @@ jobs: env: CONDA_INSTALL_DIR: ${{ github.workspace }}/.ci/conda FORCE_NON_EC2: 1 + JVM_OPTS: -Xmx3200m steps: - name: Maximize build space uses: jimfangx/maximize-build-space@master diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 67381216bc..19b5f3ebee 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -12,6 +12,7 @@ SHELL ["/bin/bash", "-leo", "pipefail", "-c"] ENV CONDA_INSTALL_DIR=/opt/conda ENV FORCE_NON_EC2=1 +ENV JVM_OPTS=-Xmx3200m ENV PATH="${CONDA_INSTALL_DIR}/bin:${PATH}" # Install host dependencies needed to clone Chipyard and bootstrap conda. From 2b2db596f6c6863804c67b902dceb30a0bf3ed1a Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 3 Jul 2026 22:06:20 -0700 Subject: [PATCH 06/69] add tests --- .github/scripts/run-generator-test.py | 98 ++++++ .../workflows/build-and-publish-container.yml | 19 +- .github/workflows/build-setup-rhel.yml | 2 +- .github/workflows/build-setup-ubuntu.yml | 2 +- .github/workflows/check-ci-disable.yml | 16 +- .github/workflows/config/generator-tests.json | 328 ++++++++++++++++++ .github/workflows/pr-ci.yml | 18 +- .github/workflows/run-generator-tests.yml | 62 ++++ 8 files changed, 524 insertions(+), 21 deletions(-) create mode 100644 .github/scripts/run-generator-test.py create mode 100644 .github/workflows/config/generator-tests.json create mode 100644 .github/workflows/run-generator-tests.yml diff --git a/.github/scripts/run-generator-test.py b/.github/scripts/run-generator-test.py new file mode 100644 index 0000000000..25df476d8e --- /dev/null +++ b/.github/scripts/run-generator-test.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 + +import argparse +import json +import os +import subprocess +import sys + + +def run_shell(command, chipyard_dir, sim_dir, env): + wrapped = ( + f'source "{chipyard_dir}/env.sh"\n' + f'cd "{sim_dir}"\n' + f'{command}' + ) + print("::group::" + command, flush=True) + try: + subprocess.run( + ["bash", "-leo", "pipefail", "-c", wrapped], + check=True, + env=env, + ) + finally: + print("::endgroup::", flush=True) + + +def run_entry(entry, chipyard_dir, sim_dir, env): + if entry.get("custom") is True: + command = entry.get("string") + if not command: + raise ValueError("custom test entry must include a non-empty string") + run_shell(command, chipyard_dir, sim_dir, env) + return + + if entry.get("custom") is not False: + raise ValueError("test entry must set custom to true or false") + + configs = entry.get("config") + binaries = entry.get("binary") + loadmem = entry.get("loadmem") + + if not isinstance(configs, list) or not configs: + raise ValueError("non-custom test entry must include a non-empty config list") + if not isinstance(binaries, list) or not binaries: + raise ValueError("non-custom test entry must include a non-empty binary list") + if loadmem != "1": + raise ValueError("non-custom test entries must set loadmem to string value \"1\"") + + for config in configs: + for binary in binaries: + run_shell( + f"make run-binary CONFIG={config} BINARY={binary} LOADMEM=1", + chipyard_dir, + sim_dir, + env, + ) + + +def main(): + parser = argparse.ArgumentParser(description="Run a JSON-defined Chipyard generator test group.") + parser.add_argument("test_name") + parser.add_argument( + "--tests-json", + default="/root/chipyard/.github/workflows/config/generator-tests.json", + ) + parser.add_argument("--chipyard-dir", default="/root/chipyard") + args = parser.parse_args() + + chipyard_dir = os.path.abspath(args.chipyard_dir) + sim_dir = os.path.join(chipyard_dir, "sims", "verilator") + + with open(args.tests_json, encoding="utf-8") as tests_file: + tests = json.load(tests_file) + + if args.test_name not in tests: + print(f"Unknown test group: {args.test_name}", file=sys.stderr) + return 1 + + env = os.environ.copy() + env.setdefault("FORCE_NON_EC2", "1") + env.setdefault("JVM_OPTS", "-Xmx3200m") + env["LOCAL_CHIPYARD_DIR"] = chipyard_dir + env["LOCAL_SIM_DIR"] = sim_dir + + entries = tests[args.test_name] + if not isinstance(entries, list) or not entries: + print(f"Test group {args.test_name} must be a non-empty list", file=sys.stderr) + return 1 + + for entry in entries: + run_entry(entry, chipyard_dir, sim_dir, env) + + print(f"Generator test complete: {args.test_name}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/.github/workflows/build-and-publish-container.yml b/.github/workflows/build-and-publish-container.yml index 7621275e79..18011be9a7 100644 --- a/.github/workflows/build-and-publish-container.yml +++ b/.github/workflows/build-and-publish-container.yml @@ -3,9 +3,12 @@ name: build and publish container on: workflow_call: inputs: - chipyard-ref: + chipyard_ref: required: true type: string + outputs: + image_ref: + value: ${{ jobs.build-and-publish-container.outputs.image_ref }} permissions: contents: read @@ -19,6 +22,8 @@ jobs: build-and-publish-container: name: build and publish container runs-on: ubuntu-24.04 + outputs: + image_ref: ${{ steps.publish.outputs.image_ref }} env: DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker FORCE_NON_EC2: 1 @@ -27,7 +32,7 @@ jobs: uses: jimfangx/maximize-build-space@master with: root-reserve-mb: 512 - swap-size-mb: 1024 + swap-size-mb: 4096 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' @@ -52,12 +57,13 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Build and publish container + id: publish env: - CHIPYARD_REF: ${{ inputs.chipyard-ref }} + CHIPYARD_REF: ${{ inputs.chipyard_ref }} run: | image_name="ghcr.io/${GITHUB_REPOSITORY,,}" - short_sha="${GITHUB_SHA::12}" unix_timestamp="$(date +%s)" + image_ref="${image_name}:pr-${CHIPYARD_REF}" docker build \ --file dockerfiles/Dockerfile \ @@ -65,7 +71,8 @@ jobs: --build-arg "CHIPYARD_REPO=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" \ --build-arg "CHIPYARD_REF=${CHIPYARD_REF}" \ --label "org.chipyard.ci.unix-timestamp=${unix_timestamp}" \ - --tag "${image_name}:pr-${CHIPYARD_REF}-${short_sha}-${unix_timestamp}" \ + --tag "${image_ref}" \ . - docker push "${image_name}:pr-${CHIPYARD_REF}-${short_sha}-${unix_timestamp}" + docker push "${image_ref}" + echo "image_ref=${image_ref}" >> "${GITHUB_OUTPUT}" diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index a2a722d51f..09b663c0ed 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -25,7 +25,7 @@ jobs: uses: jimfangx/maximize-build-space@master with: root-reserve-mb: 512 - swap-size-mb: 1024 + swap-size-mb: 4096 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml index 9a48297538..ccabf13aa0 100644 --- a/.github/workflows/build-setup-ubuntu.yml +++ b/.github/workflows/build-setup-ubuntu.yml @@ -24,7 +24,7 @@ jobs: uses: jimfangx/maximize-build-space@master with: root-reserve-mb: 512 - swap-size-mb: 1024 + swap-size-mb: 4096 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' diff --git a/.github/workflows/check-ci-disable.yml b/.github/workflows/check-ci-disable.yml index 2fbe7ae14e..6383b51d7b 100644 --- a/.github/workflows/check-ci-disable.yml +++ b/.github/workflows/check-ci-disable.yml @@ -3,16 +3,16 @@ name: check-ci-disable on: workflow_call: inputs: - pr-number: + pr_number: required: true type: number - pr-head-ref: + pr_head_ref: required: true type: string - pr-head-repo-id: + pr_head_repo_id: required: true type: number - pr-labels: + pr_labels: required: true type: string outputs: @@ -38,7 +38,7 @@ jobs: - name: Check ci:disable label id: ci-label env: - PR_LABELS: ${{ inputs.pr-labels }} + PR_LABELS: ${{ inputs.pr_labels }} run: | if jq -e 'index("ci:disable") != null' <<< "${PR_LABELS}" > /dev/null; then echo "ci_disabled=true" >> "${GITHUB_OUTPUT}" @@ -52,9 +52,9 @@ jobs: if: ${{ steps.ci-label.outputs.ci_disabled == 'true' }} uses: actions/github-script@v7 env: - PR_NUMBER: ${{ inputs.pr-number }} - PR_HEAD_REF: ${{ inputs.pr-head-ref }} - PR_HEAD_REPO_ID: ${{ inputs.pr-head-repo-id }} + PR_NUMBER: ${{ inputs.pr_number }} + PR_HEAD_REF: ${{ inputs.pr_head_ref }} + PR_HEAD_REPO_ID: ${{ inputs.pr_head_repo_id }} with: script: | const { owner, repo } = context.repo; diff --git a/.github/workflows/config/generator-tests.json b/.github/workflows/config/generator-tests.json new file mode 100644 index 0000000000..d916773e22 --- /dev/null +++ b/.github/workflows/config/generator-tests.json @@ -0,0 +1,328 @@ +{ + "chipyard-rocket": [ + { + "custom": true, + "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=QuadChannelRocketConfig LOADMEM=1" + }, + { + "custom": true, + "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=QuadChannelRocketConfig LOADMEM=1" + }, + { + "custom": false, + "config": ["QuadChannelRocketConfig"], + "binary": ["$LOCAL_CHIPYARD_DIR/tests/hello.riscv"], + "loadmem": "1" + }, + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=QuadChannelRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv" + } + ], + "chipyard-dmirocket": [ + { + "custom": false, + "config": ["dmiRocketConfig"], + "binary": ["$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv"], + "loadmem": "1" + } + ], + "chipyard-boomv3": [ + { + "custom": true, + "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=MediumBoomV3CosimConfig LOADMEM=1" + }, + { + "custom": true, + "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=MediumBoomV3CosimConfig LOADMEM=1" + } + ], + "chipyard-boomv4": [ + { + "custom": true, + "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=MediumBoomV4CosimConfig LOADMEM=1" + }, + { + "custom": true, + "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=MediumBoomV4CosimConfig LOADMEM=1" + } + ], + "chipyard-shuttle": [ + { + "custom": true, + "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=ShuttleConfig LOADMEM=1" + }, + { + "custom": true, + "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=ShuttleConfig LOADMEM=1" + } + ], + "chipyard-shuttle3": [ + { + "custom": true, + "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=Shuttle3WideConfig LOADMEM=1" + }, + { + "custom": true, + "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=Shuttle3WideConfig LOADMEM=1" + } + ], + "chipyard-spike": [ + { + "custom": true, + "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=SpikeZicntrConfig EXTRA_SIM_FLAGS='+spike-ipc=10' LOADMEM=1" + }, + { + "custom": true, + "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=SpikeZicntrConfig EXTRA_SIM_FLAGS='+spike-ipc=10' LOADMEM=1" + } + ], + "chipyard-dmiboomv3": [ + { + "custom": true, + "string": "$LOCAL_CHIPYARD_DIR/scripts/generate-ckpt.sh -b $RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv -i 10000 && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=dmiCheckpointingMediumBoomV3Config LOADARCH=$LOCAL_SIM_DIR/dhrystone.riscv.0x80000000.unused.10000.defaultspikedts.loadarch" + } + ], + "chipyard-dmiboomv4": [ + { + "custom": true, + "string": "$LOCAL_CHIPYARD_DIR/scripts/generate-ckpt.sh -b $RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv -i 10000 && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=dmiCheckpointingMediumBoomV4Config LOADARCH=$LOCAL_SIM_DIR/dhrystone.riscv.0x80000000.unused.10000.defaultspikedts.loadarch" + } + ], + "chipyard-hetero": [ + { + "custom": true, + "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=LargeBoomAndRocketConfig LOADMEM=1" + } + ], + "chipyard-prefetchers": [ + { + "custom": false, + "config": ["PrefetchingRocketConfig"], + "binary": ["$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv"], + "loadmem": "1" + } + ], + "chipyard-gemmini": [ + { + "custom": true, + "string": "GEMMINI_SOFTWARE_DIR=$LOCAL_CHIPYARD_DIR/generators/gemmini/software/gemmini-rocc-tests && rm -rf $GEMMINI_SOFTWARE_DIR/riscv-tests && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal LOADMEM=1 && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal LOADMEM=1 && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal LOADMEM=1" + } + ], + "chipyard-mempress": [ + { + "custom": true, + "string": "make -C $LOCAL_CHIPYARD_DIR/generators/mempress/software/src && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=MempressRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/generators/mempress/software/src/mempress-rocc.riscv LOADMEM=1" + } + ], + "chipyard-compressacc": [ + { + "custom": true, + "string": "cd $LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress && ./build-hcb-single-file.sh && cd $LOCAL_SIM_DIR && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=ZstdCompressorRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress/009987_cl0_ws12.riscv LOADMEM=1" + } + ], + "chipyard-manymmioaccels": [ + { + "custom": false, + "config": ["ManyMMIOAcceleratorRocketConfig"], + "binary": [ + "$LOCAL_CHIPYARD_DIR/tests/streaming-passthrough.riscv", + "$LOCAL_CHIPYARD_DIR/tests/streaming-fir.riscv", + "$LOCAL_CHIPYARD_DIR/tests/fft.riscv" + ], + "loadmem": "1" + } + ], + "chipyard-nvdla": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=SmallNVDLARocketConfig verilog BINARY=$LOCAL_CHIPYARD_DIR/tests/nvdla.riscv LOADMEM=1" + } + ], + "chipyard-manyperipherals": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=ManyPeripheralsRocketConfig EXTRA_SIM_FLAGS='+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img' BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashread.riscv" + } + ], + "chipyard-spiflashwrite": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=SmallSPIFlashRocketConfig EXTRA_SIM_FLAGS='+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img' BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashwrite.riscv LOADMEM=1 && [[ \"$(xxd $LOCAL_CHIPYARD_DIR/tests/spiflash.img | grep '1337 00ff aa55 face' | wc -l)\" == \"6\" ]]" + } + ], + "chipyard-tethered": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=VerilatorCITetheredChipLikeRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv LOADMEM=1 EXTRA_SIM_FLAGS='+cflush_addr=0x2010200'" + } + ], + "chipyard-symmetric": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=MultiSimMultiLinkSymmetricChipletRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/symmetric.riscv LOADMEM=1 EXTRA_SIM_FLAGS='+offchip_sel=0' && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=MultiSimMultiLinkSymmetricChipletRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/symmetric.riscv LOADMEM=1 EXTRA_SIM_FLAGS='+offchip_sel=1'" + } + ], + "chipyard-llcchiplet": [ + { + "custom": false, + "config": ["MultiSimLLCChipletRocketConfig"], + "binary": ["$LOCAL_CHIPYARD_DIR/tests/hello.riscv"], + "loadmem": "1" + } + ], + "chipyard-rerocc": [ + { + "custom": true, + "string": "make -C $LOCAL_CHIPYARD_DIR/generators/rerocc/software && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=ReRoCCTestConfig BINARY=$LOCAL_CHIPYARD_DIR/generators/rerocc/software/test.riscv LOADMEM=1" + } + ], + "chipyard-rocketvector": [ + { + "custom": false, + "config": ["MINV128D64RocketConfig"], + "binary": [ + "$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-sgemm.riscv", + "$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-strcmp.riscv", + "$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-daxpy.riscv", + "$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-memcpy.riscv" + ], + "loadmem": "1" + } + ], + "chipyard-shuttlevector": [ + { + "custom": false, + "config": ["GENV256D128ShuttleConfig"], + "binary": [ + "$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-sgemm.riscv", + "$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-strcmp.riscv", + "$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-daxpy.riscv", + "$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/vec-memcpy.riscv" + ], + "loadmem": "1" + } + ], + "chipyard-shuttleara": [ + { + "custom": true, + "string": "true" + } + ], + "tracegen": [ + { + "custom": true, + "string": "make tracegen BREAK_SIM_PREREQ=1 CONFIG=NonBlockingTraceGenL2Config" + } + ], + "tracegen-boomv3": [ + { + "custom": true, + "string": "make tracegen BREAK_SIM_PREREQ=1 CONFIG=BoomV3TraceGenConfig" + } + ], + "tracegen-boomv4": [ + { + "custom": true, + "string": "make tracegen BREAK_SIM_PREREQ=1 CONFIG=BoomV4TraceGenConfig" + } + ], + "chipyard-cva6": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" + } + ], + "chipyard-ibex": [ + { + "custom": true, + "string": "true" + } + ], + "chipyard-vexiiriscv": [ + { + "custom": true, + "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=VexiiRiscvConfig LOADMEM=1" + }, + { + "custom": true, + "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=VexiiRiscvConfig LOADMEM=1" + } + ], + "chipyard-sodor": [ + { + "custom": true, + "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=Sodor5StageConfig" + } + ], + "chipyard-constellation": [ + { + "custom": false, + "config": ["SharedNoCConfig"], + "binary": ["$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv"], + "loadmem": "1" + } + ], + "chipyard-tacit-rocket": [ + { + "custom": false, + "config": ["TacitRocketConfig"], + "binary": ["$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv"], + "loadmem": "1" + } + ], + "chipyard-zephyr": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 BINARY=$LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr/build/zephyr/zephyr.elf LOADMEM=1" + } + ], + "chipyard-radiance": [ + { + "custom": true, + "string": "true" + } + ], + "icenet": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=icenet BINARY=none" + } + ], + "testchipip": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=testchipip BINARY=none" + } + ], + "constellation": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=constellation BINARY=none" + } + ], + "rocketchip-amba": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=rocketchip CONFIG=AMBAUnitTestConfig BINARY=none" + } + ], + "rocketchip-tlsimple": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=rocketchip CONFIG=TLSimpleUnitTestConfig BINARY=none" + } + ], + "rocketchip-tlwidth": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=rocketchip CONFIG=TLWidthUnitTestConfig BINARY=none" + } + ], + "rocketchip-tlxbar": [ + { + "custom": true, + "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=rocketchip CONFIG=TLXbarUnitTestConfig BINARY=none" + } + ] +} diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index f24dbd8736..b615e001c7 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -26,10 +26,10 @@ jobs: if: ${{ github.event.pull_request.user.login != 'dependabot[bot]' }} uses: ./.github/workflows/check-ci-disable.yml with: - pr-number: ${{ github.event.pull_request.number }} - pr-head-ref: ${{ github.event.pull_request.head.ref }} - pr-head-repo-id: ${{ github.event.pull_request.head.repo.id }} - pr-labels: ${{ toJson(github.event.pull_request.labels.*.name) }} + pr_number: ${{ github.event.pull_request.number }} + pr_head_ref: ${{ github.event.pull_request.head.ref }} + pr_head_repo_id: ${{ github.event.pull_request.head.repo.id }} + pr_labels: ${{ toJson(github.event.pull_request.labels.*.name) }} build-setup-ubuntu: name: build-setup ubuntu @@ -50,5 +50,13 @@ jobs: - build-setup-rhel uses: ./.github/workflows/build-and-publish-container.yml with: - chipyard-ref: ${{ format('{0}', github.event.pull_request.number) }} + chipyard_ref: ${{ format('{0}', github.event.pull_request.number) }} + secrets: inherit + + run-generator-tests: + name: run generator tests + needs: build-and-publish-container + uses: ./.github/workflows/run-generator-tests.yml + with: + container_image: ${{ needs.build-and-publish-container.outputs.image_ref }} secrets: inherit diff --git a/.github/workflows/run-generator-tests.yml b/.github/workflows/run-generator-tests.yml new file mode 100644 index 0000000000..55fb3f342e --- /dev/null +++ b/.github/workflows/run-generator-tests.yml @@ -0,0 +1,62 @@ +name: run generator tests + +on: + workflow_call: + inputs: + container_image: + required: true + type: string + +permissions: + contents: read + packages: read + +defaults: + run: + shell: bash -leo pipefail {0} + +jobs: + test-matrix: + name: test matrix + runs-on: ubuntu-latest + outputs: + test_names: ${{ steps.tests.outputs.test_names }} + steps: + - name: Check out pull request + uses: actions/checkout@v4 + + - name: Read generator test names + id: tests + run: | + test_names="$(python3 -c 'import json; print(json.dumps(sorted(json.load(open(".github/workflows/config/generator-tests.json")).keys())))')" + echo "test_names=${test_names}" >> "${GITHUB_OUTPUT}" + + run-generator-test: + name: ${{ matrix.test_name }} + needs: test-matrix + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + test_name: ${{ fromJson(needs.test-matrix.outputs.test_names) }} + container: + image: ${{ inputs.container_image }} + credentials: + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + env: + FORCE_NON_EC2: 1 + JVM_OPTS: -Xmx3200m + steps: + - name: Compile tests + run: | + cd /root/chipyard + source env.sh + cmake -S tests -B tests/build -D CMAKE_BUILD_TYPE=Debug + cmake --build tests/build --target clean + cmake --build tests/build --target all + + - name: Run generator test + run: | + cd /root/chipyard + python3 .github/scripts/run-generator-test.py "${{ matrix.test_name }}" From 70b36e11da2b1e739a590cc6942d4dd4ac0b7293 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 3 Jul 2026 23:16:31 -0700 Subject: [PATCH 07/69] prevent oom --- .github/workflows/build-and-publish-container.yml | 4 ++-- .github/workflows/build-setup-rhel.yml | 4 ++-- .github/workflows/build-setup-ubuntu.yml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-and-publish-container.yml b/.github/workflows/build-and-publish-container.yml index 18011be9a7..25faf14f9b 100644 --- a/.github/workflows/build-and-publish-container.yml +++ b/.github/workflows/build-and-publish-container.yml @@ -31,8 +31,8 @@ jobs: - name: Maximize build space uses: jimfangx/maximize-build-space@master with: - root-reserve-mb: 512 - swap-size-mb: 4096 + root-reserve-mb: 2048 + swap-size-mb: 10240 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 09b663c0ed..93a85fd791 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -24,8 +24,8 @@ jobs: - name: Maximize build space uses: jimfangx/maximize-build-space@master with: - root-reserve-mb: 512 - swap-size-mb: 4096 + root-reserve-mb: 2048 + swap-size-mb: 10240 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml index ccabf13aa0..1467598d3a 100644 --- a/.github/workflows/build-setup-ubuntu.yml +++ b/.github/workflows/build-setup-ubuntu.yml @@ -23,8 +23,8 @@ jobs: - name: Maximize build space uses: jimfangx/maximize-build-space@master with: - root-reserve-mb: 512 - swap-size-mb: 4096 + root-reserve-mb: 2048 + swap-size-mb: 10240 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' From de2ab2328ca5f93f38d559310f46ca78171090ec Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 11:30:21 -0700 Subject: [PATCH 08/69] fixes --- .../workflows/build-and-publish-container.yml | 27 +++++++------------ .github/workflows/build-setup-rhel.yml | 2 +- .github/workflows/build-setup-ubuntu.yml | 2 +- .github/workflows/pr-ci.yml | 17 +++--------- .github/workflows/run-generator-tests.yml | 25 ++++++++++++++--- 5 files changed, 36 insertions(+), 37 deletions(-) diff --git a/.github/workflows/build-and-publish-container.yml b/.github/workflows/build-and-publish-container.yml index 25faf14f9b..43167c0f10 100644 --- a/.github/workflows/build-and-publish-container.yml +++ b/.github/workflows/build-and-publish-container.yml @@ -1,14 +1,9 @@ name: build and publish container on: - workflow_call: - inputs: - chipyard_ref: - required: true - type: string - outputs: - image_ref: - value: ${{ jobs.build-and-publish-container.outputs.image_ref }} + schedule: + - cron: '0 8 * * *' + workflow_dispatch: permissions: contents: read @@ -22,8 +17,6 @@ jobs: build-and-publish-container: name: build and publish container runs-on: ubuntu-24.04 - outputs: - image_ref: ${{ steps.publish.outputs.image_ref }} env: DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker FORCE_NON_EC2: 1 @@ -31,15 +24,17 @@ jobs: - name: Maximize build space uses: jimfangx/maximize-build-space@master with: - root-reserve-mb: 2048 + root-reserve-mb: 4096 swap-size-mb: 10240 remove-dotnet: 'true' remove-android: 'true' remove-haskell: 'true' remove-codeql: 'true' - - name: Check out pull request + - name: Check out main uses: actions/checkout@v4 + with: + ref: main - name: Move Docker storage to workspace run: | @@ -57,22 +52,18 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Build and publish container - id: publish - env: - CHIPYARD_REF: ${{ inputs.chipyard_ref }} run: | image_name="ghcr.io/${GITHUB_REPOSITORY,,}" unix_timestamp="$(date +%s)" - image_ref="${image_name}:pr-${CHIPYARD_REF}" + image_ref="${image_name}:main" docker build \ --file dockerfiles/Dockerfile \ --target base-with-tools \ --build-arg "CHIPYARD_REPO=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" \ - --build-arg "CHIPYARD_REF=${CHIPYARD_REF}" \ + --build-arg "CHIPYARD_REF=main" \ --label "org.chipyard.ci.unix-timestamp=${unix_timestamp}" \ --tag "${image_ref}" \ . docker push "${image_ref}" - echo "image_ref=${image_ref}" >> "${GITHUB_OUTPUT}" diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 93a85fd791..59daf123ef 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -14,7 +14,7 @@ jobs: build-setup-rhel: name: build-setup rhel runs-on: ubuntu-latest - timeout-minutes: 120 + timeout-minutes: 180 env: DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker FORCE_NON_EC2: 1 diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml index 1467598d3a..027dfa8640 100644 --- a/.github/workflows/build-setup-ubuntu.yml +++ b/.github/workflows/build-setup-ubuntu.yml @@ -14,7 +14,7 @@ jobs: build-setup-ubuntu: name: build-setup ubuntu runs-on: ubuntu-24.04 - timeout-minutes: 120 + timeout-minutes: 180 env: CONDA_INSTALL_DIR: ${{ github.workspace }}/.ci/conda FORCE_NON_EC2: 1 diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index b615e001c7..8ac2065164 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -13,7 +13,7 @@ on: permissions: actions: write contents: read - packages: write + packages: read pull-requests: read concurrency: @@ -43,20 +43,11 @@ jobs: if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} uses: ./.github/workflows/build-setup-rhel.yml - build-and-publish-container: - name: build and publish container - needs: - - build-setup-ubuntu - - build-setup-rhel - uses: ./.github/workflows/build-and-publish-container.yml - with: - chipyard_ref: ${{ format('{0}', github.event.pull_request.number) }} - secrets: inherit - run-generator-tests: name: run generator tests - needs: build-and-publish-container + needs: check-ci-disable + if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} uses: ./.github/workflows/run-generator-tests.yml with: - container_image: ${{ needs.build-and-publish-container.outputs.image_ref }} + pr_number: ${{ github.event.pull_request.number }} secrets: inherit diff --git a/.github/workflows/run-generator-tests.yml b/.github/workflows/run-generator-tests.yml index 55fb3f342e..5e08890bab 100644 --- a/.github/workflows/run-generator-tests.yml +++ b/.github/workflows/run-generator-tests.yml @@ -3,9 +3,9 @@ name: run generator tests on: workflow_call: inputs: - container_image: + pr_number: required: true - type: string + type: number permissions: contents: read @@ -22,8 +22,10 @@ jobs: outputs: test_names: ${{ steps.tests.outputs.test_names }} steps: - - name: Check out pull request + - name: Check out pull request merge ref uses: actions/checkout@v4 + with: + ref: refs/pull/${{ inputs.pr_number }}/merge - name: Read generator test names id: tests @@ -40,7 +42,7 @@ jobs: matrix: test_name: ${{ fromJson(needs.test-matrix.outputs.test_names) }} container: - image: ${{ inputs.container_image }} + image: ghcr.io/${{ github.repository }}:main credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} @@ -48,6 +50,21 @@ jobs: FORCE_NON_EC2: 1 JVM_OPTS: -Xmx3200m steps: + - name: Check out pull request merge ref inside container + env: + PR_NUMBER: ${{ inputs.pr_number }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + cd /root/chipyard + git config --global --add safe.directory "*" + git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" + git -c "http.${GITHUB_SERVER_URL}/.extraheader=AUTHORIZATION: bearer ${GITHUB_TOKEN}" \ + fetch --no-tags origin "pull/${PR_NUMBER}/merge" + git checkout --detach FETCH_HEAD + git submodule sync --recursive + git submodule update --init --recursive + git rev-parse --short HEAD + - name: Compile tests run: | cd /root/chipyard From db7ebb458d93c390db6f2d5f6a8ae74965830d46 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 12:08:41 -0700 Subject: [PATCH 09/69] fixes --- dockerfiles/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 19b5f3ebee..7d6efe77a8 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -25,6 +25,7 @@ RUN apt-get update && \ findutils \ git \ gzip \ + kmod \ make \ patch \ procps \ From 2fb54e9fd3d89d1c8153d75007e57ebb4ba7505d Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 12:47:57 -0700 Subject: [PATCH 10/69] docker fixes --- .../workflows/build-and-publish-container.yml | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-publish-container.yml b/.github/workflows/build-and-publish-container.yml index 43167c0f10..f548b0badf 100644 --- a/.github/workflows/build-and-publish-container.yml +++ b/.github/workflows/build-and-publish-container.yml @@ -56,14 +56,43 @@ jobs: image_name="ghcr.io/${GITHUB_REPOSITORY,,}" unix_timestamp="$(date +%s)" image_ref="${image_name}:main" + base_image="${image_name}:main-base-${unix_timestamp}" + container_name="chipyard-main-setup-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" + trap 'docker rm -f "${container_name}" > /dev/null 2>&1 || true' EXIT docker build \ --file dockerfiles/Dockerfile \ - --target base-with-tools \ + --target base \ --build-arg "CHIPYARD_REPO=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" \ --build-arg "CHIPYARD_REF=main" \ --label "org.chipyard.ci.unix-timestamp=${unix_timestamp}" \ - --tag "${image_ref}" \ + --tag "${base_image}" \ . + docker rm -f "${container_name}" > /dev/null 2>&1 || true + docker run \ + --name "${container_name}" \ + --privileged \ + --env FORCE_NON_EC2="${FORCE_NON_EC2}" \ + --env JVM_OPTS="-Xmx3200m" \ + "${base_image}" \ + bash -leo pipefail -c ' + cd /root/chipyard + git config --global --add safe.directory "*" + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" + if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then + source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" + fi + conda activate + ./build-setup.sh riscv-tools + grep -F "Setup complete!" build-setup.log + ' + + docker commit \ + --change 'ENTRYPOINT ["chipyard/scripts/entrypoint.sh"]' \ + --change 'CMD ["/bin/sh"]' \ + --change "LABEL org.chipyard.ci.unix-timestamp=${unix_timestamp}" \ + "${container_name}" \ + "${image_ref}" + docker push "${image_ref}" From 0c04e769eb5044a4510e3a9f9c560d0c0168b73a Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 14:10:38 -0700 Subject: [PATCH 11/69] docker fixes --- .github/workflows/run-generator-tests.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/run-generator-tests.yml b/.github/workflows/run-generator-tests.yml index 5e08890bab..575af2441c 100644 --- a/.github/workflows/run-generator-tests.yml +++ b/.github/workflows/run-generator-tests.yml @@ -53,13 +53,11 @@ jobs: - name: Check out pull request merge ref inside container env: PR_NUMBER: ${{ inputs.pr_number }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | cd /root/chipyard git config --global --add safe.directory "*" git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" - git -c "http.${GITHUB_SERVER_URL}/.extraheader=AUTHORIZATION: bearer ${GITHUB_TOKEN}" \ - fetch --no-tags origin "pull/${PR_NUMBER}/merge" + git fetch --no-tags origin "pull/${PR_NUMBER}/merge" git checkout --detach FETCH_HEAD git submodule sync --recursive git submodule update --init --recursive From 2350002a7294312f0d82f94e3ff657e2b6529121 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 15:37:06 -0700 Subject: [PATCH 12/69] docker opts --- .../workflows/build-and-publish-container.yml | 70 ++++++++----------- .github/workflows/build-setup-rhel.yml | 2 +- .github/workflows/build-setup-ubuntu.yml | 2 +- .github/workflows/run-generator-tests.yml | 40 ++++++++++- dockerfiles/Dockerfile | 55 ++++++++++++++- 5 files changed, 121 insertions(+), 48 deletions(-) diff --git a/.github/workflows/build-and-publish-container.yml b/.github/workflows/build-and-publish-container.yml index f548b0badf..95aea573e9 100644 --- a/.github/workflows/build-and-publish-container.yml +++ b/.github/workflows/build-and-publish-container.yml @@ -18,6 +18,8 @@ jobs: name: build and publish container runs-on: ubuntu-24.04 env: + BUILDKIT_PROGRESS: plain + DOCKER_BUILDKIT: 1 DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker FORCE_NON_EC2: 1 steps: @@ -44,55 +46,39 @@ jobs: sudo systemctl start docker docker info --format 'Docker root: {{ .DockerRootDir }}' + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v4 + with: + buildkitd-flags: --allow-insecure-entitlement security.insecure + - name: Log in to GHCR - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and publish container + - name: Set image metadata + id: image run: | image_name="ghcr.io/${GITHUB_REPOSITORY,,}" unix_timestamp="$(date +%s)" - image_ref="${image_name}:main" - base_image="${image_name}:main-base-${unix_timestamp}" - container_name="chipyard-main-setup-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" - trap 'docker rm -f "${container_name}" > /dev/null 2>&1 || true' EXIT - - docker build \ - --file dockerfiles/Dockerfile \ - --target base \ - --build-arg "CHIPYARD_REPO=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" \ - --build-arg "CHIPYARD_REF=main" \ - --label "org.chipyard.ci.unix-timestamp=${unix_timestamp}" \ - --tag "${base_image}" \ - . + echo "image_ref=${image_name}:main" >> "${GITHUB_OUTPUT}" + echo "unix_timestamp=${unix_timestamp}" >> "${GITHUB_OUTPUT}" - docker rm -f "${container_name}" > /dev/null 2>&1 || true - docker run \ - --name "${container_name}" \ - --privileged \ - --env FORCE_NON_EC2="${FORCE_NON_EC2}" \ - --env JVM_OPTS="-Xmx3200m" \ - "${base_image}" \ - bash -leo pipefail -c ' - cd /root/chipyard - git config --global --add safe.directory "*" - source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" - if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then - source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" - fi - conda activate - ./build-setup.sh riscv-tools - grep -F "Setup complete!" build-setup.log - ' - - docker commit \ - --change 'ENTRYPOINT ["chipyard/scripts/entrypoint.sh"]' \ - --change 'CMD ["/bin/sh"]' \ - --change "LABEL org.chipyard.ci.unix-timestamp=${unix_timestamp}" \ - "${container_name}" \ - "${image_ref}" - - docker push "${image_ref}" + - name: Build and publish container + uses: docker/build-push-action@v7 + with: + context: . + file: dockerfiles/Dockerfile + target: base-with-tools + allow: security.insecure + build-args: | + CHIPYARD_REPO=${{ github.server_url }}/${{ github.repository }}.git + CHIPYARD_REF=main + labels: | + org.chipyard.ci.unix-timestamp=${{ steps.image.outputs.unix_timestamp }} + tags: | + ${{ steps.image.outputs.image_ref }} + outputs: | + type=image,push=true,oci-mediatypes=true,compression=zstd,compression-level=6,force-compression=true diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 59daf123ef..67c93af8e0 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -24,7 +24,7 @@ jobs: - name: Maximize build space uses: jimfangx/maximize-build-space@master with: - root-reserve-mb: 2048 + root-reserve-mb: 4096 swap-size-mb: 10240 remove-dotnet: 'true' remove-android: 'true' diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml index 027dfa8640..ac542d927b 100644 --- a/.github/workflows/build-setup-ubuntu.yml +++ b/.github/workflows/build-setup-ubuntu.yml @@ -23,7 +23,7 @@ jobs: - name: Maximize build space uses: jimfangx/maximize-build-space@master with: - root-reserve-mb: 2048 + root-reserve-mb: 4096 swap-size-mb: 10240 remove-dotnet: 'true' remove-android: 'true' diff --git a/.github/workflows/run-generator-tests.yml b/.github/workflows/run-generator-tests.yml index 575af2441c..cd48d54818 100644 --- a/.github/workflows/run-generator-tests.yml +++ b/.github/workflows/run-generator-tests.yml @@ -57,10 +57,46 @@ jobs: cd /root/chipyard git config --global --add safe.directory "*" git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" + + initialized_before="$(mktemp)" + submodules_after="$(mktemp)" + initialized_targets="$(mktemp)" + new_targets="$(mktemp)" + removed_targets="$(mktemp)" + git submodule status --recursive \ + | awk 'substr($1, 1, 1) != "-" { print $2 }' \ + | sort -u > "${initialized_before}" + git fetch --no-tags origin "pull/${PR_NUMBER}/merge" git checkout --detach FETCH_HEAD - git submodule sync --recursive - git submodule update --init --recursive + + git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ + | awk '{ print $2 }' \ + | sort -u > "${submodules_after}" + + comm -12 "${initialized_before}" "${submodules_after}" > "${initialized_targets}" + comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" + comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" + + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule deinit --force -- "${submodule_path}" || true + rm -rf -- "${submodule_path}" + done < "${removed_targets}" + + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule sync --recursive -- "${submodule_path}" + git submodule update --recursive -- "${submodule_path}" + done < "${initialized_targets}" + + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule init -- "${submodule_path}" + git submodule sync --recursive -- "${submodule_path}" + git submodule update --init --recursive -- "${submodule_path}" + done < "${new_targets}" + git rev-parse --short HEAD - name: Compile tests diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 7d6efe77a8..3f4cd70d55 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1-labs + ### This is a full chipyard setup # BUILD BASE FOR CI @@ -68,7 +70,7 @@ RUN wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/lat # Use above build as base FROM base AS base-with-tools -# Fully initialize Chipyard. +# Conda environment and Chipyard submodules. RUN cd chipyard && \ git config --global --add safe.directory "*" && \ source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ @@ -76,7 +78,56 @@ RUN cd chipyard && \ source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh"; \ fi && \ conda activate && \ - ./build-setup.sh riscv-tools && \ + ./build-setup.sh riscv-tools \ + -s 3 -s 4 -s 5 -s 6 -s 7 -s 8 -s 9 -s 10 -s 11 + +# Toolchain. +RUN cd chipyard && \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ + conda activate && \ + source /root/chipyard/env.sh && \ + ./build-setup.sh riscv-tools \ + -s 1 -s 2 -s 5 -s 6 -s 7 -s 8 -s 9 -s 10 -s 11 + +# Scala compile. +RUN cd chipyard && \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ + conda activate && \ + source /root/chipyard/env.sh && \ + ./build-setup.sh riscv-tools \ + -s 1 -s 2 -s 3 -s 4 -s 6 -s 7 -s 8 -s 9 -s 10 -s 11 + +# FireSim initialization. +RUN cd chipyard && \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ + conda activate && \ + source /root/chipyard/env.sh && \ + ./build-setup.sh riscv-tools \ + -s 1 -s 2 -s 3 -s 4 -s 5 -s 9 -s 10 -s 11 + +# FireMarshal buildroot Linux. +RUN --security=insecure cd chipyard && \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ + conda activate && \ + source /root/chipyard/env.sh && \ + ./build-setup.sh riscv-tools \ + -s 1 -s 2 -s 3 -s 4 -s 5 -s 6 -s 7 -s 8 -s 10 -s 11 + +# CIRCT. +RUN cd chipyard && \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ + conda activate && \ + source /root/chipyard/env.sh && \ + ./build-setup.sh riscv-tools \ + -s 1 -s 2 -s 3 -s 4 -s 5 -s 6 -s 7 -s 8 -s 9 -s 11 + +# Finish setup and verify completion. +RUN cd chipyard && \ + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ + conda activate && \ + source /root/chipyard/env.sh && \ + ./build-setup.sh riscv-tools \ + -s 1 -s 2 -s 3 -s 4 -s 5 -s 6 -s 7 -s 8 -s 9 -s 10 && \ grep -F "Setup complete!" build-setup.log # Run script to set environment variables on entry From 91ade12de669f5a743961eb41294e0e2fa8d1846 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 15:59:54 -0700 Subject: [PATCH 13/69] fix submoduling --- .github/workflows/run-generator-tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/run-generator-tests.yml b/.github/workflows/run-generator-tests.yml index cd48d54818..311d2f3048 100644 --- a/.github/workflows/run-generator-tests.yml +++ b/.github/workflows/run-generator-tests.yml @@ -63,7 +63,7 @@ jobs: initialized_targets="$(mktemp)" new_targets="$(mktemp)" removed_targets="$(mktemp)" - git submodule status --recursive \ + git submodule status \ | awk 'substr($1, 1, 1) != "-" { print $2 }' \ | sort -u > "${initialized_before}" @@ -86,15 +86,15 @@ jobs: while read -r submodule_path; do [ -n "${submodule_path}" ] || continue - git submodule sync --recursive -- "${submodule_path}" - git submodule update --recursive -- "${submodule_path}" + git submodule sync -- "${submodule_path}" + git submodule update -- "${submodule_path}" done < "${initialized_targets}" while read -r submodule_path; do [ -n "${submodule_path}" ] || continue git submodule init -- "${submodule_path}" - git submodule sync --recursive -- "${submodule_path}" - git submodule update --init --recursive -- "${submodule_path}" + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" done < "${new_targets}" git rev-parse --short HEAD From 41719752b9adc0f35970c242c54e9e884f158cd0 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 16:28:31 -0700 Subject: [PATCH 14/69] fix tests --- .github/scripts/run-generator-test.py | 13 ++- .github/workflows/config/generator-tests.json | 80 +++++++++---------- 2 files changed, 51 insertions(+), 42 deletions(-) diff --git a/.github/scripts/run-generator-test.py b/.github/scripts/run-generator-test.py index 25df476d8e..f73a5e0401 100644 --- a/.github/scripts/run-generator-test.py +++ b/.github/scripts/run-generator-test.py @@ -15,11 +15,20 @@ def run_shell(command, chipyard_dir, sim_dir, env): ) print("::group::" + command, flush=True) try: - subprocess.run( + process = subprocess.Popen( ["bash", "-leo", "pipefail", "-c", wrapped], - check=True, env=env, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + bufsize=1, ) + assert process.stdout is not None + for line in process.stdout: + print(line, end="", flush=True) + returncode = process.wait() + if returncode != 0: + raise subprocess.CalledProcessError(returncode, ["bash", "-leo", "pipefail", "-c", wrapped]) finally: print("::endgroup::", flush=True) diff --git a/.github/workflows/config/generator-tests.json b/.github/workflows/config/generator-tests.json index d916773e22..3a43dffa40 100644 --- a/.github/workflows/config/generator-tests.json +++ b/.github/workflows/config/generator-tests.json @@ -2,11 +2,11 @@ "chipyard-rocket": [ { "custom": true, - "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=QuadChannelRocketConfig LOADMEM=1" + "string": "make run-bmark-tests-fast -j$(nproc) CONFIG=QuadChannelRocketConfig LOADMEM=1" }, { "custom": true, - "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=QuadChannelRocketConfig LOADMEM=1" + "string": "make run-asm-tests-fast -j$(nproc) CONFIG=QuadChannelRocketConfig LOADMEM=1" }, { "custom": false, @@ -16,7 +16,7 @@ }, { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=QuadChannelRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv" + "string": "make run-binary-fast CONFIG=QuadChannelRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv" } ], "chipyard-dmirocket": [ @@ -30,69 +30,69 @@ "chipyard-boomv3": [ { "custom": true, - "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=MediumBoomV3CosimConfig LOADMEM=1" + "string": "make run-asm-tests-fast -j$(nproc) CONFIG=MediumBoomV3CosimConfig LOADMEM=1" }, { "custom": true, - "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=MediumBoomV3CosimConfig LOADMEM=1" + "string": "make run-bmark-tests-fast -j$(nproc) CONFIG=MediumBoomV3CosimConfig LOADMEM=1" } ], "chipyard-boomv4": [ { "custom": true, - "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=MediumBoomV4CosimConfig LOADMEM=1" + "string": "make run-asm-tests-fast -j$(nproc) CONFIG=MediumBoomV4CosimConfig LOADMEM=1" }, { "custom": true, - "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=MediumBoomV4CosimConfig LOADMEM=1" + "string": "make run-bmark-tests-fast -j$(nproc) CONFIG=MediumBoomV4CosimConfig LOADMEM=1" } ], "chipyard-shuttle": [ { "custom": true, - "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=ShuttleConfig LOADMEM=1" + "string": "make run-asm-tests-fast -j$(nproc) CONFIG=ShuttleConfig LOADMEM=1" }, { "custom": true, - "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=ShuttleConfig LOADMEM=1" + "string": "make run-bmark-tests-fast -j$(nproc) CONFIG=ShuttleConfig LOADMEM=1" } ], "chipyard-shuttle3": [ { "custom": true, - "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=Shuttle3WideConfig LOADMEM=1" + "string": "make run-asm-tests-fast -j$(nproc) CONFIG=Shuttle3WideConfig LOADMEM=1" }, { "custom": true, - "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=Shuttle3WideConfig LOADMEM=1" + "string": "make run-bmark-tests-fast -j$(nproc) CONFIG=Shuttle3WideConfig LOADMEM=1" } ], "chipyard-spike": [ { "custom": true, - "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=SpikeZicntrConfig EXTRA_SIM_FLAGS='+spike-ipc=10' LOADMEM=1" + "string": "make run-asm-tests-fast -j$(nproc) CONFIG=SpikeZicntrConfig EXTRA_SIM_FLAGS='+spike-ipc=10' LOADMEM=1" }, { "custom": true, - "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=SpikeZicntrConfig EXTRA_SIM_FLAGS='+spike-ipc=10' LOADMEM=1" + "string": "make run-bmark-tests-fast -j$(nproc) CONFIG=SpikeZicntrConfig EXTRA_SIM_FLAGS='+spike-ipc=10' LOADMEM=1" } ], "chipyard-dmiboomv3": [ { "custom": true, - "string": "$LOCAL_CHIPYARD_DIR/scripts/generate-ckpt.sh -b $RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv -i 10000 && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=dmiCheckpointingMediumBoomV3Config LOADARCH=$LOCAL_SIM_DIR/dhrystone.riscv.0x80000000.unused.10000.defaultspikedts.loadarch" + "string": "$LOCAL_CHIPYARD_DIR/scripts/generate-ckpt.sh -b $RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv -i 10000 && make run-binary-fast CONFIG=dmiCheckpointingMediumBoomV3Config LOADARCH=$LOCAL_SIM_DIR/dhrystone.riscv.0x80000000.unused.10000.defaultspikedts.loadarch" } ], "chipyard-dmiboomv4": [ { "custom": true, - "string": "$LOCAL_CHIPYARD_DIR/scripts/generate-ckpt.sh -b $RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv -i 10000 && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=dmiCheckpointingMediumBoomV4Config LOADARCH=$LOCAL_SIM_DIR/dhrystone.riscv.0x80000000.unused.10000.defaultspikedts.loadarch" + "string": "$LOCAL_CHIPYARD_DIR/scripts/generate-ckpt.sh -b $RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv -i 10000 && make run-binary-fast CONFIG=dmiCheckpointingMediumBoomV4Config LOADARCH=$LOCAL_SIM_DIR/dhrystone.riscv.0x80000000.unused.10000.defaultspikedts.loadarch" } ], "chipyard-hetero": [ { "custom": true, - "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=LargeBoomAndRocketConfig LOADMEM=1" + "string": "make run-bmark-tests-fast -j$(nproc) CONFIG=LargeBoomAndRocketConfig LOADMEM=1" } ], "chipyard-prefetchers": [ @@ -106,19 +106,19 @@ "chipyard-gemmini": [ { "custom": true, - "string": "GEMMINI_SOFTWARE_DIR=$LOCAL_CHIPYARD_DIR/generators/gemmini/software/gemmini-rocc-tests && rm -rf $GEMMINI_SOFTWARE_DIR/riscv-tests && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal LOADMEM=1 && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal LOADMEM=1 && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal LOADMEM=1" + "string": "GEMMINI_SOFTWARE_DIR=$LOCAL_CHIPYARD_DIR/generators/gemmini/software/gemmini-rocc-tests && rm -rf $GEMMINI_SOFTWARE_DIR/riscv-tests && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal LOADMEM=1" } ], "chipyard-mempress": [ { "custom": true, - "string": "make -C $LOCAL_CHIPYARD_DIR/generators/mempress/software/src && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=MempressRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/generators/mempress/software/src/mempress-rocc.riscv LOADMEM=1" + "string": "make -C $LOCAL_CHIPYARD_DIR/generators/mempress/software/src && make run-binary-fast CONFIG=MempressRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/generators/mempress/software/src/mempress-rocc.riscv LOADMEM=1" } ], "chipyard-compressacc": [ { "custom": true, - "string": "cd $LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress && ./build-hcb-single-file.sh && cd $LOCAL_SIM_DIR && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=ZstdCompressorRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress/009987_cl0_ws12.riscv LOADMEM=1" + "string": "cd $LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress && ./build-hcb-single-file.sh && cd $LOCAL_SIM_DIR && make run-binary-fast CONFIG=ZstdCompressorRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress/009987_cl0_ws12.riscv LOADMEM=1" } ], "chipyard-manymmioaccels": [ @@ -136,31 +136,31 @@ "chipyard-nvdla": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=SmallNVDLARocketConfig verilog BINARY=$LOCAL_CHIPYARD_DIR/tests/nvdla.riscv LOADMEM=1" + "string": "make run-binary-fast CONFIG=SmallNVDLARocketConfig verilog BINARY=$LOCAL_CHIPYARD_DIR/tests/nvdla.riscv LOADMEM=1" } ], "chipyard-manyperipherals": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=ManyPeripheralsRocketConfig EXTRA_SIM_FLAGS='+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img' BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashread.riscv" + "string": "make run-binary-fast CONFIG=ManyPeripheralsRocketConfig EXTRA_SIM_FLAGS='+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img' BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashread.riscv" } ], "chipyard-spiflashwrite": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=SmallSPIFlashRocketConfig EXTRA_SIM_FLAGS='+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img' BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashwrite.riscv LOADMEM=1 && [[ \"$(xxd $LOCAL_CHIPYARD_DIR/tests/spiflash.img | grep '1337 00ff aa55 face' | wc -l)\" == \"6\" ]]" + "string": "make run-binary-fast CONFIG=SmallSPIFlashRocketConfig EXTRA_SIM_FLAGS='+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img' BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashwrite.riscv LOADMEM=1 && [[ \"$(xxd $LOCAL_CHIPYARD_DIR/tests/spiflash.img | grep '1337 00ff aa55 face' | wc -l)\" == \"6\" ]]" } ], "chipyard-tethered": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=VerilatorCITetheredChipLikeRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv LOADMEM=1 EXTRA_SIM_FLAGS='+cflush_addr=0x2010200'" + "string": "make run-binary-fast CONFIG=VerilatorCITetheredChipLikeRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv LOADMEM=1 EXTRA_SIM_FLAGS='+cflush_addr=0x2010200'" } ], "chipyard-symmetric": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=MultiSimMultiLinkSymmetricChipletRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/symmetric.riscv LOADMEM=1 EXTRA_SIM_FLAGS='+offchip_sel=0' && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=MultiSimMultiLinkSymmetricChipletRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/symmetric.riscv LOADMEM=1 EXTRA_SIM_FLAGS='+offchip_sel=1'" + "string": "make run-binary-fast CONFIG=MultiSimMultiLinkSymmetricChipletRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/symmetric.riscv LOADMEM=1 EXTRA_SIM_FLAGS='+offchip_sel=0' && make run-binary-fast CONFIG=MultiSimMultiLinkSymmetricChipletRocketConfig BINARY=$LOCAL_CHIPYARD_DIR/tests/symmetric.riscv LOADMEM=1 EXTRA_SIM_FLAGS='+offchip_sel=1'" } ], "chipyard-llcchiplet": [ @@ -174,7 +174,7 @@ "chipyard-rerocc": [ { "custom": true, - "string": "make -C $LOCAL_CHIPYARD_DIR/generators/rerocc/software && make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=ReRoCCTestConfig BINARY=$LOCAL_CHIPYARD_DIR/generators/rerocc/software/test.riscv LOADMEM=1" + "string": "make -C $LOCAL_CHIPYARD_DIR/generators/rerocc/software && make run-binary-fast CONFIG=ReRoCCTestConfig BINARY=$LOCAL_CHIPYARD_DIR/generators/rerocc/software/test.riscv LOADMEM=1" } ], "chipyard-rocketvector": [ @@ -212,25 +212,25 @@ "tracegen": [ { "custom": true, - "string": "make tracegen BREAK_SIM_PREREQ=1 CONFIG=NonBlockingTraceGenL2Config" + "string": "make tracegen CONFIG=NonBlockingTraceGenL2Config" } ], "tracegen-boomv3": [ { "custom": true, - "string": "make tracegen BREAK_SIM_PREREQ=1 CONFIG=BoomV3TraceGenConfig" + "string": "make tracegen CONFIG=BoomV3TraceGenConfig" } ], "tracegen-boomv4": [ { "custom": true, - "string": "make tracegen BREAK_SIM_PREREQ=1 CONFIG=BoomV4TraceGenConfig" + "string": "make tracegen CONFIG=BoomV4TraceGenConfig" } ], "chipyard-cva6": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" + "string": "make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" } ], "chipyard-ibex": [ @@ -242,17 +242,17 @@ "chipyard-vexiiriscv": [ { "custom": true, - "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=VexiiRiscvConfig LOADMEM=1" + "string": "make run-asm-tests-fast -j$(nproc) CONFIG=VexiiRiscvConfig LOADMEM=1" }, { "custom": true, - "string": "make run-bmark-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=VexiiRiscvConfig LOADMEM=1" + "string": "make run-bmark-tests-fast -j$(nproc) CONFIG=VexiiRiscvConfig LOADMEM=1" } ], "chipyard-sodor": [ { "custom": true, - "string": "make run-asm-tests-fast -j1 BREAK_SIM_PREREQ=1 CONFIG=Sodor5StageConfig" + "string": "make run-asm-tests-fast -j$(nproc) CONFIG=Sodor5StageConfig" } ], "chipyard-constellation": [ @@ -274,7 +274,7 @@ "chipyard-zephyr": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 BINARY=$LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr/build/zephyr/zephyr.elf LOADMEM=1" + "string": "make run-binary-fast BINARY=$LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr/build/zephyr/zephyr.elf LOADMEM=1" } ], "chipyard-radiance": [ @@ -286,43 +286,43 @@ "icenet": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=icenet BINARY=none" + "string": "make run-binary-fast SUB_PROJECT=icenet BINARY=none" } ], "testchipip": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=testchipip BINARY=none" + "string": "make run-binary-fast SUB_PROJECT=testchipip BINARY=none" } ], "constellation": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=constellation BINARY=none" + "string": "make run-binary-fast SUB_PROJECT=constellation BINARY=none" } ], "rocketchip-amba": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=rocketchip CONFIG=AMBAUnitTestConfig BINARY=none" + "string": "make run-binary-fast SUB_PROJECT=rocketchip CONFIG=AMBAUnitTestConfig BINARY=none" } ], "rocketchip-tlsimple": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=rocketchip CONFIG=TLSimpleUnitTestConfig BINARY=none" + "string": "make run-binary-fast SUB_PROJECT=rocketchip CONFIG=TLSimpleUnitTestConfig BINARY=none" } ], "rocketchip-tlwidth": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=rocketchip CONFIG=TLWidthUnitTestConfig BINARY=none" + "string": "make run-binary-fast SUB_PROJECT=rocketchip CONFIG=TLWidthUnitTestConfig BINARY=none" } ], "rocketchip-tlxbar": [ { "custom": true, - "string": "make run-binary-fast BREAK_SIM_PREREQ=1 SUB_PROJECT=rocketchip CONFIG=TLXbarUnitTestConfig BINARY=none" + "string": "make run-binary-fast SUB_PROJECT=rocketchip CONFIG=TLXbarUnitTestConfig BINARY=none" } ] } From 3aca237453621265150c42a92a7a42ccf525f069 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 19:11:47 -0700 Subject: [PATCH 15/69] fix asm bmarks --- .github/scripts/run-generator-test.py | 59 +++++++++-- .github/workflows/config/generator-tests.json | 2 +- common.mk | 97 +++++++++++++++++-- generators/tracegen/tracegen.mk | 21 +++- scripts/check-tracegen.sh | 27 +++++- 5 files changed, 184 insertions(+), 22 deletions(-) diff --git a/.github/scripts/run-generator-test.py b/.github/scripts/run-generator-test.py index f73a5e0401..7233de60f1 100644 --- a/.github/scripts/run-generator-test.py +++ b/.github/scripts/run-generator-test.py @@ -7,13 +7,29 @@ import sys -def run_shell(command, chipyard_dir, sim_dir, env): +class TestCommandFailed: + def __init__(self, label, command, returncode): + self.label = label + self.command = command + self.returncode = returncode + + +def keep_going_for_test_suites(command): + if command.startswith("make run-asm-tests-fast") or command.startswith("make run-bmark-tests-fast"): + return command.replace("make ", "make -k ", 1) + return command + + +def run_shell(command, chipyard_dir, sim_dir, env, label=None): + command = keep_going_for_test_suites(command) + label = label or command wrapped = ( f'source "{chipyard_dir}/env.sh"\n' f'cd "{sim_dir}"\n' f'{command}' ) - print("::group::" + command, flush=True) + print("::group::" + label, flush=True) + print(f"Running: {command}", flush=True) try: process = subprocess.Popen( ["bash", "-leo", "pipefail", "-c", wrapped], @@ -28,18 +44,28 @@ def run_shell(command, chipyard_dir, sim_dir, env): print(line, end="", flush=True) returncode = process.wait() if returncode != 0: - raise subprocess.CalledProcessError(returncode, ["bash", "-leo", "pipefail", "-c", wrapped]) + print(f"\nFAILED: {label}", flush=True) + print(f"Command: {command}", flush=True) + print(f"Exit code: {returncode}", flush=True) + print( + f"::error title=Generator test command failed::{label} failed with exit code {returncode}", + flush=True, + ) + return TestCommandFailed(label, command, returncode) + return None finally: print("::endgroup::", flush=True) def run_entry(entry, chipyard_dir, sim_dir, env): + failures = [] + if entry.get("custom") is True: command = entry.get("string") if not command: raise ValueError("custom test entry must include a non-empty string") - run_shell(command, chipyard_dir, sim_dir, env) - return + failure = run_shell(command, chipyard_dir, sim_dir, env, label=f"custom command: {command}") + return [failure] if failure else [] if entry.get("custom") is not False: raise ValueError("test entry must set custom to true or false") @@ -57,12 +83,18 @@ def run_entry(entry, chipyard_dir, sim_dir, env): for config in configs: for binary in binaries: - run_shell( + label = f"CONFIG={config} BINARY={binary} LOADMEM=1" + failure = run_shell( f"make run-binary CONFIG={config} BINARY={binary} LOADMEM=1", chipyard_dir, sim_dir, env, + label=label, ) + if failure: + failures.append(failure) + + return failures def main(): @@ -96,8 +128,21 @@ def main(): print(f"Test group {args.test_name} must be a non-empty list", file=sys.stderr) return 1 + failures = [] for entry in entries: - run_entry(entry, chipyard_dir, sim_dir, env) + failures.extend(run_entry(entry, chipyard_dir, sim_dir, env)) + + if failures: + print("\n::group::Generator test failure summary", flush=True) + print(f"Generator test failed: {args.test_name}", flush=True) + print(f"Failed command count: {len(failures)}", flush=True) + for index, failure in enumerate(failures, start=1): + print("", flush=True) + print(f"{index}. {failure.label}", flush=True) + print(f" exit code: {failure.returncode}", flush=True) + print(f" command: {failure.command}", flush=True) + print("::endgroup::", flush=True) + return 1 print(f"Generator test complete: {args.test_name}") return 0 diff --git a/.github/workflows/config/generator-tests.json b/.github/workflows/config/generator-tests.json index 3a43dffa40..8e51e43724 100644 --- a/.github/workflows/config/generator-tests.json +++ b/.github/workflows/config/generator-tests.json @@ -106,7 +106,7 @@ "chipyard-gemmini": [ { "custom": true, - "string": "GEMMINI_SOFTWARE_DIR=$LOCAL_CHIPYARD_DIR/generators/gemmini/software/gemmini-rocc-tests && rm -rf $GEMMINI_SOFTWARE_DIR/riscv-tests && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal LOADMEM=1" + "string": "GEMMINI_SOFTWARE_DIR=$LOCAL_CHIPYARD_DIR/generators/gemmini/software/gemmini-rocc-tests && rm -rf $GEMMINI_SOFTWARE_DIR/riscv-tests && (cd $GEMMINI_SOFTWARE_DIR && ./build.sh bareMetalC) && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal LOADMEM=1" } ], "chipyard-mempress": [ diff --git a/common.mk b/common.mk index de111d17f4..0b65372eeb 100644 --- a/common.mk +++ b/common.mk @@ -78,6 +78,8 @@ HELP_COMMANDS += \ " run-binaries = run [./$(shell basename $(sim))] and log instructions to file" \ " run-binaries-fast = run [./$(shell basename $(sim))] and don't log instructions" \ " run-binaries-debug = run [./$(shell basename $(sim_debug))] and log instructions and waveform to files" \ +" run-asm-tests-fast = run RV64GC riscv-tests ISA tests without instruction logs" \ +" run-bmark-tests-fast = run riscv-tests benchmarks without instruction logs" \ " verilog = generate intermediate verilog files from chisel elaboration and firrtl passes" \ " firrtl = generate intermediate firrtl files from chisel elaboration" \ " run-tests = run all assembly and benchmark tests" \ @@ -329,7 +331,7 @@ verilog: $(sim_common_files) ######################################################################################### # helper rules to run simulations ######################################################################################### -.PHONY: run-binary run-binary-fast run-binary-debug run-fast +.PHONY: run-binary run-binary-fast run-binary-debug run-fast run-asm-tests-fast run-bmark-tests-fast \ %.check-exists check-binary check-binaries check-binary: @@ -447,6 +449,92 @@ run-binary-fast-hex: override SIM_FLAGS += +loadmem=$(BINARY) ######################################################################################### # run assembly/benchmarks rules ######################################################################################### +RISCV_TESTS_ISA_DIR = $(RISCV)/riscv64-unknown-elf/share/riscv-tests/isa +RISCV_TESTS_BENCHMARK_DIR = $(RISCV)/riscv64-unknown-elf/share/riscv-tests/benchmarks + +RV64GC_ISA_TEST_PREFIXES ?= rv64ui rv64uc rv64um rv64ua rv64uf rv64ud + +# https://github.com/riscv-software-src/riscv-tests/issues/419 +RV64GC_ASM_TEST_EXCLUDES ?= rv64ui-p-ma_data + +RV64GC_ASM_TESTS ?= $(filter-out \ + %.dump \ + $(addprefix $(RISCV_TESTS_ISA_DIR)/,$(RV64GC_ASM_TEST_EXCLUDES)), \ + $(foreach prefix,$(RV64GC_ISA_TEST_PREFIXES),$(wildcard $(RISCV_TESTS_ISA_DIR)/$(prefix)-p-*))) + +RISCV_BMARK_TEST_NAMES ?= \ + dhrystone \ + median \ + memcpy \ + mm \ + mt-matmul \ + mt-memcpy \ + mt-vvadd \ + multiply \ + pmp \ + qsort \ + rsort \ + spmv \ + towers \ + vvadd + +RISCV_BMARK_TESTS ?= $(wildcard $(addprefix $(RISCV_TESTS_BENCHMARK_DIR)/,$(addsuffix .riscv,$(RISCV_BMARK_TEST_NAMES)))) +RUN_FAST_STATUS_DIR = $(output_dir)/run-fast-status +get_run_fast_status = $(RUN_FAST_STATUS_DIR)/$(1)/$(notdir $(basename $(2))).status +RV64GC_ASM_TEST_STATUS = $(foreach binary,$(RV64GC_ASM_TESTS),$(call get_run_fast_status,asm,$(binary))) +RISCV_BMARK_TEST_STATUS = $(foreach binary,$(RISCV_BMARK_TESTS),$(call get_run_fast_status,bmark,$(binary))) + +######################################################################################### +# include build/project specific makefrags made from the generator +######################################################################################### +aggregate_fast_test_goals = run-fast run-asm-tests-fast run-bmark-tests-fast +ifneq ($(filter run% %.run %.out %.vpd %.vcd %.fsdb,$(MAKECMDGOALS)),) +ifeq ($(filter $(aggregate_fast_test_goals),$(MAKECMDGOALS)),$(MAKECMDGOALS)) +else +-include $(build_dir)/$(long_name).d +endif +endif + +define run_binary_fast_status_rule +$(call get_run_fast_status,$(1),$(2)): FORCE | $(RUN_FAST_STATUS_DIR)/$(1) + @rm -f "$$@" + @echo "========== Running $(3): $(2) ==========" + @if $(MAKE) --no-print-directory run-binary-fast BINARY="$(2)"; then \ + printf 'PASS\t$(2)\n' > "$$@"; \ + else \ + status="$$$$?"; \ + printf 'FAIL\t%s\t$(2)\n' "$$$${status}" > "$$@"; \ + fi +endef + +$(foreach binary,$(RV64GC_ASM_TESTS),$(eval $(call run_binary_fast_status_rule,asm,$(binary),RV64GC ISA tests))) +$(foreach binary,$(RISCV_BMARK_TESTS),$(eval $(call run_binary_fast_status_rule,bmark,$(binary),riscv-tests benchmarks))) + +$(RUN_FAST_STATUS_DIR)/asm $(RUN_FAST_STATUS_DIR)/bmark: + mkdir -p $@ + +.PHONY: FORCE +FORCE: + +define summarize_run_binary_fast_status + $(call require_riscv) + @if [ -z "$($(1))" ]; then \ + echo "No $(2) found under $(3)." >&2; \ + exit 1; \ + fi + @failures="$$(awk -F '\t' '$$1 == "FAIL" { printf " - %s (exit %s)\n", $$3, $$2 }' $(4))"; \ + if [ -n "$${failures}" ]; then \ + printf "\nFailed $(2):\n%s" "$${failures}" >&2; \ + exit 1; \ + fi +endef + +run-asm-tests-fast: $(RV64GC_ASM_TEST_STATUS) + $(call summarize_run_binary_fast_status,RV64GC_ASM_TESTS,RV64GC ISA tests,$(RISCV_TESTS_ISA_DIR),$^) + +run-bmark-tests-fast: $(RISCV_BMARK_TEST_STATUS) + $(call summarize_run_binary_fast_status,RISCV_BMARK_TESTS,riscv-tests benchmarks,$(RISCV_TESTS_BENCHMARK_DIR),$^) + $(output_dir): mkdir -p $@ @@ -461,13 +549,6 @@ $(output_dir)/%.run: $(output_dir)/% $(SIM_PREREQ) $(output_dir)/%.out: $(output_dir)/% $(SIM_PREREQ) (set -o pipefail && $(NUMA_PREFIX) $(sim) $(PERMISSIVE_ON) $(call get_common_sim_flags,$<) $(PERMISSIVE_OFF) $< >(spike-dasm > $@) | tee $<.log) -######################################################################################### -# include build/project specific makefrags made from the generator -######################################################################################### -ifneq ($(filter run% %.run %.out %.vpd %.vcd %.fsdb,$(MAKECMDGOALS)),) --include $(build_dir)/$(long_name).d -endif - ####################################### # Rules for building DRAMSim2 library ####################################### diff --git a/generators/tracegen/tracegen.mk b/generators/tracegen/tracegen.mk index 55a544e751..b12a7bff50 100644 --- a/generators/tracegen/tracegen.mk +++ b/generators/tracegen/tracegen.mk @@ -8,11 +8,26 @@ AXE=$(AXE_DIR)/axe $(AXE): $(wildcard $(AXE_DIR)/*.[ch]) $(AXE_DIR)/make.sh cd $(AXE_DIR) && ./make.sh -$(output_dir)/tracegen.out: $(SIM_PREREQ) - mkdir -p $(output_dir) && $(sim) $(PERMISSIVE_ON) $(SIM_FLAGS) $(EXTRA_SIM_FLAGS) $(SEED_FLAG) $(VERBOSE_FLAGS) $(PERMISSIVE_OFF) none $@ +$(output_dir)/tracegen.out: $(if $(BREAK_SIM_PREREQ),,$(sim)) + mkdir -p $(output_dir) && \ + rm -f $@ $@.tmp && \ + if $(sim) $(PERMISSIVE_ON) $(SIM_FLAGS) $(EXTRA_SIM_FLAGS) $(SEED_FLAG) $(VERBOSE_FLAGS) $(PERMISSIVE_OFF) none $@.tmp; then \ + mv $@.tmp $@; \ + else \ + cat $@.tmp >&2; \ + rm -f $@.tmp; \ + exit 1; \ + fi $(output_dir)/tracegen.result: $(output_dir)/tracegen.out $(AXE) - $(base_dir)/scripts/check-tracegen.sh $< > $@ + rm -f $@ $@.tmp && \ + if $(base_dir)/scripts/check-tracegen.sh $< > $@.tmp; then \ + mv $@.tmp $@; \ + else \ + cat $@.tmp >&2; \ + rm -f $@.tmp; \ + exit 1; \ + fi .PHONY: tracegen tracegen: $(output_dir)/tracegen.result diff --git a/scripts/check-tracegen.sh b/scripts/check-tracegen.sh index c30447ee21..fcd73bac37 100755 --- a/scripts/check-tracegen.sh +++ b/scripts/check-tracegen.sh @@ -7,20 +7,41 @@ AXE_DIR=$(realpath ${SCRIPT_DIR}/../tools/axe) ROCKET_DIR=$(realpath ${SCRIPT_DIR}/../generators/rocket-chip) TMP_DIR=$(mktemp -d -t tracegen-XXXXXXXX) +trap 'rm -rf "$TMP_DIR"' EXIT TO_AXE=${ROCKET_DIR}/scripts/toaxe.py TO_AXE_PY3=${TMP_DIR}/toaxe.py AXE=${AXE_DIR}/src/axe AXE_SHRINK=${AXE_DIR}/src/axe-shrink.py AXE_SHRINK_PY3=${TMP_DIR}/axe-shrink.py +run_2to3() { + local log_file="${TMP_DIR}/2to3.log" + if command -v 2to3 > /dev/null 2>&1; then + cmd=(2to3) + else + cmd=(python3 -m lib2to3) + fi + + if ! "${cmd[@]}" "$@" > "$log_file" 2>&1; then + cat "$log_file" >&2 + exit 1 + fi +} + # TODO: convert scripts to py3 in src -2to3 $TO_AXE -o ${TMP_DIR} -n -w +run_2to3 $TO_AXE -o ${TMP_DIR} -n -w sed -i '30d' $TO_AXE_PY3 # remove import sets -2to3 $AXE_SHRINK -o ${TMP_DIR} -n -w +run_2to3 $AXE_SHRINK -o ${TMP_DIR} -n -w PATH=$PATH:${AXE_DIR}/src -grep '.*:.*#.*@' $1 > ${TMP_DIR}/clean-trace.txt +if ! grep '.*:.*#.*@' "$1" > ${TMP_DIR}/clean-trace.txt; then + echo "ERROR: no tracegen events found in $1" >&2 + echo "The simulator may not have run successfully. First lines of trace output:" >&2 + sed -n '1,40p' "$1" >&2 || true + exit 1 +fi + python "$TO_AXE_PY3" ${TMP_DIR}/clean-trace.txt > ${TMP_DIR}/trace.axe result=$("$AXE" check wmo ${TMP_DIR}/trace.axe) From 78b95645988e5bfdf5b5d3956ba557eeedce8fbe Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 19:42:35 -0700 Subject: [PATCH 16/69] fix long running build-setup flows --- .ctagsignore | 1 + .github/workflows/build-setup-rhel.yml | 4 ++++ .github/workflows/build-setup-ubuntu.yml | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/.ctagsignore b/.ctagsignore index 1ff269b2a7..41d7560b85 100644 --- a/.ctagsignore +++ b/.ctagsignore @@ -2,3 +2,4 @@ sims toolchains .conda-env +.ci diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 67c93af8e0..813ee10d0c 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -42,6 +42,10 @@ jobs: sudo systemctl start docker docker info --format 'Docker root: {{ .DockerRootDir }}' + - name: Exclude CI-managed directories from ctags + run: | + grep -qxF ".ci" .ctagsignore || printf "\n.ci\n" >> .ctagsignore + - name: Run build setup in RHEL 9 run: | docker run --rm \ diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml index ac542d927b..5da1036699 100644 --- a/.github/workflows/build-setup-ubuntu.yml +++ b/.github/workflows/build-setup-ubuntu.yml @@ -44,6 +44,10 @@ jobs: fi conda activate + - name: Exclude CI-managed directories from ctags + run: | + grep -qxF ".ci" .ctagsignore || printf "\n.ci\n" >> .ctagsignore + - name: Run build setup run: | git config --global --add safe.directory "*" From 0a78394a5274875c93db70b3be01e03814bf6c80 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 20:30:27 -0700 Subject: [PATCH 17/69] fix tests: --- .github/workflows/build-setup-rhel.yml | 2 ++ .github/workflows/run-generator-tests.yml | 5 +++++ common.mk | 8 ++++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 813ee10d0c..cdd15b7f31 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -61,10 +61,12 @@ jobs: findutils \ git \ gzip \ + kmod \ make \ patch \ procps-ng \ python3 \ + sudo \ tar \ unzip \ wget \ diff --git a/.github/workflows/run-generator-tests.yml b/.github/workflows/run-generator-tests.yml index 311d2f3048..bcabe55d79 100644 --- a/.github/workflows/run-generator-tests.yml +++ b/.github/workflows/run-generator-tests.yml @@ -99,10 +99,14 @@ jobs: git rev-parse --short HEAD +# build tests in both tests/ and tests/build due to legacy paths - name: Compile tests run: | cd /root/chipyard source env.sh + cmake -S tests -B tests/ -D CMAKE_BUILD_TYPE=Debug + cmake --build tests --target clean + cmake --build tests --target all cmake -S tests -B tests/build -D CMAKE_BUILD_TYPE=Debug cmake --build tests/build --target clean cmake --build tests/build --target all @@ -110,4 +114,5 @@ jobs: - name: Run generator test run: | cd /root/chipyard + source env.sh python3 .github/scripts/run-generator-test.py "${{ matrix.test_name }}" diff --git a/common.mk b/common.mk index 0b65372eeb..b713ca77ed 100644 --- a/common.mk +++ b/common.mk @@ -480,6 +480,7 @@ RISCV_BMARK_TEST_NAMES ?= \ RISCV_BMARK_TESTS ?= $(wildcard $(addprefix $(RISCV_TESTS_BENCHMARK_DIR)/,$(addsuffix .riscv,$(RISCV_BMARK_TEST_NAMES)))) RUN_FAST_STATUS_DIR = $(output_dir)/run-fast-status +RUN_FAST_SIM_READY = $(if $(SIM_PREREQ),$(output_dir)/run-fast-sim-ready) get_run_fast_status = $(RUN_FAST_STATUS_DIR)/$(1)/$(notdir $(basename $(2))).status RV64GC_ASM_TEST_STATUS = $(foreach binary,$(RV64GC_ASM_TESTS),$(call get_run_fast_status,asm,$(binary))) RISCV_BMARK_TEST_STATUS = $(foreach binary,$(RISCV_BMARK_TESTS),$(call get_run_fast_status,bmark,$(binary))) @@ -496,10 +497,10 @@ endif endif define run_binary_fast_status_rule -$(call get_run_fast_status,$(1),$(2)): FORCE | $(RUN_FAST_STATUS_DIR)/$(1) +$(call get_run_fast_status,$(1),$(2)): FORCE | $(RUN_FAST_STATUS_DIR)/$(1) $(RUN_FAST_SIM_READY) @rm -f "$$@" @echo "========== Running $(3): $(2) ==========" - @if $(MAKE) --no-print-directory run-binary-fast BINARY="$(2)"; then \ + @if $(MAKE) --no-print-directory BREAK_SIM_PREREQ=1 run-binary-fast BINARY="$(2)"; then \ printf 'PASS\t$(2)\n' > "$$@"; \ else \ status="$$$$?"; \ @@ -513,6 +514,9 @@ $(foreach binary,$(RISCV_BMARK_TESTS),$(eval $(call run_binary_fast_status_rule, $(RUN_FAST_STATUS_DIR)/asm $(RUN_FAST_STATUS_DIR)/bmark: mkdir -p $@ +$(RUN_FAST_SIM_READY): $(SIM_PREREQ) | $(output_dir) + touch $@ + .PHONY: FORCE FORCE: From ef8ceb4040685bf2fe069b8656c11397650b1f67 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 4 Jul 2026 22:32:39 -0700 Subject: [PATCH 18/69] fix more tests --- .github/scripts/build-zephyr.sh | 25 +++ .../prepare-generator-test-submodules.sh | 159 ++++++++++++++++++ .github/workflows/build-setup-rhel.yml | 1 + .github/workflows/config/generator-tests.json | 10 +- .github/workflows/run-generator-tests.yml | 59 +++++-- 5 files changed, 234 insertions(+), 20 deletions(-) create mode 100755 .github/scripts/build-zephyr.sh create mode 100755 .github/scripts/prepare-generator-test-submodules.sh diff --git a/.github/scripts/build-zephyr.sh b/.github/scripts/build-zephyr.sh new file mode 100755 index 0000000000..083c7db0f4 --- /dev/null +++ b/.github/scripts/build-zephyr.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -euo pipefail + +chipyard_dir="${LOCAL_CHIPYARD_DIR:-/root/chipyard}" +zephyr_dir="${chipyard_dir}/software/zephyrproject/zephyr" + +if [ -z "${RISCV:-}" ]; then + echo "RISCV is unset. Source env.sh before building Zephyr." >&2 + exit 1 +fi + +git -C "${chipyard_dir}" submodule update --init -- software/zephyrproject/zephyr + +cd "${zephyr_dir}" +if [ ! -d .west ]; then + west init -l . +fi +west config manifest.file west-riscv.yml +west update + +export ZEPHYR_BASE="${zephyr_dir}" +export ZEPHYR_TOOLCHAIN_VARIANT=cross-compile +export CROSS_COMPILE="${RISCV}/bin/riscv64-unknown-elf-" + +west build -p -b chipyard_riscv64 samples/chipyard/hello_world/ diff --git a/.github/scripts/prepare-generator-test-submodules.sh b/.github/scripts/prepare-generator-test-submodules.sh new file mode 100755 index 0000000000..088213bf2c --- /dev/null +++ b/.github/scripts/prepare-generator-test-submodules.sh @@ -0,0 +1,159 @@ +#!/usr/bin/env bash +set -euo pipefail + +test_name="${1:?usage: prepare-generator-test-submodules.sh TEST_NAME [CHIPYARD_DIR] [TESTS_JSON]}" +chipyard_dir="${2:-/root/chipyard}" +tests_json="${3:-${chipyard_dir}/.github/workflows/config/generator-tests.json}" + +is_empty_dir() { + local path="$1" + [ ! -d "${path}" ] || [ -z "$(find "${path}" -mindepth 1 -maxdepth 1 -print -quit 2>/dev/null)" ] +} + +update_submodule_if_needed() { + local repo_dir="$1" + local submodule_path="$2" + local abs_path="${repo_dir}/${submodule_path}" + local status + local state + + status="$(git -C "${repo_dir}" submodule status -- "${submodule_path}" 2>/dev/null || true)" + if [ -z "${status}" ]; then + echo "No submodule named ${submodule_path} under ${repo_dir}" >&2 + exit 1 + fi + + state="${status:0:1}" + if [ "${state}" = "-" ] || [ "${state}" = "+" ] || is_empty_dir "${abs_path}"; then + echo "Initializing/updating BINARY owner submodule: ${submodule_path}" + git -C "${repo_dir}" submodule sync -- "${submodule_path}" + git -C "${repo_dir}" submodule update --init -- "${submodule_path}" + else + echo "BINARY owner submodule already initialized: ${submodule_path}" + fi +} + +submodule_paths="$( + git -C "${chipyard_dir}" config --file .gitmodules --get-regexp '^submodule\..*\.path$' 2>/dev/null \ + | awk '{ print $2 }' +)" + +owner_submodule_for_path() { + local path="$1" + local best="" + local submodule_path + + while IFS= read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + if [ "${path}" = "${submodule_path}" ] || [[ "${path}" == "${submodule_path}/"* ]]; then + if [ "${#submodule_path}" -gt "${#best}" ]; then + best="${submodule_path}" + fi + fi + done <<< "${submodule_paths}" + + printf "%s\n" "${best}" +} + +binary_paths_for_test() { + python3 - "${tests_json}" "${test_name}" "${chipyard_dir}" <<'PY' +import json +import os +import re +import shlex +import sys + +tests_json, test_name, chipyard_dir = sys.argv[1], sys.argv[2], os.path.abspath(sys.argv[3]) +sim_dir = os.path.join(chipyard_dir, "sims", "verilator") + +with open(tests_json, encoding="utf-8") as tests_file: + tests = json.load(tests_file) + +entries = tests.get(test_name, []) +env = { + "LOCAL_CHIPYARD_DIR": chipyard_dir, + "LOCAL_SIM_DIR": sim_dir, + "RISCV": os.environ.get("RISCV", "$RISCV"), +} + +def expand(value, local_env): + def replacement(match): + name = match.group("braced") or match.group("plain") + return local_env.get(name, os.environ.get(name, match.group(0))) + + return re.sub( + r"\$(?:\{(?P[A-Za-z_][A-Za-z0-9_]*)\}|(?P[A-Za-z_][A-Za-z0-9_]*))", + replacement, + value, + ) + +def maybe_print_chipyard_relative(path): + if path in ("", "none"): + return + + path = os.path.normpath(path) + if not os.path.isabs(path): + path = os.path.normpath(os.path.join(sim_dir, path)) + + try: + relpath = os.path.relpath(path, chipyard_dir) + except ValueError: + return + + if relpath == "." or relpath.startswith(".."): + return + + print(relpath) + +def collect_command_binaries(command): + if not isinstance(command, str): + return + + local_env = dict(env) + try: + tokens = shlex.split(command) + except ValueError as err: + print(f"Could not parse command for BINARY paths: {err}: {command}", file=sys.stderr) + return + + for token in tokens: + if "=" not in token: + continue + name, value = token.split("=", 1) + if not re.fullmatch(r"[A-Za-z_][A-Za-z0-9_]*", name): + continue + expanded = expand(value, local_env) + local_env[name] = expanded + if name == "BINARY": + maybe_print_chipyard_relative(expanded) + +for entry in entries: + if not isinstance(entry, dict): + continue + for binary in entry.get("binary") or []: + maybe_print_chipyard_relative(expand(str(binary), env)) + collect_command_binaries(entry.get("string")) +PY +} + +declare -A required_roots=() + +cd "${chipyard_dir}" +git config --global --add safe.directory "*" 2>/dev/null || true + +while IFS= read -r binary_path; do + [ -n "${binary_path}" ] || continue + owner="$(owner_submodule_for_path "${binary_path}")" + if [ -n "${owner}" ]; then + required_roots["${owner}"]=1 + fi +done < <(binary_paths_for_test | sort -u) + +if [ "${#required_roots[@]}" -eq 0 ]; then + echo "No BINARY paths for ${test_name} require submodule initialization" + exit 0 +fi + +for root in "${!required_roots[@]}"; do + update_submodule_if_needed "${chipyard_dir}" "${root}" +done diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index cdd15b7f31..a687212c62 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -49,6 +49,7 @@ jobs: - name: Run build setup in RHEL 9 run: | docker run --rm \ + --privileged \ --volume "${GITHUB_WORKSPACE}:/workspace" \ --workdir /workspace \ --env "CONDA_INSTALL_DIR=${RHEL_CONDA_INSTALL_DIR}" \ diff --git a/.github/workflows/config/generator-tests.json b/.github/workflows/config/generator-tests.json index 8e51e43724..b0f47b92a7 100644 --- a/.github/workflows/config/generator-tests.json +++ b/.github/workflows/config/generator-tests.json @@ -106,7 +106,7 @@ "chipyard-gemmini": [ { "custom": true, - "string": "GEMMINI_SOFTWARE_DIR=$LOCAL_CHIPYARD_DIR/generators/gemmini/software/gemmini-rocc-tests && rm -rf $GEMMINI_SOFTWARE_DIR/riscv-tests && (cd $GEMMINI_SOFTWARE_DIR && ./build.sh bareMetalC) && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal LOADMEM=1" + "string": "GEMMINI_SOFTWARE_DIR=$LOCAL_CHIPYARD_DIR/generators/gemmini/software/gemmini-rocc-tests && git -C $GEMMINI_SOFTWARE_DIR submodule update --init riscv-tests && (cd $GEMMINI_SOFTWARE_DIR && ./build.sh bareMetalC) && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal LOADMEM=1 && make run-binary-fast CONFIG=GemminiRocketConfig BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal LOADMEM=1" } ], "chipyard-mempress": [ @@ -142,13 +142,13 @@ "chipyard-manyperipherals": [ { "custom": true, - "string": "make run-binary-fast CONFIG=ManyPeripheralsRocketConfig EXTRA_SIM_FLAGS='+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img' BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashread.riscv" + "string": "make run-binary-fast CONFIG=ManyPeripheralsRocketConfig EXTRA_SIM_FLAGS=\"+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img\" BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashread.riscv" } ], "chipyard-spiflashwrite": [ { "custom": true, - "string": "make run-binary-fast CONFIG=SmallSPIFlashRocketConfig EXTRA_SIM_FLAGS='+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img' BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashwrite.riscv LOADMEM=1 && [[ \"$(xxd $LOCAL_CHIPYARD_DIR/tests/spiflash.img | grep '1337 00ff aa55 face' | wc -l)\" == \"6\" ]]" + "string": "make run-binary-fast CONFIG=SmallSPIFlashRocketConfig EXTRA_SIM_FLAGS=\"+spiflash0=$LOCAL_CHIPYARD_DIR/tests/spiflash.img\" BINARY=$LOCAL_CHIPYARD_DIR/tests/spiflashwrite.riscv LOADMEM=1 && [[ \"$(xxd $LOCAL_CHIPYARD_DIR/tests/spiflash.img | grep '1337 00ff aa55 face' | wc -l)\" == \"6\" ]]" } ], "chipyard-tethered": [ @@ -230,7 +230,7 @@ "chipyard-cva6": [ { "custom": true, - "string": "make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" + "string": "git submodule update --init generators/cva6 && git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6 && git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/axi src/axi_riscv_atomics src/common_cells src/fpga-support src/riscv-dbg src/register_interface && git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init --recursive src/fpu && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" } ], "chipyard-ibex": [ @@ -274,7 +274,7 @@ "chipyard-zephyr": [ { "custom": true, - "string": "make run-binary-fast BINARY=$LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr/build/zephyr/zephyr.elf LOADMEM=1" + "string": "bash $LOCAL_CHIPYARD_DIR/.github/scripts/build-zephyr.sh && make run-binary-fast BINARY=$LOCAL_CHIPYARD_DIR/software/zephyrproject/zephyr/build/zephyr/zephyr.elf LOADMEM=1" } ], "chipyard-radiance": [ diff --git a/.github/workflows/run-generator-tests.yml b/.github/workflows/run-generator-tests.yml index bcabe55d79..c37291685f 100644 --- a/.github/workflows/run-generator-tests.yml +++ b/.github/workflows/run-generator-tests.yml @@ -41,19 +41,52 @@ jobs: fail-fast: false matrix: test_name: ${{ fromJson(needs.test-matrix.outputs.test_names) }} - container: - image: ghcr.io/${{ github.repository }}:main - credentials: - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} env: + DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker FORCE_NON_EC2: 1 JVM_OPTS: -Xmx3200m steps: - - name: Check out pull request merge ref inside container + - name: Maximize build space + uses: jimfangx/maximize-build-space@master + with: + root-reserve-mb: 4096 + swap-size-mb: 10240 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + + - name: Move Docker storage to workspace + run: | + sudo systemctl stop docker + sudo mkdir -p "${DOCKER_DATA_ROOT}" + printf '{ "data-root": "%s" }\n' "${DOCKER_DATA_ROOT}" | sudo tee /etc/docker/daemon.json + sudo systemctl start docker + docker info --format 'Docker root: {{ .DockerRootDir }}' + + - name: Pull Chipyard container + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + image_name="ghcr.io/${GITHUB_REPOSITORY,,}:main" + echo "CHIPYARD_IMAGE=${image_name}" >> "${GITHUB_ENV}" + echo "${GITHUB_TOKEN}" | docker login ghcr.io -u "${GITHUB_ACTOR}" --password-stdin + docker pull "${image_name}" + + - name: Run generator test in container env: PR_NUMBER: ${{ inputs.pr_number }} + TEST_NAME: ${{ matrix.test_name }} run: | + docker run --rm -i \ + --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ + --env "JVM_OPTS=${JVM_OPTS}" \ + --env "PR_NUMBER=${PR_NUMBER}" \ + --env "TEST_NAME=${TEST_NAME}" \ + --env "GITHUB_SERVER_URL=${GITHUB_SERVER_URL}" \ + --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ + "${CHIPYARD_IMAGE}" \ + bash -leo pipefail <<'CONTAINER_SCRIPT' cd /root/chipyard git config --global --add safe.directory "*" git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" @@ -99,10 +132,9 @@ jobs: git rev-parse --short HEAD -# build tests in both tests/ and tests/build due to legacy paths - - name: Compile tests - run: | - cd /root/chipyard + bash .github/scripts/prepare-generator-test-submodules.sh "${TEST_NAME}" /root/chipyard + + # Build tests in both tests/ and tests/build due to legacy paths. source env.sh cmake -S tests -B tests/ -D CMAKE_BUILD_TYPE=Debug cmake --build tests --target clean @@ -111,8 +143,5 @@ jobs: cmake --build tests/build --target clean cmake --build tests/build --target all - - name: Run generator test - run: | - cd /root/chipyard - source env.sh - python3 .github/scripts/run-generator-test.py "${{ matrix.test_name }}" + python3 .github/scripts/run-generator-test.py "${TEST_NAME}" + CONTAINER_SCRIPT From 591362d3703b0d82a8e94a4346ca2246a99e9a52 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 11:49:12 -0700 Subject: [PATCH 19/69] add fsim tests --- .github/scripts/run-firesim-replace-rtl.sh | 120 ++++++++++++++++++ .../workflows/build-and-publish-container.yml | 2 +- .github/workflows/build-setup-rhel.yml | 2 + .github/workflows/config/firesim-tests.json | 14 ++ .github/workflows/config/generator-tests.json | 2 +- .github/workflows/pr-ci.yml | 9 ++ .github/workflows/run-firesim-tests.yml | 115 +++++++++++++++++ .../src/test/scala/FireSimTestSuite.scala | 103 ++++++++++++++- 8 files changed, 363 insertions(+), 4 deletions(-) create mode 100755 .github/scripts/run-firesim-replace-rtl.sh create mode 100644 .github/workflows/config/firesim-tests.json create mode 100644 .github/workflows/run-firesim-tests.yml diff --git a/.github/scripts/run-firesim-replace-rtl.sh b/.github/scripts/run-firesim-replace-rtl.sh new file mode 100755 index 0000000000..e061ea3501 --- /dev/null +++ b/.github/scripts/run-firesim-replace-rtl.sh @@ -0,0 +1,120 @@ +#!/usr/bin/env bash +set -euo pipefail + +suite="${1:?usage: run-firesim-replace-rtl.sh SUITE PR_NUMBER [CHIPYARD_DIR] [CONFIG_JSON]}" +pr_number="${2:?usage: run-firesim-replace-rtl.sh SUITE PR_NUMBER [CHIPYARD_DIR] [CONFIG_JSON]}" +chipyard_dir="${3:-/root/chipyard}" +config_json="${4:-${chipyard_dir}/.github/workflows/config/firesim-tests.json}" + +checkout_pr_merge() { + cd "${chipyard_dir}" + git config --global --add safe.directory "*" 2>/dev/null || true + git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" + + initialized_before="$(mktemp)" + submodules_after="$(mktemp)" + initialized_targets="$(mktemp)" + new_targets="$(mktemp)" + removed_targets="$(mktemp)" + + git submodule status \ + | awk 'substr($1, 1, 1) != "-" { print $2 }' \ + | sort -u > "${initialized_before}" + + git fetch --no-tags origin "pull/${pr_number}/merge" + git checkout --detach FETCH_HEAD + + git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ + | awk '{ print $2 }' \ + | sort -u > "${submodules_after}" + + comm -12 "${initialized_before}" "${submodules_after}" > "${initialized_targets}" + comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" + comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" + + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule deinit --force -- "${submodule_path}" || true + rm -rf -- "${submodule_path}" + done < "${removed_targets}" + + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule sync -- "${submodule_path}" + git submodule update -- "${submodule_path}" + done < "${initialized_targets}" + + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule init -- "${submodule_path}" + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" + done < "${new_targets}" + + git rev-parse --short HEAD +} + +prepare_firesim_environment() { + cd "${chipyard_dir}" + source env.sh + cd sims/firesim + source sourceme-manager.sh --skip-ssh-setup +} + +prepare_f2_mgmt_tools() { + cd "${chipyard_dir}/sims/firesim/platforms/f2/aws-fpga-firesim-f2/sdk/userspace" + export AWS_FPGA_REPO_DIR + AWS_FPGA_REPO_DIR="$(git rev-parse --show-toplevel)" + bash ./mkall_fpga_mgmt_tools.sh +} + +run_firesim_scala_test() { + local test_class="$1" + + if ! [[ "${test_class}" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then + echo "Invalid FireSim Scala test class name: ${test_class}" >&2 + exit 1 + fi + + if ! grep -Eq "class[[:space:]]+${test_class}([[:space:]({]|$)" \ + "${chipyard_dir}/generators/firechip/chip/src/test/scala/FireSimTestSuite.scala"; then + echo "FireSim Scala test class does not exist: ${test_class}" >&2 + exit 1 + fi + + cd "${chipyard_dir}" + echo "========== FireSim Scala test: firechip.chip.${test_class} ==========" + TEST_DISABLE_VCS=1 TEST_DISABLE_VIVADO=1 sbt "project firechip; testOnly firechip.chip.${test_class}" +} + +checkout_pr_merge +prepare_firesim_environment + +if [ "${suite}" = "f2" ]; then + prepare_f2_mgmt_tools +fi + +while IFS= read -r test_class; do + run_firesim_scala_test "${test_class}" +done < <( + python3 - "${config_json}" "${suite}" <<'PY' +import json +import sys + +config_json, suite = sys.argv[1], sys.argv[2] +with open(config_json, encoding="utf-8") as config_file: + config = json.load(config_file) + +if suite not in config: + print(f"Unknown FireSim test suite: {suite}", file=sys.stderr) + sys.exit(1) + +tests = config[suite] +if not isinstance(tests, list): + print(f"FireSim suite {suite} must be a list of Scala test class names", file=sys.stderr) + sys.exit(1) + +for test in tests: + print(test) +PY +) diff --git a/.github/workflows/build-and-publish-container.yml b/.github/workflows/build-and-publish-container.yml index 95aea573e9..0426bf51d1 100644 --- a/.github/workflows/build-and-publish-container.yml +++ b/.github/workflows/build-and-publish-container.yml @@ -81,4 +81,4 @@ jobs: tags: | ${{ steps.image.outputs.image_ref }} outputs: | - type=image,push=true,oci-mediatypes=true,compression=zstd,compression-level=6,force-compression=true + type=image,push=true,oci-mediatypes=true,compression=zstd,compression-level=8,force-compression=true diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index a687212c62..33bc05abb0 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -63,6 +63,7 @@ jobs: git \ gzip \ kmod \ + libguestfs-tools-c \ make \ patch \ procps-ng \ @@ -73,6 +74,7 @@ jobs: wget \ which \ xz + command -v guestmount git config --global --add safe.directory "*" diff --git a/.github/workflows/config/firesim-tests.json b/.github/workflows/config/firesim-tests.json new file mode 100644 index 0000000000..7d6c26c8e9 --- /dev/null +++ b/.github/workflows/config/firesim-tests.json @@ -0,0 +1,14 @@ +{ + "onprem": [ + "RocketU250Tests", + "LargeBoomU250Tests", + "ShuttleU250Tests", + "RocketVCU118Tests" + ], + "f2": [ + "RocketF2Tests", + "GemminiRocketF2Tests", + "MegaBoomF2Tests", + "ShuttleF2Tests" + ] +} diff --git a/.github/workflows/config/generator-tests.json b/.github/workflows/config/generator-tests.json index b0f47b92a7..bdd2a447eb 100644 --- a/.github/workflows/config/generator-tests.json +++ b/.github/workflows/config/generator-tests.json @@ -230,7 +230,7 @@ "chipyard-cva6": [ { "custom": true, - "string": "git submodule update --init generators/cva6 && git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6 && git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/axi src/axi_riscv_atomics src/common_cells src/fpga-support src/riscv-dbg src/register_interface && git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init --recursive src/fpu && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" + "string": "git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6 && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" } ], "chipyard-ibex": [ diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 8ac2065164..1765e0f8fa 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -51,3 +51,12 @@ jobs: with: pr_number: ${{ github.event.pull_request.number }} secrets: inherit + + run-firesim-tests: + name: run firesim tests + needs: check-ci-disable + if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} + uses: ./.github/workflows/run-firesim-tests.yml + with: + pr_number: ${{ github.event.pull_request.number }} + secrets: inherit diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml new file mode 100644 index 0000000000..112fee5955 --- /dev/null +++ b/.github/workflows/run-firesim-tests.yml @@ -0,0 +1,115 @@ +name: run firesim tests + +on: + workflow_call: + inputs: + pr_number: + required: true + type: number + +permissions: + contents: read + packages: read + +defaults: + run: + shell: bash -leo pipefail {0} + +env: + FORCE_NON_EC2: 1 + JVM_OPTS: -Xmx3200m + +jobs: + firesim-onprem-tests: + name: FireSim Golden Gate Compile + rvi-bmark-tests OnPrem + runs-on: ubuntu-24.04 + timeout-minutes: 180 + env: + DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker + steps: + - name: Maximize build space + uses: jimfangx/maximize-build-space@master + with: + root-reserve-mb: 4096 + swap-size-mb: 10240 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + + - name: Move Docker storage to workspace + run: | + sudo systemctl stop docker + sudo mkdir -p "${DOCKER_DATA_ROOT}" + printf '{ "data-root": "%s" }\n' "${DOCKER_DATA_ROOT}" | sudo tee /etc/docker/daemon.json + sudo systemctl start docker + docker info --format 'Docker root: {{ .DockerRootDir }}' + + - name: Pull Chipyard container + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + image_name="ghcr.io/${GITHUB_REPOSITORY,,}:main" + echo "CHIPYARD_IMAGE=${image_name}" >> "${GITHUB_ENV}" + echo "${GITHUB_TOKEN}" | docker login ghcr.io -u "${GITHUB_ACTOR}" --password-stdin + docker pull "${image_name}" + + - name: Run FireSim On-Prem tests + env: + PR_NUMBER: ${{ inputs.pr_number }} + run: | + docker run --rm \ + --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ + --env "JVM_OPTS=${JVM_OPTS}" \ + --env "PR_NUMBER=${PR_NUMBER}" \ + --env "GITHUB_SERVER_URL=${GITHUB_SERVER_URL}" \ + --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ + "${CHIPYARD_IMAGE}" \ + bash -leo pipefail -c 'cd /root/chipyard && .github/scripts/run-firesim-replace-rtl.sh onprem "${PR_NUMBER}" /root/chipyard' + + firesim-f2-tests: + name: FireSim Golden Gate Compile + rvi-bmark-tests AWS F2 + runs-on: ubuntu-24.04 + timeout-minutes: 180 + env: + DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker + steps: + - name: Maximize build space + uses: jimfangx/maximize-build-space@master + with: + root-reserve-mb: 4096 + swap-size-mb: 10240 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + + - name: Move Docker storage to workspace + run: | + sudo systemctl stop docker + sudo mkdir -p "${DOCKER_DATA_ROOT}" + printf '{ "data-root": "%s" }\n' "${DOCKER_DATA_ROOT}" | sudo tee /etc/docker/daemon.json + sudo systemctl start docker + docker info --format 'Docker root: {{ .DockerRootDir }}' + + - name: Pull Chipyard container + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + image_name="ghcr.io/${GITHUB_REPOSITORY,,}:main" + echo "CHIPYARD_IMAGE=${image_name}" >> "${GITHUB_ENV}" + echo "${GITHUB_TOKEN}" | docker login ghcr.io -u "${GITHUB_ACTOR}" --password-stdin + docker pull "${image_name}" + + - name: Run FireSim AWS F2 tests + env: + PR_NUMBER: ${{ inputs.pr_number }} + run: | + docker run --rm \ + --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ + --env "JVM_OPTS=${JVM_OPTS}" \ + --env "PR_NUMBER=${PR_NUMBER}" \ + --env "GITHUB_SERVER_URL=${GITHUB_SERVER_URL}" \ + --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ + "${CHIPYARD_IMAGE}" \ + bash -leo pipefail -c 'cd /root/chipyard && .github/scripts/run-firesim-replace-rtl.sh f2 "${PR_NUMBER}" /root/chipyard' diff --git a/generators/firechip/chip/src/test/scala/FireSimTestSuite.scala b/generators/firechip/chip/src/test/scala/FireSimTestSuite.scala index e4d889bb66..f0c0c39625 100644 --- a/generators/firechip/chip/src/test/scala/FireSimTestSuite.scala +++ b/generators/firechip/chip/src/test/scala/FireSimTestSuite.scala @@ -17,7 +17,10 @@ import freechips.rocketchip.system.TestGeneration._ import freechips.rocketchip.system.DefaultTestSuites._ object BaseConfigs { - case object F1 extends BasePlatformConfig("f1", Seq("BaseF1Config")) + case object F1 extends BasePlatformConfig("f1", Seq("BaseF1Config")) + case object F2 extends BasePlatformConfig("f2", Seq("BaseF2Config")) + case object U250 extends BasePlatformConfig("xilinx_alveo_u250", Seq("BaseXilinxAlveoU250Config")) + case object VCU118 extends BasePlatformConfig("xilinx_vcu118", Seq("BaseXilinxVCU118Config")) } abstract class FireSimTestSuite( @@ -83,6 +86,7 @@ abstract class FireSimTestSuite( } } +// AWS F1 tests class SimpleRocketF1Tests extends FireSimTestSuite( "FireSim", @@ -131,11 +135,106 @@ class CVA6F1Tests Seq("FRFCFS16GBQuadRankLLC4MB"), ) -class CITests +// F2 platform tests +class RocketF2Tests + extends FireSimTestSuite( + "FireSim", + "WithDefaultFireSimBridges_WithFireSimHighPerfConfigTweaks_chipyard.RocketConfig", + BaseConfigs.F2, + ) + +class MultiRocketF2Tests + extends FireSimTestSuite( + "FireSim", + "WithNIC_WithDefaultFireSimBridges_WithFireSimHighPerfConfigTweaks_chipyard.QuadRocketConfig", + BaseConfigs.F2, + Seq("WithSynthAsserts", "WithModelMultiThreading", "FRFCFS16GBQuadRankLLC4MB"), + ) + +class GemminiRocketF2Tests + extends FireSimTestSuite( + "FireSim", + "FireSimLeanGemminiRocketConfig", + BaseConfigs.F2, + ) + +class LargeBoomF2Tests + extends FireSimTestSuite( + "FireSim", + "WithNIC_WithDefaultFireSimBridges_WithFireSimHighPerfConfigTweaks_chipyard.LargeBoomV3Config", + BaseConfigs.F2, + Seq("WithAutoILA_FRFCFS16GBQuadRankLLC4MB"), + ) + +class MegaBoomF2Tests + extends FireSimTestSuite( + "FireSim", + "WithDefaultFireSimBridges_WithFireSimTestChipConfigTweaks_chipyard.MegaBoomV3Config", + BaseConfigs.F2, + Seq("WithAutoILA_FRFCFS16GBQuadRankLLC4MB"), + ) + +class ShuttleF2Tests + extends FireSimTestSuite( + "FireSim", + "FireSimGENV256D128ShuttleConfig", + BaseConfigs.F2, + Seq("WithAutoILA_FRFCFS16GBQuadRankLLC4MB"), + ) + +// U250 platform tests +class RocketU250Tests + extends FireSimTestSuite( + "FireSim", + "FireSimRocketConfig", + BaseConfigs.U250, + ) + +class QuadRocketU250Tests + extends FireSimTestSuite( + "FireSim", + "FireSimQuadRocketConfig", + BaseConfigs.U250, + ) + +class LargeBoomU250Tests + extends FireSimTestSuite( + "FireSim", + "FireSimLargeBoomConfig", + BaseConfigs.U250, + ) + +class ShuttleU250Tests + extends FireSimTestSuite( + "FireSim", + "FireSimGENV256D128ShuttleConfig", + BaseConfigs.U250, + ) + +// VCU118 platform tests +class RocketVCU118Tests + extends FireSimTestSuite( + "FireSim", + "FireSimRocket4GiBDRAMConfig", + BaseConfigs.VCU118, + ) + +class AllTests extends Suites( new SimpleRocketF1Tests, new RocketF1Tests, new MultiRocketF1Tests, new BoomF1Tests, new RocketNICF1Tests, + new RocketF2Tests, + new MultiRocketF2Tests, + new GemminiRocketF2Tests, + new LargeBoomF2Tests, + new MegaBoomF2Tests, + new ShuttleF2Tests, + new RocketU250Tests, + new QuadRocketU250Tests, + new LargeBoomU250Tests, + new ShuttleU250Tests, + new RocketVCU118Tests, ) From d321c63e04be814f4f49f080e0f7c459b9ca62d8 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 12:33:30 -0700 Subject: [PATCH 20/69] fixes --- .github/workflows/build-setup-rhel.yml | 5 +++-- .github/workflows/config/generator-tests.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 33bc05abb0..a007533d7d 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -63,7 +63,6 @@ jobs: git \ gzip \ kmod \ - libguestfs-tools-c \ make \ patch \ procps-ng \ @@ -74,7 +73,9 @@ jobs: wget \ which \ xz - command -v guestmount + printf "root ALL=(ALL) NOPASSWD:ALL\n" > /etc/sudoers.d/ci-root + chmod 0440 /etc/sudoers.d/ci-root + sudo -ln true git config --global --add safe.directory "*" diff --git a/.github/workflows/config/generator-tests.json b/.github/workflows/config/generator-tests.json index bdd2a447eb..9641462f6e 100644 --- a/.github/workflows/config/generator-tests.json +++ b/.github/workflows/config/generator-tests.json @@ -230,7 +230,7 @@ "chipyard-cva6": [ { "custom": true, - "string": "git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6 && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" + "string": "test -d generators/cva6 || git submodule update --init generators/cva6 && git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6 && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" } ], "chipyard-ibex": [ From d293a294a2307738b54118d1f5f025f2a1e9989b Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 13:14:02 -0700 Subject: [PATCH 21/69] fixes --- .github/scripts/run-firesim-replace-rtl.sh | 26 +++++++++++++++++-- .github/workflows/build-setup-rhel.yml | 6 ++--- .github/workflows/config/generator-tests.json | 2 +- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/.github/scripts/run-firesim-replace-rtl.sh b/.github/scripts/run-firesim-replace-rtl.sh index e061ea3501..e9d9142747 100755 --- a/.github/scripts/run-firesim-replace-rtl.sh +++ b/.github/scripts/run-firesim-replace-rtl.sh @@ -6,6 +6,28 @@ pr_number="${2:?usage: run-firesim-replace-rtl.sh SUITE PR_NUMBER [CHIPYARD_DIR] chipyard_dir="${3:-/root/chipyard}" config_json="${4:-${chipyard_dir}/.github/workflows/config/firesim-tests.json}" +source_with_nounset_disabled() { + local script="$1" + shift + local had_nounset=0 + + case "$-" in + *u*) + had_nounset=1 + set +u + ;; + esac + + # Conda activation/deactivation hooks can reference optional backup + # variables that are unset under bash nounset. + # shellcheck disable=SC1090 + source "${script}" "$@" + + if [ "${had_nounset}" -eq 1 ]; then + set -u + fi +} + checkout_pr_merge() { cd "${chipyard_dir}" git config --global --add safe.directory "*" 2>/dev/null || true @@ -56,9 +78,9 @@ checkout_pr_merge() { prepare_firesim_environment() { cd "${chipyard_dir}" - source env.sh + source_with_nounset_disabled env.sh cd sims/firesim - source sourceme-manager.sh --skip-ssh-setup + source_with_nounset_disabled sourceme-manager.sh --skip-ssh-setup } prepare_f2_mgmt_tools() { diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index a007533d7d..69a1d0a89b 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -61,6 +61,7 @@ jobs: bzip2 \ findutils \ git \ + guestfs-tools \ gzip \ kmod \ make \ @@ -73,9 +74,8 @@ jobs: wget \ which \ xz - printf "root ALL=(ALL) NOPASSWD:ALL\n" > /etc/sudoers.d/ci-root - chmod 0440 /etc/sudoers.d/ci-root - sudo -ln true + command -v guestmount + command -v guestunmount git config --global --add safe.directory "*" diff --git a/.github/workflows/config/generator-tests.json b/.github/workflows/config/generator-tests.json index 9641462f6e..8003c560dc 100644 --- a/.github/workflows/config/generator-tests.json +++ b/.github/workflows/config/generator-tests.json @@ -230,7 +230,7 @@ "chipyard-cva6": [ { "custom": true, - "string": "test -d generators/cva6 || git submodule update --init generators/cva6 && git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6 && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" + "string": "if ! git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" rev-parse --is-inside-work-tree >/dev/null 2>&1; then git -C \"$LOCAL_CHIPYARD_DIR\" submodule update --init generators/cva6; fi && git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" submodule update --init src/main/resources/cva6/vsrc/cva6 && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" } ], "chipyard-ibex": [ From 7f06a250bd981584acd752705b520f519e515fc1 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 14:51:30 -0700 Subject: [PATCH 22/69] submodule & fsim fixes --- .github/scripts/run-firesim-replace-rtl.sh | 4 +- .github/workflows/build-setup-rhel.yml | 48 ++++++++++++++----- .github/workflows/config/generator-tests.json | 2 +- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/.github/scripts/run-firesim-replace-rtl.sh b/.github/scripts/run-firesim-replace-rtl.sh index e9d9142747..787d96d9ce 100755 --- a/.github/scripts/run-firesim-replace-rtl.sh +++ b/.github/scripts/run-firesim-replace-rtl.sh @@ -77,9 +77,7 @@ checkout_pr_merge() { } prepare_firesim_environment() { - cd "${chipyard_dir}" - source_with_nounset_disabled env.sh - cd sims/firesim + cd "${chipyard_dir}/sims/firesim" source_with_nounset_disabled sourceme-manager.sh --skip-ssh-setup } diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 69a1d0a89b..6fc2898c0d 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -19,6 +19,7 @@ jobs: DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker FORCE_NON_EC2: 1 JVM_OPTS: -Xmx3200m + RHEL_IMAGE: registry.redhat.io/container-native-virtualization/libguestfs-tools-rhel9:v4.16 RHEL_CONDA_INSTALL_DIR: /workspace/.ci/rhel-conda steps: - name: Maximize build space @@ -55,39 +56,62 @@ jobs: --env "CONDA_INSTALL_DIR=${RHEL_CONDA_INSTALL_DIR}" \ --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ --env "JVM_OPTS=${JVM_OPTS}" \ - registry.access.redhat.com/ubi9/ubi:latest \ + "${RHEL_IMAGE}" \ bash -leo pipefail -c ' dnf install -y \ bzip2 \ findutils \ git \ - guestfs-tools \ gzip \ kmod \ make \ patch \ procps-ng \ python3 \ + shadow-utils \ sudo \ tar \ unzip \ + util-linux \ wget \ which \ xz command -v guestmount command -v guestunmount - git config --global --add safe.directory "*" + # Run build-setup as the mounted workspace owner so FireMarshal + # cannot use passwordless sudo and falls back to guestmount. + workspace_uid="$(stat -c %u /workspace)" + workspace_gid="$(stat -c %g /workspace)" - mkdir -p "$(dirname "${CONDA_INSTALL_DIR}")" - wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" - bash Miniforge3.sh -b -p "${CONDA_INSTALL_DIR}" - source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" - if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then - source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" + if ! getent group "${workspace_gid}" >/dev/null; then + groupadd -g "${workspace_gid}" chipyard-ci fi - conda activate + workspace_group="$(getent group "${workspace_gid}" | cut -d: -f1)" - ./build-setup.sh riscv-tools - grep -F "Setup complete!" build-setup.log + if ! getent passwd "${workspace_uid}" >/dev/null; then + useradd -m -u "${workspace_uid}" -g "${workspace_group}" chipyard-ci + fi + workspace_user="$(getent passwd "${workspace_uid}" | cut -d: -f1)" + workspace_home="$(getent passwd "${workspace_uid}" | cut -d: -f6)" + + runuser -u "${workspace_user}" -- env \ + "CONDA_INSTALL_DIR=${CONDA_INSTALL_DIR}" \ + "FORCE_NON_EC2=${FORCE_NON_EC2}" \ + "JVM_OPTS=${JVM_OPTS}" \ + "HOME=${workspace_home}" \ + bash -leo pipefail -c " + cd /workspace + git config --global --add safe.directory \"*\" + mkdir -p \"\$(dirname \"\${CONDA_INSTALL_DIR}\")\" + wget -O Miniforge3.sh \"https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-\$(uname)-\$(uname -m).sh\" + bash Miniforge3.sh -b -p \"\${CONDA_INSTALL_DIR}\" + source \"\${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh\" + if [ -f \"\${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh\" ]; then + source \"\${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh\" + fi + conda activate + ./build-setup.sh riscv-tools + grep -F \"Setup complete!\" build-setup.log + " ' diff --git a/.github/workflows/config/generator-tests.json b/.github/workflows/config/generator-tests.json index 8003c560dc..1b7deb582d 100644 --- a/.github/workflows/config/generator-tests.json +++ b/.github/workflows/config/generator-tests.json @@ -230,7 +230,7 @@ "chipyard-cva6": [ { "custom": true, - "string": "if ! git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" rev-parse --is-inside-work-tree >/dev/null 2>&1; then git -C \"$LOCAL_CHIPYARD_DIR\" submodule update --init generators/cva6; fi && git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" submodule update --init src/main/resources/cva6/vsrc/cva6 && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" + "string": "if ! git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" rev-parse --is-inside-work-tree >/dev/null 2>&1; then git -C \"$LOCAL_CHIPYARD_DIR\" submodule update --init generators/cva6; fi && git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" submodule update --init --recursive && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" } ], "chipyard-ibex": [ From 442cba3407da6ab32b2b6879c0838ae78dc3d5a0 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 14:52:36 -0700 Subject: [PATCH 23/69] patch cva6 speed --- .github/workflows/config/generator-tests.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/config/generator-tests.json b/.github/workflows/config/generator-tests.json index 1b7deb582d..d09c78d90e 100644 --- a/.github/workflows/config/generator-tests.json +++ b/.github/workflows/config/generator-tests.json @@ -230,7 +230,7 @@ "chipyard-cva6": [ { "custom": true, - "string": "if ! git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" rev-parse --is-inside-work-tree >/dev/null 2>&1; then git -C \"$LOCAL_CHIPYARD_DIR\" submodule update --init generators/cva6; fi && git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" submodule update --init --recursive && make run-binary-fast CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" + "string": "if ! git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" rev-parse --is-inside-work-tree >/dev/null 2>&1; then git -C \"$LOCAL_CHIPYARD_DIR\" submodule update --init generators/cva6; fi && git -C \"$LOCAL_CHIPYARD_DIR/generators/cva6\" submodule update --init --recursive && make run-binary-fast -j$(nproc) CONFIG=CVA6Config BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/multiply.riscv" } ], "chipyard-ibex": [ From f6093b76c8fdcbe95c3235669bcba1c62e1d0453 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 15:31:45 -0700 Subject: [PATCH 24/69] i hate rhel --- .../{run-firesim-replace-rtl.sh => run-firesim-tests.sh} | 4 ++-- .github/workflows/build-setup-rhel.yml | 4 +++- .github/workflows/run-firesim-tests.yml | 6 ++++-- 3 files changed, 9 insertions(+), 5 deletions(-) rename .github/scripts/{run-firesim-replace-rtl.sh => run-firesim-tests.sh} (95%) diff --git a/.github/scripts/run-firesim-replace-rtl.sh b/.github/scripts/run-firesim-tests.sh similarity index 95% rename from .github/scripts/run-firesim-replace-rtl.sh rename to .github/scripts/run-firesim-tests.sh index 787d96d9ce..d3a3a5f682 100755 --- a/.github/scripts/run-firesim-replace-rtl.sh +++ b/.github/scripts/run-firesim-tests.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash set -euo pipefail -suite="${1:?usage: run-firesim-replace-rtl.sh SUITE PR_NUMBER [CHIPYARD_DIR] [CONFIG_JSON]}" -pr_number="${2:?usage: run-firesim-replace-rtl.sh SUITE PR_NUMBER [CHIPYARD_DIR] [CONFIG_JSON]}" +suite="${1:?usage: run-firesim-tests.sh SUITE PR_NUMBER [CHIPYARD_DIR] [CONFIG_JSON]}" +pr_number="${2:?usage: run-firesim-tests.sh SUITE PR_NUMBER [CHIPYARD_DIR] [CONFIG_JSON]}" chipyard_dir="${3:-/root/chipyard}" config_json="${4:-${chipyard_dir}/.github/workflows/config/firesim-tests.json}" diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 6fc2898c0d..387e730da3 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -19,7 +19,7 @@ jobs: DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker FORCE_NON_EC2: 1 JVM_OPTS: -Xmx3200m - RHEL_IMAGE: registry.redhat.io/container-native-virtualization/libguestfs-tools-rhel9:v4.16 + RHEL_IMAGE: registry.access.redhat.com/ubi9/ubi:latest RHEL_CONDA_INSTALL_DIR: /workspace/.ci/rhel-conda steps: - name: Maximize build space @@ -76,6 +76,8 @@ jobs: wget \ which \ xz + dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm + dnf install -y --setopt=install_weak_deps=False guestfs-tools command -v guestmount command -v guestunmount diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index 112fee5955..37cc5fdc83 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -64,8 +64,9 @@ jobs: --env "PR_NUMBER=${PR_NUMBER}" \ --env "GITHUB_SERVER_URL=${GITHUB_SERVER_URL}" \ --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ + --entrypoint /bin/bash \ "${CHIPYARD_IMAGE}" \ - bash -leo pipefail -c 'cd /root/chipyard && .github/scripts/run-firesim-replace-rtl.sh onprem "${PR_NUMBER}" /root/chipyard' + -leo pipefail -c 'cd /root/chipyard && .github/scripts/run-firesim-tests.sh onprem "${PR_NUMBER}" /root/chipyard' firesim-f2-tests: name: FireSim Golden Gate Compile + rvi-bmark-tests AWS F2 @@ -111,5 +112,6 @@ jobs: --env "PR_NUMBER=${PR_NUMBER}" \ --env "GITHUB_SERVER_URL=${GITHUB_SERVER_URL}" \ --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ + --entrypoint /bin/bash \ "${CHIPYARD_IMAGE}" \ - bash -leo pipefail -c 'cd /root/chipyard && .github/scripts/run-firesim-replace-rtl.sh f2 "${PR_NUMBER}" /root/chipyard' + -leo pipefail -c 'cd /root/chipyard && .github/scripts/run-firesim-tests.sh f2 "${PR_NUMBER}" /root/chipyard' From 5e506fb34418de1d8ff1712568d4d44d834ba3c6 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 17:38:26 -0700 Subject: [PATCH 25/69] i hate rhel --- .../workflows/build-and-publish-container.yml | 2 +- .github/workflows/build-setup-rhel.yml | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-publish-container.yml b/.github/workflows/build-and-publish-container.yml index 0426bf51d1..ebe2f65442 100644 --- a/.github/workflows/build-and-publish-container.yml +++ b/.github/workflows/build-and-publish-container.yml @@ -81,4 +81,4 @@ jobs: tags: | ${{ steps.image.outputs.image_ref }} outputs: | - type=image,push=true,oci-mediatypes=true,compression=zstd,compression-level=8,force-compression=true + type=image,push=true,oci-mediatypes=true,compression=zstd,compression-level=15,force-compression=true diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 387e730da3..32e7aa500d 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -77,7 +77,26 @@ jobs: which \ xz dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm - dnf install -y --setopt=install_weak_deps=False guestfs-tools + cat > /etc/yum.repos.d/almalinux-guestfs.repo <<'"'"'EOF'"'"' + [almalinux-baseos] + name=AlmaLinux 9 BaseOS + baseurl=https://repo.almalinux.org/almalinux/9/BaseOS/$basearch/os/ + enabled=1 + gpgcheck=0 + + [almalinux-appstream] + name=AlmaLinux 9 AppStream + baseurl=https://repo.almalinux.org/almalinux/9/AppStream/$basearch/os/ + enabled=1 + gpgcheck=0 + + [almalinux-crb] + name=AlmaLinux 9 CRB + baseurl=https://repo.almalinux.org/almalinux/9/CRB/$basearch/os/ + enabled=1 + gpgcheck=0 + EOF + dnf install -y --setopt=install_weak_deps=False libguestfs-tools libguestfs-tools-c command -v guestmount command -v guestunmount From dccd638ff56b2301151a640655b1ac06d60993d5 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 18:16:58 -0700 Subject: [PATCH 26/69] fix checkout --- .github/scripts/run-firesim-tests.sh | 49 --------- .github/workflows/build-setup-rhel.yml | 14 ++- .github/workflows/build-setup-ubuntu.yml | 14 ++- .github/workflows/pr-ci.yml | 4 + .github/workflows/run-firesim-tests.yml | 118 +++++++++++++++++++++- .github/workflows/run-generator-tests.yml | 14 ++- 6 files changed, 159 insertions(+), 54 deletions(-) diff --git a/.github/scripts/run-firesim-tests.sh b/.github/scripts/run-firesim-tests.sh index d3a3a5f682..a5c7daa177 100755 --- a/.github/scripts/run-firesim-tests.sh +++ b/.github/scripts/run-firesim-tests.sh @@ -28,54 +28,6 @@ source_with_nounset_disabled() { fi } -checkout_pr_merge() { - cd "${chipyard_dir}" - git config --global --add safe.directory "*" 2>/dev/null || true - git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" - - initialized_before="$(mktemp)" - submodules_after="$(mktemp)" - initialized_targets="$(mktemp)" - new_targets="$(mktemp)" - removed_targets="$(mktemp)" - - git submodule status \ - | awk 'substr($1, 1, 1) != "-" { print $2 }' \ - | sort -u > "${initialized_before}" - - git fetch --no-tags origin "pull/${pr_number}/merge" - git checkout --detach FETCH_HEAD - - git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ - | awk '{ print $2 }' \ - | sort -u > "${submodules_after}" - - comm -12 "${initialized_before}" "${submodules_after}" > "${initialized_targets}" - comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" - comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" - - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule deinit --force -- "${submodule_path}" || true - rm -rf -- "${submodule_path}" - done < "${removed_targets}" - - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule sync -- "${submodule_path}" - git submodule update -- "${submodule_path}" - done < "${initialized_targets}" - - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule init -- "${submodule_path}" - git submodule sync -- "${submodule_path}" - git submodule update --init -- "${submodule_path}" - done < "${new_targets}" - - git rev-parse --short HEAD -} - prepare_firesim_environment() { cd "${chipyard_dir}/sims/firesim" source_with_nounset_disabled sourceme-manager.sh --skip-ssh-setup @@ -107,7 +59,6 @@ run_firesim_scala_test() { TEST_DISABLE_VCS=1 TEST_DISABLE_VIVADO=1 sbt "project firechip; testOnly firechip.chip.${test_class}" } -checkout_pr_merge prepare_firesim_environment if [ "${suite}" = "f2" ]; then diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 32e7aa500d..411c4ac52a 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -2,6 +2,10 @@ name: build-setup rhel on: workflow_call: + inputs: + pr_number: + required: true + type: number permissions: contents: read @@ -32,8 +36,16 @@ jobs: remove-haskell: 'true' remove-codeql: 'true' - - name: Check out pull request + - name: Check out main uses: actions/checkout@v4 + with: + ref: main + + - name: Refresh pull request merge ref + run: | + git fetch --no-tags origin "pull/${{ inputs.pr_number }}/merge" + git checkout --detach FETCH_HEAD + git rev-parse --short HEAD - name: Move Docker storage to workspace run: | diff --git a/.github/workflows/build-setup-ubuntu.yml b/.github/workflows/build-setup-ubuntu.yml index 5da1036699..6854cb0a6f 100644 --- a/.github/workflows/build-setup-ubuntu.yml +++ b/.github/workflows/build-setup-ubuntu.yml @@ -2,6 +2,10 @@ name: build-setup ubuntu on: workflow_call: + inputs: + pr_number: + required: true + type: number permissions: contents: read @@ -30,8 +34,16 @@ jobs: remove-haskell: 'true' remove-codeql: 'true' - - name: Check out pull request + - name: Check out main uses: actions/checkout@v4 + with: + ref: main + + - name: Refresh pull request merge ref + run: | + git fetch --no-tags origin "pull/${{ inputs.pr_number }}/merge" + git checkout --detach FETCH_HEAD + git rev-parse --short HEAD - name: Install conda run: | diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 1765e0f8fa..703d2c742e 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -36,12 +36,16 @@ jobs: needs: check-ci-disable if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} uses: ./.github/workflows/build-setup-ubuntu.yml + with: + pr_number: ${{ github.event.pull_request.number }} build-setup-rhel: name: build-setup rhel needs: check-ci-disable if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} uses: ./.github/workflows/build-setup-rhel.yml + with: + pr_number: ${{ github.event.pull_request.number }} run-generator-tests: name: run generator tests diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index 37cc5fdc83..0d3e0e1d99 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -66,7 +66,64 @@ jobs: --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ --entrypoint /bin/bash \ "${CHIPYARD_IMAGE}" \ - -leo pipefail -c 'cd /root/chipyard && .github/scripts/run-firesim-tests.sh onprem "${PR_NUMBER}" /root/chipyard' + -leo pipefail -c ' + cd /root/chipyard + git config --global --add safe.directory "*" + git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" + + # Record the submodules initialized in the pulled container. + initialized_before="$(mktemp)" + submodules_after="$(mktemp)" + initialized_targets="$(mktemp)" + new_targets="$(mktemp)" + removed_targets="$(mktemp)" + + git submodule status \ + | awk 'substr($1, 1, 1) != "-" { print $2 }' \ + | sort -u > "${initialized_before}" + + # Checkout main in the container. + git fetch --no-tags origin main + git checkout --detach FETCH_HEAD + + # Move to GitHub's current PR merge commit. + git fetch --no-tags origin "pull/${PR_NUMBER}/merge" + git checkout --detach FETCH_HEAD + + # Compare submodule membership before and after the PR checkout. + git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ + | awk '{ print $2 }' \ + | sort -u > "${submodules_after}" + + comm -12 "${initialized_before}" "${submodules_after}" > "${initialized_targets}" + comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" + comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" + + # Remove submodules deleted by the PR. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule deinit --force -- "${submodule_path}" || true + rm -rf -- "${submodule_path}" + done < "${removed_targets}" + + # Update submodules already initialized in the container. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" + done < "${initialized_targets}" + + # Initialize submodules newly added by the PR. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule init -- "${submodule_path}" + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" + done < "${new_targets}" + + git rev-parse --short HEAD + .github/scripts/run-firesim-tests.sh onprem "${PR_NUMBER}" /root/chipyard + ' firesim-f2-tests: name: FireSim Golden Gate Compile + rvi-bmark-tests AWS F2 @@ -114,4 +171,61 @@ jobs: --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ --entrypoint /bin/bash \ "${CHIPYARD_IMAGE}" \ - -leo pipefail -c 'cd /root/chipyard && .github/scripts/run-firesim-tests.sh f2 "${PR_NUMBER}" /root/chipyard' + -leo pipefail -c ' + cd /root/chipyard + git config --global --add safe.directory "*" + git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" + + # Record the submodules initialized in the pulled container. + initialized_before="$(mktemp)" + submodules_after="$(mktemp)" + initialized_targets="$(mktemp)" + new_targets="$(mktemp)" + removed_targets="$(mktemp)" + + git submodule status \ + | awk 'substr($1, 1, 1) != "-" { print $2 }' \ + | sort -u > "${initialized_before}" + + # Checkout main in the container. + git fetch --no-tags origin main + git checkout --detach FETCH_HEAD + + # Move to GitHub's current PR merge commit. + git fetch --no-tags origin "pull/${PR_NUMBER}/merge" + git checkout --detach FETCH_HEAD + + # Compare submodule membership before and after the PR checkout. + git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ + | awk '{ print $2 }' \ + | sort -u > "${submodules_after}" + + comm -12 "${initialized_before}" "${submodules_after}" > "${initialized_targets}" + comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" + comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" + + # Remove submodules deleted by the PR. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule deinit --force -- "${submodule_path}" || true + rm -rf -- "${submodule_path}" + done < "${removed_targets}" + + # Update submodules already initialized in the container. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" + done < "${initialized_targets}" + + # Initialize submodules newly added by the PR. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule init -- "${submodule_path}" + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" + done < "${new_targets}" + + git rev-parse --short HEAD + .github/scripts/run-firesim-tests.sh f2 "${PR_NUMBER}" /root/chipyard + ' diff --git a/.github/workflows/run-generator-tests.yml b/.github/workflows/run-generator-tests.yml index c37291685f..8ab7b651a9 100644 --- a/.github/workflows/run-generator-tests.yml +++ b/.github/workflows/run-generator-tests.yml @@ -91,18 +91,26 @@ jobs: git config --global --add safe.directory "*" git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" + # Record the submodules initialized in the pulled container. initialized_before="$(mktemp)" submodules_after="$(mktemp)" initialized_targets="$(mktemp)" new_targets="$(mktemp)" removed_targets="$(mktemp)" + git submodule status \ | awk 'substr($1, 1, 1) != "-" { print $2 }' \ | sort -u > "${initialized_before}" + # Checkout main in the container. + git fetch --no-tags origin main + git checkout --detach FETCH_HEAD + + # Move to GitHub's current PR merge commit. git fetch --no-tags origin "pull/${PR_NUMBER}/merge" git checkout --detach FETCH_HEAD + # Compare submodule membership before and after the PR checkout. git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ | awk '{ print $2 }' \ | sort -u > "${submodules_after}" @@ -111,18 +119,21 @@ jobs: comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" + # Remove submodules deleted by the PR. while read -r submodule_path; do [ -n "${submodule_path}" ] || continue git submodule deinit --force -- "${submodule_path}" || true rm -rf -- "${submodule_path}" done < "${removed_targets}" + # Update submodules already initialized in the container. while read -r submodule_path; do [ -n "${submodule_path}" ] || continue git submodule sync -- "${submodule_path}" - git submodule update -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" done < "${initialized_targets}" + # Initialize submodules newly added by the PR. while read -r submodule_path; do [ -n "${submodule_path}" ] || continue git submodule init -- "${submodule_path}" @@ -132,6 +143,7 @@ jobs: git rev-parse --short HEAD + # Initialize only additional submodules needed by this generator test. bash .github/scripts/prepare-generator-test-submodules.sh "${TEST_NAME}" /root/chipyard # Build tests in both tests/ and tests/build due to legacy paths. From ca0da1361073ee643815bb0815290b9b4c8c94c7 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 18:26:56 -0700 Subject: [PATCH 27/69] fix fsim tests --- .github/workflows/build-setup-rhel.yml | 38 ++-- .github/workflows/run-firesim-tests.yml | 236 ++++++++++++------------ 2 files changed, 137 insertions(+), 137 deletions(-) diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 411c4ac52a..5a4487ae21 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -89,25 +89,25 @@ jobs: which \ xz dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm - cat > /etc/yum.repos.d/almalinux-guestfs.repo <<'"'"'EOF'"'"' - [almalinux-baseos] - name=AlmaLinux 9 BaseOS - baseurl=https://repo.almalinux.org/almalinux/9/BaseOS/$basearch/os/ - enabled=1 - gpgcheck=0 - - [almalinux-appstream] - name=AlmaLinux 9 AppStream - baseurl=https://repo.almalinux.org/almalinux/9/AppStream/$basearch/os/ - enabled=1 - gpgcheck=0 - - [almalinux-crb] - name=AlmaLinux 9 CRB - baseurl=https://repo.almalinux.org/almalinux/9/CRB/$basearch/os/ - enabled=1 - gpgcheck=0 - EOF + printf "%s\n" \ + "[almalinux-baseos]" \ + "name=AlmaLinux 9 BaseOS" \ + "baseurl=https://repo.almalinux.org/almalinux/9/BaseOS/\$basearch/os/" \ + "enabled=1" \ + "gpgcheck=0" \ + "" \ + "[almalinux-appstream]" \ + "name=AlmaLinux 9 AppStream" \ + "baseurl=https://repo.almalinux.org/almalinux/9/AppStream/\$basearch/os/" \ + "enabled=1" \ + "gpgcheck=0" \ + "" \ + "[almalinux-crb]" \ + "name=AlmaLinux 9 CRB" \ + "baseurl=https://repo.almalinux.org/almalinux/9/CRB/\$basearch/os/" \ + "enabled=1" \ + "gpgcheck=0" \ + > /etc/yum.repos.d/almalinux-guestfs.repo dnf install -y --setopt=install_weak_deps=False libguestfs-tools libguestfs-tools-c command -v guestmount command -v guestunmount diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index 0d3e0e1d99..e27b0f489b 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -58,7 +58,7 @@ jobs: env: PR_NUMBER: ${{ inputs.pr_number }} run: | - docker run --rm \ + docker run --rm -i \ --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ --env "JVM_OPTS=${JVM_OPTS}" \ --env "PR_NUMBER=${PR_NUMBER}" \ @@ -66,64 +66,64 @@ jobs: --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ --entrypoint /bin/bash \ "${CHIPYARD_IMAGE}" \ - -leo pipefail -c ' - cd /root/chipyard - git config --global --add safe.directory "*" - git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" - - # Record the submodules initialized in the pulled container. - initialized_before="$(mktemp)" - submodules_after="$(mktemp)" - initialized_targets="$(mktemp)" - new_targets="$(mktemp)" - removed_targets="$(mktemp)" - - git submodule status \ - | awk 'substr($1, 1, 1) != "-" { print $2 }' \ - | sort -u > "${initialized_before}" - - # Checkout main in the container. - git fetch --no-tags origin main - git checkout --detach FETCH_HEAD - - # Move to GitHub's current PR merge commit. - git fetch --no-tags origin "pull/${PR_NUMBER}/merge" - git checkout --detach FETCH_HEAD - - # Compare submodule membership before and after the PR checkout. - git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ - | awk '{ print $2 }' \ - | sort -u > "${submodules_after}" - - comm -12 "${initialized_before}" "${submodules_after}" > "${initialized_targets}" - comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" - comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" - - # Remove submodules deleted by the PR. - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule deinit --force -- "${submodule_path}" || true - rm -rf -- "${submodule_path}" - done < "${removed_targets}" - - # Update submodules already initialized in the container. - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule sync -- "${submodule_path}" - git submodule update --init -- "${submodule_path}" - done < "${initialized_targets}" - - # Initialize submodules newly added by the PR. - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule init -- "${submodule_path}" - git submodule sync -- "${submodule_path}" - git submodule update --init -- "${submodule_path}" - done < "${new_targets}" - - git rev-parse --short HEAD - .github/scripts/run-firesim-tests.sh onprem "${PR_NUMBER}" /root/chipyard - ' + -leo pipefail <<'CONTAINER_SCRIPT' + cd /root/chipyard + git config --global --add safe.directory "*" + git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" + + # Record the submodules initialized in the pulled container. + initialized_before="$(mktemp)" + submodules_after="$(mktemp)" + initialized_targets="$(mktemp)" + new_targets="$(mktemp)" + removed_targets="$(mktemp)" + + git submodule status \ + | awk 'substr($1, 1, 1) != "-" { print $2 }' \ + | sort -u > "${initialized_before}" + + # Checkout main in the container. + git fetch --no-tags origin main + git checkout --detach FETCH_HEAD + + # Move to GitHub's current PR merge commit. + git fetch --no-tags origin "pull/${PR_NUMBER}/merge" + git checkout --detach FETCH_HEAD + + # Compare submodule membership before and after the PR checkout. + git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ + | awk '{ print $2 }' \ + | sort -u > "${submodules_after}" + + comm -12 "${initialized_before}" "${submodules_after}" > "${initialized_targets}" + comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" + comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" + + # Remove submodules deleted by the PR. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule deinit --force -- "${submodule_path}" || true + rm -rf -- "${submodule_path}" + done < "${removed_targets}" + + # Update submodules already initialized in the container. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" + done < "${initialized_targets}" + + # Initialize submodules newly added by the PR. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule init -- "${submodule_path}" + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" + done < "${new_targets}" + + git rev-parse --short HEAD + .github/scripts/run-firesim-tests.sh onprem "${PR_NUMBER}" /root/chipyard + CONTAINER_SCRIPT firesim-f2-tests: name: FireSim Golden Gate Compile + rvi-bmark-tests AWS F2 @@ -163,7 +163,7 @@ jobs: env: PR_NUMBER: ${{ inputs.pr_number }} run: | - docker run --rm \ + docker run --rm -i \ --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ --env "JVM_OPTS=${JVM_OPTS}" \ --env "PR_NUMBER=${PR_NUMBER}" \ @@ -171,61 +171,61 @@ jobs: --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ --entrypoint /bin/bash \ "${CHIPYARD_IMAGE}" \ - -leo pipefail -c ' - cd /root/chipyard - git config --global --add safe.directory "*" - git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" - - # Record the submodules initialized in the pulled container. - initialized_before="$(mktemp)" - submodules_after="$(mktemp)" - initialized_targets="$(mktemp)" - new_targets="$(mktemp)" - removed_targets="$(mktemp)" - - git submodule status \ - | awk 'substr($1, 1, 1) != "-" { print $2 }' \ - | sort -u > "${initialized_before}" - - # Checkout main in the container. - git fetch --no-tags origin main - git checkout --detach FETCH_HEAD - - # Move to GitHub's current PR merge commit. - git fetch --no-tags origin "pull/${PR_NUMBER}/merge" - git checkout --detach FETCH_HEAD - - # Compare submodule membership before and after the PR checkout. - git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ - | awk '{ print $2 }' \ - | sort -u > "${submodules_after}" - - comm -12 "${initialized_before}" "${submodules_after}" > "${initialized_targets}" - comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" - comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" - - # Remove submodules deleted by the PR. - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule deinit --force -- "${submodule_path}" || true - rm -rf -- "${submodule_path}" - done < "${removed_targets}" - - # Update submodules already initialized in the container. - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule sync -- "${submodule_path}" - git submodule update --init -- "${submodule_path}" - done < "${initialized_targets}" - - # Initialize submodules newly added by the PR. - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule init -- "${submodule_path}" - git submodule sync -- "${submodule_path}" - git submodule update --init -- "${submodule_path}" - done < "${new_targets}" - - git rev-parse --short HEAD - .github/scripts/run-firesim-tests.sh f2 "${PR_NUMBER}" /root/chipyard - ' + -leo pipefail <<'CONTAINER_SCRIPT' + cd /root/chipyard + git config --global --add safe.directory "*" + git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" + + # Record the submodules initialized in the pulled container. + initialized_before="$(mktemp)" + submodules_after="$(mktemp)" + initialized_targets="$(mktemp)" + new_targets="$(mktemp)" + removed_targets="$(mktemp)" + + git submodule status \ + | awk 'substr($1, 1, 1) != "-" { print $2 }' \ + | sort -u > "${initialized_before}" + + # Checkout main in the container. + git fetch --no-tags origin main + git checkout --detach FETCH_HEAD + + # Move to GitHub's current PR merge commit. + git fetch --no-tags origin "pull/${PR_NUMBER}/merge" + git checkout --detach FETCH_HEAD + + # Compare submodule membership before and after the PR checkout. + git config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ + | awk '{ print $2 }' \ + | sort -u > "${submodules_after}" + + comm -12 "${initialized_before}" "${submodules_after}" > "${initialized_targets}" + comm -13 "${initialized_before}" "${submodules_after}" > "${new_targets}" + comm -23 "${initialized_before}" "${submodules_after}" > "${removed_targets}" + + # Remove submodules deleted by the PR. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule deinit --force -- "${submodule_path}" || true + rm -rf -- "${submodule_path}" + done < "${removed_targets}" + + # Update submodules already initialized in the container. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" + done < "${initialized_targets}" + + # Initialize submodules newly added by the PR. + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule init -- "${submodule_path}" + git submodule sync -- "${submodule_path}" + git submodule update --init -- "${submodule_path}" + done < "${new_targets}" + + git rev-parse --short HEAD + .github/scripts/run-firesim-tests.sh f2 "${PR_NUMBER}" /root/chipyard + CONTAINER_SCRIPT From e31111807321cb81c5febb93dd18c062e1fbcdb0 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 19:25:53 -0700 Subject: [PATCH 28/69] fix missing gcc --- .github/workflows/build-setup-rhel.yml | 3 +++ dockerfiles/Dockerfile | 1 + generators/firechip/chip/src/main/makefrag/firesim/metasim.mk | 2 ++ 3 files changed, 6 insertions(+) diff --git a/.github/workflows/build-setup-rhel.yml b/.github/workflows/build-setup-rhel.yml index 5a4487ae21..c3b53fd6d2 100644 --- a/.github/workflows/build-setup-rhel.yml +++ b/.github/workflows/build-setup-rhel.yml @@ -128,6 +128,9 @@ jobs: workspace_user="$(getent passwd "${workspace_uid}" | cut -d: -f1)" workspace_home="$(getent passwd "${workspace_uid}" | cut -d: -f6)" + mkdir -p "$(dirname "${CONDA_INSTALL_DIR}")" + chown "${workspace_uid}:${workspace_gid}" "$(dirname "${CONDA_INSTALL_DIR}")" + runuser -u "${workspace_user}" -- env \ "CONDA_INSTALL_DIR=${CONDA_INSTALL_DIR}" \ "FORCE_NON_EC2=${FORCE_NON_EC2}" \ diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 3f4cd70d55..5a316b77f8 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -21,6 +21,7 @@ ENV PATH="${CONDA_INSTALL_DIR}/bin:${PATH}" RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ bc \ + build-essential \ bzip2 \ ca-certificates \ curl \ diff --git a/generators/firechip/chip/src/main/makefrag/firesim/metasim.mk b/generators/firechip/chip/src/main/makefrag/firesim/metasim.mk index 1e7c50a35d..87501448ba 100644 --- a/generators/firechip/chip/src/main/makefrag/firesim/metasim.mk +++ b/generators/firechip/chip/src/main/makefrag/firesim/metasim.mk @@ -1,5 +1,7 @@ # See LICENSE for license details. +SHELL := /bin/bash + ################################################################ # SW RTL Simulation Args -- for MIDAS- & FPGA-level Simulation # ################################################################ From 2b5468b3b0c791a72650dfdbf30ec6eb458309d7 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 5 Jul 2026 22:47:06 -0700 Subject: [PATCH 29/69] fix fsim tests & debug --- .github/scripts/run-firesim-tests.sh | 54 ++++++++++++++++++- .github/workflows/run-firesim-tests.yml | 6 +++ .../chip/src/main/makefrag/firesim/build.mk | 10 +++- 3 files changed, 68 insertions(+), 2 deletions(-) diff --git a/.github/scripts/run-firesim-tests.sh b/.github/scripts/run-firesim-tests.sh index a5c7daa177..76a554b33c 100755 --- a/.github/scripts/run-firesim-tests.sh +++ b/.github/scripts/run-firesim-tests.sh @@ -40,8 +40,57 @@ prepare_f2_mgmt_tools() { bash ./mkall_fpga_mgmt_tools.sh } +run_with_heartbeat() { + local timeout_seconds="${1:?timeout required}" + shift + local heartbeat_seconds="${FIRESIM_HEARTBEAT_SECONDS:-60}" + local command_display="$*" + local heartbeat_pid + local rc + local had_errexit=0 + + ( + local elapsed=0 + while true; do + sleep "${heartbeat_seconds}" + elapsed=$((elapsed + heartbeat_seconds)) + printf '[%s] still running after %ss: %s\n' \ + "$(date -u +'%Y-%m-%dT%H:%M:%SZ')" \ + "${elapsed}" \ + "${command_display}" + done + ) & + heartbeat_pid="$!" + + case "$-" in + *e*) + had_errexit=1 + set +e + ;; + esac + + timeout --foreground --kill-after=60s "${timeout_seconds}s" "$@" + rc="$?" + + kill "${heartbeat_pid}" 2>/dev/null || true + wait "${heartbeat_pid}" 2>/dev/null || true + + if [ "${had_errexit}" -eq 1 ]; then + set -e + fi + + if [ "${rc}" -eq 124 ]; then + echo "Timed out after ${timeout_seconds}s: ${command_display}" >&2 + elif [ "${rc}" -eq 137 ]; then + echo "Timed out and was force-killed after ${timeout_seconds}s: ${command_display}" >&2 + fi + + return "${rc}" +} + run_firesim_scala_test() { local test_class="$1" + local timeout_seconds="${FIRESIM_TEST_TIMEOUT_SECONDS:-7200}" if ! [[ "${test_class}" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then echo "Invalid FireSim Scala test class name: ${test_class}" >&2 @@ -56,7 +105,10 @@ run_firesim_scala_test() { cd "${chipyard_dir}" echo "========== FireSim Scala test: firechip.chip.${test_class} ==========" - TEST_DISABLE_VCS=1 TEST_DISABLE_VIVADO=1 sbt "project firechip; testOnly firechip.chip.${test_class}" + run_with_heartbeat \ + "${timeout_seconds}" \ + env TEST_DISABLE_VCS=1 TEST_DISABLE_VIVADO=1 \ + sbt "project firechip; testOnly firechip.chip.${test_class}" } prepare_firesim_environment diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index e27b0f489b..f8a5839495 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -18,6 +18,8 @@ defaults: env: FORCE_NON_EC2: 1 JVM_OPTS: -Xmx3200m + FIRESIM_TEST_TIMEOUT_SECONDS: 7200 + FIRESIM_HEARTBEAT_SECONDS: 60 jobs: firesim-onprem-tests: @@ -61,6 +63,8 @@ jobs: docker run --rm -i \ --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ --env "JVM_OPTS=${JVM_OPTS}" \ + --env "FIRESIM_TEST_TIMEOUT_SECONDS=${FIRESIM_TEST_TIMEOUT_SECONDS}" \ + --env "FIRESIM_HEARTBEAT_SECONDS=${FIRESIM_HEARTBEAT_SECONDS}" \ --env "PR_NUMBER=${PR_NUMBER}" \ --env "GITHUB_SERVER_URL=${GITHUB_SERVER_URL}" \ --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ @@ -166,6 +170,8 @@ jobs: docker run --rm -i \ --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ --env "JVM_OPTS=${JVM_OPTS}" \ + --env "FIRESIM_TEST_TIMEOUT_SECONDS=${FIRESIM_TEST_TIMEOUT_SECONDS}" \ + --env "FIRESIM_HEARTBEAT_SECONDS=${FIRESIM_HEARTBEAT_SECONDS}" \ --env "PR_NUMBER=${PR_NUMBER}" \ --env "GITHUB_SERVER_URL=${GITHUB_SERVER_URL}" \ --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ diff --git a/generators/firechip/chip/src/main/makefrag/firesim/build.mk b/generators/firechip/chip/src/main/makefrag/firesim/build.mk index d326aa6889..807b6d5f62 100644 --- a/generators/firechip/chip/src/main/makefrag/firesim/build.mk +++ b/generators/firechip/chip/src/main/makefrag/firesim/build.mk @@ -53,6 +53,14 @@ CVA6_VERILATOR_FLAGS = \ DEFAULT_MIDAS_VERILATOR_FLAGS = \ --assert +# here to make verilator happy; prevents: +# "Operator DIV expects 16 bits on the RHS, but RHS's CONST '5'h10' generates 5 bits." err -- known issue, see: +# generators/gemmini/src/main/scala/gemmini/LoadController.scala:117 +# generators/gemmini/src/main/scala/gemmini/LoopConv.scala:474 +GEMMINI_VERILATOR_FLAGS = \ + $(DEFAULT_MIDAS_VERILATOR_FLAGS) \ + -Wno-WIDTHEXPAND + # AJG: this must be evaluated after verilog generation to work (hence the =) EXTRA_VERILATOR_FLAGS = \ - $(shell if ! grep -iq "module.*cva6" $(simulator_verilog); then echo "$(DEFAULT_MIDAS_VERILATOR_FLAGS)"; else echo "$(CVA6_VERILATOR_FLAGS)"; fi) + $(shell if grep -iq "module.*cva6" $(simulator_verilog); then echo "$(CVA6_VERILATOR_FLAGS)"; elif grep -iq "module.*gemmini" $(simulator_verilog); then echo "$(GEMMINI_VERILATOR_FLAGS)"; else echo "$(DEFAULT_MIDAS_VERILATOR_FLAGS)"; fi) From 1f10d3270bb4e6a556ca72515abbf788834f6e53 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Mon, 6 Jul 2026 10:18:51 -0700 Subject: [PATCH 30/69] fsim bitstream builds --- .../au250/config_build.yaml | 61 ++++++++++ .../au250/config_runtime.yaml | 105 ++++++++++++++++++ .../vcu118/config_build.yaml | 39 +++++++ .../vcu118/config_runtime.yaml | 105 ++++++++++++++++++ .github/scripts/run-firesim-tests.sh | 5 + .github/workflows/run-firesim-tests.yml | 4 + dockerfiles/Dockerfile | 4 + .../chip/src/main/makefrag/firesim/build.mk | 8 +- 8 files changed, 330 insertions(+), 1 deletion(-) create mode 100644 .github/firesim-bitstream-templates/au250/config_build.yaml create mode 100644 .github/firesim-bitstream-templates/au250/config_runtime.yaml create mode 100644 .github/firesim-bitstream-templates/vcu118/config_build.yaml create mode 100644 .github/firesim-bitstream-templates/vcu118/config_runtime.yaml diff --git a/.github/firesim-bitstream-templates/au250/config_build.yaml b/.github/firesim-bitstream-templates/au250/config_build.yaml new file mode 100644 index 0000000000..5d8e045df9 --- /dev/null +++ b/.github/firesim-bitstream-templates/au250/config_build.yaml @@ -0,0 +1,61 @@ +# Build-time build design / AGFI configuration for the FireSim Simulation Manager +# See https://docs.fires.im/en/stable/Advanced-Usage/Manager/Manager-Configuration-Files.html for documentation of all of these params. + +# this refers to build farms defined in config_build_farm.yaml +build_farm: + base_recipe: build-farm-recipes/externally_provisioned.yaml + recipe_arg_overrides: + # REQUIRED: (replace this) default location of build directory on build host. + default_build_dir: /tools/C/chipyard-cicd/head + # REQUIRED: List of IP addresses (or "localhost"). Each can have an OPTIONAL + # argument, called "override_build_dir", specifying to override the default + # build directory. + # + # Ex: + # build_farm_hosts: + # # use localhost and don't override the default build dir + # - localhost + # # use other IP address (don't override default build dir) + # - "111.111.1.111" + # # use other IP address (override default build dir for this build host) + # - "222.222.2.222": + # override_build_dir: /scratch/specific-build-host-build-dir + build_farm_hosts: + - {machine1}: + override_build_dir: /tools/C/chipyard-cicd/machine1 + - {machine2}: + override_build_dir: /tools/C/chipyard-cicd/machine2 + - {machine3}: + override_build_dir: /tools/C/chipyard-cicd/machine3 + - {machine4}: + override_build_dir: /tools/C/chipyard-cicd/machine4 + - {machine5}: + override_build_dir: /tools/C/chipyard-cicd/machine5 + - {machine6}: + override_build_dir: /tools/C/chipyard-cicd/machine6 + +builds_to_run: + # this section references builds defined in config_build_recipes.yaml + # if you add a build here, it will be built when you run buildbitstream + - alveo_u250_firesim_rocket_singlecore_no_nic + - alveo_u250_firesim_rocket_quadcore_no_nic + ## - alveo_u250_firesim_rocket_singlecore_nic + - alveo_u250_firesim_boom_singlecore_no_nic + - alveo_u250_firesim_gemmini_rocket_singlecore_no_nic + - alveo_u250_firesim_saturn_REFV256D128_rocket_singlecore_no_nic + - alveo_u250_firesim_saturn_GENV256D128_shuttle_singlecore_no_nic + +agfis_to_share: + - alveo_u250_firesim_rocket_singlecore_no_nic + - alveo_u250_firesim_rocket_quadcore_no_nic + ## - alveo_u250_firesim_rocket_singlecore_nic + - alveo_u250_firesim_boom_singlecore_no_nic + - alveo_u250_firesim_gemmini_rocket_singlecore_no_nic + - alveo_u250_firesim_saturn_REFV256D128_rocket_singlecore_no_nic + - alveo_u250_firesim_saturn_GENV256D128_shuttle_singlecore_no_nic + +share_with_accounts: + # To share with a specific user: + somebodysname: 123456789012 + # To share publicly: + # public: public diff --git a/.github/firesim-bitstream-templates/au250/config_runtime.yaml b/.github/firesim-bitstream-templates/au250/config_runtime.yaml new file mode 100644 index 0000000000..267f4a1d88 --- /dev/null +++ b/.github/firesim-bitstream-templates/au250/config_runtime.yaml @@ -0,0 +1,105 @@ +# Run-time configuration for the FireSim Simulation Manager +# See https://docs.fires.im/en/stable/Advanced-Usage/Manager/Manager-Configuration-Files.html for documentation of all of these params. + +run_farm: + base_recipe: run-farm-recipes/externally_provisioned.yaml + recipe_arg_overrides: + # REQUIRED: default platform used for run farm hosts. this is a class specifying + # how to run simulations on a run farm host. + default_platform: XilinxAlveoU250InstanceDeployManager + + # REQUIRED: default directory where simulations are run out of on the run farm hosts + default_simulation_dir: /tools/C/chipyard-cicd/default_simulation_dir + + # REQUIRED: default fpga db file that enumerates what fpgas are available on the machine (used by XilinxU* Deploy Managers) + default_fpga_db: /tools/C/chipyard-cicd/firesim_fpga_db.json + + # REQUIRED: List of unique hostnames/IP addresses, each with their + # corresponding specification that describes the properties of the host. + # + # Ex: + # run_farm_hosts_to_use: + # # use localhost which is described by "four_fpgas_spec" below. + # - localhost: four_fpgas_spec + # # supply IP address, which points to a machine that is described + # # by "four_fpgas_spec" below. + # - "111.111.1.111": four_fpgas_spec + run_farm_hosts_to_use: + - localhost: one_fpgas_spec + +metasimulation: + metasimulation_enabled: false + # vcs or verilator. use vcs-debug or verilator-debug for waveform generation + metasimulation_host_simulator: verilator + # plusargs passed to the simulator for all metasimulations + metasimulation_only_plusargs: "+fesvr-step-size=128 +max-cycles=100000000" + # plusargs passed to the simulator ONLY FOR vcs metasimulations + metasimulation_only_vcs_plusargs: "+vcs+initreg+0 +vcs+initmem+0" + +# DOCREF START: target_config area +target_config: + topology: no_net_config + no_net_num_nodes: 1 + link_latency: 6405 + switching_latency: 10 + net_bandwidth: 200 + profile_interval: -1 + + # This references a section from config_hwdb.yaml for fpga-accelerated simulation + # or from config_build_recipes.yaml for metasimulation + # In homogeneous configurations, use this to set the hardware config deployed + # for all simulators + default_hw_config: alveo_u250_firesim_rocket_singlecore_nic + + # Advanced: Specify any extra plusargs you would like to provide when + # booting the simulator (in both FPGA-sim and metasim modes). This is + # a string, with the contents formatted as if you were passing the plusargs + # at command line, e.g. "+a=1 +b=2" + plusarg_passthrough: "" +# DOCREF END: target_config area + +tracing: + enable: no + + # Trace output formats. Only enabled if "enable" is set to "yes" above + # 0 = human readable; 1 = binary (compressed raw data); 2 = flamegraph (stack + # unwinding -> Flame Graph) + output_format: 0 + + # Trigger selector. + # 0 = no trigger; 1 = cycle count trigger; 2 = program counter trigger; 3 = + # instruction trigger + selector: 1 + start: 0 + end: -1 + +autocounter: + read_rate: 0 + +workload: + workload_name: br-base-uniform.json + terminate_on_completion: no + suffix_tag: null + +host_debug: + # When enabled (=yes), Zeros-out FPGA-attached DRAM before simulations + # begin (takes 2-5 minutes). + # In general, this is not required to produce deterministic simulations on + # target machines running linux. Enable if you observe simulation non-determinism. + zero_out_dram: no + # If disable_synth_asserts: no, simulation will print assertion message and + # terminate simulation if synthesized assertion fires. + # If disable_synth_asserts: yes, simulation ignores assertion firing and + # continues simulation. + disable_synth_asserts: no + +# DOCREF START: Synthesized Prints +synth_print: + # Start and end cycles for outputting synthesized prints. + # They are given in terms of the base clock and will be converted + # for each clock domain. + start: 0 + end: -1 + # When enabled (=yes), prefix print output with the target cycle at which the print was triggered + cycle_prefix: yes +# DOCREF END: Synthesized Prints diff --git a/.github/firesim-bitstream-templates/vcu118/config_build.yaml b/.github/firesim-bitstream-templates/vcu118/config_build.yaml new file mode 100644 index 0000000000..9b9e3089ae --- /dev/null +++ b/.github/firesim-bitstream-templates/vcu118/config_build.yaml @@ -0,0 +1,39 @@ +# Build-time build design / AGFI configuration for the FireSim Simulation Manager +# See https://docs.fires.im/en/stable/Advanced-Usage/Manager/Manager-Configuration-Files.html for documentation of all of these params. + +# this refers to build farms defined in config_build_farm.yaml +build_farm: + base_recipe: build-farm-recipes/externally_provisioned.yaml + recipe_arg_overrides: + # REQUIRED: (replace this) default location of build directory on build host. + default_build_dir: /tools/C/chipyard-cicd/head + # REQUIRED: List of IP addresses (or "localhost"). Each can have an OPTIONAL + # argument, called "override_build_dir", specifying to override the default + # build directory. + # + # Ex: + # build_farm_hosts: + # # use localhost and don't override the default build dir + # - localhost + # # use other IP address (don't override default build dir) + # - "111.111.1.111" + # # use other IP address (override default build dir for this build host) + # - "222.222.2.222": + # override_build_dir: /scratch/specific-build-host-build-dir + build_farm_hosts: + - {machine7}: + override_build_dir: /tools/C/chipyard-cicd/machine7 + +builds_to_run: + # this section references builds defined in config_build_recipes.yaml + # if you add a build here, it will be built when you run buildbitstream + - xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic + +agfis_to_share: + - xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic + +share_with_accounts: + # To share with a specific user: + somebodysname: 123456789012 + # To share publicly: + # public: public diff --git a/.github/firesim-bitstream-templates/vcu118/config_runtime.yaml b/.github/firesim-bitstream-templates/vcu118/config_runtime.yaml new file mode 100644 index 0000000000..09ac658592 --- /dev/null +++ b/.github/firesim-bitstream-templates/vcu118/config_runtime.yaml @@ -0,0 +1,105 @@ +# Run-time configuration for the FireSim Simulation Manager +# See https://docs.fires.im/en/stable/Advanced-Usage/Manager/Manager-Configuration-Files.html for documentation of all of these params. + +run_farm: + base_recipe: run-farm-recipes/externally_provisioned.yaml + recipe_arg_overrides: + # REQUIRED: default platform used for run farm hosts. this is a class specifying + # how to run simulations on a run farm host. + default_platform: XilinxVCU118InstanceDeployManager + + # REQUIRED: default directory where simulations are run out of on the run farm hosts + default_simulation_dir: /tools/C/chipyard-cicd/default_simulation_dir + + # REQUIRED: default fpga db file that enumerates what fpgas are available on the machine (used by XilinxU* Deploy Managers) + default_fpga_db: /tools/C/chipyard-cicd/firesim_fpga_db.json + + # REQUIRED: List of unique hostnames/IP addresses, each with their + # corresponding specification that describes the properties of the host. + # + # Ex: + # run_farm_hosts_to_use: + # # use localhost which is described by "four_fpgas_spec" below. + # - localhost: four_fpgas_spec + # # supply IP address, which points to a machine that is described + # # by "four_fpgas_spec" below. + # - "111.111.1.111": four_fpgas_spec + run_farm_hosts_to_use: + - localhost: one_fpgas_spec + +metasimulation: + metasimulation_enabled: false + # vcs or verilator. use vcs-debug or verilator-debug for waveform generation + metasimulation_host_simulator: verilator + # plusargs passed to the simulator for all metasimulations + metasimulation_only_plusargs: "+fesvr-step-size=128 +max-cycles=100000000" + # plusargs passed to the simulator ONLY FOR vcs metasimulations + metasimulation_only_vcs_plusargs: "+vcs+initreg+0 +vcs+initmem+0" + +# DOCREF START: target_config area +target_config: + topology: no_net_config + no_net_num_nodes: 1 + link_latency: 6405 + switching_latency: 10 + net_bandwidth: 200 + profile_interval: -1 + + # This references a section from config_hwdb.yaml for fpga-accelerated simulation + # or from config_build_recipes.yaml for metasimulation + # In homogeneous configurations, use this to set the hardware config deployed + # for all simulators + default_hw_config: xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic + + # Advanced: Specify any extra plusargs you would like to provide when + # booting the simulator (in both FPGA-sim and metasim modes). This is + # a string, with the contents formatted as if you were passing the plusargs + # at command line, e.g. "+a=1 +b=2" + plusarg_passthrough: "" +# DOCREF END: target_config area + +tracing: + enable: no + + # Trace output formats. Only enabled if "enable" is set to "yes" above + # 0 = human readable; 1 = binary (compressed raw data); 2 = flamegraph (stack + # unwinding -> Flame Graph) + output_format: 0 + + # Trigger selector. + # 0 = no trigger; 1 = cycle count trigger; 2 = program counter trigger; 3 = + # instruction trigger + selector: 1 + start: 0 + end: -1 + +autocounter: + read_rate: 0 + +workload: + workload_name: br-base-uniform.json + terminate_on_completion: no + suffix_tag: null + +host_debug: + # When enabled (=yes), Zeros-out FPGA-attached DRAM before simulations + # begin (takes 2-5 minutes). + # In general, this is not required to produce deterministic simulations on + # target machines running linux. Enable if you observe simulation non-determinism. + zero_out_dram: no + # If disable_synth_asserts: no, simulation will print assertion message and + # terminate simulation if synthesized assertion fires. + # If disable_synth_asserts: yes, simulation ignores assertion firing and + # continues simulation. + disable_synth_asserts: no + +# DOCREF START: Synthesized Prints +synth_print: + # Start and end cycles for outputting synthesized prints. + # They are given in terms of the base clock and will be converted + # for each clock domain. + start: 0 + end: -1 + # When enabled (=yes), prefix print output with the target cycle at which the print was triggered + cycle_prefix: yes +# DOCREF END: Synthesized Prints diff --git a/.github/scripts/run-firesim-tests.sh b/.github/scripts/run-firesim-tests.sh index 76a554b33c..61ddb1d942 100755 --- a/.github/scripts/run-firesim-tests.sh +++ b/.github/scripts/run-firesim-tests.sh @@ -6,6 +6,11 @@ pr_number="${2:?usage: run-firesim-tests.sh SUITE PR_NUMBER [CHIPYARD_DIR] [CONF chipyard_dir="${3:-/root/chipyard}" config_json="${4:-${chipyard_dir}/.github/workflows/config/firesim-tests.json}" +echo "FireSim test suite: ${suite}" +echo "FireSim test timeout: ${FIRESIM_TEST_TIMEOUT_SECONDS:-7200}s" +echo "FireSim heartbeat interval: ${FIRESIM_HEARTBEAT_SECONDS:-60}s" +echo "FireSim Java heap size: ${JAVA_HEAP_SIZE:-FireSim default}" + source_with_nounset_disabled() { local script="$1" shift diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index f8a5839495..e6957d72a5 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -20,6 +20,8 @@ env: JVM_OPTS: -Xmx3200m FIRESIM_TEST_TIMEOUT_SECONDS: 7200 FIRESIM_HEARTBEAT_SECONDS: 60 + # override: sims/firesim/sim/make/scala-build.mk:33 + FIRESIM_JAVA_HEAP_SIZE: 12G jobs: firesim-onprem-tests: @@ -63,6 +65,7 @@ jobs: docker run --rm -i \ --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ --env "JVM_OPTS=${JVM_OPTS}" \ + --env "JAVA_HEAP_SIZE=${FIRESIM_JAVA_HEAP_SIZE}" \ --env "FIRESIM_TEST_TIMEOUT_SECONDS=${FIRESIM_TEST_TIMEOUT_SECONDS}" \ --env "FIRESIM_HEARTBEAT_SECONDS=${FIRESIM_HEARTBEAT_SECONDS}" \ --env "PR_NUMBER=${PR_NUMBER}" \ @@ -170,6 +173,7 @@ jobs: docker run --rm -i \ --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ --env "JVM_OPTS=${JVM_OPTS}" \ + --env "JAVA_HEAP_SIZE=${FIRESIM_JAVA_HEAP_SIZE}" \ --env "FIRESIM_TEST_TIMEOUT_SECONDS=${FIRESIM_TEST_TIMEOUT_SECONDS}" \ --env "FIRESIM_HEARTBEAT_SECONDS=${FIRESIM_HEARTBEAT_SECONDS}" \ --env "PR_NUMBER=${PR_NUMBER}" \ diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 5a316b77f8..bd95e733f6 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -28,8 +28,12 @@ RUN apt-get update && \ findutils \ git \ gzip \ + iputils-ping \ kmod \ make \ + net-tools \ + netcat-openbsd \ + openssh-client \ patch \ procps \ python3 \ diff --git a/generators/firechip/chip/src/main/makefrag/firesim/build.mk b/generators/firechip/chip/src/main/makefrag/firesim/build.mk index 807b6d5f62..d93c7aa0ee 100644 --- a/generators/firechip/chip/src/main/makefrag/firesim/build.mk +++ b/generators/firechip/chip/src/main/makefrag/firesim/build.mk @@ -61,6 +61,12 @@ GEMMINI_VERILATOR_FLAGS = \ $(DEFAULT_MIDAS_VERILATOR_FLAGS) \ -Wno-WIDTHEXPAND +# Saturn/Shuttle vector configs can emit unsigned comparisons that Verilator +# treats as fatal under the FireSim verilator backend. +SHUTTLE_VECTOR_VERILATOR_FLAGS = \ + $(DEFAULT_MIDAS_VERILATOR_FLAGS) \ + -Wno-UNSIGNED + # AJG: this must be evaluated after verilog generation to work (hence the =) EXTRA_VERILATOR_FLAGS = \ - $(shell if grep -iq "module.*cva6" $(simulator_verilog); then echo "$(CVA6_VERILATOR_FLAGS)"; elif grep -iq "module.*gemmini" $(simulator_verilog); then echo "$(GEMMINI_VERILATOR_FLAGS)"; else echo "$(DEFAULT_MIDAS_VERILATOR_FLAGS)"; fi) + $(shell if grep -iq "module.*cva6" $(simulator_verilog); then echo "$(CVA6_VERILATOR_FLAGS)"; elif grep -iq "module.*gemmini" $(simulator_verilog); then echo "$(GEMMINI_VERILATOR_FLAGS)"; elif grep -Eiq "shuttle_tile.*vector_unit|vector_unit\.vu" $(simulator_verilog); then echo "$(SHUTTLE_VECTOR_VERILATOR_FLAGS)"; else echo "$(DEFAULT_MIDAS_VERILATOR_FLAGS)"; fi) From 786e470c7711bebe77665f63371372b84faf674e Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Mon, 6 Jul 2026 15:09:11 -0700 Subject: [PATCH 31/69] fixes --- .../f2/config_build.yaml | 39 +++++++++++++++++++ .github/scripts/run-firesim-tests.sh | 1 + .github/workflows/run-firesim-tests.yml | 3 ++ dockerfiles/Dockerfile | 1 + .../chip/src/main/makefrag/firesim/build.mk | 2 +- 5 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 .github/firesim-bitstream-templates/f2/config_build.yaml diff --git a/.github/firesim-bitstream-templates/f2/config_build.yaml b/.github/firesim-bitstream-templates/f2/config_build.yaml new file mode 100644 index 0000000000..c80c20ff6d --- /dev/null +++ b/.github/firesim-bitstream-templates/f2/config_build.yaml @@ -0,0 +1,39 @@ +# Build-time build design / AGFI configuration for the FireSim Simulation Manager +# See https://docs.fires.im/en/stable/Advanced-Usage/Manager/Manager-Configuration-Files.html for documentation of all of these params. + +# this refers to build farms defined in config_build_farm.yaml +build_farm: + base_recipe: build-farm-recipes/externally_provisioned.yaml + recipe_arg_overrides: + # REQUIRED: (replace this) default location of build directory on build host. + default_build_dir: /root/firesimbuilds + # REQUIRED: List of IP addresses (or "localhost"). Each can have an OPTIONAL + # argument, called "override_build_dir", specifying to override the default + # build directory. + # + # Ex: + # build_farm_hosts: + # # use localhost and don't override the default build dir + # - localhost + # # use other IP address (don't override default build dir) + # - "111.111.1.111" + # # use other IP address (override default build dir for this build host) + # - "222.222.2.222": + # override_build_dir: /scratch/specific-build-host-build-dir + build_farm_hosts: + - "ubuntu@host.docker.internal": + override_build_dir: /home/ubuntu/fsimbuild_docker + +builds_to_run: + # this section references builds defined in config_build_recipes.yaml + # if you add a build here, it will be built when you run buildbitstream + - firesim_rocket_singlecore_no_nic_l2_lbp + +agfis_to_share: + - firesim_rocket_singlecore_no_nic_l2_lbp + +share_with_accounts: + # To share with a specific user: + somebodysname: 890742599672 + # To share publicly: + # public: public \ No newline at end of file diff --git a/.github/scripts/run-firesim-tests.sh b/.github/scripts/run-firesim-tests.sh index 61ddb1d942..7aa77c1655 100755 --- a/.github/scripts/run-firesim-tests.sh +++ b/.github/scripts/run-firesim-tests.sh @@ -10,6 +10,7 @@ echo "FireSim test suite: ${suite}" echo "FireSim test timeout: ${FIRESIM_TEST_TIMEOUT_SECONDS:-7200}s" echo "FireSim heartbeat interval: ${FIRESIM_HEARTBEAT_SECONDS:-60}s" echo "FireSim Java heap size: ${JAVA_HEAP_SIZE:-FireSim default}" +echo "FireSim Verilator make flags: ${VERILATOR_MAKEFLAGS:-FireSim default}" source_with_nounset_disabled() { local script="$1" diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index e6957d72a5..cc8ec0c155 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -22,6 +22,8 @@ env: FIRESIM_HEARTBEAT_SECONDS: 60 # override: sims/firesim/sim/make/scala-build.mk:33 FIRESIM_JAVA_HEAP_SIZE: 12G + # override: sims/firesim/sim/make/verilator.mk:8 -- -j4 = $(nproc) on github runners + FIRESIM_F2_VERILATOR_MAKEFLAGS: -j4 VM_PARALLEL_BUILDS=1 jobs: firesim-onprem-tests: @@ -174,6 +176,7 @@ jobs: --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ --env "JVM_OPTS=${JVM_OPTS}" \ --env "JAVA_HEAP_SIZE=${FIRESIM_JAVA_HEAP_SIZE}" \ + --env "VERILATOR_MAKEFLAGS=${FIRESIM_F2_VERILATOR_MAKEFLAGS}" \ --env "FIRESIM_TEST_TIMEOUT_SECONDS=${FIRESIM_TEST_TIMEOUT_SECONDS}" \ --env "FIRESIM_HEARTBEAT_SECONDS=${FIRESIM_HEARTBEAT_SECONDS}" \ --env "PR_NUMBER=${PR_NUMBER}" \ diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index bd95e733f6..e11f9a3af4 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -34,6 +34,7 @@ RUN apt-get update && \ net-tools \ netcat-openbsd \ openssh-client \ + openssh-server \ patch \ procps \ python3 \ diff --git a/generators/firechip/chip/src/main/makefrag/firesim/build.mk b/generators/firechip/chip/src/main/makefrag/firesim/build.mk index d93c7aa0ee..3b3506efc8 100644 --- a/generators/firechip/chip/src/main/makefrag/firesim/build.mk +++ b/generators/firechip/chip/src/main/makefrag/firesim/build.mk @@ -69,4 +69,4 @@ SHUTTLE_VECTOR_VERILATOR_FLAGS = \ # AJG: this must be evaluated after verilog generation to work (hence the =) EXTRA_VERILATOR_FLAGS = \ - $(shell if grep -iq "module.*cva6" $(simulator_verilog); then echo "$(CVA6_VERILATOR_FLAGS)"; elif grep -iq "module.*gemmini" $(simulator_verilog); then echo "$(GEMMINI_VERILATOR_FLAGS)"; elif grep -Eiq "shuttle_tile.*vector_unit|vector_unit\.vu" $(simulator_verilog); then echo "$(SHUTTLE_VECTOR_VERILATOR_FLAGS)"; else echo "$(DEFAULT_MIDAS_VERILATOR_FLAGS)"; fi) + $(shell if grep -iq "module.*cva6" $(simulator_verilog); then echo "$(CVA6_VERILATOR_FLAGS)"; elif grep -iq "module.*gemmini" $(simulator_verilog); then echo "$(GEMMINI_VERILATOR_FLAGS)"; elif grep -iq "module.*shuttle.*vector" $(simulator_verilog); then echo "$(SHUTTLE_VECTOR_VERILATOR_FLAGS)"; else echo "$(DEFAULT_MIDAS_VERILATOR_FLAGS)"; fi) From 82fddeda3647a922e10ec7b7fb11256ecc90fe4c Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Mon, 6 Jul 2026 16:40:28 -0700 Subject: [PATCH 32/69] further firesim test fixes --- .../chip/src/main/makefrag/firesim/build.mk | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/generators/firechip/chip/src/main/makefrag/firesim/build.mk b/generators/firechip/chip/src/main/makefrag/firesim/build.mk index 3b3506efc8..dcf8e7eb7c 100644 --- a/generators/firechip/chip/src/main/makefrag/firesim/build.mk +++ b/generators/firechip/chip/src/main/makefrag/firesim/build.mk @@ -69,4 +69,17 @@ SHUTTLE_VECTOR_VERILATOR_FLAGS = \ # AJG: this must be evaluated after verilog generation to work (hence the =) EXTRA_VERILATOR_FLAGS = \ - $(shell if grep -iq "module.*cva6" $(simulator_verilog); then echo "$(CVA6_VERILATOR_FLAGS)"; elif grep -iq "module.*gemmini" $(simulator_verilog); then echo "$(GEMMINI_VERILATOR_FLAGS)"; elif grep -iq "module.*shuttle.*vector" $(simulator_verilog); then echo "$(SHUTTLE_VECTOR_VERILATOR_FLAGS)"; else echo "$(DEFAULT_MIDAS_VERILATOR_FLAGS)"; fi) + $(shell \ + if grep -iq "module.*cva6" $(simulator_verilog); then \ + echo "$(CVA6_VERILATOR_FLAGS)"; \ + elif echo "$(TARGET_CONFIG)" | grep -Eiq "Gemmini"; then \ + echo "$(GEMMINI_VERILATOR_FLAGS)"; \ + elif grep -iq "module.*gemmini" $(simulator_verilog); then \ + echo "$(GEMMINI_VERILATOR_FLAGS)"; \ + elif echo "$(TARGET_CONFIG)" | grep -Eiq "Shuttle"; then \ + echo "$(SHUTTLE_VECTOR_VERILATOR_FLAGS)"; \ + elif grep -Eiq "module.*shuttle.*vector|shuttle_tile.*vector_unit|vector_unit\.vu" $(simulator_verilog); then \ + echo "$(SHUTTLE_VECTOR_VERILATOR_FLAGS)"; \ + else \ + echo "$(DEFAULT_MIDAS_VERILATOR_FLAGS)"; \ + fi) From c4561be56ebdf8a321b0af72b025491ba0e9ca93 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Mon, 6 Jul 2026 18:56:08 -0700 Subject: [PATCH 33/69] revent oom --- .github/workflows/run-firesim-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index cc8ec0c155..97e3a5e02d 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -23,7 +23,7 @@ env: # override: sims/firesim/sim/make/scala-build.mk:33 FIRESIM_JAVA_HEAP_SIZE: 12G # override: sims/firesim/sim/make/verilator.mk:8 -- -j4 = $(nproc) on github runners - FIRESIM_F2_VERILATOR_MAKEFLAGS: -j4 VM_PARALLEL_BUILDS=1 + FIRESIM_F2_VERILATOR_MAKEFLAGS: -j3 VM_PARALLEL_BUILDS=1 jobs: firesim-onprem-tests: From 9b04068f63b7496fd3f79ebff3851245b141ff5d Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Mon, 6 Jul 2026 22:49:25 -0700 Subject: [PATCH 34/69] tune down parallism even more --- .github/workflows/run-firesim-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index 97e3a5e02d..25163659eb 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -22,8 +22,8 @@ env: FIRESIM_HEARTBEAT_SECONDS: 60 # override: sims/firesim/sim/make/scala-build.mk:33 FIRESIM_JAVA_HEAP_SIZE: 12G - # override: sims/firesim/sim/make/verilator.mk:8 -- -j4 = $(nproc) on github runners - FIRESIM_F2_VERILATOR_MAKEFLAGS: -j3 VM_PARALLEL_BUILDS=1 + # override: sims/firesim/sim/make/verilator.mk:8 -- F2 Gemmini generated C++ is memory-heavy on GitHub runners + FIRESIM_F2_VERILATOR_MAKEFLAGS: -j2 VM_PARALLEL_BUILDS=1 jobs: firesim-onprem-tests: From cf2ec63a3d90d5011183d84e9d7b26281e13490b Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 10 Jul 2026 20:19:53 -0700 Subject: [PATCH 35/69] firesim f2 bitstream build scripts --- .../f2/config_build.yaml | 62 +- .../vcu118/config_build.yaml | 2 +- .github/scripts/firesim-manager-entrypoint.sh | 76 +++ .github/scripts/launch-firesim-manager.sh | 565 ++++++++++++++++++ .github/workflows/launch-firesim-manager.yml | 70 +++ scripts/firesim-ec2-setup.sh | 105 ++++ 6 files changed, 858 insertions(+), 22 deletions(-) create mode 100755 .github/scripts/firesim-manager-entrypoint.sh create mode 100755 .github/scripts/launch-firesim-manager.sh create mode 100644 .github/workflows/launch-firesim-manager.yml create mode 100755 scripts/firesim-ec2-setup.sh diff --git a/.github/firesim-bitstream-templates/f2/config_build.yaml b/.github/firesim-bitstream-templates/f2/config_build.yaml index c80c20ff6d..5ce937a2fc 100644 --- a/.github/firesim-bitstream-templates/f2/config_build.yaml +++ b/.github/firesim-bitstream-templates/f2/config_build.yaml @@ -3,37 +3,57 @@ # this refers to build farms defined in config_build_farm.yaml build_farm: - base_recipe: build-farm-recipes/externally_provisioned.yaml + base_recipe: build-farm-recipes/aws_ec2.yaml recipe_arg_overrides: - # REQUIRED: (replace this) default location of build directory on build host. - default_build_dir: /root/firesimbuilds - # REQUIRED: List of IP addresses (or "localhost"). Each can have an OPTIONAL - # argument, called "override_build_dir", specifying to override the default - # build directory. - # - # Ex: - # build_farm_hosts: - # # use localhost and don't override the default build dir - # - localhost - # # use other IP address (don't override default build dir) - # - "111.111.1.111" - # # use other IP address (override default build dir for this build host) - # - "222.222.2.222": - # override_build_dir: /scratch/specific-build-host-build-dir - build_farm_hosts: - - "ubuntu@host.docker.internal": - override_build_dir: /home/ubuntu/fsimbuild_docker + # tag to apply to build farm hosts + build_farm_tag: mainbuildfarm + # instance type to use per build + instance_type: m8i.4xlarge + # instance market to use per build (ondemand, spot) + build_instance_market: spot + # if using spot instances, determine the interrupt behavior (terminate, stop, hibernate) + spot_interruption_behavior: terminate + # if using spot instances, determine the max price + spot_max_price: "0.5" + # default location of build directory on build host + default_build_dir: /home/ubuntu/firesim-build builds_to_run: # this section references builds defined in config_build_recipes.yaml # if you add a build here, it will be built when you run buildbitstream + - firesim_rocket_quadcore_nic_l2_llc4mb_ddr3 + - firesim_rocket_quadcore_no_nic_l2_llc4mb_ddr3 + - firesim_boom_singlecore_nic_l2_llc4mb_ddr3 + - firesim_boom_singlecore_no_nic_l2_llc4mb_ddr3 + - firesim_megaboom_singlecore_no_nic_l2_llc4mb_ddr3 + # # - firesim_supernode_rocket_singlecore_nic_l2_lbp - firesim_rocket_singlecore_no_nic_l2_lbp + # # - firesim_rocket_singlecore_sha3_nic_l2_llc4mb_ddr3 + # # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3 + # # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3_printf + - firesim_gemmini_printf_rocket_singlecore_no_nic + - firesim_gemmini_rocket_singlecore_no_nic + - firesim_saturn_REFV256D128_rocket_singlecore_no_nic_l2_llc4mb_ddr3 + - firesim_saturn_GENV256D128_shuttle_singlecore_no_nic_l2_llc4mb_ddr3 agfis_to_share: + - firesim_rocket_quadcore_nic_l2_llc4mb_ddr3 + - firesim_rocket_quadcore_no_nic_l2_llc4mb_ddr3 + - firesim_boom_singlecore_nic_l2_llc4mb_ddr3 + - firesim_boom_singlecore_no_nic_l2_llc4mb_ddr3 + - firesim_megaboom_singlecore_no_nic_l2_llc4mb_ddr3 + # # - firesim_supernode_rocket_singlecore_nic_l2_lbp - firesim_rocket_singlecore_no_nic_l2_lbp + # # - firesim_rocket_singlecore_sha3_nic_l2_llc4mb_ddr3 + # # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3 + # # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3_printf + - firesim_gemmini_printf_rocket_singlecore_no_nic + - firesim_gemmini_rocket_singlecore_no_nic + - firesim_saturn_REFV256D128_rocket_singlecore_no_nic_l2_llc4mb_ddr3 + - firesim_saturn_GENV256D128_shuttle_singlecore_no_nic_l2_llc4mb_ddr3 share_with_accounts: + public: public # To share with a specific user: - somebodysname: 890742599672 + # somebodysname: 123456789012 # To share publicly: - # public: public \ No newline at end of file diff --git a/.github/firesim-bitstream-templates/vcu118/config_build.yaml b/.github/firesim-bitstream-templates/vcu118/config_build.yaml index 9b9e3089ae..bdf7abdaa8 100644 --- a/.github/firesim-bitstream-templates/vcu118/config_build.yaml +++ b/.github/firesim-bitstream-templates/vcu118/config_build.yaml @@ -21,7 +21,7 @@ build_farm: # - "222.222.2.222": # override_build_dir: /scratch/specific-build-host-build-dir build_farm_hosts: - - {machine7}: + - {machine4}: override_build_dir: /tools/C/chipyard-cicd/machine7 builds_to_run: diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh new file mode 100755 index 0000000000..5686beca15 --- /dev/null +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash +set -euo pipefail + +export USER=root +export LOGNAME=root +export HOME=/root + +CY_DIR="${CY_DIR:-/root/chipyard}" +FS_DIR="${CY_DIR}/sims/firesim" +PUBLIC_KEY_PATH="${FIRESIM_PUBLIC_KEY_PATH:-/root/firesim-public}" +EC2_SETUP_SCRIPT="${FIRESIM_EC2_SETUP_SCRIPT:-${CY_DIR}/scripts/firesim-ec2-setup.sh}" +BUILD_RECIPES="${FIRESIM_BUILD_RECIPES:-${CY_DIR}/sims/firesim-staging/sample_config_build_recipes.yaml}" +BUILD_CONFIG="${FIRESIM_BUILD_CONFIG:-${CY_DIR}/.github/firesim-bitstream-templates/f2/config_build.yaml}" + +if [ ! -s "${PUBLIC_KEY_PATH}" ]; then + echo "Missing public key mounted at ${PUBLIC_KEY_PATH}." >&2 + exit 1 +fi + +mkdir -p "${HOME}/.ssh" +chmod 700 "${HOME}/.ssh" +touch "${HOME}/.ssh/authorized_keys" +chmod 600 "${HOME}/.ssh/authorized_keys" +grep -qxFf "${PUBLIC_KEY_PATH}" "${HOME}/.ssh/authorized_keys" || cat "${PUBLIC_KEY_PATH}" >> "${HOME}/.ssh/authorized_keys" + +cat >> /etc/ssh/sshd_config <<'EOF' +PermitRootLogin yes +PubkeyAuthentication yes +PasswordAuthentication no +EOF + +mkdir -p /run/sshd +chmod 755 /run/sshd +/usr/sbin/sshd + +if [ ! -x "${EC2_SETUP_SCRIPT}" ]; then + echo "Missing executable EC2 setup script: ${EC2_SETUP_SCRIPT}" >&2 + exit 1 +fi +"${EC2_SETUP_SCRIPT}" + +cd "${FS_DIR}" +had_nounset=0 +case "$-" in + *u*) + had_nounset=1 + set +u + ;; +esac + +# shellcheck disable=SC1091 +source sourceme-manager.sh + +if [ "${had_nounset}" -eq 1 ]; then + set -u +fi + +firesim managerinit --platform f2 + +python -m pip uninstall -y pyOpenSSL cryptography awscli botocore s3transfer urllib3 +python -m pip install --no-cache-dir --upgrade \ + 'urllib3<2' \ + 'cryptography==42.0.8' \ + 'pyOpenSSL==24.1.0' \ + awscli +hash -r + +export USER=root +export LOGNAME=root +export HOME=/root + +firesim buildbitstream \ + -r "${BUILD_RECIPES}" \ + -b "${BUILD_CONFIG}" + +firesim shareagfi \ No newline at end of file diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh new file mode 100755 index 0000000000..d4c2a23207 --- /dev/null +++ b/.github/scripts/launch-firesim-manager.sh @@ -0,0 +1,565 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Launch and provision an EC2 instance that can act as a FireSim manager. +# +# Required CI environment: +# AWS_ACCESS_KEY_ID +# AWS_SECRET_ACCESS_KEY +# AWS_SESSION_TOKEN optional, required only for temporary creds +# AWS_DEFAULT_REGION optional, defaults to us-west-2 +# FIRESIM_MANAGER_SSH_CIDR optional, defaults to CI runner public IP/32 +# FIRESIM_MANAGER_SSH_PRIVATE_KEY +# Required if EC2 key pair chipyard-cicd already exists. EC2 does not +# retain private key material after key-pair creation, so it cannot be +# pulled back from AWS later. +# FIRESIM_MANAGER_IMAGE +# Optional, defaults to ghcr.io/${GITHUB_REPOSITORY,,}:main. +# GHCR_USERNAME / GHCR_TOKEN +# Optional, needed only when pulling a private GHCR image. +# +# Useful overrides: +# FIRESIM_MANAGER_KEY_NAME=chipyard-cicd +# FIRESIM_MANAGER_INSTANCE_TYPE=m6a.xlarge +# FIRESIM_MANAGER_AMI_ID=ami-... or public AMI name +# FIRESIM_MANAGER_ROOT_VOLUME_GB=100 +# FIRESIM_MANAGER_CONTAINER_SCRIPT=path/to/local/script.sh +# FIRESIM_MANAGER_DETACH_CONTAINER=1 + +# Set this to an AMI ID or public AMI name to pin the manager image. Leave +# empty to resolve the current Ubuntu 24.04 amd64 EBS gp3 AMI from AWS SSM in +# the selected region. +manager_ami_id="${FIRESIM_MANAGER_AMI_ID:-1.19.2-prod-rhng4b6alkhdq}" + +aws_region="${AWS_REGION:-${AWS_DEFAULT_REGION:-us-west-2}}" +export AWS_DEFAULT_REGION="${aws_region}" + +managed_by="${FIRESIM_MANAGER_MANAGED_BY:-chipyard-cicd}" +resource_prefix="${FIRESIM_MANAGER_RESOURCE_PREFIX:-chipyard-cicd-firesim}" +key_name="${FIRESIM_MANAGER_KEY_NAME:-chipyard-cicd}" +instance_type="${FIRESIM_MANAGER_INSTANCE_TYPE:-m6a.xlarge}" +vpc_cidr="${FIRESIM_MANAGER_VPC_CIDR:-10.47.0.0/16}" +subnet_cidr="${FIRESIM_MANAGER_SUBNET_CIDR:-10.47.1.0/24}" +root_volume_gb="${FIRESIM_MANAGER_ROOT_VOLUME_GB:-100}" +remote_user="${FIRESIM_MANAGER_REMOTE_USER:-ubuntu}" +remote_region="${FIRESIM_AWS_REGION:-${aws_region}}" +detach_container="${FIRESIM_MANAGER_DETACH_CONTAINER:-0}" + +vpc_name="${resource_prefix}-vpc" +subnet_name="${resource_prefix}-subnet" +igw_name="${resource_prefix}-igw" +route_table_name="${resource_prefix}-rt" +sg_name="${resource_prefix}-ssh" +run_id="${GITHUB_RUN_ID:-$(date -u +%Y%m%d%H%M%S)}" +instance_name="${FIRESIM_MANAGER_INSTANCE_NAME:-${resource_prefix}-manager-${run_id}}" + +if [ -n "${FIRESIM_MANAGER_IMAGE:-}" ]; then + image_ref="${FIRESIM_MANAGER_IMAGE}" +elif [ -n "${GITHUB_REPOSITORY:-}" ]; then + image_ref="ghcr.io/${GITHUB_REPOSITORY,,}:main" +else + echo "Set FIRESIM_MANAGER_IMAGE or GITHUB_REPOSITORY so the GHCR image can be derived." >&2 + exit 1 +fi + +require_command() { + local command="$1" + if ! command -v "${command}" >/dev/null 2>&1; then + echo "Missing required command: ${command}" >&2 + exit 1 + fi +} + +aws_text_or_empty() { + local value + value="$(aws "$@" --output text)" + if [ "${value}" = "None" ]; then + value="" + fi + printf '%s\n' "${value}" +} + +tag_resource() { + local resource_id="$1" + local name="$2" + aws ec2 create-tags \ + --resources "${resource_id}" \ + --tags "Key=Name,Value=${name}" "Key=ManagedBy,Value=${managed_by}" \ + >/dev/null +} + +ensure_ssh_cidr() { + if [ -n "${FIRESIM_MANAGER_SSH_CIDR:-}" ]; then + printf '%s\n' "${FIRESIM_MANAGER_SSH_CIDR}" + return + fi + + if command -v curl >/dev/null 2>&1; then + local public_ip + public_ip="$(curl -fsS --max-time 10 https://checkip.amazonaws.com 2>/dev/null | tr -d '[:space:]' || true)" + if [[ "${public_ip}" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + printf '%s/32\n' "${public_ip}" + return + fi + fi + + echo "Set FIRESIM_MANAGER_SSH_CIDR to the CI runner's SSH source CIDR, for example 203.0.113.10/32." >&2 + exit 1 +} + +ensure_vpc() { + local vpc_id + vpc_id="$(aws_text_or_empty ec2 describe-vpcs \ + --filters "Name=tag:Name,Values=${vpc_name}" "Name=tag:ManagedBy,Values=${managed_by}" \ + --query 'Vpcs[0].VpcId')" + + if [ -z "${vpc_id}" ]; then + vpc_id="$(aws ec2 create-vpc --cidr-block "${vpc_cidr}" --query 'Vpc.VpcId' --output text)" + tag_resource "${vpc_id}" "${vpc_name}" + fi + + aws ec2 modify-vpc-attribute --vpc-id "${vpc_id}" --enable-dns-support '{"Value":true}' >/dev/null + aws ec2 modify-vpc-attribute --vpc-id "${vpc_id}" --enable-dns-hostnames '{"Value":true}' >/dev/null + printf '%s\n' "${vpc_id}" +} + +ensure_subnet() { + local vpc_id="$1" + local subnet_id + subnet_id="$(aws_text_or_empty ec2 describe-subnets \ + --filters "Name=vpc-id,Values=${vpc_id}" "Name=tag:Name,Values=${subnet_name}" "Name=tag:ManagedBy,Values=${managed_by}" \ + --query 'Subnets[0].SubnetId')" + + if [ -z "${subnet_id}" ]; then + local az + az="$(aws ec2 describe-availability-zones \ + --filters 'Name=state,Values=available' \ + --query 'AvailabilityZones[0].ZoneName' \ + --output text)" + subnet_id="$(aws ec2 create-subnet \ + --vpc-id "${vpc_id}" \ + --cidr-block "${subnet_cidr}" \ + --availability-zone "${az}" \ + --query 'Subnet.SubnetId' \ + --output text)" + tag_resource "${subnet_id}" "${subnet_name}" + fi + + aws ec2 modify-subnet-attribute --subnet-id "${subnet_id}" --map-public-ip-on-launch '{"Value":true}' >/dev/null + printf '%s\n' "${subnet_id}" +} + +ensure_internet_gateway() { + local vpc_id="$1" + local igw_id + igw_id="$(aws_text_or_empty ec2 describe-internet-gateways \ + --filters "Name=attachment.vpc-id,Values=${vpc_id}" "Name=tag:ManagedBy,Values=${managed_by}" \ + --query 'InternetGateways[0].InternetGatewayId')" + + if [ -z "${igw_id}" ]; then + igw_id="$(aws_text_or_empty ec2 describe-internet-gateways \ + --filters "Name=tag:Name,Values=${igw_name}" "Name=tag:ManagedBy,Values=${managed_by}" \ + --query 'InternetGateways[0].InternetGatewayId')" + fi + + if [ -z "${igw_id}" ]; then + igw_id="$(aws ec2 create-internet-gateway --query 'InternetGateway.InternetGatewayId' --output text)" + tag_resource "${igw_id}" "${igw_name}" + fi + + local attached_vpc + attached_vpc="$(aws_text_or_empty ec2 describe-internet-gateways \ + --internet-gateway-ids "${igw_id}" \ + --query 'InternetGateways[0].Attachments[0].VpcId')" + if [ -z "${attached_vpc}" ]; then + aws ec2 attach-internet-gateway --internet-gateway-id "${igw_id}" --vpc-id "${vpc_id}" >/dev/null + elif [ "${attached_vpc}" != "${vpc_id}" ]; then + echo "Internet gateway ${igw_id} is already attached to ${attached_vpc}, not ${vpc_id}." >&2 + exit 1 + fi + + printf '%s\n' "${igw_id}" +} + +ensure_route_table() { + local vpc_id="$1" + local subnet_id="$2" + local igw_id="$3" + local route_table_id + route_table_id="$(aws_text_or_empty ec2 describe-route-tables \ + --filters "Name=vpc-id,Values=${vpc_id}" "Name=tag:Name,Values=${route_table_name}" "Name=tag:ManagedBy,Values=${managed_by}" \ + --query 'RouteTables[0].RouteTableId')" + + if [ -z "${route_table_id}" ]; then + route_table_id="$(aws ec2 create-route-table --vpc-id "${vpc_id}" --query 'RouteTable.RouteTableId' --output text)" + tag_resource "${route_table_id}" "${route_table_name}" + fi + + local route_target + route_target="$(aws_text_or_empty ec2 describe-route-tables \ + --route-table-ids "${route_table_id}" \ + --query "RouteTables[0].Routes[?DestinationCidrBlock=='0.0.0.0/0'].GatewayId | [0]")" + if [ -z "${route_target}" ]; then + aws ec2 create-route \ + --route-table-id "${route_table_id}" \ + --destination-cidr-block 0.0.0.0/0 \ + --gateway-id "${igw_id}" \ + >/dev/null + elif [ "${route_target}" != "${igw_id}" ]; then + aws ec2 replace-route \ + --route-table-id "${route_table_id}" \ + --destination-cidr-block 0.0.0.0/0 \ + --gateway-id "${igw_id}" \ + >/dev/null + fi + + local association_id + association_id="$(aws_text_or_empty ec2 describe-route-tables \ + --route-table-ids "${route_table_id}" \ + --query "RouteTables[0].Associations[?SubnetId=='${subnet_id}'].RouteTableAssociationId | [0]")" + if [ -z "${association_id}" ]; then + aws ec2 associate-route-table --route-table-id "${route_table_id}" --subnet-id "${subnet_id}" >/dev/null + fi +} + +ensure_security_group() { + local vpc_id="$1" + local ssh_cidr="$2" + local security_group_id + security_group_id="$(aws_text_or_empty ec2 describe-security-groups \ + --filters "Name=vpc-id,Values=${vpc_id}" "Name=group-name,Values=${sg_name}" \ + --query 'SecurityGroups[0].GroupId')" + + if [ -z "${security_group_id}" ]; then + security_group_id="$(aws ec2 create-security-group \ + --vpc-id "${vpc_id}" \ + --group-name "${sg_name}" \ + --description "SSH access for Chipyard CI FireSim manager" \ + --query 'GroupId' \ + --output text)" + tag_resource "${security_group_id}" "${sg_name}" + fi + + local err_file + err_file="$(mktemp)" + if ! aws ec2 authorize-security-group-ingress \ + --group-id "${security_group_id}" \ + --ip-permissions "IpProtocol=tcp,FromPort=22,ToPort=22,IpRanges=[{CidrIp=${ssh_cidr},Description=CI-SSH}]" \ + >/dev/null 2>"${err_file}"; then + if ! grep -q 'InvalidPermission.Duplicate' "${err_file}"; then + cat "${err_file}" >&2 + rm -f "${err_file}" + exit 1 + fi + fi + rm -f "${err_file}" + + printf '%s\n' "${security_group_id}" +} + +prepare_key_files() { + local key_file="$1" + local public_key_file="$2" + + if aws ec2 describe-key-pairs --key-names "${key_name}" >/dev/null 2>&1; then + if [ -n "${FIRESIM_MANAGER_SSH_PRIVATE_KEY_FILE:-}" ]; then + cp "${FIRESIM_MANAGER_SSH_PRIVATE_KEY_FILE}" "${key_file}" + elif [ -n "${FIRESIM_MANAGER_SSH_PRIVATE_KEY:-}" ]; then + printf '%s\n' "${FIRESIM_MANAGER_SSH_PRIVATE_KEY}" > "${key_file}" + else + echo "EC2 key pair ${key_name} exists, but its private key cannot be retrieved from AWS." >&2 + echo "Set FIRESIM_MANAGER_SSH_PRIVATE_KEY or FIRESIM_MANAGER_SSH_PRIVATE_KEY_FILE in CI." >&2 + exit 1 + fi + else + aws ec2 create-key-pair \ + --key-name "${key_name}" \ + --key-type rsa \ + --key-format pem \ + --query 'KeyMaterial' \ + --output text > "${key_file}" + fi + + chmod 600 "${key_file}" + ssh-keygen -y -f "${key_file}" > "${public_key_file}" + chmod 644 "${public_key_file}" +} + +resolve_ami_id() { + if [ -n "${manager_ami_id}" ]; then + if [[ "${manager_ami_id}" == ami-* ]]; then + printf '%s\n' "${manager_ami_id}" + return + fi + + local image_id + image_id="$(aws_text_or_empty ec2 describe-images \ + --filters "Name=name,Values=${manager_ami_id}" "Name=is-public,Values=true" \ + --query 'sort_by(Images, &CreationDate)[-1].ImageId')" + if [ -z "${image_id}" ]; then + echo "Could not resolve public AMI name: ${manager_ami_id}" >&2 + exit 1 + fi + + printf '%s\n' "${image_id}" + return + fi + + aws ssm get-parameter \ + --name /aws/service/canonical/ubuntu/server/24.04/stable/current/amd64/hvm/ebs-gp3/ami-id \ + --query 'Parameter.Value' \ + --output text +} + +launch_instance() { + local ami_id="$1" + local subnet_id="$2" + local security_group_id="$3" + + aws ec2 run-instances \ + --image-id "${ami_id}" \ + --instance-type "${instance_type}" \ + --key-name "${key_name}" \ + --subnet-id "${subnet_id}" \ + --security-group-ids "${security_group_id}" \ + --associate-public-ip-address \ + --metadata-options 'HttpEndpoint=enabled,HttpTokens=required' \ + --block-device-mappings "DeviceName=/dev/sda1,Ebs={VolumeSize=${root_volume_gb},VolumeType=gp3,DeleteOnTermination=true}" \ + --tag-specifications \ + "ResourceType=instance,Tags=[{Key=Name,Value=${instance_name}},{Key=ManagedBy,Value=${managed_by}}]" \ + "ResourceType=volume,Tags=[{Key=Name,Value=${instance_name}-root},{Key=ManagedBy,Value=${managed_by}}]" \ + --query 'Instances[0].InstanceId' \ + --output text +} + +write_remote_aws_files() { + local aws_dir="$1" + mkdir -p "${aws_dir}" + chmod 700 "${aws_dir}" + + local access_key="${FIRESIM_AWS_ACCESS_KEY_ID:-${AWS_ACCESS_KEY_ID:-}}" + local secret_key="${FIRESIM_AWS_SECRET_ACCESS_KEY:-${AWS_SECRET_ACCESS_KEY:-}}" + local session_token="${FIRESIM_AWS_SESSION_TOKEN:-${AWS_SESSION_TOKEN:-}}" + + if [ -z "${access_key}" ] || [ -z "${secret_key}" ]; then + echo "Set AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY or FIRESIM_AWS_ACCESS_KEY_ID/FIRESIM_AWS_SECRET_ACCESS_KEY." >&2 + exit 1 + fi + + { + printf '[default]\n' + printf 'aws_access_key_id = %s\n' "${access_key}" + printf 'aws_secret_access_key = %s\n' "${secret_key}" + if [ -n "${session_token}" ]; then + printf 'aws_session_token = %s\n' "${session_token}" + fi + } > "${aws_dir}/credentials" + + { + printf '[default]\n' + printf 'region = %s\n' "${remote_region}" + printf 'output = json\n' + } > "${aws_dir}/config" + + chmod 600 "${aws_dir}/credentials" "${aws_dir}/config" +} + +write_container_script() { + local destination="$1" + local default_container_script=".github/scripts/firesim-manager-entrypoint.sh" + + if [ -n "${FIRESIM_MANAGER_CONTAINER_SCRIPT:-}" ]; then + cp "${FIRESIM_MANAGER_CONTAINER_SCRIPT}" "${destination}" + elif [ -f "${default_container_script}" ]; then + cp "${default_container_script}" "${destination}" + else + { + printf '#!/usr/bin/env bash\n' + printf 'set -euo pipefail\n' + printf 'echo "FireSim manager container is ready; no workload script was provided."\n' + } > "${destination}" + fi + + chmod 755 "${destination}" +} + +write_runtime_env() { + local destination="$1" + + { + printf 'IMAGE_REF=%q\n' "${image_ref}" + printf 'GHCR_USERNAME=%q\n' "${GHCR_USERNAME:-}" + printf 'GHCR_TOKEN=%q\n' "${GHCR_TOKEN:-}" + printf 'DETACH_CONTAINER=%q\n' "${detach_container}" + } > "${destination}" + + chmod 600 "${destination}" +} + +wait_for_ssh() { + local public_ip="$1" + local key_file="$2" + + local ssh_options=( + -i "${key_file}" + -o StrictHostKeyChecking=no + -o UserKnownHostsFile=/dev/null + -o ConnectTimeout=10 + -o ServerAliveInterval=15 + ) + + for _ in $(seq 1 60); do + if ssh "${ssh_options[@]}" "${remote_user}@${public_ip}" 'true' >/dev/null 2>&1; then + return + fi + sleep 10 + done + + echo "Timed out waiting for SSH on ${public_ip}." >&2 + exit 1 +} + +provision_instance() { + local public_ip="$1" + local key_file="$2" + local public_key_file="$3" + local aws_dir="$4" + local container_script="$5" + local runtime_env="$6" + + local ssh_options=( + -i "${key_file}" + -o StrictHostKeyChecking=no + -o UserKnownHostsFile=/dev/null + -o ServerAliveInterval=15 + ) + local scp_options=( + -i "${key_file}" + -o StrictHostKeyChecking=no + -o UserKnownHostsFile=/dev/null + ) + + scp "${scp_options[@]}" \ + "${key_file}" \ + "${public_key_file}" \ + "${aws_dir}/credentials" \ + "${aws_dir}/config" \ + "${container_script}" \ + "${runtime_env}" \ + "${remote_user}@${public_ip}:/tmp/" + + ssh "${ssh_options[@]}" "${remote_user}@${public_ip}" 'bash -s' <<'REMOTE' +set -euo pipefail + +source /tmp/firesim-manager-runtime.env +export IMAGE_REF GHCR_USERNAME GHCR_TOKEN DETACH_CONTAINER + +if command -v cloud-init >/dev/null 2>&1; then + sudo cloud-init status --wait +fi +sudo apt-get update +sudo DEBIAN_FRONTEND=noninteractive apt-get install -y awscli ca-certificates docker.io +sudo systemctl enable --now docker +sudo usermod -aG docker "${USER}" + +sudo install -m 700 -o "${USER}" -g "${USER}" -d "${HOME}/.aws" +sudo install -m 600 -o "${USER}" -g "${USER}" /tmp/credentials "${HOME}/.aws/credentials" +sudo install -m 600 -o "${USER}" -g "${USER}" /tmp/config "${HOME}/.aws/config" +sudo install -m 600 -o "${USER}" -g "${USER}" /tmp/firesim.pem "${HOME}/firesim.pem" +sudo install -m 644 -o "${USER}" -g "${USER}" /tmp/firesim-public "${HOME}/firesim-public" +sudo install -m 755 -o "${USER}" -g "${USER}" /tmp/firesim-manager-entrypoint.sh "${HOME}/firesim-manager-entrypoint.sh" + +sudo install -m 700 -o "${USER}" -g "${USER}" -d /ubuntu +sudo install -m 600 -o "${USER}" -g "${USER}" /tmp/firesim.pem /ubuntu/firesim.pem +sudo install -m 644 -o "${USER}" -g "${USER}" /tmp/firesim-public /ubuntu/firesim-public +rm -f /tmp/credentials /tmp/config /tmp/firesim.pem /tmp/firesim-public /tmp/firesim-manager-entrypoint.sh /tmp/firesim-manager-runtime.env + +newgrp docker <<'DOCKER_GROUP' +set -e +if [ -n "${GHCR_TOKEN}" ]; then + printf '%s\n' "${GHCR_TOKEN}" | docker login ghcr.io -u "${GHCR_USERNAME:-oauth2}" --password-stdin +fi + +docker pull "${IMAGE_REF}" +docker_args=( + --name firesim-manager + --add-host=host.docker.internal:host-gateway + -v "${HOME}/.aws:/root/.aws:ro" + -v "${HOME}/firesim.pem:/root/firesim.pem:ro" + -v "${HOME}/firesim-public:/root/firesim-public:ro" + -v "${HOME}/firesim-manager-entrypoint.sh:/root/firesim-manager-entrypoint.sh:ro" +) + +if [ "${DETACH_CONTAINER}" = "1" ]; then + docker rm -f firesim-manager >/dev/null 2>&1 || true + container_id="$(docker run -d --rm "${docker_args[@]}" "${IMAGE_REF}" bash /root/firesim-manager-entrypoint.sh)" + echo "Started detached FireSim manager container: ${container_id}" +else + docker run --rm "${docker_args[@]}" "${IMAGE_REF}" bash /root/firesim-manager-entrypoint.sh +fi +DOCKER_GROUP +REMOTE +} + +main() { + require_command aws + require_command ssh + require_command scp + require_command ssh-keygen + + local ssh_cidr + ssh_cidr="$(ensure_ssh_cidr)" + + local tmp_dir + tmp_dir="$(mktemp -d)" + trap "rm -rf '${tmp_dir}'" EXIT + + local key_file="${tmp_dir}/firesim.pem" + local public_key_file="${tmp_dir}/firesim-public" + local aws_dir="${tmp_dir}/aws" + local container_script="${tmp_dir}/firesim-manager-entrypoint.sh" + local runtime_env="${tmp_dir}/firesim-manager-runtime.env" + + echo "Preparing EC2 key pair ${key_name}." + prepare_key_files "${key_file}" "${public_key_file}" + write_remote_aws_files "${aws_dir}" + write_container_script "${container_script}" + write_runtime_env "${runtime_env}" + + echo "Ensuring FireSim manager network in ${aws_region}." + local vpc_id + local subnet_id + local igw_id + local security_group_id + vpc_id="$(ensure_vpc)" + subnet_id="$(ensure_subnet "${vpc_id}")" + igw_id="$(ensure_internet_gateway "${vpc_id}")" + ensure_route_table "${vpc_id}" "${subnet_id}" "${igw_id}" + security_group_id="$(ensure_security_group "${vpc_id}" "${ssh_cidr}")" + + local ami_id + ami_id="$(resolve_ami_id)" + + echo "Launching ${instance_type} FireSim manager from ${ami_id}." + local instance_id + instance_id="$(launch_instance "${ami_id}" "${subnet_id}" "${security_group_id}")" + aws ec2 wait instance-running --instance-ids "${instance_id}" + aws ec2 wait instance-status-ok --instance-ids "${instance_id}" + + local public_ip + public_ip="$(aws ec2 describe-instances \ + --instance-ids "${instance_id}" \ + --query 'Reservations[0].Instances[0].PublicIpAddress' \ + --output text)" + + echo "Instance ${instance_id} is running at ${public_ip}. Waiting for SSH." + wait_for_ssh "${public_ip}" "${key_file}" + + echo "Provisioning FireSim manager and running ${image_ref}." + provision_instance "${public_ip}" "${key_file}" "${public_key_file}" "${aws_dir}" "${container_script}" "${runtime_env}" + + echo "FireSim manager instance: ${instance_id}" + echo "FireSim manager public IP: ${public_ip}" +} + +main "$@" diff --git a/.github/workflows/launch-firesim-manager.yml b/.github/workflows/launch-firesim-manager.yml new file mode 100644 index 0000000000..0960814d44 --- /dev/null +++ b/.github/workflows/launch-firesim-manager.yml @@ -0,0 +1,70 @@ +name: launch firesim manager + +on: + workflow_dispatch: + inputs: + manager_ami_id: + description: 'Manager AMI ID or public AMI name. Leave empty to use the script default.' + required: false + type: string + ssh_cidr: + description: 'CIDR allowed to SSH into the manager. Leave empty to use the GitHub runner public IP/32.' + required: false + type: string + manager_image: + description: 'Container image to run on the manager. Leave empty for ghcr.io/${GITHUB_REPOSITORY,,}:main.' + required: false + type: string + container_script: + description: 'Repo-relative script to run inside the manager container.' + required: false + default: '.github/scripts/firesim-manager-entrypoint.sh' + type: string + +permissions: + contents: read + packages: read + +defaults: + run: + shell: bash -leo pipefail {0} + +jobs: + launch-firesim-manager: + name: launch firesim manager + runs-on: ubuntu-24.04 + timeout-minutes: 120 + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }} + AWS_DEFAULT_REGION: us-west-2 + FIRESIM_MANAGER_AMI_ID: ${{ inputs.manager_ami_id }} + FIRESIM_MANAGER_SSH_CIDR: ${{ inputs.ssh_cidr }} + FIRESIM_MANAGER_IMAGE: ${{ inputs.manager_image }} + FIRESIM_MANAGER_CONTAINER_SCRIPT: ${{ inputs.container_script }} + FIRESIM_MANAGER_DETACH_CONTAINER: "1" + FIRESIM_MANAGER_SSH_PRIVATE_KEY: ${{ secrets.FIRESIM_MANAGER_SSH_PRIVATE_KEY }} + GHCR_USERNAME: ${{ github.actor }} + GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: Check out main + uses: actions/checkout@v4 + with: + ref: main + + - name: Validate inputs + run: | + if [ -z "${AWS_ACCESS_KEY_ID}" ] || [ -z "${AWS_SECRET_ACCESS_KEY}" ]; then + echo "Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY repository secrets." >&2 + exit 1 + fi + + if [ -n "${FIRESIM_MANAGER_CONTAINER_SCRIPT}" ] && [ ! -f "${FIRESIM_MANAGER_CONTAINER_SCRIPT}" ]; then + echo "Container script does not exist: ${FIRESIM_MANAGER_CONTAINER_SCRIPT}" >&2 + exit 1 + fi + + - name: Launch FireSim manager + run: | + .github/scripts/launch-firesim-manager.sh diff --git a/scripts/firesim-ec2-setup.sh b/scripts/firesim-ec2-setup.sh new file mode 100755 index 0000000000..83296e01aa --- /dev/null +++ b/scripts/firesim-ec2-setup.sh @@ -0,0 +1,105 @@ +#!/usr/bin/env bash + +# FireSim EC2-only setup steps. +# +# These are the EC2-specific setup steps that normally run automatically as +# part of FireSim's build-setup (sims/firesim/build-setup-nolog.sh, triggered +# by ./build-setup.sh) whenever it detects it is running on an EC2 instance. +# +# Run this script manually if you pulled a Chipyard/FireSim Docker container +# that was NOT built on an EC2 instance but you now want to use it on EC2. In +# that case the EC2-specific setup was skipped when the container was built, +# so it needs to be performed once on the instance. It sources sdk_setup.sh +# and hdk_setup.sh to pull down the AWS shell DCP and IP so worker instances +# don't have to redo it each time. +# +# NOTE: This is a duplicate of the "EC2-only setup" section of +# sims/firesim/build-setup-nolog.sh. That script keeps its own inline copy +# because FireSim can be used standalone (without Chipyard), so it cannot +# depend on this Chipyard-only helper. Keep the two in sync if either changes. + +# exit script if any command fails +set -e +set -o pipefail + +# Locate the FireSim directory. Prefer an explicit FS_DIR override, otherwise +# derive it relative to this script's location (chipyard/scripts/) so this +# works even in a Docker container where git metadata may be unavailable. +if [ -n "${FS_DIR:-}" ]; then + FDIR="$FS_DIR" +else + SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + CYDIR=$( cd -- "$SCRIPT_DIR/.." &> /dev/null && pwd ) + FDIR="$CYDIR/sims/firesim" +fi + +if [ ! -d "$FDIR" ]; then + echo "ERROR: could not find the FireSim directory at '$FDIR'." + echo "Set the FS_DIR environment variable to point at sims/firesim and re-run." + exit 1 +fi + +cd "$FDIR" + +#### EC2-only setup #### + +# see if the instance info page exists. if not, we are not on ec2. +# Skip EC2 setup if FORCE_NON_EC2 is set +if [ "${FORCE_NON_EC2:-0}" != "1" ]; then + # see if the instance info page exists. if not, we are not on ec2. + # rh: yet another HTTPS issue that needs to be fixed. i swear on god they use this for the most random things sometimes + TOKEN="" + for attempt in 1 2 3; do + # Metadata is unreachable off-EC2; keep setup non-fatal in that case. + set +e + TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" \ + --connect-timeout 1 -m 3 2>/dev/null) + curl_rc=$? + set -e + + if [ $curl_rc -eq 0 ] && [ -n "$TOKEN" ]; then + break + fi + + TOKEN="" + done + if [ -n "$TOKEN" ]; then + + ( + echo $'IMDSv2 check passed, this is an EC2 instance' + + # ensure that we're using the system toolchain to build the kernel modules + # newer gcc has --enable-default-pie and older kernels think the compiler + # is broken unless you pass -fno-pie but then I was encountering a weird + # error about string.h not being found + export PATH=/usr/bin:$PATH + + # TODO: Update for xdma for f2 + # cd "$FDIR/platforms/f1/aws-fpga/sdk/linux_kernel_drivers/xdma" + # make + ) + + ( + if [[ "${CPPFLAGS:-zzz}" != "zzz" ]]; then + # don't set it if it isn't already set but strip out -DNDEBUG because + # the sdk software has assertion-only variable usage that will end up erroring + # under NDEBUG with -Wall and -Werror + export CPPFLAGS="${CPPFLAGS/-DNDEBUG/}" + fi + + # Source hdk_setup.sh once on this machine to pull down shell DCP and IP, + # so we don't have to waste time doing it each time on worker instances + AWSFPGA="$FDIR/platforms/f2/aws-fpga-firesim-f2" + cd "$AWSFPGA" + bash -c "source ./sdk_setup.sh" + bash -c "source ./hdk_setup.sh" + ) + + else + echo $'IMDSv2 token empty/failed, skipping EC2 specific setup stuff' + fi +else + echo $'FORCE_NON_EC2 set, skipping EC2 specific setup' +fi + +echo "FireSim EC2-only setup complete!" From e82c2effc6918c135a16d8485c21991bd73e79eb Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 10 Jul 2026 21:27:01 -0700 Subject: [PATCH 36/69] patch ami --- .github/scripts/launch-firesim-manager.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index d4c2a23207..440e31243c 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -29,7 +29,9 @@ set -euo pipefail # Set this to an AMI ID or public AMI name to pin the manager image. Leave # empty to resolve the current Ubuntu 24.04 amd64 EBS gp3 AMI from AWS SSM in # the selected region. -manager_ami_id="${FIRESIM_MANAGER_AMI_ID:-1.19.2-prod-rhng4b6alkhdq}" + +# This is FPGA Dev AMI 1.19.2-prod-rhng4b6alkhdq +manager_ami_id="${FIRESIM_MANAGER_AMI_ID:-ami-07a164f1a402ab274}" aws_region="${AWS_REGION:-${AWS_DEFAULT_REGION:-us-west-2}}" export AWS_DEFAULT_REGION="${aws_region}" From ca984de93f0231da796165eb16e61eccf887f38f Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 10 Jul 2026 21:40:41 -0700 Subject: [PATCH 37/69] fix default root vol size on aws --- .github/scripts/launch-firesim-manager.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index 440e31243c..5da46355c1 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -42,7 +42,7 @@ key_name="${FIRESIM_MANAGER_KEY_NAME:-chipyard-cicd}" instance_type="${FIRESIM_MANAGER_INSTANCE_TYPE:-m6a.xlarge}" vpc_cidr="${FIRESIM_MANAGER_VPC_CIDR:-10.47.0.0/16}" subnet_cidr="${FIRESIM_MANAGER_SUBNET_CIDR:-10.47.1.0/24}" -root_volume_gb="${FIRESIM_MANAGER_ROOT_VOLUME_GB:-100}" +root_volume_gb="${FIRESIM_MANAGER_ROOT_VOLUME_GB:-120}" remote_user="${FIRESIM_MANAGER_REMOTE_USER:-ubuntu}" remote_region="${FIRESIM_AWS_REGION:-${aws_region}}" detach_container="${FIRESIM_MANAGER_DETACH_CONTAINER:-0}" From 309f15995c86565b162d5de657a65f8ef07b3dc0 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 10 Jul 2026 21:49:30 -0700 Subject: [PATCH 38/69] prevent warnings from kiling job --- .github/scripts/launch-firesim-manager.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index 5da46355c1..e3cd58edcf 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -457,7 +457,10 @@ source /tmp/firesim-manager-runtime.env export IMAGE_REF GHCR_USERNAME GHCR_TOKEN DETACH_CONTAINER if command -v cloud-init >/dev/null 2>&1; then - sudo cloud-init status --wait + if ! sudo cloud-init status --wait; then + echo "cloud-init reported warnings/errors after reaching status; continuing provisioning." >&2 + sudo cloud-init status --long || true + fi fi sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y awscli ca-certificates docker.io From 967cd60b8cd127da0ff356c23bac98f287916d57 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 10 Jul 2026 22:01:09 -0700 Subject: [PATCH 39/69] dont try to fetch awscli in ec2 inst --- .github/scripts/launch-firesim-manager.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index e3cd58edcf..e096bc7e80 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -463,7 +463,7 @@ if command -v cloud-init >/dev/null 2>&1; then fi fi sudo apt-get update -sudo DEBIAN_FRONTEND=noninteractive apt-get install -y awscli ca-certificates docker.io +sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates docker.io sudo systemctl enable --now docker sudo usermod -aG docker "${USER}" From 4473e029236f7b59109ccc102eb74faebf3b35bf Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 10 Jul 2026 22:53:46 -0700 Subject: [PATCH 40/69] aws setup fixes --- .github/scripts/firesim-manager-entrypoint.sh | 5 +++-- .github/scripts/launch-firesim-manager.sh | 3 ++- scripts/firesim-ec2-setup.sh | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index 5686beca15..140ce92d1f 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -37,6 +37,7 @@ if [ ! -x "${EC2_SETUP_SCRIPT}" ]; then echo "Missing executable EC2 setup script: ${EC2_SETUP_SCRIPT}" >&2 exit 1 fi +export FORCE_NON_EC2=0 "${EC2_SETUP_SCRIPT}" cd "${FS_DIR}" @@ -55,7 +56,7 @@ if [ "${had_nounset}" -eq 1 ]; then set -u fi -firesim managerinit --platform f2 +printf '\n' | firesim managerinit --platform f2 python -m pip uninstall -y pyOpenSSL cryptography awscli botocore s3transfer urllib3 python -m pip install --no-cache-dir --upgrade \ @@ -73,4 +74,4 @@ firesim buildbitstream \ -r "${BUILD_RECIPES}" \ -b "${BUILD_CONFIG}" -firesim shareagfi \ No newline at end of file +firesim shareagfi diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index e096bc7e80..b7fd81345a 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -497,8 +497,9 @@ docker_args=( if [ "${DETACH_CONTAINER}" = "1" ]; then docker rm -f firesim-manager >/dev/null 2>&1 || true - container_id="$(docker run -d --rm "${docker_args[@]}" "${IMAGE_REF}" bash /root/firesim-manager-entrypoint.sh)" + container_id="$(docker run -d "${docker_args[@]}" "${IMAGE_REF}" bash /root/firesim-manager-entrypoint.sh)" echo "Started detached FireSim manager container: ${container_id}" + echo "Inspect with: docker ps -a --filter name=firesim-manager && docker logs firesim-manager" else docker run --rm "${docker_args[@]}" "${IMAGE_REF}" bash /root/firesim-manager-entrypoint.sh fi diff --git a/scripts/firesim-ec2-setup.sh b/scripts/firesim-ec2-setup.sh index 83296e01aa..7e3e03f220 100755 --- a/scripts/firesim-ec2-setup.sh +++ b/scripts/firesim-ec2-setup.sh @@ -45,7 +45,7 @@ cd "$FDIR" # see if the instance info page exists. if not, we are not on ec2. # Skip EC2 setup if FORCE_NON_EC2 is set -if [ "${FORCE_NON_EC2:-0}" != "1" ]; then +if [ "${FORCE_NON_EC2:-0}" != "1" ]; then # todo(jimfang) remove this # see if the instance info page exists. if not, we are not on ec2. # rh: yet another HTTPS issue that needs to be fixed. i swear on god they use this for the most random things sometimes TOKEN="" From f74e2eba9939fee208d1084b005690aabbe41331 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 10 Jul 2026 23:13:34 -0700 Subject: [PATCH 41/69] source vivado in container for aws sdk setup --- .github/scripts/firesim-manager-entrypoint.sh | 15 +++++++++++++++ .github/scripts/launch-firesim-manager.sh | 1 + 2 files changed, 16 insertions(+) diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index 140ce92d1f..6b9368a0ff 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -11,6 +11,21 @@ PUBLIC_KEY_PATH="${FIRESIM_PUBLIC_KEY_PATH:-/root/firesim-public}" EC2_SETUP_SCRIPT="${FIRESIM_EC2_SETUP_SCRIPT:-${CY_DIR}/scripts/firesim-ec2-setup.sh}" BUILD_RECIPES="${FIRESIM_BUILD_RECIPES:-${CY_DIR}/sims/firesim-staging/sample_config_build_recipes.yaml}" BUILD_CONFIG="${FIRESIM_BUILD_CONFIG:-${CY_DIR}/.github/firesim-bitstream-templates/f2/config_build.yaml}" +VIVADO_VERSION="${VIVADO_VERSION:-}" + +if [ -n "${VIVADO_VERSION}" ]; then + VIVADO_PATH="/opt/Xilinx/${VIVADO_VERSION}/Vivado/settings64.sh" +else + VIVADO_PATH="$(find /opt/Xilinx -path '*/Vivado/settings64.sh' -type f 2>/dev/null | sort -V | tail -n 1)" +fi + +if [ ! -f "${VIVADO_PATH}" ]; then + echo "Missing Vivado settings script. Set VIVADO_VERSION or mount /opt/Xilinx into the container." >&2 + exit 1 +fi + +# shellcheck disable=SC1090 +source "${VIVADO_PATH}" if [ ! -s "${PUBLIC_KEY_PATH}" ]; then echo "Missing public key mounted at ${PUBLIC_KEY_PATH}." >&2 diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index b7fd81345a..4bcbb7bc2c 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -493,6 +493,7 @@ docker_args=( -v "${HOME}/firesim.pem:/root/firesim.pem:ro" -v "${HOME}/firesim-public:/root/firesim-public:ro" -v "${HOME}/firesim-manager-entrypoint.sh:/root/firesim-manager-entrypoint.sh:ro" + -v "/opt/Xilinx:/opt/Xilinx:ro" ) if [ "${DETACH_CONTAINER}" = "1" ]; then From 8ca11aeff379f3a35bbc3725c98cf7521b0132f7 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Fri, 10 Jul 2026 23:29:53 -0700 Subject: [PATCH 42/69] set -u strikes again --- .github/scripts/firesim-manager-entrypoint.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index 6b9368a0ff..80c8fb22fb 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -24,9 +24,22 @@ if [ ! -f "${VIVADO_PATH}" ]; then exit 1 fi +echo "Sourcing Vivado settings: ${VIVADO_PATH}" +had_nounset=0 +case "$-" in + *u*) + had_nounset=1 + set +u + ;; +esac + # shellcheck disable=SC1090 source "${VIVADO_PATH}" +if [ "${had_nounset}" -eq 1 ]; then + set -u +fi + if [ ! -s "${PUBLIC_KEY_PATH}" ]; then echo "Missing public key mounted at ${PUBLIC_KEY_PATH}." >&2 exit 1 From e44f91eb8b259baa6d2bb8e80c2c24df706bc4a1 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 11 Jul 2026 00:22:33 -0700 Subject: [PATCH 43/69] patchs --- .github/scripts/firesim-manager-entrypoint.sh | 18 ++++++++++++++++++ .github/scripts/launch-firesim-manager.sh | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index 80c8fb22fb..f4f3032461 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -13,6 +13,24 @@ BUILD_RECIPES="${FIRESIM_BUILD_RECIPES:-${CY_DIR}/sims/firesim-staging/sample_co BUILD_CONFIG="${FIRESIM_BUILD_CONFIG:-${CY_DIR}/.github/firesim-bitstream-templates/f2/config_build.yaml}" VIVADO_VERSION="${VIVADO_VERSION:-}" +export LC_ALL="${LC_ALL:-en_US.UTF-8}" +export LANG="${LANG:-en_US.UTF-8}" + +if ! ldconfig -p 2>/dev/null | grep -q 'libX11\.so\.6'; then + apt-get update + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + git-lfs \ + locales \ + libx11-6 \ + libxext6 \ + libxft2 \ + libxi6 \ + libxinerama1 \ + libxrender1 \ + libxtst6 + locale-gen en_US.UTF-8 +fi + if [ -n "${VIVADO_VERSION}" ]; then VIVADO_PATH="/opt/Xilinx/${VIVADO_VERSION}/Vivado/settings64.sh" else diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index 4bcbb7bc2c..c5d6cd9309 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -42,7 +42,7 @@ key_name="${FIRESIM_MANAGER_KEY_NAME:-chipyard-cicd}" instance_type="${FIRESIM_MANAGER_INSTANCE_TYPE:-m6a.xlarge}" vpc_cidr="${FIRESIM_MANAGER_VPC_CIDR:-10.47.0.0/16}" subnet_cidr="${FIRESIM_MANAGER_SUBNET_CIDR:-10.47.1.0/24}" -root_volume_gb="${FIRESIM_MANAGER_ROOT_VOLUME_GB:-120}" +root_volume_gb="${FIRESIM_MANAGER_ROOT_VOLUME_GB:-170}" remote_user="${FIRESIM_MANAGER_REMOTE_USER:-ubuntu}" remote_region="${FIRESIM_AWS_REGION:-${aws_region}}" detach_container="${FIRESIM_MANAGER_DETACH_CONTAINER:-0}" From abfb092c95150970a108f3eac79e824f8a25953a Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sat, 11 Jul 2026 23:22:22 -0700 Subject: [PATCH 44/69] local bitstream build patch --- .github/firesim-bitstream-templates/vcu118/config_build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/firesim-bitstream-templates/vcu118/config_build.yaml b/.github/firesim-bitstream-templates/vcu118/config_build.yaml index bdf7abdaa8..6dad4aa5de 100644 --- a/.github/firesim-bitstream-templates/vcu118/config_build.yaml +++ b/.github/firesim-bitstream-templates/vcu118/config_build.yaml @@ -22,7 +22,7 @@ build_farm: # override_build_dir: /scratch/specific-build-host-build-dir build_farm_hosts: - {machine4}: - override_build_dir: /tools/C/chipyard-cicd/machine7 + override_build_dir: /tools/C/chipyard-cicd/machine4 builds_to_run: # this section references builds defined in config_build_recipes.yaml From e16c0dccaa76383d80dc8065b6f8bceceeeee592 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 00:00:02 -0700 Subject: [PATCH 45/69] keep same vpc --- .github/scripts/firesim-manager-entrypoint.sh | 43 ++++++++++++++++++- .github/scripts/launch-firesim-manager.sh | 26 ++++++++--- 2 files changed, 62 insertions(+), 7 deletions(-) diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index f4f3032461..1e38826ba8 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -12,11 +12,21 @@ EC2_SETUP_SCRIPT="${FIRESIM_EC2_SETUP_SCRIPT:-${CY_DIR}/scripts/firesim-ec2-setu BUILD_RECIPES="${FIRESIM_BUILD_RECIPES:-${CY_DIR}/sims/firesim-staging/sample_config_build_recipes.yaml}" BUILD_CONFIG="${FIRESIM_BUILD_CONFIG:-${CY_DIR}/.github/firesim-bitstream-templates/f2/config_build.yaml}" VIVADO_VERSION="${VIVADO_VERSION:-}" +FIRESIM_AWS_VPC_NAME="${FIRESIM_AWS_VPC_NAME:-chipyard-cicd}" +FIRESIM_AWS_KEY_NAME="${FIRESIM_AWS_KEY_NAME:-chipyard-cicd}" +FIRESIM_AWS_SECURITY_GROUP_NAME="${FIRESIM_AWS_SECURITY_GROUP_NAME:-chipyard-cicd-build-farm}" +FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME="${FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME:-chipyard-cicd-firesim-ssh}" +FIRESIM_AWS_ALLOWED_CIDR="${FIRESIM_AWS_ALLOWED_CIDR:-192.168.0.0/16}" +export FIRESIM_AWS_VPC_NAME +export FIRESIM_AWS_KEY_NAME +export FIRESIM_AWS_SECURITY_GROUP_NAME +export FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME +export FIRESIM_AWS_ALLOWED_CIDR export LC_ALL="${LC_ALL:-en_US.UTF-8}" export LANG="${LANG:-en_US.UTF-8}" -if ! ldconfig -p 2>/dev/null | grep -q 'libX11\.so\.6'; then +if ! ldconfig -p 2>/dev/null | grep -q 'libX11\.so\.6' || ! command -v git-lfs >/dev/null 2>&1; then apt-get update DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ git-lfs \ @@ -87,6 +97,37 @@ export FORCE_NON_EC2=0 "${EC2_SETUP_SCRIPT}" cd "${FS_DIR}" + +python - <<'PY' +import os +from pathlib import Path + +path = Path("deploy/awstools/awstools.py") +text = path.read_text() +replacements = { + '"vpcname": "firesim",': f'"vpcname": {os.environ["FIRESIM_AWS_VPC_NAME"]!r},', + '"securitygroupname": "for-farms-only-firesim",': f'"securitygroupname": {os.environ["FIRESIM_AWS_SECURITY_GROUP_NAME"]!r},', + '"securitygroupname-manager": "firesim",': f'"securitygroupname-manager": {os.environ["FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME"]!r},', + '"keyname": "firesim",': f'"keyname": {os.environ["FIRESIM_AWS_KEY_NAME"]!r},', + 'allowed_cidr = "192.168.0.0/16"': f'allowed_cidr = {os.environ["FIRESIM_AWS_ALLOWED_CIDR"]!r}', +} +for old, new in replacements.items(): + if old in text: + text = text.replace(old, new, 1) + elif new in text: + continue + else: + raise SystemExit(f"Could not find expected FireSim AWS resource-name text: {old}") +path.write_text(text) +print( + "Configured FireSim AWS resources: " + f"vpc={os.environ['FIRESIM_AWS_VPC_NAME']} " + f"key={os.environ['FIRESIM_AWS_KEY_NAME']} " + f"security_group={os.environ['FIRESIM_AWS_SECURITY_GROUP_NAME']} " + f"allowed_cidr={os.environ['FIRESIM_AWS_ALLOWED_CIDR']}" +) +PY + had_nounset=0 case "$-" in *u*) diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index c5d6cd9309..63d031c9ec 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -22,6 +22,7 @@ set -euo pipefail # FIRESIM_MANAGER_KEY_NAME=chipyard-cicd # FIRESIM_MANAGER_INSTANCE_TYPE=m6a.xlarge # FIRESIM_MANAGER_AMI_ID=ami-... or public AMI name +# FIRESIM_MANAGER_VPC_NAME=chipyard-cicd # FIRESIM_MANAGER_ROOT_VOLUME_GB=100 # FIRESIM_MANAGER_CONTAINER_SCRIPT=path/to/local/script.sh # FIRESIM_MANAGER_DETACH_CONTAINER=1 @@ -40,14 +41,15 @@ managed_by="${FIRESIM_MANAGER_MANAGED_BY:-chipyard-cicd}" resource_prefix="${FIRESIM_MANAGER_RESOURCE_PREFIX:-chipyard-cicd-firesim}" key_name="${FIRESIM_MANAGER_KEY_NAME:-chipyard-cicd}" instance_type="${FIRESIM_MANAGER_INSTANCE_TYPE:-m6a.xlarge}" -vpc_cidr="${FIRESIM_MANAGER_VPC_CIDR:-10.47.0.0/16}" -subnet_cidr="${FIRESIM_MANAGER_SUBNET_CIDR:-10.47.1.0/24}" +vpc_cidr="${FIRESIM_MANAGER_VPC_CIDR:-192.168.0.0/16}" +subnet_cidr="${FIRESIM_MANAGER_SUBNET_CIDR:-192.168.1.0/24}" root_volume_gb="${FIRESIM_MANAGER_ROOT_VOLUME_GB:-170}" remote_user="${FIRESIM_MANAGER_REMOTE_USER:-ubuntu}" remote_region="${FIRESIM_AWS_REGION:-${aws_region}}" detach_container="${FIRESIM_MANAGER_DETACH_CONTAINER:-0}" +firesim_build_security_group_name="${FIRESIM_AWS_SECURITY_GROUP_NAME:-chipyard-cicd-build-farm}" -vpc_name="${resource_prefix}-vpc" +vpc_name="${FIRESIM_MANAGER_VPC_NAME:-chipyard-cicd}" subnet_name="${resource_prefix}-subnet" igw_name="${resource_prefix}-igw" route_table_name="${resource_prefix}-rt" @@ -112,7 +114,7 @@ ensure_ssh_cidr() { ensure_vpc() { local vpc_id vpc_id="$(aws_text_or_empty ec2 describe-vpcs \ - --filters "Name=tag:Name,Values=${vpc_name}" "Name=tag:ManagedBy,Values=${managed_by}" \ + --filters "Name=tag:Name,Values=${vpc_name}" \ --query 'Vpcs[0].VpcId')" if [ -z "${vpc_id}" ]; then @@ -155,7 +157,7 @@ ensure_internet_gateway() { local vpc_id="$1" local igw_id igw_id="$(aws_text_or_empty ec2 describe-internet-gateways \ - --filters "Name=attachment.vpc-id,Values=${vpc_id}" "Name=tag:ManagedBy,Values=${managed_by}" \ + --filters "Name=attachment.vpc-id,Values=${vpc_id}" \ --query 'InternetGateways[0].InternetGatewayId')" if [ -z "${igw_id}" ]; then @@ -393,6 +395,11 @@ write_runtime_env() { printf 'GHCR_USERNAME=%q\n' "${GHCR_USERNAME:-}" printf 'GHCR_TOKEN=%q\n' "${GHCR_TOKEN:-}" printf 'DETACH_CONTAINER=%q\n' "${detach_container}" + printf 'FIRESIM_AWS_VPC_NAME=%q\n' "${vpc_name}" + printf 'FIRESIM_AWS_KEY_NAME=%q\n' "${key_name}" + printf 'FIRESIM_AWS_SECURITY_GROUP_NAME=%q\n' "${firesim_build_security_group_name}" + printf 'FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME=%q\n' "${sg_name}" + printf 'FIRESIM_AWS_ALLOWED_CIDR=%q\n' "${vpc_cidr}" } > "${destination}" chmod 600 "${destination}" @@ -455,6 +462,7 @@ set -euo pipefail source /tmp/firesim-manager-runtime.env export IMAGE_REF GHCR_USERNAME GHCR_TOKEN DETACH_CONTAINER +export FIRESIM_AWS_VPC_NAME FIRESIM_AWS_KEY_NAME FIRESIM_AWS_SECURITY_GROUP_NAME FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME FIRESIM_AWS_ALLOWED_CIDR if command -v cloud-init >/dev/null 2>&1; then if ! sudo cloud-init status --wait; then @@ -494,6 +502,11 @@ docker_args=( -v "${HOME}/firesim-public:/root/firesim-public:ro" -v "${HOME}/firesim-manager-entrypoint.sh:/root/firesim-manager-entrypoint.sh:ro" -v "/opt/Xilinx:/opt/Xilinx:ro" + -e "FIRESIM_AWS_VPC_NAME=${FIRESIM_AWS_VPC_NAME}" + -e "FIRESIM_AWS_KEY_NAME=${FIRESIM_AWS_KEY_NAME}" + -e "FIRESIM_AWS_SECURITY_GROUP_NAME=${FIRESIM_AWS_SECURITY_GROUP_NAME}" + -e "FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME=${FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME}" + -e "FIRESIM_AWS_ALLOWED_CIDR=${FIRESIM_AWS_ALLOWED_CIDR}" ) if [ "${DETACH_CONTAINER}" = "1" ]; then @@ -531,7 +544,6 @@ main() { prepare_key_files "${key_file}" "${public_key_file}" write_remote_aws_files "${aws_dir}" write_container_script "${container_script}" - write_runtime_env "${runtime_env}" echo "Ensuring FireSim manager network in ${aws_region}." local vpc_id @@ -543,6 +555,8 @@ main() { igw_id="$(ensure_internet_gateway "${vpc_id}")" ensure_route_table "${vpc_id}" "${subnet_id}" "${igw_id}" security_group_id="$(ensure_security_group "${vpc_id}" "${ssh_cidr}")" + vpc_cidr="$(aws ec2 describe-vpcs --vpc-ids "${vpc_id}" --query 'Vpcs[0].CidrBlock' --output text)" + write_runtime_env "${runtime_env}" local ami_id ami_id="$(resolve_ami_id)" From 2813e2dba7fb7bea93e008d6b8faee804737e7b7 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 02:44:34 -0700 Subject: [PATCH 46/69] container debug options --- .github/scripts/firesim-manager-entrypoint.sh | 19 +++++++++++++++++++ .github/scripts/launch-firesim-manager.sh | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index 1e38826ba8..483c3064fa 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -1,6 +1,25 @@ #!/usr/bin/env bash set -euo pipefail +KEEP_CONTAINER_ON_ERROR="${KEEP_CONTAINER_ON_ERROR:-1}" + +keep_container_on_error() { + local rc="$?" + if [ "${rc}" -ne 0 ] && [ "${KEEP_CONTAINER_ON_ERROR}" = "1" ]; then + echo "Entrypoint failed with exit code ${rc}; keeping container alive for debugging." >&2 + echo "Inspect with: docker exec -it firesim-manager bash" >&2 + sleep infinity + fi +} + +exit_immediately() { + trap - EXIT + exit 143 +} + +trap keep_container_on_error EXIT +trap exit_immediately INT TERM + export USER=root export LOGNAME=root export HOME=/root diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index 63d031c9ec..7fb0bd16ce 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -47,6 +47,7 @@ root_volume_gb="${FIRESIM_MANAGER_ROOT_VOLUME_GB:-170}" remote_user="${FIRESIM_MANAGER_REMOTE_USER:-ubuntu}" remote_region="${FIRESIM_AWS_REGION:-${aws_region}}" detach_container="${FIRESIM_MANAGER_DETACH_CONTAINER:-0}" +keep_container_on_error="${FIRESIM_MANAGER_KEEP_CONTAINER_ON_ERROR:-1}" firesim_build_security_group_name="${FIRESIM_AWS_SECURITY_GROUP_NAME:-chipyard-cicd-build-farm}" vpc_name="${FIRESIM_MANAGER_VPC_NAME:-chipyard-cicd}" @@ -395,6 +396,7 @@ write_runtime_env() { printf 'GHCR_USERNAME=%q\n' "${GHCR_USERNAME:-}" printf 'GHCR_TOKEN=%q\n' "${GHCR_TOKEN:-}" printf 'DETACH_CONTAINER=%q\n' "${detach_container}" + printf 'KEEP_CONTAINER_ON_ERROR=%q\n' "${keep_container_on_error}" printf 'FIRESIM_AWS_VPC_NAME=%q\n' "${vpc_name}" printf 'FIRESIM_AWS_KEY_NAME=%q\n' "${key_name}" printf 'FIRESIM_AWS_SECURITY_GROUP_NAME=%q\n' "${firesim_build_security_group_name}" @@ -462,6 +464,7 @@ set -euo pipefail source /tmp/firesim-manager-runtime.env export IMAGE_REF GHCR_USERNAME GHCR_TOKEN DETACH_CONTAINER +export KEEP_CONTAINER_ON_ERROR export FIRESIM_AWS_VPC_NAME FIRESIM_AWS_KEY_NAME FIRESIM_AWS_SECURITY_GROUP_NAME FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME FIRESIM_AWS_ALLOWED_CIDR if command -v cloud-init >/dev/null 2>&1; then @@ -507,6 +510,7 @@ docker_args=( -e "FIRESIM_AWS_SECURITY_GROUP_NAME=${FIRESIM_AWS_SECURITY_GROUP_NAME}" -e "FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME=${FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME}" -e "FIRESIM_AWS_ALLOWED_CIDR=${FIRESIM_AWS_ALLOWED_CIDR}" + -e "KEEP_CONTAINER_ON_ERROR=${KEEP_CONTAINER_ON_ERROR}" ) if [ "${DETACH_CONTAINER}" = "1" ]; then From 76b68d2f2607b332a71f9e9929bb6f37c1a63ede Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 04:03:29 -0700 Subject: [PATCH 47/69] add patch to wait for spot instance init before runs --- .github/scripts/firesim-manager-entrypoint.sh | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index 483c3064fa..73f219912c 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -147,6 +147,85 @@ print( ) PY +python - <<'PY' +from pathlib import Path + +path = Path("deploy/buildtools/buildfarm.py") +text = path.read_text() + +if "import subprocess\n" not in text: + text = text.replace("import os\n", "import os\nimport subprocess\nimport time\n", 1) + +old = """ wait_on_instance_launches([build_host.launched_instance_object]) + build_host.ip_address = build_host.launched_instance_object.private_ip_address +""" +new = """ wait_on_instance_launches([build_host.launched_instance_object]) + build_host.launched_instance_object.reload() + build_host.ip_address = build_host.launched_instance_object.private_ip_address + + ready_timeout_seconds = int(os.environ.get("FIRESIM_BUILD_HOST_SSH_READY_TIMEOUT_SECONDS", "600")) + deadline = time.time() + ready_timeout_seconds + ssh_target = f"ubuntu@{build_host.ip_address}" + readiness_cmd = ( + "cloud-init status --wait >/dev/null 2>&1 || true; " + f"/bin/bash -l -c 'mkdir -p {build_host.dest_build_dir}/platforms/f2/'" + ) + ssh_cmd = [ + "ssh", + "-i", + os.path.expanduser("~/firesim.pem"), + "-o", + "BatchMode=yes", + "-o", + "StrictHostKeyChecking=no", + "-o", + "UserKnownHostsFile=/dev/null", + "-o", + "ConnectTimeout=10", + ssh_target, + readiness_cmd, + ] + + last_stdout = "" + last_stderr = "" + last_returncode = None + while time.time() < deadline: + completed = subprocess.run( + ssh_cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + ) + if completed.returncode == 0: + rootLogger.info(f"Build host {build_host.ip_address} is SSH-ready.") + return + + last_stdout = completed.stdout + last_stderr = completed.stderr + last_returncode = completed.returncode + rootLogger.info( + f"Waiting for build host {build_host.ip_address} SSH readiness; " + f"rc={completed.returncode}" + ) + time.sleep(10) + + rootLogger.critical( + f"Timed out after {ready_timeout_seconds}s waiting for build host " + f"{build_host.ip_address} SSH readiness. Last rc={last_returncode}. " + f"stdout={last_stdout!r} stderr={last_stderr!r}" + ) + raise RuntimeError(f"Build host {build_host.ip_address} did not become SSH-ready") +""" + +if old in text: + text = text.replace(old, new, 1) +elif "FIRESIM_BUILD_HOST_SSH_READY_TIMEOUT_SECONDS" not in text: + raise SystemExit("Could not find expected FireSim build-host wait block") + +path.write_text(text) +print("Patched FireSim build-farm wait to require SSH/login-shell readiness.") +PY + had_nounset=0 case "$-" in *u*) From 5388142bcc161405f16d7c4f5d72ce3c96723767 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 15:24:49 -0700 Subject: [PATCH 48/69] patch build farm ssh --- .github/scripts/firesim-manager-entrypoint.sh | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index 73f219912c..3f54b40962 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -226,6 +226,32 @@ path.write_text(text) print("Patched FireSim build-farm wait to require SSH/login-shell readiness.") PY +grep -q 'FIRESIM_BUILD_HOST_SSH_READY_TIMEOUT_SECONDS' deploy/buildtools/buildfarm.py + +python - <<'PY' +from pathlib import Path + +path = Path("deploy/firesim") +text = path.read_text() +needle = " from fabric.api import local, hide, warn_only, env, execute, parallel # type: ignore\n" +patch = ( + needle + + "\n" + + 'env.user = os.environ.get("FIRESIM_BUILD_HOST_USER", "ubuntu")\n' + + 'env.key_filename = os.environ.get("FIRESIM_BUILD_HOST_KEY", os.path.expanduser("~/firesim.pem"))\n' +) + +if patch in text: + pass +elif needle in text: + text = text.replace(needle, patch, 1) +else: + raise SystemExit("Could not find Fabric import in deploy/firesim") + +path.write_text(text) +print("Configured Fabric build-host SSH user/key for FireSim.") +PY + had_nounset=0 case "$-" in *u*) From bc6b8538b9f42767845175c8d9582a2d0d460bd9 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 17:26:15 -0700 Subject: [PATCH 49/69] move container out of /root --- .github/scripts/build-zephyr.sh | 2 +- .github/scripts/firesim-manager-entrypoint.sh | 135 ++---------------- .github/scripts/launch-firesim-manager.sh | 15 +- .../prepare-generator-test-submodules.sh | 2 +- .github/scripts/run-firesim-tests.sh | 2 +- .github/scripts/run-generator-test.py | 4 +- .github/workflows/run-firesim-tests.yml | 8 +- .github/workflows/run-generator-tests.yml | 4 +- dockerfiles/Dockerfile | 27 +++- scripts/entrypoint.sh | 2 +- 10 files changed, 51 insertions(+), 150 deletions(-) diff --git a/.github/scripts/build-zephyr.sh b/.github/scripts/build-zephyr.sh index 083c7db0f4..3eacffe382 100755 --- a/.github/scripts/build-zephyr.sh +++ b/.github/scripts/build-zephyr.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -chipyard_dir="${LOCAL_CHIPYARD_DIR:-/root/chipyard}" +chipyard_dir="${LOCAL_CHIPYARD_DIR:-/home/ubuntu/chipyard}" zephyr_dir="${chipyard_dir}/software/zephyrproject/zephyr" if [ -z "${RISCV:-}" ]; then diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index 3f54b40962..d8ce7e6081 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -20,13 +20,13 @@ exit_immediately() { trap keep_container_on_error EXIT trap exit_immediately INT TERM -export USER=root -export LOGNAME=root -export HOME=/root +export USER=ubuntu +export LOGNAME=ubuntu +export HOME=/home/ubuntu -CY_DIR="${CY_DIR:-/root/chipyard}" +CY_DIR="${CY_DIR:-/home/ubuntu/chipyard}" FS_DIR="${CY_DIR}/sims/firesim" -PUBLIC_KEY_PATH="${FIRESIM_PUBLIC_KEY_PATH:-/root/firesim-public}" +PUBLIC_KEY_PATH="${FIRESIM_PUBLIC_KEY_PATH:-/home/ubuntu/firesim-public}" EC2_SETUP_SCRIPT="${FIRESIM_EC2_SETUP_SCRIPT:-${CY_DIR}/scripts/firesim-ec2-setup.sh}" BUILD_RECIPES="${FIRESIM_BUILD_RECIPES:-${CY_DIR}/sims/firesim-staging/sample_config_build_recipes.yaml}" BUILD_CONFIG="${FIRESIM_BUILD_CONFIG:-${CY_DIR}/.github/firesim-bitstream-templates/f2/config_build.yaml}" @@ -46,8 +46,8 @@ export LC_ALL="${LC_ALL:-en_US.UTF-8}" export LANG="${LANG:-en_US.UTF-8}" if ! ldconfig -p 2>/dev/null | grep -q 'libX11\.so\.6' || ! command -v git-lfs >/dev/null 2>&1; then - apt-get update - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ git-lfs \ locales \ libx11-6 \ @@ -57,7 +57,7 @@ if ! ldconfig -p 2>/dev/null | grep -q 'libX11\.so\.6' || ! command -v git-lfs > libxinerama1 \ libxrender1 \ libxtst6 - locale-gen en_US.UTF-8 + sudo locale-gen en_US.UTF-8 fi if [ -n "${VIVADO_VERSION}" ]; then @@ -98,15 +98,15 @@ touch "${HOME}/.ssh/authorized_keys" chmod 600 "${HOME}/.ssh/authorized_keys" grep -qxFf "${PUBLIC_KEY_PATH}" "${HOME}/.ssh/authorized_keys" || cat "${PUBLIC_KEY_PATH}" >> "${HOME}/.ssh/authorized_keys" -cat >> /etc/ssh/sshd_config <<'EOF' -PermitRootLogin yes +sudo tee -a /etc/ssh/sshd_config >/dev/null <<'EOF' +PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication no EOF -mkdir -p /run/sshd -chmod 755 /run/sshd -/usr/sbin/sshd +sudo mkdir -p /run/sshd +sudo chmod 755 /run/sshd +sudo /usr/sbin/sshd if [ ! -x "${EC2_SETUP_SCRIPT}" ]; then echo "Missing executable EC2 setup script: ${EC2_SETUP_SCRIPT}" >&2 @@ -147,111 +147,6 @@ print( ) PY -python - <<'PY' -from pathlib import Path - -path = Path("deploy/buildtools/buildfarm.py") -text = path.read_text() - -if "import subprocess\n" not in text: - text = text.replace("import os\n", "import os\nimport subprocess\nimport time\n", 1) - -old = """ wait_on_instance_launches([build_host.launched_instance_object]) - build_host.ip_address = build_host.launched_instance_object.private_ip_address -""" -new = """ wait_on_instance_launches([build_host.launched_instance_object]) - build_host.launched_instance_object.reload() - build_host.ip_address = build_host.launched_instance_object.private_ip_address - - ready_timeout_seconds = int(os.environ.get("FIRESIM_BUILD_HOST_SSH_READY_TIMEOUT_SECONDS", "600")) - deadline = time.time() + ready_timeout_seconds - ssh_target = f"ubuntu@{build_host.ip_address}" - readiness_cmd = ( - "cloud-init status --wait >/dev/null 2>&1 || true; " - f"/bin/bash -l -c 'mkdir -p {build_host.dest_build_dir}/platforms/f2/'" - ) - ssh_cmd = [ - "ssh", - "-i", - os.path.expanduser("~/firesim.pem"), - "-o", - "BatchMode=yes", - "-o", - "StrictHostKeyChecking=no", - "-o", - "UserKnownHostsFile=/dev/null", - "-o", - "ConnectTimeout=10", - ssh_target, - readiness_cmd, - ] - - last_stdout = "" - last_stderr = "" - last_returncode = None - while time.time() < deadline: - completed = subprocess.run( - ssh_cmd, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - text=True, - ) - if completed.returncode == 0: - rootLogger.info(f"Build host {build_host.ip_address} is SSH-ready.") - return - - last_stdout = completed.stdout - last_stderr = completed.stderr - last_returncode = completed.returncode - rootLogger.info( - f"Waiting for build host {build_host.ip_address} SSH readiness; " - f"rc={completed.returncode}" - ) - time.sleep(10) - - rootLogger.critical( - f"Timed out after {ready_timeout_seconds}s waiting for build host " - f"{build_host.ip_address} SSH readiness. Last rc={last_returncode}. " - f"stdout={last_stdout!r} stderr={last_stderr!r}" - ) - raise RuntimeError(f"Build host {build_host.ip_address} did not become SSH-ready") -""" - -if old in text: - text = text.replace(old, new, 1) -elif "FIRESIM_BUILD_HOST_SSH_READY_TIMEOUT_SECONDS" not in text: - raise SystemExit("Could not find expected FireSim build-host wait block") - -path.write_text(text) -print("Patched FireSim build-farm wait to require SSH/login-shell readiness.") -PY - -grep -q 'FIRESIM_BUILD_HOST_SSH_READY_TIMEOUT_SECONDS' deploy/buildtools/buildfarm.py - -python - <<'PY' -from pathlib import Path - -path = Path("deploy/firesim") -text = path.read_text() -needle = " from fabric.api import local, hide, warn_only, env, execute, parallel # type: ignore\n" -patch = ( - needle - + "\n" - + 'env.user = os.environ.get("FIRESIM_BUILD_HOST_USER", "ubuntu")\n' - + 'env.key_filename = os.environ.get("FIRESIM_BUILD_HOST_KEY", os.path.expanduser("~/firesim.pem"))\n' -) - -if patch in text: - pass -elif needle in text: - text = text.replace(needle, patch, 1) -else: - raise SystemExit("Could not find Fabric import in deploy/firesim") - -path.write_text(text) -print("Configured Fabric build-host SSH user/key for FireSim.") -PY - had_nounset=0 case "$-" in *u*) @@ -277,10 +172,6 @@ python -m pip install --no-cache-dir --upgrade \ awscli hash -r -export USER=root -export LOGNAME=root -export HOME=/root - firesim buildbitstream \ -r "${BUILD_RECIPES}" \ -b "${BUILD_CONFIG}" diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh index 7fb0bd16ce..fc0d2c97cc 100755 --- a/.github/scripts/launch-firesim-manager.sh +++ b/.github/scripts/launch-firesim-manager.sh @@ -485,9 +485,6 @@ sudo install -m 600 -o "${USER}" -g "${USER}" /tmp/firesim.pem "${HOME}/firesim. sudo install -m 644 -o "${USER}" -g "${USER}" /tmp/firesim-public "${HOME}/firesim-public" sudo install -m 755 -o "${USER}" -g "${USER}" /tmp/firesim-manager-entrypoint.sh "${HOME}/firesim-manager-entrypoint.sh" -sudo install -m 700 -o "${USER}" -g "${USER}" -d /ubuntu -sudo install -m 600 -o "${USER}" -g "${USER}" /tmp/firesim.pem /ubuntu/firesim.pem -sudo install -m 644 -o "${USER}" -g "${USER}" /tmp/firesim-public /ubuntu/firesim-public rm -f /tmp/credentials /tmp/config /tmp/firesim.pem /tmp/firesim-public /tmp/firesim-manager-entrypoint.sh /tmp/firesim-manager-runtime.env newgrp docker <<'DOCKER_GROUP' @@ -500,10 +497,10 @@ docker pull "${IMAGE_REF}" docker_args=( --name firesim-manager --add-host=host.docker.internal:host-gateway - -v "${HOME}/.aws:/root/.aws:ro" - -v "${HOME}/firesim.pem:/root/firesim.pem:ro" - -v "${HOME}/firesim-public:/root/firesim-public:ro" - -v "${HOME}/firesim-manager-entrypoint.sh:/root/firesim-manager-entrypoint.sh:ro" + -v "${HOME}/.aws:/home/ubuntu/.aws:ro" + -v "${HOME}/firesim.pem:/home/ubuntu/firesim.pem:ro" + -v "${HOME}/firesim-public:/home/ubuntu/firesim-public:ro" + -v "${HOME}/firesim-manager-entrypoint.sh:/home/ubuntu/firesim-manager-entrypoint.sh:ro" -v "/opt/Xilinx:/opt/Xilinx:ro" -e "FIRESIM_AWS_VPC_NAME=${FIRESIM_AWS_VPC_NAME}" -e "FIRESIM_AWS_KEY_NAME=${FIRESIM_AWS_KEY_NAME}" @@ -515,11 +512,11 @@ docker_args=( if [ "${DETACH_CONTAINER}" = "1" ]; then docker rm -f firesim-manager >/dev/null 2>&1 || true - container_id="$(docker run -d "${docker_args[@]}" "${IMAGE_REF}" bash /root/firesim-manager-entrypoint.sh)" + container_id="$(docker run -d "${docker_args[@]}" "${IMAGE_REF}" bash /home/ubuntu/firesim-manager-entrypoint.sh)" echo "Started detached FireSim manager container: ${container_id}" echo "Inspect with: docker ps -a --filter name=firesim-manager && docker logs firesim-manager" else - docker run --rm "${docker_args[@]}" "${IMAGE_REF}" bash /root/firesim-manager-entrypoint.sh + docker run --rm "${docker_args[@]}" "${IMAGE_REF}" bash /home/ubuntu/firesim-manager-entrypoint.sh fi DOCKER_GROUP REMOTE diff --git a/.github/scripts/prepare-generator-test-submodules.sh b/.github/scripts/prepare-generator-test-submodules.sh index 088213bf2c..04ef8636d0 100755 --- a/.github/scripts/prepare-generator-test-submodules.sh +++ b/.github/scripts/prepare-generator-test-submodules.sh @@ -2,7 +2,7 @@ set -euo pipefail test_name="${1:?usage: prepare-generator-test-submodules.sh TEST_NAME [CHIPYARD_DIR] [TESTS_JSON]}" -chipyard_dir="${2:-/root/chipyard}" +chipyard_dir="${2:-/home/ubuntu/chipyard}" tests_json="${3:-${chipyard_dir}/.github/workflows/config/generator-tests.json}" is_empty_dir() { diff --git a/.github/scripts/run-firesim-tests.sh b/.github/scripts/run-firesim-tests.sh index 7aa77c1655..c50d7cd246 100755 --- a/.github/scripts/run-firesim-tests.sh +++ b/.github/scripts/run-firesim-tests.sh @@ -3,7 +3,7 @@ set -euo pipefail suite="${1:?usage: run-firesim-tests.sh SUITE PR_NUMBER [CHIPYARD_DIR] [CONFIG_JSON]}" pr_number="${2:?usage: run-firesim-tests.sh SUITE PR_NUMBER [CHIPYARD_DIR] [CONFIG_JSON]}" -chipyard_dir="${3:-/root/chipyard}" +chipyard_dir="${3:-/home/ubuntu/chipyard}" config_json="${4:-${chipyard_dir}/.github/workflows/config/firesim-tests.json}" echo "FireSim test suite: ${suite}" diff --git a/.github/scripts/run-generator-test.py b/.github/scripts/run-generator-test.py index 7233de60f1..c9180d68c3 100644 --- a/.github/scripts/run-generator-test.py +++ b/.github/scripts/run-generator-test.py @@ -102,9 +102,9 @@ def main(): parser.add_argument("test_name") parser.add_argument( "--tests-json", - default="/root/chipyard/.github/workflows/config/generator-tests.json", + default="/home/ubuntu/chipyard/.github/workflows/config/generator-tests.json", ) - parser.add_argument("--chipyard-dir", default="/root/chipyard") + parser.add_argument("--chipyard-dir", default="/home/ubuntu/chipyard") args = parser.parse_args() chipyard_dir = os.path.abspath(args.chipyard_dir) diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index 25163659eb..ec5c9d8d40 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -76,7 +76,7 @@ jobs: --entrypoint /bin/bash \ "${CHIPYARD_IMAGE}" \ -leo pipefail <<'CONTAINER_SCRIPT' - cd /root/chipyard + cd /home/ubuntu/chipyard git config --global --add safe.directory "*" git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" @@ -131,7 +131,7 @@ jobs: done < "${new_targets}" git rev-parse --short HEAD - .github/scripts/run-firesim-tests.sh onprem "${PR_NUMBER}" /root/chipyard + .github/scripts/run-firesim-tests.sh onprem "${PR_NUMBER}" /home/ubuntu/chipyard CONTAINER_SCRIPT firesim-f2-tests: @@ -185,7 +185,7 @@ jobs: --entrypoint /bin/bash \ "${CHIPYARD_IMAGE}" \ -leo pipefail <<'CONTAINER_SCRIPT' - cd /root/chipyard + cd /home/ubuntu/chipyard git config --global --add safe.directory "*" git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" @@ -240,5 +240,5 @@ jobs: done < "${new_targets}" git rev-parse --short HEAD - .github/scripts/run-firesim-tests.sh f2 "${PR_NUMBER}" /root/chipyard + .github/scripts/run-firesim-tests.sh f2 "${PR_NUMBER}" /home/ubuntu/chipyard CONTAINER_SCRIPT diff --git a/.github/workflows/run-generator-tests.yml b/.github/workflows/run-generator-tests.yml index 8ab7b651a9..766cc6ca5e 100644 --- a/.github/workflows/run-generator-tests.yml +++ b/.github/workflows/run-generator-tests.yml @@ -87,7 +87,7 @@ jobs: --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ "${CHIPYARD_IMAGE}" \ bash -leo pipefail <<'CONTAINER_SCRIPT' - cd /root/chipyard + cd /home/ubuntu/chipyard git config --global --add safe.directory "*" git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" @@ -144,7 +144,7 @@ jobs: git rev-parse --short HEAD # Initialize only additional submodules needed by this generator test. - bash .github/scripts/prepare-generator-test-submodules.sh "${TEST_NAME}" /root/chipyard + bash .github/scripts/prepare-generator-test-submodules.sh "${TEST_NAME}" /home/ubuntu/chipyard # Build tests in both tests/ and tests/build due to legacy paths. source env.sh diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index e11f9a3af4..10f62bc155 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -14,8 +14,11 @@ SHELL ["/bin/bash", "-leo", "pipefail", "-c"] ENV CONDA_INSTALL_DIR=/opt/conda ENV FORCE_NON_EC2=1 +ENV HOME=/home/ubuntu ENV JVM_OPTS=-Xmx3200m +ENV LOGNAME=ubuntu ENV PATH="${CONDA_INSTALL_DIR}/bin:${PATH}" +ENV USER=ubuntu # Install host dependencies needed to clone Chipyard and bootstrap conda. RUN apt-get update && \ @@ -45,7 +48,17 @@ RUN apt-get update && \ wget && \ rm -rf /var/lib/apt/lists/* -WORKDIR /root +RUN if ! id -u ubuntu >/dev/null 2>&1; then \ + useradd -m -s /bin/bash ubuntu; \ + fi && \ + usermod -aG sudo ubuntu && \ + echo "ubuntu ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ubuntu && \ + chmod 0440 /etc/sudoers.d/ubuntu && \ + mkdir -p "${CONDA_INSTALL_DIR}" /home/ubuntu && \ + chown -R ubuntu:ubuntu "${CONDA_INSTALL_DIR}" /home/ubuntu + +USER ubuntu +WORKDIR /home/ubuntu # Clone Chipyard. CHIPYARD_REF can be a branch, tag, commit SHA, PR number, or refs/pull/... ref. RUN git clone "${CHIPYARD_REPO}" chipyard && \ @@ -91,7 +104,7 @@ RUN cd chipyard && \ RUN cd chipyard && \ source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ conda activate && \ - source /root/chipyard/env.sh && \ + source /home/ubuntu/chipyard/env.sh && \ ./build-setup.sh riscv-tools \ -s 1 -s 2 -s 5 -s 6 -s 7 -s 8 -s 9 -s 10 -s 11 @@ -99,7 +112,7 @@ RUN cd chipyard && \ RUN cd chipyard && \ source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ conda activate && \ - source /root/chipyard/env.sh && \ + source /home/ubuntu/chipyard/env.sh && \ ./build-setup.sh riscv-tools \ -s 1 -s 2 -s 3 -s 4 -s 6 -s 7 -s 8 -s 9 -s 10 -s 11 @@ -107,7 +120,7 @@ RUN cd chipyard && \ RUN cd chipyard && \ source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ conda activate && \ - source /root/chipyard/env.sh && \ + source /home/ubuntu/chipyard/env.sh && \ ./build-setup.sh riscv-tools \ -s 1 -s 2 -s 3 -s 4 -s 5 -s 9 -s 10 -s 11 @@ -115,7 +128,7 @@ RUN cd chipyard && \ RUN --security=insecure cd chipyard && \ source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ conda activate && \ - source /root/chipyard/env.sh && \ + source /home/ubuntu/chipyard/env.sh && \ ./build-setup.sh riscv-tools \ -s 1 -s 2 -s 3 -s 4 -s 5 -s 6 -s 7 -s 8 -s 10 -s 11 @@ -123,7 +136,7 @@ RUN --security=insecure cd chipyard && \ RUN cd chipyard && \ source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ conda activate && \ - source /root/chipyard/env.sh && \ + source /home/ubuntu/chipyard/env.sh && \ ./build-setup.sh riscv-tools \ -s 1 -s 2 -s 3 -s 4 -s 5 -s 6 -s 7 -s 8 -s 9 -s 11 @@ -131,7 +144,7 @@ RUN cd chipyard && \ RUN cd chipyard && \ source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" && \ conda activate && \ - source /root/chipyard/env.sh && \ + source /home/ubuntu/chipyard/env.sh && \ ./build-setup.sh riscv-tools \ -s 1 -s 2 -s 3 -s 4 -s 5 -s 6 -s 7 -s 8 -s 9 -s 10 && \ grep -F "Setup complete!" build-setup.log diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh index 457656e81e..689d62f9d6 100755 --- a/scripts/entrypoint.sh +++ b/scripts/entrypoint.sh @@ -3,6 +3,6 @@ # used with the dockerfile to set up enviroment variables by running env.sh # adapted from https://stackoverflow.com/questions/55921914/how-to-source-a-script-with-environment-variables-in-a-docker-build-process -. /root/chipyard/env.sh +. /home/ubuntu/chipyard/env.sh exec "$@" From 4d2f5cab65f432c1b9bd2b676fba9d421583fce7 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 17:41:22 -0700 Subject: [PATCH 50/69] patch container conda path --- dockerfiles/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 10f62bc155..0d489c9022 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -8,7 +8,7 @@ FROM ubuntu:24.04 AS base ARG CHIPYARD_REPO=https://github.com/ucb-bar/chipyard.git ARG CHIPYARD_REF=main -MAINTAINER https://groups.google.com/forum/#!forum/chipyard +LABEL maintainer="https://groups.google.com/forum/#!forum/chipyard" SHELL ["/bin/bash", "-leo", "pipefail", "-c"] @@ -54,8 +54,8 @@ RUN if ! id -u ubuntu >/dev/null 2>&1; then \ usermod -aG sudo ubuntu && \ echo "ubuntu ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ubuntu && \ chmod 0440 /etc/sudoers.d/ubuntu && \ - mkdir -p "${CONDA_INSTALL_DIR}" /home/ubuntu && \ - chown -R ubuntu:ubuntu "${CONDA_INSTALL_DIR}" /home/ubuntu + mkdir -p /home/ubuntu && \ + chown ubuntu:ubuntu "$(dirname "${CONDA_INSTALL_DIR}")" /home/ubuntu USER ubuntu WORKDIR /home/ubuntu From 55ccf935d3869f7bc1d3f525ef7bef6fdfc5caa4 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 20:16:17 -0700 Subject: [PATCH 51/69] user in container perm fixes --- dockerfiles/Dockerfile | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 0d489c9022..a2f3757894 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -48,12 +48,8 @@ RUN apt-get update && \ wget && \ rm -rf /var/lib/apt/lists/* -RUN if ! id -u ubuntu >/dev/null 2>&1; then \ - useradd -m -s /bin/bash ubuntu; \ - fi && \ - usermod -aG sudo ubuntu && \ - echo "ubuntu ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ubuntu && \ - chmod 0440 /etc/sudoers.d/ubuntu && \ +RUN usermod -l ubuntu -d /home/ubuntu -m root && \ + groupmod -n ubuntu root && \ mkdir -p /home/ubuntu && \ chown ubuntu:ubuntu "$(dirname "${CONDA_INSTALL_DIR}")" /home/ubuntu From 13c36d7fb381f2103b4e65dc695bbddc67ede5f8 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 20:23:04 -0700 Subject: [PATCH 52/69] we're still crashing our cicd servers... --- .github/workflows/run-firesim-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index ec5c9d8d40..98b98de789 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -23,7 +23,7 @@ env: # override: sims/firesim/sim/make/scala-build.mk:33 FIRESIM_JAVA_HEAP_SIZE: 12G # override: sims/firesim/sim/make/verilator.mk:8 -- F2 Gemmini generated C++ is memory-heavy on GitHub runners - FIRESIM_F2_VERILATOR_MAKEFLAGS: -j2 VM_PARALLEL_BUILDS=1 + FIRESIM_F2_VERILATOR_MAKEFLAGS: -j1 VM_PARALLEL_BUILDS=1 jobs: firesim-onprem-tests: From 4eb1f646f5b9a10f58d403907cb27421208532a5 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 20:32:11 -0700 Subject: [PATCH 53/69] prevent duplicate UID/GIDs --- dockerfiles/Dockerfile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index a2f3757894..0bef1d51f0 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -48,10 +48,13 @@ RUN apt-get update && \ wget && \ rm -rf /var/lib/apt/lists/* -RUN usermod -l ubuntu -d /home/ubuntu -m root && \ - groupmod -n ubuntu root && \ +RUN if id -u ubuntu >/dev/null 2>&1; then \ + usermod -o -u 0 -g 0 -d /home/ubuntu -s /bin/bash ubuntu; \ + else \ + useradd -o -u 0 -g 0 -d /home/ubuntu -s /bin/bash ubuntu; \ + fi && \ mkdir -p /home/ubuntu && \ - chown ubuntu:ubuntu "$(dirname "${CONDA_INSTALL_DIR}")" /home/ubuntu + chown ubuntu:root "$(dirname "${CONDA_INSTALL_DIR}")" /home/ubuntu USER ubuntu WORKDIR /home/ubuntu From 11a1789549b409f1ae40158bf67dad83e5957432 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 21:51:22 -0700 Subject: [PATCH 54/69] allow root login for acct ubuntu on aws --- .github/scripts/firesim-manager-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh index d8ce7e6081..b6ad2d112e 100755 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ b/.github/scripts/firesim-manager-entrypoint.sh @@ -99,7 +99,7 @@ chmod 600 "${HOME}/.ssh/authorized_keys" grep -qxFf "${PUBLIC_KEY_PATH}" "${HOME}/.ssh/authorized_keys" || cat "${PUBLIC_KEY_PATH}" >> "${HOME}/.ssh/authorized_keys" sudo tee -a /etc/ssh/sshd_config >/dev/null <<'EOF' -PermitRootLogin no +PermitRootLogin prohibit-password PubkeyAuthentication yes PasswordAuthentication no EOF From b15e4d8cc77834675eb94db3bdd8b3db83d8a204 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Sun, 12 Jul 2026 22:33:36 -0700 Subject: [PATCH 55/69] reduce fsim tests to not oom server --- .github/workflows/config/firesim-tests.json | 7 +------ .github/workflows/run-firesim-tests.yml | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/config/firesim-tests.json b/.github/workflows/config/firesim-tests.json index 7d6c26c8e9..cc18f9f1a7 100644 --- a/.github/workflows/config/firesim-tests.json +++ b/.github/workflows/config/firesim-tests.json @@ -1,14 +1,9 @@ { "onprem": [ "RocketU250Tests", - "LargeBoomU250Tests", - "ShuttleU250Tests", "RocketVCU118Tests" ], "f2": [ - "RocketF2Tests", - "GemminiRocketF2Tests", - "MegaBoomF2Tests", - "ShuttleF2Tests" + "RocketF2Tests" ] } diff --git a/.github/workflows/run-firesim-tests.yml b/.github/workflows/run-firesim-tests.yml index 98b98de789..95df850899 100644 --- a/.github/workflows/run-firesim-tests.yml +++ b/.github/workflows/run-firesim-tests.yml @@ -21,7 +21,7 @@ env: FIRESIM_TEST_TIMEOUT_SECONDS: 7200 FIRESIM_HEARTBEAT_SECONDS: 60 # override: sims/firesim/sim/make/scala-build.mk:33 - FIRESIM_JAVA_HEAP_SIZE: 12G + FIRESIM_JAVA_HEAP_SIZE: 8G # override: sims/firesim/sim/make/verilator.mk:8 -- F2 Gemmini generated C++ is memory-heavy on GitHub runners FIRESIM_F2_VERILATOR_MAKEFLAGS: -j1 VM_PARALLEL_BUILDS=1 From a7471b135097e78ef4980f90dcfe24f49f292746 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Mon, 13 Jul 2026 11:29:51 -0700 Subject: [PATCH 56/69] trial chisel 7 support runs --- .github/scripts/chisel7-support-audit.py | 231 ++++++++++++++++++++ .github/scripts/publish-chisel7-support.py | 46 ++++ .github/workflows/chisel7-support-audit.yml | 130 +++++++++++ 3 files changed, 407 insertions(+) create mode 100644 .github/scripts/chisel7-support-audit.py create mode 100644 .github/scripts/publish-chisel7-support.py create mode 100644 .github/workflows/chisel7-support-audit.yml diff --git a/.github/scripts/chisel7-support-audit.py b/.github/scripts/chisel7-support-audit.py new file mode 100644 index 0000000000..10a8d9488e --- /dev/null +++ b/.github/scripts/chisel7-support-audit.py @@ -0,0 +1,231 @@ +#!/usr/bin/env python3 + +import argparse +import datetime as dt +import json +import os +import re +import subprocess +import sys +import time +from pathlib import Path + + +ANSI_RE = re.compile(r"\x1b\[[0-9;]*m") + + +def strip_ansi(text): + return ANSI_RE.sub("", text) + + +def utc_now(): + return dt.datetime.now(dt.timezone.utc).isoformat().replace("+00:00", "Z") + + +def read_build_versions(repo_dir): + build_sbt = repo_dir / "build.sbt" + versions = {} + if not build_sbt.exists(): + return versions + text = build_sbt.read_text(encoding="utf-8") + for key in ("chisel6Version", "chisel7Version", "chiselTestVersion", "chisel3Version"): + match = re.search(rf'val\s+{key}\s*=\s*"([^"]+)"', text) + if match: + versions[key] = match.group(1) + return versions + + +def sbt_base_command(repo_dir): + return [ + "java", + "-jar", + str(repo_dir / "scripts" / "sbt-launch.jar"), + f"-Dsbt.ivy.home={repo_dir / '.ivy2'}", + f"-Dsbt.global.base={repo_dir / '.sbt'}", + f"-Dsbt.boot.directory={repo_dir / '.sbt' / 'boot'}", + "-Dsbt.color=false", + "-Dsbt.supershell=false", + "-Dsbt.server.forcestart=false", + ] + + +def audit_env(repo_dir): + env = os.environ.copy() + env["USE_CHISEL7"] = "1" + env.setdefault( + "JAVA_TOOL_OPTIONS", + f"-Xmx8G -Xss8M -Djava.io.tmpdir={repo_dir / '.java_tmp'}", + ) + return env + + +def run_sbt(repo_dir, sbt_command, log_path, timeout_seconds): + command = sbt_base_command(repo_dir) + [sbt_command] + started = time.monotonic() + log_path.parent.mkdir(parents=True, exist_ok=True) + with log_path.open("w", encoding="utf-8", errors="replace") as log_file: + log_file.write(f"$ {' '.join(command)}\n\n") + log_file.flush() + try: + proc = subprocess.run( + command, + cwd=repo_dir, + env=audit_env(repo_dir), + stdout=log_file, + stderr=subprocess.STDOUT, + text=True, + timeout=timeout_seconds, + check=False, + ) + return proc.returncode, time.monotonic() - started, False + except subprocess.TimeoutExpired: + log_file.write(f"\nTimed out after {timeout_seconds} seconds\n") + return 124, time.monotonic() - started, True + + +def tail_lines(path, limit): + if not path.exists(): + return [] + lines = path.read_text(encoding="utf-8", errors="replace").splitlines() + return [strip_ansi(line) for line in lines[-limit:]] + + +def error_summary(path, limit): + if not path.exists(): + return [] + selected = [] + for line in path.read_text(encoding="utf-8", errors="replace").splitlines(): + clean = strip_ansi(line) + if "[error]" in clean or "Compilation failed" in clean or "not found:" in clean: + selected.append(clean) + if len(selected) >= limit: + break + return selected + + +def discover_projects(repo_dir, log_dir, timeout_seconds): + log_path = log_dir / "sbt-projects.log" + returncode, _, timed_out = run_sbt(repo_dir, "projects", log_path, timeout_seconds) + if returncode != 0 or timed_out: + raise RuntimeError(f"sbt projects failed; see {log_path}") + + projects = [] + collecting = False + for raw in log_path.read_text(encoding="utf-8", errors="replace").splitlines(): + line = strip_ansi(raw) + if line.startswith("[info] In file:"): + collecting = True + continue + if not collecting: + continue + match = re.match(r"\[info\]\s+\*?\s+([A-Za-z0-9_.-]+)\s*$", line) + if match: + projects.append(match.group(1)) + return sorted(dict.fromkeys(projects)) + + +def project_result(project, status, returncode, duration, log_path, args): + return { + "project": project, + "status": status, + "returncode": returncode, + "duration_seconds": round(duration, 3), + "log_path": str(log_path), + "errors": error_summary(log_path, args.max_error_lines), + "log_tail": tail_lines(log_path, args.tail_lines) if status != "pass" else [], + } + + +def github_metadata(): + env = os.environ + return { + "repository": env.get("GITHUB_REPOSITORY"), + "ref": env.get("GITHUB_REF"), + "ref_name": env.get("GITHUB_REF_NAME"), + "sha": env.get("GITHUB_SHA"), + "workflow": env.get("GITHUB_WORKFLOW"), + "run_id": env.get("GITHUB_RUN_ID"), + "run_number": env.get("GITHUB_RUN_NUMBER"), + "run_attempt": env.get("GITHUB_RUN_ATTEMPT"), + "actor": env.get("GITHUB_ACTOR"), + "server_url": env.get("GITHUB_SERVER_URL"), + } + + +def main(): + parser = argparse.ArgumentParser(description="Audit SBT projects against Chisel 7.") + parser.add_argument("--repo-dir", default=".") + parser.add_argument("--output", default="chisel7-support-results.json") + parser.add_argument("--log-dir", default="chisel7-support-logs") + parser.add_argument("--projects", nargs="*", default=None) + parser.add_argument("--exclude", nargs="*", default=["chipyardRoot"]) + parser.add_argument("--project-timeout-minutes", type=int, default=45) + parser.add_argument("--projects-timeout-minutes", type=int, default=10) + parser.add_argument("--max-error-lines", type=int, default=40) + parser.add_argument("--tail-lines", type=int, default=80) + args = parser.parse_args() + + repo_dir = Path(args.repo_dir).resolve() + output_path = Path(args.output).resolve() + log_dir = Path(args.log_dir).resolve() + output_path.parent.mkdir(parents=True, exist_ok=True) + log_dir.mkdir(parents=True, exist_ok=True) + + projects = args.projects + if not projects: + print("Discovering SBT projects under USE_CHISEL7=1", flush=True) + projects = discover_projects(repo_dir, log_dir, args.projects_timeout_minutes * 60) + + excluded = set(args.exclude or []) + projects = [project for project in projects if project not in excluded] + + print(f"Auditing {len(projects)} SBT projects under USE_CHISEL7=1", flush=True) + results = [] + for index, project in enumerate(projects, start=1): + log_path = log_dir / f"{project}.log" + print(f"::group::[{index}/{len(projects)}] {project}", flush=True) + print(f"Running Chisel 7 compile check for {project}", flush=True) + returncode, duration, timed_out = run_sbt( + repo_dir, + f";project {project}; compile", + log_path, + args.project_timeout_minutes * 60, + ) + status = "timeout" if timed_out else "pass" if returncode == 0 else "fail" + result = project_result(project, status, returncode, duration, log_path, args) + results.append(result) + print(f"{project}: {status} in {duration:.1f}s", flush=True) + if status != "pass": + for line in result["errors"][:10]: + print(line, flush=True) + print("::endgroup::", flush=True) + + summary = { + "total": len(results), + "passed": sum(1 for item in results if item["status"] == "pass"), + "failed": sum(1 for item in results if item["status"] == "fail"), + "timed_out": sum(1 for item in results if item["status"] == "timeout"), + } + + document = { + "schema_version": 1, + "generated_at": utc_now(), + "audit_type": "sbt_compile", + "environment": { + "use_chisel7": True, + "versions": read_build_versions(repo_dir), + "python": sys.version, + }, + "github": github_metadata(), + "summary": summary, + "projects": results, + } + + output_path.write_text(json.dumps(document, indent=2, sort_keys=True) + "\n", encoding="utf-8") + print(json.dumps(summary, sort_keys=True), flush=True) + print(f"Wrote {output_path}", flush=True) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/.github/scripts/publish-chisel7-support.py b/.github/scripts/publish-chisel7-support.py new file mode 100644 index 0000000000..bd569be6cc --- /dev/null +++ b/.github/scripts/publish-chisel7-support.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 + +import argparse +import datetime as dt +import json +import os +import sys + + +def utc_now(): + return dt.datetime.now(dt.timezone.utc).isoformat().replace("+00:00", "Z") + + +def main(): + parser = argparse.ArgumentParser(description="Publish Chisel 7 support audit results to MongoDB.") + parser.add_argument("results_json") + parser.add_argument("--database", default="main") + parser.add_argument("--collection", default="chisel7_support") + parser.add_argument("--mongo-env", default="MONGODB_SRV") + args = parser.parse_args() + + mongo_uri = os.environ.get(args.mongo_env) + if not mongo_uri: + print(f"Missing {args.mongo_env}; skipping MongoDB publish", file=sys.stderr) + return 0 + + try: + from pymongo import MongoClient + except ImportError: + print("pymongo is not installed; run `python3 -m pip install pymongo` first", file=sys.stderr) + return 2 + + with open(args.results_json, encoding="utf-8") as results_file: + document = json.load(results_file) + + document["published_at"] = utc_now() + + client = MongoClient(mongo_uri, serverSelectionTimeoutMS=15000) + collection = client[args.database][args.collection] + inserted = collection.insert_one(document) + print(f"Inserted Chisel 7 support audit document: {inserted.inserted_id}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/.github/workflows/chisel7-support-audit.yml b/.github/workflows/chisel7-support-audit.yml new file mode 100644 index 0000000000..ef475e7eae --- /dev/null +++ b/.github/workflows/chisel7-support-audit.yml @@ -0,0 +1,130 @@ +name: Chisel 7 Support Audit + +on: + schedule: + - cron: "0 10 * * 1" + workflow_dispatch: + inputs: + projects: + description: "Optional space-separated SBT projects to audit" + required: false + type: string + +permissions: + contents: read + packages: read + +defaults: + run: + shell: bash -leo pipefail {0} + +jobs: + chisel7-support-audit: + name: Chisel 7 support audit + runs-on: ubuntu-24.04 + timeout-minutes: 360 + env: + AUDIT_RESULTS_DIR: ${{ github.workspace }}/chisel7-audit-results + DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker + FORCE_NON_EC2: 1 + JVM_OPTS: -Xmx8G + steps: + - name: Maximize build space + uses: jimfangx/maximize-build-space@master + with: + root-reserve-mb: 4096 + swap-size-mb: 10240 + remove-dotnet: "true" + remove-android: "true" + remove-haskell: "true" + remove-codeql: "true" + + - name: Check out repository + uses: actions/checkout@v4 + + - name: Move Docker storage to workspace + run: | + sudo systemctl stop docker + sudo mkdir -p "${DOCKER_DATA_ROOT}" + printf '{ "data-root": "%s" }\n' "${DOCKER_DATA_ROOT}" | sudo tee /etc/docker/daemon.json + sudo systemctl start docker + docker info --format 'Docker root: {{ .DockerRootDir }}' + + - name: Pull Chipyard container + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + image_name="ghcr.io/${GITHUB_REPOSITORY,,}:main" + echo "CHIPYARD_IMAGE=${image_name}" >> "${GITHUB_ENV}" + echo "${GITHUB_TOKEN}" | docker login ghcr.io -u "${GITHUB_ACTOR}" --password-stdin + docker pull "${image_name}" + + - name: Run Chisel 7 audit in container + env: + CHISEL7_AUDIT_PROJECTS: ${{ github.event.inputs.projects || '' }} + run: | + mkdir -p "${AUDIT_RESULTS_DIR}" + docker run --rm -i \ + --env "CHISEL7_AUDIT_PROJECTS=${CHISEL7_AUDIT_PROJECTS:-}" \ + --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ + --env "GITHUB_ACTOR=${GITHUB_ACTOR}" \ + --env "GITHUB_REF=${GITHUB_REF}" \ + --env "GITHUB_REF_NAME=${GITHUB_REF_NAME}" \ + --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ + --env "GITHUB_RUN_ATTEMPT=${GITHUB_RUN_ATTEMPT}" \ + --env "GITHUB_RUN_ID=${GITHUB_RUN_ID}" \ + --env "GITHUB_RUN_NUMBER=${GITHUB_RUN_NUMBER}" \ + --env "GITHUB_SERVER_URL=${GITHUB_SERVER_URL}" \ + --env "GITHUB_SHA=${GITHUB_SHA}" \ + --env "GITHUB_WORKFLOW=${GITHUB_WORKFLOW}" \ + --env "JVM_OPTS=${JVM_OPTS}" \ + --volume "${AUDIT_RESULTS_DIR}:/chisel7-audit-results" \ + "${CHIPYARD_IMAGE}" \ + bash -leo pipefail <<'CONTAINER_SCRIPT' + cd /home/ubuntu/chipyard + git config --global --add safe.directory "*" + git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" + git fetch --no-tags origin "${GITHUB_REF}" + git checkout --detach "${GITHUB_SHA}" + + initialized_submodules="$(mktemp)" + git submodule status \ + | awk 'substr($1, 1, 1) != "-" { print $2 }' \ + | sort -u > "${initialized_submodules}" + while read -r submodule_path; do + [ -n "${submodule_path}" ] || continue + git submodule sync -- "${submodule_path}" + git submodule update --init --recursive -- "${submodule_path}" + done < "${initialized_submodules}" + + audit_args=( + --output /chisel7-audit-results/results.json + --log-dir /chisel7-audit-results/logs + ) + if [ -n "${CHISEL7_AUDIT_PROJECTS:-}" ]; then + read -r -a projects <<< "${CHISEL7_AUDIT_PROJECTS}" + audit_args+=(--projects "${projects[@]}") + fi + + python3 .github/scripts/chisel7-support-audit.py "${audit_args[@]}" + CONTAINER_SCRIPT + + - name: Upload audit artifact + uses: actions/upload-artifact@v4 + with: + name: chisel7-support-audit + path: ${{ env.AUDIT_RESULTS_DIR }} + if-no-files-found: error + + - name: Install MongoDB publisher dependency + run: | + python3 -m pip install --user 'pymongo[srv]' + + - name: Publish audit to MongoDB + env: + MONGODB_SRV: ${{ secrets.MONGODB_SRV }} + run: | + python3 .github/scripts/publish-chisel7-support.py \ + "${AUDIT_RESULTS_DIR}/results.json" \ + --database main \ + --collection chisel7_support From cc0cb0a568256fe8bd60ab4f28f5ab89088a47e2 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Mon, 31 Aug 2026 17:41:26 -0700 Subject: [PATCH 57/69] back to work --- .github/scripts/chisel7-support-audit.py | 231 ------------------- .github/scripts/publish-chisel7-support.py | 46 ---- .github/workflows/chisel7-support-audit.yml | 130 ----------- sims/firesim-staging/sample_config_hwdb.yaml | 28 +-- 4 files changed, 15 insertions(+), 420 deletions(-) delete mode 100644 .github/scripts/chisel7-support-audit.py delete mode 100644 .github/scripts/publish-chisel7-support.py delete mode 100644 .github/workflows/chisel7-support-audit.yml diff --git a/.github/scripts/chisel7-support-audit.py b/.github/scripts/chisel7-support-audit.py deleted file mode 100644 index 10a8d9488e..0000000000 --- a/.github/scripts/chisel7-support-audit.py +++ /dev/null @@ -1,231 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import datetime as dt -import json -import os -import re -import subprocess -import sys -import time -from pathlib import Path - - -ANSI_RE = re.compile(r"\x1b\[[0-9;]*m") - - -def strip_ansi(text): - return ANSI_RE.sub("", text) - - -def utc_now(): - return dt.datetime.now(dt.timezone.utc).isoformat().replace("+00:00", "Z") - - -def read_build_versions(repo_dir): - build_sbt = repo_dir / "build.sbt" - versions = {} - if not build_sbt.exists(): - return versions - text = build_sbt.read_text(encoding="utf-8") - for key in ("chisel6Version", "chisel7Version", "chiselTestVersion", "chisel3Version"): - match = re.search(rf'val\s+{key}\s*=\s*"([^"]+)"', text) - if match: - versions[key] = match.group(1) - return versions - - -def sbt_base_command(repo_dir): - return [ - "java", - "-jar", - str(repo_dir / "scripts" / "sbt-launch.jar"), - f"-Dsbt.ivy.home={repo_dir / '.ivy2'}", - f"-Dsbt.global.base={repo_dir / '.sbt'}", - f"-Dsbt.boot.directory={repo_dir / '.sbt' / 'boot'}", - "-Dsbt.color=false", - "-Dsbt.supershell=false", - "-Dsbt.server.forcestart=false", - ] - - -def audit_env(repo_dir): - env = os.environ.copy() - env["USE_CHISEL7"] = "1" - env.setdefault( - "JAVA_TOOL_OPTIONS", - f"-Xmx8G -Xss8M -Djava.io.tmpdir={repo_dir / '.java_tmp'}", - ) - return env - - -def run_sbt(repo_dir, sbt_command, log_path, timeout_seconds): - command = sbt_base_command(repo_dir) + [sbt_command] - started = time.monotonic() - log_path.parent.mkdir(parents=True, exist_ok=True) - with log_path.open("w", encoding="utf-8", errors="replace") as log_file: - log_file.write(f"$ {' '.join(command)}\n\n") - log_file.flush() - try: - proc = subprocess.run( - command, - cwd=repo_dir, - env=audit_env(repo_dir), - stdout=log_file, - stderr=subprocess.STDOUT, - text=True, - timeout=timeout_seconds, - check=False, - ) - return proc.returncode, time.monotonic() - started, False - except subprocess.TimeoutExpired: - log_file.write(f"\nTimed out after {timeout_seconds} seconds\n") - return 124, time.monotonic() - started, True - - -def tail_lines(path, limit): - if not path.exists(): - return [] - lines = path.read_text(encoding="utf-8", errors="replace").splitlines() - return [strip_ansi(line) for line in lines[-limit:]] - - -def error_summary(path, limit): - if not path.exists(): - return [] - selected = [] - for line in path.read_text(encoding="utf-8", errors="replace").splitlines(): - clean = strip_ansi(line) - if "[error]" in clean or "Compilation failed" in clean or "not found:" in clean: - selected.append(clean) - if len(selected) >= limit: - break - return selected - - -def discover_projects(repo_dir, log_dir, timeout_seconds): - log_path = log_dir / "sbt-projects.log" - returncode, _, timed_out = run_sbt(repo_dir, "projects", log_path, timeout_seconds) - if returncode != 0 or timed_out: - raise RuntimeError(f"sbt projects failed; see {log_path}") - - projects = [] - collecting = False - for raw in log_path.read_text(encoding="utf-8", errors="replace").splitlines(): - line = strip_ansi(raw) - if line.startswith("[info] In file:"): - collecting = True - continue - if not collecting: - continue - match = re.match(r"\[info\]\s+\*?\s+([A-Za-z0-9_.-]+)\s*$", line) - if match: - projects.append(match.group(1)) - return sorted(dict.fromkeys(projects)) - - -def project_result(project, status, returncode, duration, log_path, args): - return { - "project": project, - "status": status, - "returncode": returncode, - "duration_seconds": round(duration, 3), - "log_path": str(log_path), - "errors": error_summary(log_path, args.max_error_lines), - "log_tail": tail_lines(log_path, args.tail_lines) if status != "pass" else [], - } - - -def github_metadata(): - env = os.environ - return { - "repository": env.get("GITHUB_REPOSITORY"), - "ref": env.get("GITHUB_REF"), - "ref_name": env.get("GITHUB_REF_NAME"), - "sha": env.get("GITHUB_SHA"), - "workflow": env.get("GITHUB_WORKFLOW"), - "run_id": env.get("GITHUB_RUN_ID"), - "run_number": env.get("GITHUB_RUN_NUMBER"), - "run_attempt": env.get("GITHUB_RUN_ATTEMPT"), - "actor": env.get("GITHUB_ACTOR"), - "server_url": env.get("GITHUB_SERVER_URL"), - } - - -def main(): - parser = argparse.ArgumentParser(description="Audit SBT projects against Chisel 7.") - parser.add_argument("--repo-dir", default=".") - parser.add_argument("--output", default="chisel7-support-results.json") - parser.add_argument("--log-dir", default="chisel7-support-logs") - parser.add_argument("--projects", nargs="*", default=None) - parser.add_argument("--exclude", nargs="*", default=["chipyardRoot"]) - parser.add_argument("--project-timeout-minutes", type=int, default=45) - parser.add_argument("--projects-timeout-minutes", type=int, default=10) - parser.add_argument("--max-error-lines", type=int, default=40) - parser.add_argument("--tail-lines", type=int, default=80) - args = parser.parse_args() - - repo_dir = Path(args.repo_dir).resolve() - output_path = Path(args.output).resolve() - log_dir = Path(args.log_dir).resolve() - output_path.parent.mkdir(parents=True, exist_ok=True) - log_dir.mkdir(parents=True, exist_ok=True) - - projects = args.projects - if not projects: - print("Discovering SBT projects under USE_CHISEL7=1", flush=True) - projects = discover_projects(repo_dir, log_dir, args.projects_timeout_minutes * 60) - - excluded = set(args.exclude or []) - projects = [project for project in projects if project not in excluded] - - print(f"Auditing {len(projects)} SBT projects under USE_CHISEL7=1", flush=True) - results = [] - for index, project in enumerate(projects, start=1): - log_path = log_dir / f"{project}.log" - print(f"::group::[{index}/{len(projects)}] {project}", flush=True) - print(f"Running Chisel 7 compile check for {project}", flush=True) - returncode, duration, timed_out = run_sbt( - repo_dir, - f";project {project}; compile", - log_path, - args.project_timeout_minutes * 60, - ) - status = "timeout" if timed_out else "pass" if returncode == 0 else "fail" - result = project_result(project, status, returncode, duration, log_path, args) - results.append(result) - print(f"{project}: {status} in {duration:.1f}s", flush=True) - if status != "pass": - for line in result["errors"][:10]: - print(line, flush=True) - print("::endgroup::", flush=True) - - summary = { - "total": len(results), - "passed": sum(1 for item in results if item["status"] == "pass"), - "failed": sum(1 for item in results if item["status"] == "fail"), - "timed_out": sum(1 for item in results if item["status"] == "timeout"), - } - - document = { - "schema_version": 1, - "generated_at": utc_now(), - "audit_type": "sbt_compile", - "environment": { - "use_chisel7": True, - "versions": read_build_versions(repo_dir), - "python": sys.version, - }, - "github": github_metadata(), - "summary": summary, - "projects": results, - } - - output_path.write_text(json.dumps(document, indent=2, sort_keys=True) + "\n", encoding="utf-8") - print(json.dumps(summary, sort_keys=True), flush=True) - print(f"Wrote {output_path}", flush=True) - return 0 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/.github/scripts/publish-chisel7-support.py b/.github/scripts/publish-chisel7-support.py deleted file mode 100644 index bd569be6cc..0000000000 --- a/.github/scripts/publish-chisel7-support.py +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import datetime as dt -import json -import os -import sys - - -def utc_now(): - return dt.datetime.now(dt.timezone.utc).isoformat().replace("+00:00", "Z") - - -def main(): - parser = argparse.ArgumentParser(description="Publish Chisel 7 support audit results to MongoDB.") - parser.add_argument("results_json") - parser.add_argument("--database", default="main") - parser.add_argument("--collection", default="chisel7_support") - parser.add_argument("--mongo-env", default="MONGODB_SRV") - args = parser.parse_args() - - mongo_uri = os.environ.get(args.mongo_env) - if not mongo_uri: - print(f"Missing {args.mongo_env}; skipping MongoDB publish", file=sys.stderr) - return 0 - - try: - from pymongo import MongoClient - except ImportError: - print("pymongo is not installed; run `python3 -m pip install pymongo` first", file=sys.stderr) - return 2 - - with open(args.results_json, encoding="utf-8") as results_file: - document = json.load(results_file) - - document["published_at"] = utc_now() - - client = MongoClient(mongo_uri, serverSelectionTimeoutMS=15000) - collection = client[args.database][args.collection] - inserted = collection.insert_one(document) - print(f"Inserted Chisel 7 support audit document: {inserted.inserted_id}") - return 0 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/.github/workflows/chisel7-support-audit.yml b/.github/workflows/chisel7-support-audit.yml deleted file mode 100644 index ef475e7eae..0000000000 --- a/.github/workflows/chisel7-support-audit.yml +++ /dev/null @@ -1,130 +0,0 @@ -name: Chisel 7 Support Audit - -on: - schedule: - - cron: "0 10 * * 1" - workflow_dispatch: - inputs: - projects: - description: "Optional space-separated SBT projects to audit" - required: false - type: string - -permissions: - contents: read - packages: read - -defaults: - run: - shell: bash -leo pipefail {0} - -jobs: - chisel7-support-audit: - name: Chisel 7 support audit - runs-on: ubuntu-24.04 - timeout-minutes: 360 - env: - AUDIT_RESULTS_DIR: ${{ github.workspace }}/chisel7-audit-results - DOCKER_DATA_ROOT: ${{ github.workspace }}/.ci/docker - FORCE_NON_EC2: 1 - JVM_OPTS: -Xmx8G - steps: - - name: Maximize build space - uses: jimfangx/maximize-build-space@master - with: - root-reserve-mb: 4096 - swap-size-mb: 10240 - remove-dotnet: "true" - remove-android: "true" - remove-haskell: "true" - remove-codeql: "true" - - - name: Check out repository - uses: actions/checkout@v4 - - - name: Move Docker storage to workspace - run: | - sudo systemctl stop docker - sudo mkdir -p "${DOCKER_DATA_ROOT}" - printf '{ "data-root": "%s" }\n' "${DOCKER_DATA_ROOT}" | sudo tee /etc/docker/daemon.json - sudo systemctl start docker - docker info --format 'Docker root: {{ .DockerRootDir }}' - - - name: Pull Chipyard container - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - image_name="ghcr.io/${GITHUB_REPOSITORY,,}:main" - echo "CHIPYARD_IMAGE=${image_name}" >> "${GITHUB_ENV}" - echo "${GITHUB_TOKEN}" | docker login ghcr.io -u "${GITHUB_ACTOR}" --password-stdin - docker pull "${image_name}" - - - name: Run Chisel 7 audit in container - env: - CHISEL7_AUDIT_PROJECTS: ${{ github.event.inputs.projects || '' }} - run: | - mkdir -p "${AUDIT_RESULTS_DIR}" - docker run --rm -i \ - --env "CHISEL7_AUDIT_PROJECTS=${CHISEL7_AUDIT_PROJECTS:-}" \ - --env "FORCE_NON_EC2=${FORCE_NON_EC2}" \ - --env "GITHUB_ACTOR=${GITHUB_ACTOR}" \ - --env "GITHUB_REF=${GITHUB_REF}" \ - --env "GITHUB_REF_NAME=${GITHUB_REF_NAME}" \ - --env "GITHUB_REPOSITORY=${GITHUB_REPOSITORY}" \ - --env "GITHUB_RUN_ATTEMPT=${GITHUB_RUN_ATTEMPT}" \ - --env "GITHUB_RUN_ID=${GITHUB_RUN_ID}" \ - --env "GITHUB_RUN_NUMBER=${GITHUB_RUN_NUMBER}" \ - --env "GITHUB_SERVER_URL=${GITHUB_SERVER_URL}" \ - --env "GITHUB_SHA=${GITHUB_SHA}" \ - --env "GITHUB_WORKFLOW=${GITHUB_WORKFLOW}" \ - --env "JVM_OPTS=${JVM_OPTS}" \ - --volume "${AUDIT_RESULTS_DIR}:/chisel7-audit-results" \ - "${CHIPYARD_IMAGE}" \ - bash -leo pipefail <<'CONTAINER_SCRIPT' - cd /home/ubuntu/chipyard - git config --global --add safe.directory "*" - git remote set-url origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" - git fetch --no-tags origin "${GITHUB_REF}" - git checkout --detach "${GITHUB_SHA}" - - initialized_submodules="$(mktemp)" - git submodule status \ - | awk 'substr($1, 1, 1) != "-" { print $2 }' \ - | sort -u > "${initialized_submodules}" - while read -r submodule_path; do - [ -n "${submodule_path}" ] || continue - git submodule sync -- "${submodule_path}" - git submodule update --init --recursive -- "${submodule_path}" - done < "${initialized_submodules}" - - audit_args=( - --output /chisel7-audit-results/results.json - --log-dir /chisel7-audit-results/logs - ) - if [ -n "${CHISEL7_AUDIT_PROJECTS:-}" ]; then - read -r -a projects <<< "${CHISEL7_AUDIT_PROJECTS}" - audit_args+=(--projects "${projects[@]}") - fi - - python3 .github/scripts/chisel7-support-audit.py "${audit_args[@]}" - CONTAINER_SCRIPT - - - name: Upload audit artifact - uses: actions/upload-artifact@v4 - with: - name: chisel7-support-audit - path: ${{ env.AUDIT_RESULTS_DIR }} - if-no-files-found: error - - - name: Install MongoDB publisher dependency - run: | - python3 -m pip install --user 'pymongo[srv]' - - - name: Publish audit to MongoDB - env: - MONGODB_SRV: ${{ secrets.MONGODB_SRV }} - run: | - python3 .github/scripts/publish-chisel7-support.py \ - "${AUDIT_RESULTS_DIR}/results.json" \ - --database main \ - --collection chisel7_support diff --git a/sims/firesim-staging/sample_config_hwdb.yaml b/sims/firesim-staging/sample_config_hwdb.yaml index 0e7383af89..b308fab8df 100644 --- a/sims/firesim-staging/sample_config_hwdb.yaml +++ b/sims/firesim-staging/sample_config_hwdb.yaml @@ -63,65 +63,67 @@ firesim_saturn_REFV256D128_rocket_singlecore_no_nic_l2_llc4mb_ddr3: deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null vitis_firesim_rocket_singlecore_no_nic: - bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/11ba762decd46c5a933960eae699aaf551d6769f/vitis/vitis_firesim_rocket_singlecore_no_nic.tar.gz + # https://bitstreams.ucb.bar/vitis/vitis_firesim_rocket_singlecore_no_nic.xclbin + bitstream_tar: https://bitstreams.ucb.bar/vitis/vitis_firesim_rocket_singlecore_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null vitis_firesim_gemmini_rocket_singlecore_no_nic: - bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/0af81b912264abbe3f90f8140987814291090560/vitis/vitis_firesim_gemmini_rocket_singlecore_no_nic.tar.gz + # https://bitstreams.ucb.bar/vitis/vitis_firesim_gemmini_rocket_singlecore_no_nic.xclbin + bitstream_tar: https://bitstreams.ucb.bar/vitis/vitis_firesim_gemmini_rocket_singlecore_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null alveo_u250_firesim_rocket_singlecore_no_nic: - bitstream_tar: https://github.com/firesim/firesim-public-bitstreams/raw/b31b0c9571f8b9725cf9864a3221face63535a94/xilinx_alveo_u250/alveo_u250_firesim_rocket_singlecore_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_alveo_u250/alveo_u250_firesim_rocket_singlecore_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null alveo_u250_firesim_rocket_quadcore_no_nic: - bitstream_tar: https://github.com/firesim/firesim-public-bitstreams/raw/b31b0c9571f8b9725cf9864a3221face63535a94/xilinx_alveo_u250/alveo_u250_firesim_rocket_quadcore_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_alveo_u250/alveo_u250_firesim_rocket_quadcore_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null alveo_u250_firesim_boom_singlecore_no_nic: - bitstream_tar: https://github.com/firesim/firesim-public-bitstreams/raw/b31b0c9571f8b9725cf9864a3221face63535a94/xilinx_alveo_u250/alveo_u250_firesim_boom_singlecore_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_alveo_u250/alveo_u250_firesim_boom_singlecore_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null alveo_u250_firesim_rocket_singlecore_nic: - bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/d8e0d2535f2cae6834d8acc25fdc0c9c26230d28/xilinx_alveo_u250/alveo_u250_firesim_rocket_singlecore_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_alveo_u250/alveo_u250_firesim_rocket_singlecore_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null alveo_u250_firesim_gemmini_rocket_singlecore_no_nic: - bitstream_tar: https://github.com/firesim/firesim-public-bitstreams/raw/b31b0c9571f8b9725cf9864a3221face63535a94/xilinx_alveo_u250/alveo_u250_firesim_gemmini_rocket_singlecore_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_alveo_u250/alveo_u250_firesim_gemmini_rocket_singlecore_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null alveo_u250_firesim_saturn_GENV256D128_shuttle_singlecore_no_nic: - bitstream_tar: https://github.com/firesim/firesim-public-bitstreams/raw/b31b0c9571f8b9725cf9864a3221face63535a94/xilinx_alveo_u250/alveo_u250_firesim_saturn_GENV256D128_shuttle_singlecore_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_alveo_u250/alveo_u250_firesim_saturn_GENV256D128_shuttle_singlecore_no_nic.tar.gz deploy_quintuplet_override: null custom_runtime_config: null alveo_u250_firesim_saturn_REFV256D128_rocket_singlecore_no_nic: - bitstream_tar: https://github.com/firesim/firesim-public-bitstreams/raw/b31b0c9571f8b9725cf9864a3221face63535a94/xilinx_alveo_u250/alveo_u250_firesim_saturn_REFV256D128_rocket_singlecore_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_alveo_u250/alveo_u250_firesim_saturn_REFV256D128_rocket_singlecore_no_nic.tar.gz deploy_quintuplet_override: null custom_runtime_config: null alveo_u200_firesim_rocket_singlecore_no_nic: - bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/357c8268872ea107e5877b140b470f9ba20ea7ff/xilinx_alveo_u200/alveo_u200_firesim_rocket_singlecore_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_alveo_u200/alveo_u200_firesim_rocket_singlecore_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null alveo_u280_firesim_rocket_singlecore_no_nic: - bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/5718958b05ada4d35197b04d27132439ad1b8aae/xilinx_alveo_u280/alveo_u280_firesim_rocket_singlecore_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_alveo_u280/alveo_u280_firesim_rocket_singlecore_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic: - bitstream_tar: https://github.com/firesim/firesim-public-bitstreams/raw/b31b0c9571f8b9725cf9864a3221face63535a94/xilinx_vcu118/xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/xilinx_vcu118/xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null nitefury_firesim_rocket_singlecore_no_nic: - bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/4fed63d5a4836de28ac69edf2620d304615572c9/rhsresearch_nitefury_ii/nitefury_firesim_rocket_singlecore_no_nic.tar.gz + bitstream_tar: https://bitstreams.ucb.bar/rhsresearch_nitefury_ii/nitefury_firesim_rocket_singlecore_no_nic.tar.gz deploy_quintuplet_override: null deploy_makefrag_override: ../../generators/firechip/chip/src/main/makefrag/firesim custom_runtime_config: null From c4e7dc83892e21b82675303826d0f7b32b586b40 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Tue, 1 Sep 2026 19:46:19 -0700 Subject: [PATCH 58/69] fix deps --- conda-reqs/chipyard-base.yaml | 4 ++-- conda-reqs/chipyard-extended.yaml | 6 +++--- conda-reqs/riscv-tools.yaml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/conda-reqs/chipyard-base.yaml b/conda-reqs/chipyard-base.yaml index 4aafcec843..645d8adbec 100644 --- a/conda-reqs/chipyard-base.yaml +++ b/conda-reqs/chipyard-base.yaml @@ -14,8 +14,8 @@ dependencies: # instructions on adding a recipe # https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/pkg-specs.html#package-match-specifications # documentation on package_spec syntax for constraining versions - - gcc=13.2 - - gxx=13.2 + - gcc>=15,<16 + - gxx>=15,<16 - sysroot_linux-64=2.34 - conda-gcc-specs - binutils diff --git a/conda-reqs/chipyard-extended.yaml b/conda-reqs/chipyard-extended.yaml index 34bfd6dd7f..481aceecf2 100644 --- a/conda-reqs/chipyard-extended.yaml +++ b/conda-reqs/chipyard-extended.yaml @@ -25,7 +25,7 @@ dependencies: - doit>=0.34.0 - gitpython - humanfriendly - - ctags + - universal-ctags - bison - flex - expat @@ -33,7 +33,7 @@ dependencies: - bc - unzip - patch - - which=2.21=h0b41bf4_1 + - which - sed - diffutils - bash @@ -88,7 +88,7 @@ dependencies: # packages so that the environment is consistent - screen - elfutils - - libdwarf-dev==0.0.0.20190110_28_ga81397fc4 # from ucb-bar channel - using mainline libdwarf-feedstock + - conda-forge::libdwarf-dev=2.1.0.* - colorama - argcomplete - python-graphviz diff --git a/conda-reqs/riscv-tools.yaml b/conda-reqs/riscv-tools.yaml index b1e5255505..7427f6a8f9 100644 --- a/conda-reqs/riscv-tools.yaml +++ b/conda-reqs/riscv-tools.yaml @@ -15,4 +15,4 @@ dependencies: # https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/pkg-specs.html#package-match-specifications # documentation on package_spec syntax for constraining versions - - riscv-tools==1.0.6 # from ucb-bar channel - https://github.com/ucb-bar/riscv-tools-feedstock + - riscv-tools==1.0.9 # from ucb-bar channel - https://github.com/ucb-bar/riscv-tools-feedstock From fe20449497563392957c4d268e240afda4b9775f Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Tue, 1 Sep 2026 21:46:32 -0700 Subject: [PATCH 59/69] add launch log generator, manual f2 rebuild script --- .github/.gitignore | 1 + .../f2/config_build.yaml | 59 -- .../scripts/build-firesim-f2-bitstreams.sh | 128 ++++ .github/scripts/config_build_f2.yaml | 47 ++ .github/scripts/firesim-manager-entrypoint.sh | 179 ------ .../generate-generator-release-notes.sh | 108 ++++ .github/scripts/launch-firesim-manager.sh | 587 ------------------ .github/workflows/build-docs.yml | 59 ++ .github/workflows/launch-firesim-manager.yml | 70 --- .github/workflows/pr-ci.yml | 8 + 10 files changed, 351 insertions(+), 895 deletions(-) create mode 100644 .github/.gitignore delete mode 100644 .github/firesim-bitstream-templates/f2/config_build.yaml create mode 100755 .github/scripts/build-firesim-f2-bitstreams.sh create mode 100644 .github/scripts/config_build_f2.yaml delete mode 100755 .github/scripts/firesim-manager-entrypoint.sh create mode 100755 .github/scripts/generate-generator-release-notes.sh delete mode 100755 .github/scripts/launch-firesim-manager.sh create mode 100644 .github/workflows/build-docs.yml delete mode 100644 .github/workflows/launch-firesim-manager.yml diff --git a/.github/.gitignore b/.github/.gitignore new file mode 100644 index 0000000000..d8be571f5e --- /dev/null +++ b/.github/.gitignore @@ -0,0 +1 @@ +*-release.log diff --git a/.github/firesim-bitstream-templates/f2/config_build.yaml b/.github/firesim-bitstream-templates/f2/config_build.yaml deleted file mode 100644 index 5ce937a2fc..0000000000 --- a/.github/firesim-bitstream-templates/f2/config_build.yaml +++ /dev/null @@ -1,59 +0,0 @@ -# Build-time build design / AGFI configuration for the FireSim Simulation Manager -# See https://docs.fires.im/en/stable/Advanced-Usage/Manager/Manager-Configuration-Files.html for documentation of all of these params. - -# this refers to build farms defined in config_build_farm.yaml -build_farm: - base_recipe: build-farm-recipes/aws_ec2.yaml - recipe_arg_overrides: - # tag to apply to build farm hosts - build_farm_tag: mainbuildfarm - # instance type to use per build - instance_type: m8i.4xlarge - # instance market to use per build (ondemand, spot) - build_instance_market: spot - # if using spot instances, determine the interrupt behavior (terminate, stop, hibernate) - spot_interruption_behavior: terminate - # if using spot instances, determine the max price - spot_max_price: "0.5" - # default location of build directory on build host - default_build_dir: /home/ubuntu/firesim-build - -builds_to_run: - # this section references builds defined in config_build_recipes.yaml - # if you add a build here, it will be built when you run buildbitstream - - firesim_rocket_quadcore_nic_l2_llc4mb_ddr3 - - firesim_rocket_quadcore_no_nic_l2_llc4mb_ddr3 - - firesim_boom_singlecore_nic_l2_llc4mb_ddr3 - - firesim_boom_singlecore_no_nic_l2_llc4mb_ddr3 - - firesim_megaboom_singlecore_no_nic_l2_llc4mb_ddr3 - # # - firesim_supernode_rocket_singlecore_nic_l2_lbp - - firesim_rocket_singlecore_no_nic_l2_lbp - # # - firesim_rocket_singlecore_sha3_nic_l2_llc4mb_ddr3 - # # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3 - # # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3_printf - - firesim_gemmini_printf_rocket_singlecore_no_nic - - firesim_gemmini_rocket_singlecore_no_nic - - firesim_saturn_REFV256D128_rocket_singlecore_no_nic_l2_llc4mb_ddr3 - - firesim_saturn_GENV256D128_shuttle_singlecore_no_nic_l2_llc4mb_ddr3 - -agfis_to_share: - - firesim_rocket_quadcore_nic_l2_llc4mb_ddr3 - - firesim_rocket_quadcore_no_nic_l2_llc4mb_ddr3 - - firesim_boom_singlecore_nic_l2_llc4mb_ddr3 - - firesim_boom_singlecore_no_nic_l2_llc4mb_ddr3 - - firesim_megaboom_singlecore_no_nic_l2_llc4mb_ddr3 - # # - firesim_supernode_rocket_singlecore_nic_l2_lbp - - firesim_rocket_singlecore_no_nic_l2_lbp - # # - firesim_rocket_singlecore_sha3_nic_l2_llc4mb_ddr3 - # # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3 - # # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3_printf - - firesim_gemmini_printf_rocket_singlecore_no_nic - - firesim_gemmini_rocket_singlecore_no_nic - - firesim_saturn_REFV256D128_rocket_singlecore_no_nic_l2_llc4mb_ddr3 - - firesim_saturn_GENV256D128_shuttle_singlecore_no_nic_l2_llc4mb_ddr3 - -share_with_accounts: - public: public - # To share with a specific user: - # somebodysname: 123456789012 - # To share publicly: diff --git a/.github/scripts/build-firesim-f2-bitstreams.sh b/.github/scripts/build-firesim-f2-bitstreams.sh new file mode 100755 index 0000000000..f014185b55 --- /dev/null +++ b/.github/scripts/build-firesim-f2-bitstreams.sh @@ -0,0 +1,128 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Run this directly on an existing FireSim manager. The manager's normal AWS +# credential provider chain is used, including an attached EC2 IAM role; this +# script does not create or copy access keys. + +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +DEFAULT_CY_DIR="$(cd -- "${SCRIPT_DIR}/../.." && pwd)" + +CY_DIR="${CY_DIR:-${DEFAULT_CY_DIR}}" +FS_DIR="${FIRESIM_DIR:-${CY_DIR}/sims/firesim}" +BUILD_RECIPES="${FIRESIM_BUILD_RECIPES:-${CY_DIR}/sims/firesim-staging/sample_config_build_recipes.yaml}" +BUILD_CONFIG="${FIRESIM_BUILD_CONFIG:-${SCRIPT_DIR}/config_build_f2.yaml}" +BUILD_HWDB="${FIRESIM_BUILD_HWDB:-${CY_DIR}/sims/firesim-staging/sample_config_hwdb.yaml}" +PUBLISH_HWDB="${FIRESIM_PUBLISH_HWDB:-${FS_DIR}/deploy/built-hwdb-entries/config_hwdb_f2_latest.yaml}" +firesim_args=("$@") + +require_file() { + local path="$1" + if [ ! -f "${path}" ]; then + echo "Missing required file: ${path}" >&2 + exit 1 + fi +} + +require_file "${FS_DIR}/sourceme-manager.sh" +require_file "${BUILD_RECIPES}" +require_file "${BUILD_CONFIG}" +require_file "${BUILD_HWDB}" + +cd "${FS_DIR}" + +# FireSim's environment scripts are not nounset-safe. Clear the positional +# arguments while sourcing so FireSim does not interpret this script's args. +set -- +set +u +# shellcheck disable=SC1091 +source sourceme-manager.sh +set -u + +if [ ! -r "${HOME}/firesim.pem" ]; then + echo "Missing ${HOME}/firesim.pem. Finish setting up this FireSim manager first." >&2 + exit 1 +fi + +if ! command -v aws >/dev/null 2>&1; then + echo "The AWS CLI is unavailable. Finish setting up this FireSim manager first." >&2 + exit 1 +fi + +aws_region="${AWS_REGION:-${AWS_DEFAULT_REGION:-}}" +if [ -z "${aws_region}" ]; then + aws_region="$(aws configure get region 2>/dev/null || true)" +fi +if [ -z "${aws_region}" ]; then + echo "No AWS region is configured. Set AWS_DEFAULT_REGION or configure a default region." >&2 + exit 1 +fi +export AWS_DEFAULT_REGION="${aws_region}" + +if ! aws sts get-caller-identity >/dev/null; then + echo "No usable AWS identity was found. Attach the FireSim IAM role to this manager or configure another standard AWS credential provider." >&2 + exit 1 +fi + +echo "Initializing the FireSim manager for AWS F2 in ${AWS_DEFAULT_REGION}." +printf '%s\n' "${FIRESIM_NOTIFICATION_EMAIL:-}" | firesim managerinit --platform f2 + +echo "Launching the F2 build farm described by ${BUILD_CONFIG}" +echo "Build recipes: ${BUILD_RECIPES}" +build_started_at="$(date +%s)" + +# Additional arguments are passed through to FireSim, for example +# --forceterminate when recovering from an interrupted build. +firesim buildbitstream \ + --buildrecipesconfigfile "${BUILD_RECIPES}" \ + --buildconfigfile "${BUILD_CONFIG}" \ + --hwdbconfigfile "${BUILD_HWDB}" \ + "${firesim_args[@]}" + +# FireSim writes the newly created AGFI entry for each successful build into +# deploy/built-hwdb-entries. Assemble only entries created by this run so that +# shareagfi cannot publish stale AGFIs from the sample HWDB. +python3 - "${BUILD_CONFIG}" "${FS_DIR}/deploy/built-hwdb-entries" "${PUBLISH_HWDB}" "${build_started_at}" <<'PY' +import sys +from pathlib import Path + +import yaml + +build_config_path = Path(sys.argv[1]) +entries_dir = Path(sys.argv[2]) +publish_hwdb_path = Path(sys.argv[3]) +build_started_at = int(sys.argv[4]) + +with build_config_path.open(encoding="utf-8") as build_config_file: + build_config = yaml.safe_load(build_config_file) + +names = build_config.get("agfis_to_share") or [] +if not names: + raise SystemExit(f"No agfis_to_share entries found in {build_config_path}") + +publish_hwdb = {} +for name in names: + entry_path = entries_dir / name + if not entry_path.is_file(): + raise SystemExit(f"Missing AGFI entry from the completed build: {entry_path}") + if entry_path.stat().st_mtime < build_started_at: + raise SystemExit(f"Refusing to publish stale AGFI entry: {entry_path}") + + with entry_path.open(encoding="utf-8") as entry_file: + entry = yaml.safe_load(entry_file) + if not isinstance(entry, dict) or list(entry) != [name]: + raise SystemExit(f"Unexpected AGFI entry in {entry_path}") + publish_hwdb[name] = entry[name] + +publish_hwdb_path.parent.mkdir(parents=True, exist_ok=True) +with publish_hwdb_path.open("w", encoding="utf-8") as publish_hwdb_file: + yaml.safe_dump(publish_hwdb, publish_hwdb_file, sort_keys=False) + +print(f"Wrote freshly built AGFI database: {publish_hwdb_path}") +PY + +echo "Sharing the newly built AGFIs using ${PUBLISH_HWDB}" +firesim shareagfi \ + --buildrecipesconfigfile "${BUILD_RECIPES}" \ + --buildconfigfile "${BUILD_CONFIG}" \ + --hwdbconfigfile "${PUBLISH_HWDB}" diff --git a/.github/scripts/config_build_f2.yaml b/.github/scripts/config_build_f2.yaml new file mode 100644 index 0000000000..b833af15bf --- /dev/null +++ b/.github/scripts/config_build_f2.yaml @@ -0,0 +1,47 @@ +# Build-time configuration for rebuilding and publishing Chipyard's AWS F2 +# AGFIs from an existing FireSim manager. + +build_farm: + base_recipe: build-farm-recipes/aws_ec2.yaml + recipe_arg_overrides: + build_farm_tag: mainbuildfarm + instance_type: m8i.4xlarge + build_instance_market: spot + spot_interruption_behavior: terminate + spot_max_price: "0.5" + default_build_dir: /home/ubuntu/firesim-build + +builds_to_run: + - firesim_rocket_quadcore_nic_l2_llc4mb_ddr3 + - firesim_rocket_quadcore_no_nic_l2_llc4mb_ddr3 + - firesim_boom_singlecore_nic_l2_llc4mb_ddr3 + - firesim_boom_singlecore_no_nic_l2_llc4mb_ddr3 + - firesim_megaboom_singlecore_no_nic_l2_llc4mb_ddr3 + # - firesim_supernode_rocket_singlecore_nic_l2_lbp + - firesim_rocket_singlecore_no_nic_l2_lbp + # - firesim_rocket_singlecore_sha3_nic_l2_llc4mb_ddr3 + # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3 + # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3_printf + - firesim_gemmini_printf_rocket_singlecore_no_nic + - firesim_gemmini_rocket_singlecore_no_nic + - firesim_saturn_REFV256D128_rocket_singlecore_no_nic_l2_llc4mb_ddr3 + - firesim_saturn_GENV256D128_shuttle_singlecore_no_nic_l2_llc4mb_ddr3 + +agfis_to_share: + - firesim_rocket_quadcore_nic_l2_llc4mb_ddr3 + - firesim_rocket_quadcore_no_nic_l2_llc4mb_ddr3 + - firesim_boom_singlecore_nic_l2_llc4mb_ddr3 + - firesim_boom_singlecore_no_nic_l2_llc4mb_ddr3 + - firesim_megaboom_singlecore_no_nic_l2_llc4mb_ddr3 + # - firesim_supernode_rocket_singlecore_nic_l2_lbp + - firesim_rocket_singlecore_no_nic_l2_lbp + # - firesim_rocket_singlecore_sha3_nic_l2_llc4mb_ddr3 + # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3 + # - firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3_printf + - firesim_gemmini_printf_rocket_singlecore_no_nic + - firesim_gemmini_rocket_singlecore_no_nic + - firesim_saturn_REFV256D128_rocket_singlecore_no_nic_l2_llc4mb_ddr3 + - firesim_saturn_GENV256D128_shuttle_singlecore_no_nic_l2_llc4mb_ddr3 + +share_with_accounts: + public: public diff --git a/.github/scripts/firesim-manager-entrypoint.sh b/.github/scripts/firesim-manager-entrypoint.sh deleted file mode 100755 index b6ad2d112e..0000000000 --- a/.github/scripts/firesim-manager-entrypoint.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -KEEP_CONTAINER_ON_ERROR="${KEEP_CONTAINER_ON_ERROR:-1}" - -keep_container_on_error() { - local rc="$?" - if [ "${rc}" -ne 0 ] && [ "${KEEP_CONTAINER_ON_ERROR}" = "1" ]; then - echo "Entrypoint failed with exit code ${rc}; keeping container alive for debugging." >&2 - echo "Inspect with: docker exec -it firesim-manager bash" >&2 - sleep infinity - fi -} - -exit_immediately() { - trap - EXIT - exit 143 -} - -trap keep_container_on_error EXIT -trap exit_immediately INT TERM - -export USER=ubuntu -export LOGNAME=ubuntu -export HOME=/home/ubuntu - -CY_DIR="${CY_DIR:-/home/ubuntu/chipyard}" -FS_DIR="${CY_DIR}/sims/firesim" -PUBLIC_KEY_PATH="${FIRESIM_PUBLIC_KEY_PATH:-/home/ubuntu/firesim-public}" -EC2_SETUP_SCRIPT="${FIRESIM_EC2_SETUP_SCRIPT:-${CY_DIR}/scripts/firesim-ec2-setup.sh}" -BUILD_RECIPES="${FIRESIM_BUILD_RECIPES:-${CY_DIR}/sims/firesim-staging/sample_config_build_recipes.yaml}" -BUILD_CONFIG="${FIRESIM_BUILD_CONFIG:-${CY_DIR}/.github/firesim-bitstream-templates/f2/config_build.yaml}" -VIVADO_VERSION="${VIVADO_VERSION:-}" -FIRESIM_AWS_VPC_NAME="${FIRESIM_AWS_VPC_NAME:-chipyard-cicd}" -FIRESIM_AWS_KEY_NAME="${FIRESIM_AWS_KEY_NAME:-chipyard-cicd}" -FIRESIM_AWS_SECURITY_GROUP_NAME="${FIRESIM_AWS_SECURITY_GROUP_NAME:-chipyard-cicd-build-farm}" -FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME="${FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME:-chipyard-cicd-firesim-ssh}" -FIRESIM_AWS_ALLOWED_CIDR="${FIRESIM_AWS_ALLOWED_CIDR:-192.168.0.0/16}" -export FIRESIM_AWS_VPC_NAME -export FIRESIM_AWS_KEY_NAME -export FIRESIM_AWS_SECURITY_GROUP_NAME -export FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME -export FIRESIM_AWS_ALLOWED_CIDR - -export LC_ALL="${LC_ALL:-en_US.UTF-8}" -export LANG="${LANG:-en_US.UTF-8}" - -if ! ldconfig -p 2>/dev/null | grep -q 'libX11\.so\.6' || ! command -v git-lfs >/dev/null 2>&1; then - sudo apt-get update - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - git-lfs \ - locales \ - libx11-6 \ - libxext6 \ - libxft2 \ - libxi6 \ - libxinerama1 \ - libxrender1 \ - libxtst6 - sudo locale-gen en_US.UTF-8 -fi - -if [ -n "${VIVADO_VERSION}" ]; then - VIVADO_PATH="/opt/Xilinx/${VIVADO_VERSION}/Vivado/settings64.sh" -else - VIVADO_PATH="$(find /opt/Xilinx -path '*/Vivado/settings64.sh' -type f 2>/dev/null | sort -V | tail -n 1)" -fi - -if [ ! -f "${VIVADO_PATH}" ]; then - echo "Missing Vivado settings script. Set VIVADO_VERSION or mount /opt/Xilinx into the container." >&2 - exit 1 -fi - -echo "Sourcing Vivado settings: ${VIVADO_PATH}" -had_nounset=0 -case "$-" in - *u*) - had_nounset=1 - set +u - ;; -esac - -# shellcheck disable=SC1090 -source "${VIVADO_PATH}" - -if [ "${had_nounset}" -eq 1 ]; then - set -u -fi - -if [ ! -s "${PUBLIC_KEY_PATH}" ]; then - echo "Missing public key mounted at ${PUBLIC_KEY_PATH}." >&2 - exit 1 -fi - -mkdir -p "${HOME}/.ssh" -chmod 700 "${HOME}/.ssh" -touch "${HOME}/.ssh/authorized_keys" -chmod 600 "${HOME}/.ssh/authorized_keys" -grep -qxFf "${PUBLIC_KEY_PATH}" "${HOME}/.ssh/authorized_keys" || cat "${PUBLIC_KEY_PATH}" >> "${HOME}/.ssh/authorized_keys" - -sudo tee -a /etc/ssh/sshd_config >/dev/null <<'EOF' -PermitRootLogin prohibit-password -PubkeyAuthentication yes -PasswordAuthentication no -EOF - -sudo mkdir -p /run/sshd -sudo chmod 755 /run/sshd -sudo /usr/sbin/sshd - -if [ ! -x "${EC2_SETUP_SCRIPT}" ]; then - echo "Missing executable EC2 setup script: ${EC2_SETUP_SCRIPT}" >&2 - exit 1 -fi -export FORCE_NON_EC2=0 -"${EC2_SETUP_SCRIPT}" - -cd "${FS_DIR}" - -python - <<'PY' -import os -from pathlib import Path - -path = Path("deploy/awstools/awstools.py") -text = path.read_text() -replacements = { - '"vpcname": "firesim",': f'"vpcname": {os.environ["FIRESIM_AWS_VPC_NAME"]!r},', - '"securitygroupname": "for-farms-only-firesim",': f'"securitygroupname": {os.environ["FIRESIM_AWS_SECURITY_GROUP_NAME"]!r},', - '"securitygroupname-manager": "firesim",': f'"securitygroupname-manager": {os.environ["FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME"]!r},', - '"keyname": "firesim",': f'"keyname": {os.environ["FIRESIM_AWS_KEY_NAME"]!r},', - 'allowed_cidr = "192.168.0.0/16"': f'allowed_cidr = {os.environ["FIRESIM_AWS_ALLOWED_CIDR"]!r}', -} -for old, new in replacements.items(): - if old in text: - text = text.replace(old, new, 1) - elif new in text: - continue - else: - raise SystemExit(f"Could not find expected FireSim AWS resource-name text: {old}") -path.write_text(text) -print( - "Configured FireSim AWS resources: " - f"vpc={os.environ['FIRESIM_AWS_VPC_NAME']} " - f"key={os.environ['FIRESIM_AWS_KEY_NAME']} " - f"security_group={os.environ['FIRESIM_AWS_SECURITY_GROUP_NAME']} " - f"allowed_cidr={os.environ['FIRESIM_AWS_ALLOWED_CIDR']}" -) -PY - -had_nounset=0 -case "$-" in - *u*) - had_nounset=1 - set +u - ;; -esac - -# shellcheck disable=SC1091 -source sourceme-manager.sh - -if [ "${had_nounset}" -eq 1 ]; then - set -u -fi - -printf '\n' | firesim managerinit --platform f2 - -python -m pip uninstall -y pyOpenSSL cryptography awscli botocore s3transfer urllib3 -python -m pip install --no-cache-dir --upgrade \ - 'urllib3<2' \ - 'cryptography==42.0.8' \ - 'pyOpenSSL==24.1.0' \ - awscli -hash -r - -firesim buildbitstream \ - -r "${BUILD_RECIPES}" \ - -b "${BUILD_CONFIG}" - -firesim shareagfi diff --git a/.github/scripts/generate-generator-release-notes.sh b/.github/scripts/generate-generator-release-notes.sh new file mode 100755 index 0000000000..35c08512cb --- /dev/null +++ b/.github/scripts/generate-generator-release-notes.sh @@ -0,0 +1,108 @@ +#!/usr/bin/env bash +set -euo pipefail + +usage() { + cat <<'EOF' +Usage: .github/scripts/generate-generator-release-notes.sh [base-tag] + +Generate .github/-release.log for every generator submodule. Each +file contains the submodule's git log from the commit pinned by base-tag to the +commit pinned by the current Chipyard HEAD. + +If base-tag is omitted, the nearest tag reachable before HEAD is used. Set +SKIP_FETCH=1 to use only locally available Chipyard tags and submodule refs. +EOF +} + +if [ "$#" -gt 1 ]; then + usage >&2 + exit 2 +fi +if [ "${1:-}" = "-h" ] || [ "${1:-}" = "--help" ]; then + usage + exit 0 +fi + +REPO_DIR="$(git rev-parse --show-toplevel)" +OUTPUT_DIR="${REPO_DIR}/.github" +TARGET_COMMIT="$(git -C "${REPO_DIR}" rev-parse HEAD^{commit})" + +if [ "${SKIP_FETCH:-0}" != "1" ]; then + echo "Fetching Chipyard tags from origin." + git -C "${REPO_DIR}" fetch --tags origin +fi + +if [ -n "${1:-}" ]; then + BASE_TAG="$1" +else + if ! BASE_TAG="$(git -C "${REPO_DIR}" describe --tags --abbrev=0 "${TARGET_COMMIT}^")"; then + echo "Could not find a tag before ${TARGET_COMMIT}. Pass the base tag explicitly." >&2 + exit 1 + fi +fi + +BASE_COMMIT="$(git -C "${REPO_DIR}" rev-parse "${BASE_TAG}^{commit}")" +echo "Generating generator release logs for ${BASE_TAG} (${BASE_COMMIT})..HEAD (${TARGET_COMMIT})." + +mapfile -t generator_paths < <( + git -C "${REPO_DIR}" config --file .gitmodules --get-regexp '^submodule\..*\.path$' \ + | awk '$2 ~ /^generators\// { print $2 }' \ + | sort -u +) + +if [ "${#generator_paths[@]}" -eq 0 ]; then + echo "No generator submodules found in .gitmodules." >&2 + exit 1 +fi + +for generator_path in "${generator_paths[@]}"; do + generator_name="${generator_path##*/}" + output_path="${OUTPUT_DIR}/${generator_name}-release.log" + + new_entry="$(git -C "${REPO_DIR}" ls-tree "${TARGET_COMMIT}" -- "${generator_path}")" + if [ -z "${new_entry}" ] || [ "${new_entry%% *}" != "160000" ]; then + echo "Expected ${generator_path} to be a submodule at ${TARGET_COMMIT}." >&2 + exit 1 + fi + new_commit="$(awk '{ print $3 }' <<< "${new_entry}")" + + old_entry="$(git -C "${REPO_DIR}" ls-tree "${BASE_COMMIT}" -- "${generator_path}")" + if [ -n "${old_entry}" ] && [ "${old_entry%% *}" = "160000" ]; then + old_commit="$(awk '{ print $3 }' <<< "${old_entry}")" + else + old_commit="" + fi + + if ! git -C "${REPO_DIR}/${generator_path}" rev-parse --git-dir >/dev/null 2>&1; then + if [ "${SKIP_FETCH:-0}" = "1" ]; then + echo "${generator_path} is not initialized and SKIP_FETCH=1 was requested." >&2 + exit 1 + fi + echo "Initializing ${generator_path}." + git -C "${REPO_DIR}" submodule update --init -- "${generator_path}" + fi + + if [ "${SKIP_FETCH:-0}" != "1" ]; then + echo "Fetching ${generator_path} from origin." + git -C "${REPO_DIR}/${generator_path}" fetch origin + fi + + if ! git -C "${REPO_DIR}/${generator_path}" cat-file -e "${new_commit}^{commit}" 2>/dev/null; then + git -C "${REPO_DIR}/${generator_path}" fetch origin "${new_commit}" + fi + + if [ -n "${old_commit}" ]; then + if ! git -C "${REPO_DIR}/${generator_path}" cat-file -e "${old_commit}^{commit}" 2>/dev/null; then + git -C "${REPO_DIR}/${generator_path}" fetch origin "${old_commit}" + fi + git -C "${REPO_DIR}/${generator_path}" log --no-color "${old_commit}..${new_commit}" > "${output_path}" + commit_count="$(git -C "${REPO_DIR}/${generator_path}" rev-list --count "${old_commit}..${new_commit}")" + echo "Wrote ${output_path} (${commit_count} commits; ${old_commit}..${new_commit})." + else + # A generator added after the base tag has no old gitlink. Include all + # history reachable from the first Chipyard-pinned commit. + git -C "${REPO_DIR}/${generator_path}" log --no-color "${new_commit}" > "${output_path}" + commit_count="$(git -C "${REPO_DIR}/${generator_path}" rev-list --count "${new_commit}")" + echo "Wrote ${output_path} (${commit_count} commits; generator was not present in ${BASE_TAG})." + fi +done diff --git a/.github/scripts/launch-firesim-manager.sh b/.github/scripts/launch-firesim-manager.sh deleted file mode 100755 index fc0d2c97cc..0000000000 --- a/.github/scripts/launch-firesim-manager.sh +++ /dev/null @@ -1,587 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# Launch and provision an EC2 instance that can act as a FireSim manager. -# -# Required CI environment: -# AWS_ACCESS_KEY_ID -# AWS_SECRET_ACCESS_KEY -# AWS_SESSION_TOKEN optional, required only for temporary creds -# AWS_DEFAULT_REGION optional, defaults to us-west-2 -# FIRESIM_MANAGER_SSH_CIDR optional, defaults to CI runner public IP/32 -# FIRESIM_MANAGER_SSH_PRIVATE_KEY -# Required if EC2 key pair chipyard-cicd already exists. EC2 does not -# retain private key material after key-pair creation, so it cannot be -# pulled back from AWS later. -# FIRESIM_MANAGER_IMAGE -# Optional, defaults to ghcr.io/${GITHUB_REPOSITORY,,}:main. -# GHCR_USERNAME / GHCR_TOKEN -# Optional, needed only when pulling a private GHCR image. -# -# Useful overrides: -# FIRESIM_MANAGER_KEY_NAME=chipyard-cicd -# FIRESIM_MANAGER_INSTANCE_TYPE=m6a.xlarge -# FIRESIM_MANAGER_AMI_ID=ami-... or public AMI name -# FIRESIM_MANAGER_VPC_NAME=chipyard-cicd -# FIRESIM_MANAGER_ROOT_VOLUME_GB=100 -# FIRESIM_MANAGER_CONTAINER_SCRIPT=path/to/local/script.sh -# FIRESIM_MANAGER_DETACH_CONTAINER=1 - -# Set this to an AMI ID or public AMI name to pin the manager image. Leave -# empty to resolve the current Ubuntu 24.04 amd64 EBS gp3 AMI from AWS SSM in -# the selected region. - -# This is FPGA Dev AMI 1.19.2-prod-rhng4b6alkhdq -manager_ami_id="${FIRESIM_MANAGER_AMI_ID:-ami-07a164f1a402ab274}" - -aws_region="${AWS_REGION:-${AWS_DEFAULT_REGION:-us-west-2}}" -export AWS_DEFAULT_REGION="${aws_region}" - -managed_by="${FIRESIM_MANAGER_MANAGED_BY:-chipyard-cicd}" -resource_prefix="${FIRESIM_MANAGER_RESOURCE_PREFIX:-chipyard-cicd-firesim}" -key_name="${FIRESIM_MANAGER_KEY_NAME:-chipyard-cicd}" -instance_type="${FIRESIM_MANAGER_INSTANCE_TYPE:-m6a.xlarge}" -vpc_cidr="${FIRESIM_MANAGER_VPC_CIDR:-192.168.0.0/16}" -subnet_cidr="${FIRESIM_MANAGER_SUBNET_CIDR:-192.168.1.0/24}" -root_volume_gb="${FIRESIM_MANAGER_ROOT_VOLUME_GB:-170}" -remote_user="${FIRESIM_MANAGER_REMOTE_USER:-ubuntu}" -remote_region="${FIRESIM_AWS_REGION:-${aws_region}}" -detach_container="${FIRESIM_MANAGER_DETACH_CONTAINER:-0}" -keep_container_on_error="${FIRESIM_MANAGER_KEEP_CONTAINER_ON_ERROR:-1}" -firesim_build_security_group_name="${FIRESIM_AWS_SECURITY_GROUP_NAME:-chipyard-cicd-build-farm}" - -vpc_name="${FIRESIM_MANAGER_VPC_NAME:-chipyard-cicd}" -subnet_name="${resource_prefix}-subnet" -igw_name="${resource_prefix}-igw" -route_table_name="${resource_prefix}-rt" -sg_name="${resource_prefix}-ssh" -run_id="${GITHUB_RUN_ID:-$(date -u +%Y%m%d%H%M%S)}" -instance_name="${FIRESIM_MANAGER_INSTANCE_NAME:-${resource_prefix}-manager-${run_id}}" - -if [ -n "${FIRESIM_MANAGER_IMAGE:-}" ]; then - image_ref="${FIRESIM_MANAGER_IMAGE}" -elif [ -n "${GITHUB_REPOSITORY:-}" ]; then - image_ref="ghcr.io/${GITHUB_REPOSITORY,,}:main" -else - echo "Set FIRESIM_MANAGER_IMAGE or GITHUB_REPOSITORY so the GHCR image can be derived." >&2 - exit 1 -fi - -require_command() { - local command="$1" - if ! command -v "${command}" >/dev/null 2>&1; then - echo "Missing required command: ${command}" >&2 - exit 1 - fi -} - -aws_text_or_empty() { - local value - value="$(aws "$@" --output text)" - if [ "${value}" = "None" ]; then - value="" - fi - printf '%s\n' "${value}" -} - -tag_resource() { - local resource_id="$1" - local name="$2" - aws ec2 create-tags \ - --resources "${resource_id}" \ - --tags "Key=Name,Value=${name}" "Key=ManagedBy,Value=${managed_by}" \ - >/dev/null -} - -ensure_ssh_cidr() { - if [ -n "${FIRESIM_MANAGER_SSH_CIDR:-}" ]; then - printf '%s\n' "${FIRESIM_MANAGER_SSH_CIDR}" - return - fi - - if command -v curl >/dev/null 2>&1; then - local public_ip - public_ip="$(curl -fsS --max-time 10 https://checkip.amazonaws.com 2>/dev/null | tr -d '[:space:]' || true)" - if [[ "${public_ip}" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - printf '%s/32\n' "${public_ip}" - return - fi - fi - - echo "Set FIRESIM_MANAGER_SSH_CIDR to the CI runner's SSH source CIDR, for example 203.0.113.10/32." >&2 - exit 1 -} - -ensure_vpc() { - local vpc_id - vpc_id="$(aws_text_or_empty ec2 describe-vpcs \ - --filters "Name=tag:Name,Values=${vpc_name}" \ - --query 'Vpcs[0].VpcId')" - - if [ -z "${vpc_id}" ]; then - vpc_id="$(aws ec2 create-vpc --cidr-block "${vpc_cidr}" --query 'Vpc.VpcId' --output text)" - tag_resource "${vpc_id}" "${vpc_name}" - fi - - aws ec2 modify-vpc-attribute --vpc-id "${vpc_id}" --enable-dns-support '{"Value":true}' >/dev/null - aws ec2 modify-vpc-attribute --vpc-id "${vpc_id}" --enable-dns-hostnames '{"Value":true}' >/dev/null - printf '%s\n' "${vpc_id}" -} - -ensure_subnet() { - local vpc_id="$1" - local subnet_id - subnet_id="$(aws_text_or_empty ec2 describe-subnets \ - --filters "Name=vpc-id,Values=${vpc_id}" "Name=tag:Name,Values=${subnet_name}" "Name=tag:ManagedBy,Values=${managed_by}" \ - --query 'Subnets[0].SubnetId')" - - if [ -z "${subnet_id}" ]; then - local az - az="$(aws ec2 describe-availability-zones \ - --filters 'Name=state,Values=available' \ - --query 'AvailabilityZones[0].ZoneName' \ - --output text)" - subnet_id="$(aws ec2 create-subnet \ - --vpc-id "${vpc_id}" \ - --cidr-block "${subnet_cidr}" \ - --availability-zone "${az}" \ - --query 'Subnet.SubnetId' \ - --output text)" - tag_resource "${subnet_id}" "${subnet_name}" - fi - - aws ec2 modify-subnet-attribute --subnet-id "${subnet_id}" --map-public-ip-on-launch '{"Value":true}' >/dev/null - printf '%s\n' "${subnet_id}" -} - -ensure_internet_gateway() { - local vpc_id="$1" - local igw_id - igw_id="$(aws_text_or_empty ec2 describe-internet-gateways \ - --filters "Name=attachment.vpc-id,Values=${vpc_id}" \ - --query 'InternetGateways[0].InternetGatewayId')" - - if [ -z "${igw_id}" ]; then - igw_id="$(aws_text_or_empty ec2 describe-internet-gateways \ - --filters "Name=tag:Name,Values=${igw_name}" "Name=tag:ManagedBy,Values=${managed_by}" \ - --query 'InternetGateways[0].InternetGatewayId')" - fi - - if [ -z "${igw_id}" ]; then - igw_id="$(aws ec2 create-internet-gateway --query 'InternetGateway.InternetGatewayId' --output text)" - tag_resource "${igw_id}" "${igw_name}" - fi - - local attached_vpc - attached_vpc="$(aws_text_or_empty ec2 describe-internet-gateways \ - --internet-gateway-ids "${igw_id}" \ - --query 'InternetGateways[0].Attachments[0].VpcId')" - if [ -z "${attached_vpc}" ]; then - aws ec2 attach-internet-gateway --internet-gateway-id "${igw_id}" --vpc-id "${vpc_id}" >/dev/null - elif [ "${attached_vpc}" != "${vpc_id}" ]; then - echo "Internet gateway ${igw_id} is already attached to ${attached_vpc}, not ${vpc_id}." >&2 - exit 1 - fi - - printf '%s\n' "${igw_id}" -} - -ensure_route_table() { - local vpc_id="$1" - local subnet_id="$2" - local igw_id="$3" - local route_table_id - route_table_id="$(aws_text_or_empty ec2 describe-route-tables \ - --filters "Name=vpc-id,Values=${vpc_id}" "Name=tag:Name,Values=${route_table_name}" "Name=tag:ManagedBy,Values=${managed_by}" \ - --query 'RouteTables[0].RouteTableId')" - - if [ -z "${route_table_id}" ]; then - route_table_id="$(aws ec2 create-route-table --vpc-id "${vpc_id}" --query 'RouteTable.RouteTableId' --output text)" - tag_resource "${route_table_id}" "${route_table_name}" - fi - - local route_target - route_target="$(aws_text_or_empty ec2 describe-route-tables \ - --route-table-ids "${route_table_id}" \ - --query "RouteTables[0].Routes[?DestinationCidrBlock=='0.0.0.0/0'].GatewayId | [0]")" - if [ -z "${route_target}" ]; then - aws ec2 create-route \ - --route-table-id "${route_table_id}" \ - --destination-cidr-block 0.0.0.0/0 \ - --gateway-id "${igw_id}" \ - >/dev/null - elif [ "${route_target}" != "${igw_id}" ]; then - aws ec2 replace-route \ - --route-table-id "${route_table_id}" \ - --destination-cidr-block 0.0.0.0/0 \ - --gateway-id "${igw_id}" \ - >/dev/null - fi - - local association_id - association_id="$(aws_text_or_empty ec2 describe-route-tables \ - --route-table-ids "${route_table_id}" \ - --query "RouteTables[0].Associations[?SubnetId=='${subnet_id}'].RouteTableAssociationId | [0]")" - if [ -z "${association_id}" ]; then - aws ec2 associate-route-table --route-table-id "${route_table_id}" --subnet-id "${subnet_id}" >/dev/null - fi -} - -ensure_security_group() { - local vpc_id="$1" - local ssh_cidr="$2" - local security_group_id - security_group_id="$(aws_text_or_empty ec2 describe-security-groups \ - --filters "Name=vpc-id,Values=${vpc_id}" "Name=group-name,Values=${sg_name}" \ - --query 'SecurityGroups[0].GroupId')" - - if [ -z "${security_group_id}" ]; then - security_group_id="$(aws ec2 create-security-group \ - --vpc-id "${vpc_id}" \ - --group-name "${sg_name}" \ - --description "SSH access for Chipyard CI FireSim manager" \ - --query 'GroupId' \ - --output text)" - tag_resource "${security_group_id}" "${sg_name}" - fi - - local err_file - err_file="$(mktemp)" - if ! aws ec2 authorize-security-group-ingress \ - --group-id "${security_group_id}" \ - --ip-permissions "IpProtocol=tcp,FromPort=22,ToPort=22,IpRanges=[{CidrIp=${ssh_cidr},Description=CI-SSH}]" \ - >/dev/null 2>"${err_file}"; then - if ! grep -q 'InvalidPermission.Duplicate' "${err_file}"; then - cat "${err_file}" >&2 - rm -f "${err_file}" - exit 1 - fi - fi - rm -f "${err_file}" - - printf '%s\n' "${security_group_id}" -} - -prepare_key_files() { - local key_file="$1" - local public_key_file="$2" - - if aws ec2 describe-key-pairs --key-names "${key_name}" >/dev/null 2>&1; then - if [ -n "${FIRESIM_MANAGER_SSH_PRIVATE_KEY_FILE:-}" ]; then - cp "${FIRESIM_MANAGER_SSH_PRIVATE_KEY_FILE}" "${key_file}" - elif [ -n "${FIRESIM_MANAGER_SSH_PRIVATE_KEY:-}" ]; then - printf '%s\n' "${FIRESIM_MANAGER_SSH_PRIVATE_KEY}" > "${key_file}" - else - echo "EC2 key pair ${key_name} exists, but its private key cannot be retrieved from AWS." >&2 - echo "Set FIRESIM_MANAGER_SSH_PRIVATE_KEY or FIRESIM_MANAGER_SSH_PRIVATE_KEY_FILE in CI." >&2 - exit 1 - fi - else - aws ec2 create-key-pair \ - --key-name "${key_name}" \ - --key-type rsa \ - --key-format pem \ - --query 'KeyMaterial' \ - --output text > "${key_file}" - fi - - chmod 600 "${key_file}" - ssh-keygen -y -f "${key_file}" > "${public_key_file}" - chmod 644 "${public_key_file}" -} - -resolve_ami_id() { - if [ -n "${manager_ami_id}" ]; then - if [[ "${manager_ami_id}" == ami-* ]]; then - printf '%s\n' "${manager_ami_id}" - return - fi - - local image_id - image_id="$(aws_text_or_empty ec2 describe-images \ - --filters "Name=name,Values=${manager_ami_id}" "Name=is-public,Values=true" \ - --query 'sort_by(Images, &CreationDate)[-1].ImageId')" - if [ -z "${image_id}" ]; then - echo "Could not resolve public AMI name: ${manager_ami_id}" >&2 - exit 1 - fi - - printf '%s\n' "${image_id}" - return - fi - - aws ssm get-parameter \ - --name /aws/service/canonical/ubuntu/server/24.04/stable/current/amd64/hvm/ebs-gp3/ami-id \ - --query 'Parameter.Value' \ - --output text -} - -launch_instance() { - local ami_id="$1" - local subnet_id="$2" - local security_group_id="$3" - - aws ec2 run-instances \ - --image-id "${ami_id}" \ - --instance-type "${instance_type}" \ - --key-name "${key_name}" \ - --subnet-id "${subnet_id}" \ - --security-group-ids "${security_group_id}" \ - --associate-public-ip-address \ - --metadata-options 'HttpEndpoint=enabled,HttpTokens=required' \ - --block-device-mappings "DeviceName=/dev/sda1,Ebs={VolumeSize=${root_volume_gb},VolumeType=gp3,DeleteOnTermination=true}" \ - --tag-specifications \ - "ResourceType=instance,Tags=[{Key=Name,Value=${instance_name}},{Key=ManagedBy,Value=${managed_by}}]" \ - "ResourceType=volume,Tags=[{Key=Name,Value=${instance_name}-root},{Key=ManagedBy,Value=${managed_by}}]" \ - --query 'Instances[0].InstanceId' \ - --output text -} - -write_remote_aws_files() { - local aws_dir="$1" - mkdir -p "${aws_dir}" - chmod 700 "${aws_dir}" - - local access_key="${FIRESIM_AWS_ACCESS_KEY_ID:-${AWS_ACCESS_KEY_ID:-}}" - local secret_key="${FIRESIM_AWS_SECRET_ACCESS_KEY:-${AWS_SECRET_ACCESS_KEY:-}}" - local session_token="${FIRESIM_AWS_SESSION_TOKEN:-${AWS_SESSION_TOKEN:-}}" - - if [ -z "${access_key}" ] || [ -z "${secret_key}" ]; then - echo "Set AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY or FIRESIM_AWS_ACCESS_KEY_ID/FIRESIM_AWS_SECRET_ACCESS_KEY." >&2 - exit 1 - fi - - { - printf '[default]\n' - printf 'aws_access_key_id = %s\n' "${access_key}" - printf 'aws_secret_access_key = %s\n' "${secret_key}" - if [ -n "${session_token}" ]; then - printf 'aws_session_token = %s\n' "${session_token}" - fi - } > "${aws_dir}/credentials" - - { - printf '[default]\n' - printf 'region = %s\n' "${remote_region}" - printf 'output = json\n' - } > "${aws_dir}/config" - - chmod 600 "${aws_dir}/credentials" "${aws_dir}/config" -} - -write_container_script() { - local destination="$1" - local default_container_script=".github/scripts/firesim-manager-entrypoint.sh" - - if [ -n "${FIRESIM_MANAGER_CONTAINER_SCRIPT:-}" ]; then - cp "${FIRESIM_MANAGER_CONTAINER_SCRIPT}" "${destination}" - elif [ -f "${default_container_script}" ]; then - cp "${default_container_script}" "${destination}" - else - { - printf '#!/usr/bin/env bash\n' - printf 'set -euo pipefail\n' - printf 'echo "FireSim manager container is ready; no workload script was provided."\n' - } > "${destination}" - fi - - chmod 755 "${destination}" -} - -write_runtime_env() { - local destination="$1" - - { - printf 'IMAGE_REF=%q\n' "${image_ref}" - printf 'GHCR_USERNAME=%q\n' "${GHCR_USERNAME:-}" - printf 'GHCR_TOKEN=%q\n' "${GHCR_TOKEN:-}" - printf 'DETACH_CONTAINER=%q\n' "${detach_container}" - printf 'KEEP_CONTAINER_ON_ERROR=%q\n' "${keep_container_on_error}" - printf 'FIRESIM_AWS_VPC_NAME=%q\n' "${vpc_name}" - printf 'FIRESIM_AWS_KEY_NAME=%q\n' "${key_name}" - printf 'FIRESIM_AWS_SECURITY_GROUP_NAME=%q\n' "${firesim_build_security_group_name}" - printf 'FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME=%q\n' "${sg_name}" - printf 'FIRESIM_AWS_ALLOWED_CIDR=%q\n' "${vpc_cidr}" - } > "${destination}" - - chmod 600 "${destination}" -} - -wait_for_ssh() { - local public_ip="$1" - local key_file="$2" - - local ssh_options=( - -i "${key_file}" - -o StrictHostKeyChecking=no - -o UserKnownHostsFile=/dev/null - -o ConnectTimeout=10 - -o ServerAliveInterval=15 - ) - - for _ in $(seq 1 60); do - if ssh "${ssh_options[@]}" "${remote_user}@${public_ip}" 'true' >/dev/null 2>&1; then - return - fi - sleep 10 - done - - echo "Timed out waiting for SSH on ${public_ip}." >&2 - exit 1 -} - -provision_instance() { - local public_ip="$1" - local key_file="$2" - local public_key_file="$3" - local aws_dir="$4" - local container_script="$5" - local runtime_env="$6" - - local ssh_options=( - -i "${key_file}" - -o StrictHostKeyChecking=no - -o UserKnownHostsFile=/dev/null - -o ServerAliveInterval=15 - ) - local scp_options=( - -i "${key_file}" - -o StrictHostKeyChecking=no - -o UserKnownHostsFile=/dev/null - ) - - scp "${scp_options[@]}" \ - "${key_file}" \ - "${public_key_file}" \ - "${aws_dir}/credentials" \ - "${aws_dir}/config" \ - "${container_script}" \ - "${runtime_env}" \ - "${remote_user}@${public_ip}:/tmp/" - - ssh "${ssh_options[@]}" "${remote_user}@${public_ip}" 'bash -s' <<'REMOTE' -set -euo pipefail - -source /tmp/firesim-manager-runtime.env -export IMAGE_REF GHCR_USERNAME GHCR_TOKEN DETACH_CONTAINER -export KEEP_CONTAINER_ON_ERROR -export FIRESIM_AWS_VPC_NAME FIRESIM_AWS_KEY_NAME FIRESIM_AWS_SECURITY_GROUP_NAME FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME FIRESIM_AWS_ALLOWED_CIDR - -if command -v cloud-init >/dev/null 2>&1; then - if ! sudo cloud-init status --wait; then - echo "cloud-init reported warnings/errors after reaching status; continuing provisioning." >&2 - sudo cloud-init status --long || true - fi -fi -sudo apt-get update -sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates docker.io -sudo systemctl enable --now docker -sudo usermod -aG docker "${USER}" - -sudo install -m 700 -o "${USER}" -g "${USER}" -d "${HOME}/.aws" -sudo install -m 600 -o "${USER}" -g "${USER}" /tmp/credentials "${HOME}/.aws/credentials" -sudo install -m 600 -o "${USER}" -g "${USER}" /tmp/config "${HOME}/.aws/config" -sudo install -m 600 -o "${USER}" -g "${USER}" /tmp/firesim.pem "${HOME}/firesim.pem" -sudo install -m 644 -o "${USER}" -g "${USER}" /tmp/firesim-public "${HOME}/firesim-public" -sudo install -m 755 -o "${USER}" -g "${USER}" /tmp/firesim-manager-entrypoint.sh "${HOME}/firesim-manager-entrypoint.sh" - -rm -f /tmp/credentials /tmp/config /tmp/firesim.pem /tmp/firesim-public /tmp/firesim-manager-entrypoint.sh /tmp/firesim-manager-runtime.env - -newgrp docker <<'DOCKER_GROUP' -set -e -if [ -n "${GHCR_TOKEN}" ]; then - printf '%s\n' "${GHCR_TOKEN}" | docker login ghcr.io -u "${GHCR_USERNAME:-oauth2}" --password-stdin -fi - -docker pull "${IMAGE_REF}" -docker_args=( - --name firesim-manager - --add-host=host.docker.internal:host-gateway - -v "${HOME}/.aws:/home/ubuntu/.aws:ro" - -v "${HOME}/firesim.pem:/home/ubuntu/firesim.pem:ro" - -v "${HOME}/firesim-public:/home/ubuntu/firesim-public:ro" - -v "${HOME}/firesim-manager-entrypoint.sh:/home/ubuntu/firesim-manager-entrypoint.sh:ro" - -v "/opt/Xilinx:/opt/Xilinx:ro" - -e "FIRESIM_AWS_VPC_NAME=${FIRESIM_AWS_VPC_NAME}" - -e "FIRESIM_AWS_KEY_NAME=${FIRESIM_AWS_KEY_NAME}" - -e "FIRESIM_AWS_SECURITY_GROUP_NAME=${FIRESIM_AWS_SECURITY_GROUP_NAME}" - -e "FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME=${FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME}" - -e "FIRESIM_AWS_ALLOWED_CIDR=${FIRESIM_AWS_ALLOWED_CIDR}" - -e "KEEP_CONTAINER_ON_ERROR=${KEEP_CONTAINER_ON_ERROR}" -) - -if [ "${DETACH_CONTAINER}" = "1" ]; then - docker rm -f firesim-manager >/dev/null 2>&1 || true - container_id="$(docker run -d "${docker_args[@]}" "${IMAGE_REF}" bash /home/ubuntu/firesim-manager-entrypoint.sh)" - echo "Started detached FireSim manager container: ${container_id}" - echo "Inspect with: docker ps -a --filter name=firesim-manager && docker logs firesim-manager" -else - docker run --rm "${docker_args[@]}" "${IMAGE_REF}" bash /home/ubuntu/firesim-manager-entrypoint.sh -fi -DOCKER_GROUP -REMOTE -} - -main() { - require_command aws - require_command ssh - require_command scp - require_command ssh-keygen - - local ssh_cidr - ssh_cidr="$(ensure_ssh_cidr)" - - local tmp_dir - tmp_dir="$(mktemp -d)" - trap "rm -rf '${tmp_dir}'" EXIT - - local key_file="${tmp_dir}/firesim.pem" - local public_key_file="${tmp_dir}/firesim-public" - local aws_dir="${tmp_dir}/aws" - local container_script="${tmp_dir}/firesim-manager-entrypoint.sh" - local runtime_env="${tmp_dir}/firesim-manager-runtime.env" - - echo "Preparing EC2 key pair ${key_name}." - prepare_key_files "${key_file}" "${public_key_file}" - write_remote_aws_files "${aws_dir}" - write_container_script "${container_script}" - - echo "Ensuring FireSim manager network in ${aws_region}." - local vpc_id - local subnet_id - local igw_id - local security_group_id - vpc_id="$(ensure_vpc)" - subnet_id="$(ensure_subnet "${vpc_id}")" - igw_id="$(ensure_internet_gateway "${vpc_id}")" - ensure_route_table "${vpc_id}" "${subnet_id}" "${igw_id}" - security_group_id="$(ensure_security_group "${vpc_id}" "${ssh_cidr}")" - vpc_cidr="$(aws ec2 describe-vpcs --vpc-ids "${vpc_id}" --query 'Vpcs[0].CidrBlock' --output text)" - write_runtime_env "${runtime_env}" - - local ami_id - ami_id="$(resolve_ami_id)" - - echo "Launching ${instance_type} FireSim manager from ${ami_id}." - local instance_id - instance_id="$(launch_instance "${ami_id}" "${subnet_id}" "${security_group_id}")" - aws ec2 wait instance-running --instance-ids "${instance_id}" - aws ec2 wait instance-status-ok --instance-ids "${instance_id}" - - local public_ip - public_ip="$(aws ec2 describe-instances \ - --instance-ids "${instance_id}" \ - --query 'Reservations[0].Instances[0].PublicIpAddress' \ - --output text)" - - echo "Instance ${instance_id} is running at ${public_ip}. Waiting for SSH." - wait_for_ssh "${public_ip}" "${key_file}" - - echo "Provisioning FireSim manager and running ${image_ref}." - provision_instance "${public_ip}" "${key_file}" "${public_key_file}" "${aws_dir}" "${container_script}" "${runtime_env}" - - echo "FireSim manager instance: ${instance_id}" - echo "FireSim manager public IP: ${public_ip}" -} - -main "$@" diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml new file mode 100644 index 0000000000..9f739fb71c --- /dev/null +++ b/.github/workflows/build-docs.yml @@ -0,0 +1,59 @@ +name: build documentation + +on: + workflow_call: + inputs: + pr_number: + required: true + type: number + +permissions: + contents: read + +defaults: + run: + shell: bash -leo pipefail {0} + +jobs: + build-docs: + name: build documentation + runs-on: ubuntu-24.04 + timeout-minutes: 30 + env: + PIP_DISABLE_PIP_VERSION_CHECK: "1" + SKIP_URL_CHECK: "1" + steps: + - name: Check out pull request merge ref + uses: actions/checkout@v4 + with: + ref: refs/pull/${{ inputs.pr_number }}/merge + + - name: Initialize documentation submodules + run: | + git submodule sync -- generators/fft-generator + git submodule update --init --depth 1 -- generators/fft-generator + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + cache: pip + cache-dependency-path: docs/requirements.txt + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version-file: docs/.nvmrc + cache: npm + cache-dependency-path: docs/package-lock.json + + - name: Install Sphinx dependencies + run: python -m pip install -r docs/requirements.txt + + - name: Install Starlight dependencies + working-directory: docs + run: npm ci + + - name: Build documentation + working-directory: docs + run: npm run build diff --git a/.github/workflows/launch-firesim-manager.yml b/.github/workflows/launch-firesim-manager.yml deleted file mode 100644 index 0960814d44..0000000000 --- a/.github/workflows/launch-firesim-manager.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: launch firesim manager - -on: - workflow_dispatch: - inputs: - manager_ami_id: - description: 'Manager AMI ID or public AMI name. Leave empty to use the script default.' - required: false - type: string - ssh_cidr: - description: 'CIDR allowed to SSH into the manager. Leave empty to use the GitHub runner public IP/32.' - required: false - type: string - manager_image: - description: 'Container image to run on the manager. Leave empty for ghcr.io/${GITHUB_REPOSITORY,,}:main.' - required: false - type: string - container_script: - description: 'Repo-relative script to run inside the manager container.' - required: false - default: '.github/scripts/firesim-manager-entrypoint.sh' - type: string - -permissions: - contents: read - packages: read - -defaults: - run: - shell: bash -leo pipefail {0} - -jobs: - launch-firesim-manager: - name: launch firesim manager - runs-on: ubuntu-24.04 - timeout-minutes: 120 - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }} - AWS_DEFAULT_REGION: us-west-2 - FIRESIM_MANAGER_AMI_ID: ${{ inputs.manager_ami_id }} - FIRESIM_MANAGER_SSH_CIDR: ${{ inputs.ssh_cidr }} - FIRESIM_MANAGER_IMAGE: ${{ inputs.manager_image }} - FIRESIM_MANAGER_CONTAINER_SCRIPT: ${{ inputs.container_script }} - FIRESIM_MANAGER_DETACH_CONTAINER: "1" - FIRESIM_MANAGER_SSH_PRIVATE_KEY: ${{ secrets.FIRESIM_MANAGER_SSH_PRIVATE_KEY }} - GHCR_USERNAME: ${{ github.actor }} - GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - name: Check out main - uses: actions/checkout@v4 - with: - ref: main - - - name: Validate inputs - run: | - if [ -z "${AWS_ACCESS_KEY_ID}" ] || [ -z "${AWS_SECRET_ACCESS_KEY}" ]; then - echo "Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY repository secrets." >&2 - exit 1 - fi - - if [ -n "${FIRESIM_MANAGER_CONTAINER_SCRIPT}" ] && [ ! -f "${FIRESIM_MANAGER_CONTAINER_SCRIPT}" ]; then - echo "Container script does not exist: ${FIRESIM_MANAGER_CONTAINER_SCRIPT}" >&2 - exit 1 - fi - - - name: Launch FireSim manager - run: | - .github/scripts/launch-firesim-manager.sh diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 703d2c742e..2407b605db 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -47,6 +47,14 @@ jobs: with: pr_number: ${{ github.event.pull_request.number }} + build-documentation: + name: build documentation + needs: check-ci-disable + if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} + uses: ./.github/workflows/build-docs.yml + with: + pr_number: ${{ github.event.pull_request.number }} + run-generator-tests: name: run generator tests needs: check-ci-disable From 66efad039021fcb09ae38ea71239b36d26e16da9 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Thu, 3 Sep 2026 05:36:58 -0700 Subject: [PATCH 60/69] update deps + enable multilib on toolchain, waiting for https://github.com/ucb-bar/libgloss-htif/pull/15 --- conda-reqs/chipyard-base.yaml | 2 +- scripts/build-toolchain-extra.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conda-reqs/chipyard-base.yaml b/conda-reqs/chipyard-base.yaml index 645d8adbec..f53b4b53bc 100644 --- a/conda-reqs/chipyard-base.yaml +++ b/conda-reqs/chipyard-base.yaml @@ -37,4 +37,4 @@ dependencies: - verilator==5.022 # used in build-setup.sh as well - - conda-lock=2.5.7 + - conda-lock diff --git a/scripts/build-toolchain-extra.sh b/scripts/build-toolchain-extra.sh index 24b024bc1f..3959f3bfa1 100755 --- a/scripts/build-toolchain-extra.sh +++ b/scripts/build-toolchain-extra.sh @@ -99,7 +99,7 @@ echo '==> Installing espresso logic minimizer' # Common tools (not in any particular toolchain dir) echo '==> Installing libgloss' -CC= CXX= SRCDIR="$(pwd)/toolchains" module_all libgloss --prefix="${RISCV}/riscv${XLEN}-unknown-elf" --host=riscv${XLEN}-unknown-elf +CC= CXX= SRCDIR="$(pwd)/toolchains" module_all libgloss --prefix="${RISCV}/riscv${XLEN}-unknown-elf" --host=riscv${XLEN}-unknown-elf --enable-multilib=yes cd $RDIR if [ $TOOLCHAIN == "riscv-tools" ]; then From 99610fa6c3f6898045774462a027bff9eb1cd8bb Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Thu, 3 Sep 2026 05:39:52 -0700 Subject: [PATCH 61/69] add new lock solves for gcc 16 --- ...s-riscv-tools-linux-64-lean.conda-lock.yml | 1581 +++--- ...ements-riscv-tools-linux-64.conda-lock.yml | 4320 ++++++++++------- 2 files changed, 3422 insertions(+), 2479 deletions(-) diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml index 40272a28ea..40cf219583 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-64: 1eb5d081b48a7bb144c24c1fb9683cec6614f8f061a23d586a53c221c512efca + linux-64: 4ebbc3e28db6f27553ce4d934b826a05c8d4b9aa03fa426216863c06292c4b80 channels: - url: ucb-bar used_env_vars: [] @@ -59,28 +59,28 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.16.1-hb03c661_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.16.1-h7cc23a3_1.conda hash: - md5: 8904e09bda369377b3dd07e2ac828c5d - sha256: cf93ca0f1f107e95a35969a4622684e08fcb8cf37f8cf4a1e9e424828386c921 + md5: 7094e0d8d14de0eff6d83f0d2f1f661e + sha256: a35bddac04be093769e81814465a537961c6ed0f8d3cc23d6dce6ecdfaf71821 category: main optional: false - name: annotated-types - version: 0.7.0 + version: 0.8.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' + python: '>=3.10' typing-extensions: '>=4.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.8.0-pyhd8ed1ab_0.conda hash: - md5: 2934f256a8acfe48f6ebb4fce6cde29c - sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48 + md5: 108c928d2a8551832dbc762b535e90bb + sha256: b8fcb994134d3918d1c64a9d62f4168ff85d5bfb89e698102fe4ed679fe0df24 category: main optional: false - name: anyio - version: 4.14.1 + version: 4.14.2 manager: conda platform: linux-64 dependencies: @@ -88,10 +88,10 @@ package: idna: '>=2.8' python: '' typing_extensions: '>=4.5' - url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.1-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda hash: - md5: 7498bb2648f852c6a3cd5724ca80bdeb - sha256: 6119355a0b2a33e7b0dd31a740dbe01df66ffee0a643f80968afb1d53e7dbdb3 + md5: fb568fbae6908ba86a090a85a089d11f + sha256: e36998c5e860e26b22e5dbcd5726dd0c4eabad949c84d383cad8512757bbf6a1 category: main optional: false - name: appdirs @@ -157,29 +157,46 @@ package: sha256: 25abdb37e186f0d6ac3b774a63c81c5bc4bf554b5096b51343fa5e7c381193b1 category: main optional: false +- name: backports.zstd + version: 1.7.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + zstd: '>=1.5.7,<1.6.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.7.0-py310hff74037_0.conda + hash: + md5: 3a5e1bf41b700d667440ae26654dd70a + sha256: f86c944b95c943f6c7b797e389a9210fb9dc7ea838d1d0815a240cfaa3188893 + category: main + optional: false - name: binutils - version: 2.45.1 + version: 2.46.1 manager: conda platform: linux-64 dependencies: - binutils_impl_linux-64: '>=2.45.1,<2.45.2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.45.1-default_h4852527_102.conda + binutils_impl_linux-64: '>=2.46.1,<2.46.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.46.1-default_h4852527_102.conda hash: - md5: 212fe5f1067445544c99dc1c847d032c - sha256: 3c7c5580c1720206f28b7fa3d60d17986b3f32465e63009c14c9ae1ea64f926c + md5: e8452fe381cac5fff20563a07722dfa5 + sha256: 659c367ef49df7741749a2ad240b007d7df51b4f210505a78543deafb001e44c category: main optional: false - name: binutils_impl_linux-64 - version: 2.45.1 + version: 2.46.1 manager: conda platform: linux-64 dependencies: - ld_impl_linux-64: 2.45.1 + ld_impl_linux-64: 2.46.1 sysroot_linux-64: '' - url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45.1-bootstrap_h59bd682_2.conda + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.46.1-default_hfdba357_102.conda hash: - md5: 89572c6f5e6c24375ffd022c5d790628 - sha256: a439e3c858547c9ee5b3b53a93e1aa4ddbbf7e918f51e2b0747e1f1f83a799c3 + md5: a0c5e0b7f58c8ceeb08e5bc41251d5a2 + sha256: fb7bf36984a37ce7e4714d1d1da0bd0e3bfc679520f5cdc184afc676fd4b5da2 category: main optional: false - name: brotli-python @@ -188,14 +205,14 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - libstdcxx: '>=14' + libgcc: '>=15' + libstdcxx: '>=15' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py310hba01987_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py310h25d4438_3.conda hash: - md5: 393fca4557fbd2c4d995dcb89f569048 - sha256: f036fe554d902549f86689a9650a0996901d5c9242b0a1e3fbfe6dbccd2ae011 + md5: 959778f575b33b72cf20c4c68c7d284b + sha256: f215bd8c67695ce2e99d0122bf7d17c44dd45c577909129aa30b16f88a1e61b6 category: main optional: false - name: bzip2 @@ -205,35 +222,35 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_10.conda hash: - md5: d2ffd7602c02f2b316fd921d39876885 - sha256: 0b75d45f0bba3e95dc693336fa51f40ea28c980131fec438afb7ce6118ed05f6 + md5: e675fabcf81499adc7edf58124fb1e01 + sha256: 1a0d382c515ebf55f8ee1f38c8b81bc95af5c2acc42ad53b66bc5df932032f96 category: main optional: false - name: c-ares - version: 1.34.6 + version: 1.34.8 manager: conda platform: linux-64 dependencies: + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.8-hebe6cf0_2.conda hash: - md5: 920bb03579f15389b9e512095ad995b7 - sha256: cc9accf72fa028d31c2a038460787751127317dcfa991f8d1f1babf216bb454e + md5: 3ad2b403be8fc5612b9159e2ce621f69 + sha256: 9c37cc233238adf366ea75b0e845662a5be07ceadf62e458183516369340274b category: main optional: false - name: ca-certificates - version: 2026.6.17 + version: 2026.7.22 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.6.17-hbd8a1cb_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda hash: - md5: a9965dd99f683c5f444428f896635716 - sha256: f8e3c730fa14ee3f170493779f06522c4acf89169f43db4f039727709b6419cf + md5: 0f51e2391ade309db462a55611263e9c + sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 category: main optional: false - name: cachecontrol @@ -277,72 +294,74 @@ package: category: main optional: false - name: cairo - version: 1.18.0 + version: 1.18.4 manager: conda platform: linux-64 dependencies: - fontconfig: '>=2.14.2,<3.0a0' + __glibc: '>=2.17,<3.0.a0' + fontconfig: '>=2.18.3,<3.0a0' fonts-conda-ecosystem: '' - freetype: '>=2.12.1,<3.0a0' - icu: '>=73.2,<74.0a0' - libgcc-ng: '>=12' - libglib: '>=2.78.0,<3.0a0' - libpng: '>=1.6.39,<1.7.0a0' - libstdcxx-ng: '>=12' - libxcb: '>=1.15,<1.16.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - pixman: '>=0.42.2,<1.0a0' - xorg-libice: '>=1.1.1,<2.0a0' - xorg-libsm: '>=1.2.4,<2.0a0' - xorg-libx11: '>=1.8.6,<2.0a0' - xorg-libxext: '>=1.3.4,<2.0a0' - xorg-libxrender: '>=0.9.11,<0.10.0a0' - zlib: '' - url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda + icu: '>=78.3,<79.0a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libxcb: '>=1.17.0,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + pixman: '>=0.46.4,<1.0a0' + xorg-libice: '>=1.1.2,<2.0a0' + xorg-libsm: '>=1.2.6,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxrender: '>=0.9.12,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3c89d7e_3.conda hash: - md5: f907bb958910dc404647326ca80c263e - sha256: 142e2639a5bc0e99c44d76f4cc8dce9c6a2d87330c4beeabb128832cd871a86e + md5: 7b870cffbaa8430290e567a0facd8dca + sha256: 6b551d9346997bc4c6fadf96b7b92442b8f3244011cc462e4ee77afc714d52c5 category: main optional: false - name: certifi - version: 2026.6.17 + version: 2026.7.22 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.6.17-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.7.22-pyhd8ed1ab_0.conda hash: - md5: c13824fedced67005d3832c152fe9c2f - sha256: 6c13620e458ba43278379d0cdacc30c497336bddfda81681fd50d114a65c702f + md5: 37e13edbe3b48f1095a9d085ef9cd83b + sha256: fb167de4388e64e52aa3907ed099afab944c1fa6e5f74b281a312dae1bcf7f3b category: main optional: false - name: cffi - version: 2.0.0 + version: 2.1.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libffi: '>=3.5.2,<3.6.0a0' - libgcc: '>=14' + libffi: '>=3.7.0,<3.8.0a0' + libgcc: '>=15' pycparser: '' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py310he7384ee_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.1.1-py310hd4ea0ea_2.conda hash: - md5: 803e2d778b8dcccdc014127ec5001681 - sha256: bf76ead6d59b70f3e901476a73880ac92011be63b151972d135eec55bbbe6091 + md5: 33706c1639a06dcea0c19d9f118305f1 + sha256: dac4df438ce074376be5faf98d3d4c969a1fbc5016e0b0e8c6545a30a18877a0 category: main optional: false - name: charset-normalizer - version: 3.4.7 + version: 3.5.1 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.7-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.5.1-pyhd8ed1ab_0.conda hash: - md5: a9167b9571f3baa9d448faa2139d1089 - sha256: 3f9483d62ce24ecd063f8a5a714448445dc8d9e201147c46699fc0033e824457 + md5: e0ac3accc64e23e40969d660e5f58ac8 + sha256: cb60ef3e0631c8bacb4f7057196dee4496091a22baa3bb4b9bccb12c7e1c921b category: main optional: false - name: click @@ -398,15 +417,15 @@ package: category: main optional: false - name: conda-gcc-specs - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - gcc_impl_linux-64: '>=13.2.0,<13.2.1.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-13.2.0-h6dde443_13.conda + gcc_impl_linux-64: '>=15.3.0,<15.3.1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-15.3.0-h8846f6e_4.conda hash: - md5: 925dd117f08690f788b5e1084f51791d - sha256: 73526388c2c8403e22c6ca361336e33733935c1b0eab0f65e6443215595bf8ba + md5: 4bfbca2f3bfcdf6d78a339cfd5368fce + sha256: 87ebd4f94c8823763d35adaba292c2dc8c60ddda70e0980f32eae0dbb0e2aa2d category: main optional: false - name: conda-lock @@ -446,28 +465,29 @@ package: category: main optional: false - name: conda-package-streaming - version: 0.12.0 + version: 0.13.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' - zstandard: '>=0.15' - url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.12.0-pyhd8ed1ab_0.conda + backports.zstd: '' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.13.0-pyhd8ed1ab_0.conda hash: - md5: ff75d06af779966a5aeae1be1d409b96 - sha256: 11b76b0be2f629e8035be1d723ccb6e583eb0d2af93bde56113da7fa6e2f2649 + md5: b4e3dcace82b486f69bc693f30120205 + sha256: af3b666ea6043a146901cd151d6201126bbe19af8307b58fb175015e3710064c category: main optional: false - name: coreutils - version: '9.5' + version: '9.11' manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.5-hd590300_0.conda + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.11-h280c20c_0.conda hash: - md5: 126d457e0e7a535278e808a7d8960015 - sha256: 7cd3b0f55aa55bb27b045c30f32b3f6b874ecc006f3abcb274c71a3bcbacb358 + md5: c63e2851f3d99a32f4b6991d0460dd25 + sha256: 6b19fb6c45302bdd6c97c5ac219e14bcbb7d9055c758e79d8a2577e705a933f0 category: main optional: false - name: crashtest @@ -483,35 +503,38 @@ package: category: main optional: false - name: cryptography - version: 49.0.0 + version: 50.0.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' cffi: '>=2.0' - libgcc: '>=14' - openssl: '>=3.5.7,<4.0a0' + libgcc: '>=15' + openssl: '>=3.5.8,<4.0a0' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* typing_extensions: '>=4.13.2' - url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-49.0.0-py310hb288b08_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-50.0.0-py310h20b05aa_1.conda hash: - md5: 95f6b6c112d9c156beb4ab7258a05450 - sha256: 1ed603eddb33ec0a5428b6b3a6172807366895d121736c1ab5d218646b3929ce + md5: 02baf4fc5a1e0c47685d19cf14863396 + sha256: cda7d0178179d8db9ada3b9673728a762aba0101639302c7876cb786c7dbed3a category: main optional: false - name: dbus - version: 1.13.6 + version: 1.16.2 manager: conda platform: linux-64 dependencies: - expat: '>=2.4.2,<3.0a0' - libgcc-ng: '>=9.4.0' - libglib: '>=2.70.2,<3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libstdcxx: '>=15' + libexpat: '>=2.8.1,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + libglib: '>=2.88.3,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-he8c428d_2.conda hash: - md5: ecfff944ba3960ecb334b9a2663d708d - sha256: 8f5f995699a2d9dbdd62c61385bfeeb57c82a681a7c8c5313c395aa0ccab68a5 + md5: a6eb37b51be1a9a654dc3a8aca039b1a + sha256: 87a0a42d4ccc527597eff3234509dfb03e0d9bf67d5e2b6fc758e2ef389d8abe category: main optional: false - name: distlib @@ -599,15 +622,15 @@ package: category: main optional: false - name: filelock - version: 3.29.5 + version: 3.32.5 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.29.5-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.32.5-pyhd8ed1ab_0.conda hash: - md5: 288126f559a8a6cacabe59c73327fe1f - sha256: aa1035fbdc0c8fbe66a82ae4630b6ed73b832c2c0c52bd7b45b5f3bd54f51df6 + md5: 9b091d04be6b722d4ed7dfee34295dea + sha256: a52faa011a8176bbbf30c77f76707788be9a9e1a7e30c3753083719c093a15dc category: main optional: false - name: flex @@ -624,6 +647,19 @@ package: sha256: 5a6dba5af1127e859eefd68e77b7af062b42f85401efbb43a970da977ba3e344 category: main optional: false +- name: fnm + version: 1.39.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/fnm-1.39.0-hb17b654_1.conda + hash: + md5: aecbd97fa8ca49992e195290cde8db18 + sha256: 64a9fdf1262ee4f2a2cf42ff895f83583a5b48e706a2f8e6dde3b41accd5e405 + category: main + optional: false - name: font-ttf-dejavu-sans-mono version: '2.37' manager: conda @@ -669,19 +705,21 @@ package: category: main optional: false - name: fontconfig - version: 2.14.2 + version: 2.18.3 manager: conda platform: linux-64 dependencies: - expat: '>=2.5.0,<3.0a0' - freetype: '>=2.12.1,<3.0a0' - libgcc-ng: '>=12' - libuuid: '>=2.32.1,<3.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + __glibc: '>=2.17,<3.0.a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libuuid: '>=2.42.2,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.18.3-h4db4eae_1.conda hash: - md5: 0f69b688f52ff6da70bccb7ff7001d1d - sha256: 155d534c9037347ea7439a2c6da7c24ffec8e5dd278889b4c57274a1d91e0a83 + md5: 922776b528a470ab5afa81fd42abfa1d + sha256: 5a3eb10b18a97223ab06b3a7f0d7f56658db2f2800e2f2af95836fe3bf55ba63 category: main optional: false - name: fonts-conda-ecosystem @@ -712,47 +750,48 @@ package: category: main optional: false - name: freetype - version: 2.12.1 + version: 2.14.3 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libpng: '>=1.6.39,<1.7.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + libfreetype: 2.14.3 + libfreetype6: 2.14.3 + url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.3-ha770c72_2.conda hash: - md5: 9ae35c3d96db2c94ce0cef86efdfa2cb - sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6 + md5: 2d0ea23b23603e07ca47f23f949f67b6 + sha256: 612a8e0c1a6ecae23da54d81ef395f6ebb5c8e4468ec2611593ebce75876a4e0 category: main optional: false - name: gcc - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - gcc_impl_linux-64: 13.2.0.* - url: https://conda.anaconda.org/conda-forge/linux-64/gcc-13.2.0-hc7bed06_13.conda + conda-gcc-specs: '' + gcc_impl_linux-64: 15.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc-15.3.0-hc6a0c74_4.conda hash: - md5: d1f2f36238e939492cac305cac002822 - sha256: 08e808514d405a2eca50abee89ad10ac8b90dc33beb490b1f1e603f0f7647aba + md5: cd390c3b900677ec6b0fdd729173125d + sha256: f9ee593ac1cbad6633c51c498b0ba8b1da14e6dc22c0cb49a1d158abe8d2cb0f category: main optional: false - name: gcc_impl_linux-64 - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - binutils_impl_linux-64: '>=2.40' - libgcc-devel_linux-64: 13.2.0 - libgcc-ng: '>=13.2.0' - libgomp: '>=13.2.0' - libsanitizer: 13.2.0 - libstdcxx-ng: '>=13.2.0' + binutils_impl_linux-64: '>=2.46.1' + libgcc: '>=15.3.0' + libgcc-devel_linux-64: 15.3.0 + libgomp: '>=15.3.0' + libsanitizer: 15.3.0 + libstdcxx: '>=15.3.0' + libstdcxx-devel_linux-64: 15.3.0 sysroot_linux-64: '' - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.2.0-h9eb54c0_13.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.3.0-h6f13dc8_4.conda hash: - md5: f4eea41f1c9672ac7e9cb8e5ad066855 - sha256: 70323a5ae9e008db7bbf12ac56e5b5ce84ad3c5a7830cdad8a0c4274ec617e04 + md5: b1f9f0b4a4697fd26c1fe3c7a1ac659f + sha256: c7e4915c0c5e8f081e107d50ab6041eab17fbe094108538d614faed354ab8974 category: main optional: false - name: giflib @@ -760,30 +799,32 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-ha257d8a_1.conda hash: - md5: 3bf7b9fd5a7136126e0234db4b87c8b6 - sha256: aac402a8298f0c0cc528664249170372ef6b37ac39fdc92b40601a6aed1e32ff + md5: bd7c3a8586ed0101f094962100d30a63 + sha256: 3611c5d605cd56017704e6c01c7bd849e74a656a546d4c49d655fde49ddfeecc category: main optional: false - name: git - version: 2.45.1 + version: 2.55.0 manager: conda platform: linux-64 dependencies: - libcurl: '>=8.7.1,<9.0a0' - libexpat: '>=2.6.2,<3.0a0' - libgcc-ng: '>=12' - libiconv: '>=1.17,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - openssl: '>=3.3.0,<4.0a0' - pcre2: '>=10.43,<10.44.0a0' + __glibc: '>=2.17,<3.0.a0' + libcurl: '>=8.21.0,<9.0a0' + libexpat: '>=2.8.1,<3.0a0' + libgcc: '>=14' + libiconv: '>=1.18,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + pcre2: '>=10.47,<10.48.0a0' perl: 5.* - url: https://conda.anaconda.org/conda-forge/linux-64/git-2.45.1-pl5321hef9f9f3_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/git-2.55.0-pl5321h5685339_1.conda hash: - md5: b6b6729ba1bfc1f095e0336df6a705b5 - sha256: 5e16c618ebca6f264969a964d852d52139aa12f34f9a71741f30f307e03590fd + md5: da325124b01b7b88e7374d160d02698b + sha256: ffe825e3ff78876dc5aa28eee791d8d9be4a47157761aa38dbff79e9222b3b8e category: main optional: false - name: gitdb @@ -800,17 +841,17 @@ package: category: main optional: false - name: gitpython - version: 3.1.50 + version: 3.1.61 manager: conda platform: linux-64 dependencies: + python: '' gitdb: '>=4.0.1,<5' - python: '>=3.10' typing_extensions: '>=3.10.0.2' - url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.50-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.61-pyhcf101f3_0.conda hash: - md5: 98958318a01373a615f119b1040b3027 - sha256: 718c9d0cc287ffda978996c4105ddd2863dd7bad7fb5794cdd365bd809ef2fa5 + md5: a4d052a35ae133a5fef5bc34fd337cd8 + sha256: 51cb1c112e47ccda9a0c7850fa5ff7c4eaa8bd65a3f7a81861623b8acff00d9e category: main optional: false - name: gmp @@ -818,12 +859,13 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hfd2156b_3.conda hash: - md5: c94a5994ef49749880a8139cf9afcbe1 - sha256: 309cf4f04fec0c31b6771a5809a1909b4b3154a2208f52351e1ada006f4c750c + md5: 576e32739f323438bf69ab006c21be7b + sha256: f36c336efc874f346a53a9011f67e997f9faac505562cc18c13b6d399cfe61c7 category: main optional: false - name: graphite2 @@ -832,39 +874,41 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-hecca717_0.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-h54a6638_1.conda hash: - md5: cf09e9fc938518e91d0706572cadf17a - sha256: 885fa7d1d7e2ad9ed0a700ee0d81ceb49de278253082d517959b22d6336eecce + md5: f9fe2984587fa8235a6af6004760cd18 + sha256: 7fa3b6a9c081fa3e545573152a788d061a0a0ba57df7251cc0f4f75225fc93e7 category: main optional: false - name: gxx - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - gcc: 13.2.0.* - gxx_impl_linux-64: 13.2.0.* - url: https://conda.anaconda.org/conda-forge/linux-64/gxx-13.2.0-hc7bed06_13.conda + conda-gcc-specs: '' + gcc: 15.3.0 + gxx_impl_linux-64: 15.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx-15.3.0-hc6a0c74_4.conda hash: - md5: ac9f9104e162d715e3f8d07ad5c587f8 - sha256: e50d45945a1ecfa706ec49abd74f1de7fa8c20df3b164ab59f97ff8a40633642 + md5: 2264c7beb16d977423e8ebd69f44be88 + sha256: 9ea6ca0830d8fe8ede308b4ab3f206f3504c422f7155981e13f2eca56a5ef9e8 category: main optional: false - name: gxx_impl_linux-64 - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - gcc_impl_linux-64: 13.2.0 - libstdcxx-devel_linux-64: 13.2.0 + gcc_impl_linux-64: 15.3.0 + libstdcxx-devel_linux-64: 15.3.0 sysroot_linux-64: '' - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.2.0-h2a599c4_13.conda + tzdata: '' + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-15.3.0-h90d9265_4.conda hash: - md5: 101ce6af607c3e55a44cf8d6602fb3d8 - sha256: d2db1519fbeddd699f92d0488d5bff272cf688061b0076ee44052c95a0a102c6 + md5: 9a6fbf3da4dd624b8382e096bbca10f4 + sha256: 2b18349ad16f4be8dd9f2afa58d4ab7b9014fc543326ddecd59db215c6dc721d category: main optional: false - name: h11 @@ -881,21 +925,15 @@ package: category: main optional: false - name: harfbuzz - version: 9.0.0 + version: 14.4.0 manager: conda platform: linux-64 dependencies: - cairo: '>=1.18.0,<2.0a0' - freetype: '>=2.12.1,<3.0a0' - graphite2: '' - icu: '>=73.2,<74.0a0' - libgcc-ng: '>=12' - libglib: '>=2.80.2,<3.0a0' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hfac3d4d_0.conda + libharfbuzz-devel: 14.4.0 + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-14.4.0-ha770c72_0.conda hash: - md5: c7b47c64af53e8ecee01d101eeab2342 - sha256: 5854e5ac2d3399ef30b59f15045c19fa5f0bab94d116bd75cac4d05181543dc3 + md5: c2d4a4fe3216b26ef30e91d917c1b718 + sha256: 78cf9cedd013ba49455b2c75e95d2cdc4aafd384be8f9ece0def6ff1b2a86c61 category: main optional: false - name: html5lib @@ -913,53 +951,54 @@ package: category: main optional: false - name: icu - version: '73.2' + version: '78.3' manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=14' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-py310h44b86e0_2.conda hash: - md5: cc47e1facc155f91abd89b11e48e72ff - sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 + md5: 72a381cbad04f24b1c2a43ef707f45b4 + sha256: 9f07834f0c546ab14d885ce0366285f61f44e326c0edd1fc63b8294e113ae432 category: main optional: false - name: idna - version: '3.18' + version: '3.19' manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/idna-3.18-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda hash: - md5: 577b04680ae422adb86fc60d7b940659 - sha256: c75632ea624aa450a394f570749420c5a2e0997d0216bc29d5d45b0f39df0426 + md5: a39ae05027e9b707742e41b30d296b75 + sha256: 1c35a59c1545ad0fdaddf1fbde7bcfa6ef41a8d68c3a2b0b4a291be00676163e category: main optional: false - name: imagesize - version: 2.0.0 + version: 2.0.1 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/imagesize-2.0.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/imagesize-2.0.1-pyhd8ed1ab_0.conda hash: - md5: 92617c2ba2847cca7a6ed813b6f4ab79 - sha256: 5a047f9eac290e679b4e6f6f4cbfcc5acdfbf031a4f06824d4ddb590cdbb850b + md5: ebc56022e4ef7e74a829be94c53797ca + sha256: 4e787f9ccc31053ccea56d98ecd284a4f788988a3f9c4627db72fdd0b127529b category: main optional: false - name: importlib-metadata - version: 9.0.0 + version: 9.0.1 manager: conda platform: linux-64 dependencies: python: '' zipp: '>=3.20' - url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.1-pyhcf101f3_0.conda hash: - md5: ffc17e785d64e12fc311af9184221839 - sha256: 43e2a5497cad1598ff88a3e69f69bc88b7b8f141fa63c60eab5db296317318b8 + md5: 77ec68e0aa61c3fff9ecbf840f93d64e + sha256: 95a074a7d3f58b3494c068d4789c364dcb591c56b70ca6b12f149a540f9aeea4 category: main optional: false - name: importlib_resources @@ -1002,16 +1041,16 @@ package: category: main optional: false - name: jaraco.functools - version: 4.5.0 + version: 4.6.0 manager: conda platform: linux-64 dependencies: python: '' more-itertools: '' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.5.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.6.0-pyhcf101f3_0.conda hash: - md5: 8e33f6f90e5de5efd971840c7634d954 - sha256: 8bc317fe1e93dec7350b460f7b4e82ea9c3d157c278219bfc6a95b7a51007fdd + md5: 8665b873062a31a90b563bf493f9fb2c + sha256: d23b9e8e8d5968699ec2bc9f8d182598e86e494dbe8a3a71b4a53b1be9a3cb16 category: main optional: false - name: jeepney @@ -1047,10 +1086,10 @@ package: oniguruma: '>=6.9.10,<6.10.0a0' libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_1.conda hash: - md5: e246309d3884a2b8a4cde89d17f4a1a3 - sha256: 74d0a62d64cbe84a916ab437f71c61bf113b29a2b75e80cb5cc440626eef947e + md5: 6ec056e539486e84f0c7acef6b5863f9 + sha256: f14c52155ba14ccb41fdd6f71d74b21153c35e131185434da7334cf25b3eef46 category: main optional: false - name: kernel-headers_linux-64 @@ -1090,67 +1129,70 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-h7cc23a3_1.conda hash: - md5: b38117a3c920364aff79f870c984b4a3 - sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 + md5: ba55d1b89fd7775e67de8291029b4059 + sha256: dd053c96dcb0dcfd59422aefea9d2fe937a190167f34fba7893ec1e10a7e8963 category: main optional: false - name: krb5 - version: 1.21.3 + version: 1.22.2 manager: conda platform: linux-64 dependencies: - keyutils: '>=1.6.1,<2.0a0' - libedit: '>=3.1.20191231,<4.0a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - openssl: '>=3.3.1,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda + __glibc: '>=2.17,<3.0.a0' + keyutils: '>=1.6.3,<2.0a0' + libedit: '>=3.1.20250104,<4.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-hbc21106_2.conda hash: - md5: 3f43953b7d3fb3aaa1d0d0723d91e368 - sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238 + md5: 53318d715316929a574f83591308b1f8 + sha256: 2a5c38c85e63df84c4e69ee71439841ce570d259ae3060627bb9a49a938d66f4 category: main optional: false - name: lcms2 - version: '2.16' + version: 2.19.1 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libtiff: '>=4.6.0,<4.8.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libjpeg-turbo: '>=3.2.0,<4.0a0' + libtiff: '>=4.7.2,<4.8.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.19.1-h9073bf1_2.conda hash: - md5: 51bb7010fc86f70eee639b4bb7a894f5 - sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 + md5: b68c7304d2edb0f1a5bdfb875094d603 + sha256: 8cdec1ff3f276cd2069dca0dae4f45f3dc5c224e2d72daef78227832938467a6 category: main optional: false - name: ld_impl_linux-64 - version: 2.45.1 + version: 2.46.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-bootstrap_ha15bf96_2.conda + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_102.conda hash: - md5: bafc61899c34054d1f5e7cd85a2f81e9 - sha256: ffc8fb61b32f421687a35b1b6bdd7e73278da0ea1a0d616b624eb3760ed21742 + md5: 449500f2c089da11c40f5c21312e3e07 + sha256: 27d83f1188cd19bcb7754a078b3fa7f4cfb8527f8eb2fde54dd01fc529d1adec category: main optional: false - name: lerc - version: 4.1.0 + version: 4.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' libstdcxx: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.1.0-hdb68285_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.2.0-hdb68285_0.conda hash: - md5: a752488c68f2e7c456bcbd8f16eec275 - sha256: f84cb54782f7e9cea95e810ea8fef186e0652d0fa73d3009914fa2c1262594e1 + md5: fb9d356b1a57d6d54768be7ebd5fce09 + sha256: bf9fdebf55d8bc99d83531cdffda00703f4dc5f93a1a956768c147362c72feda category: main optional: false - name: libcups @@ -1158,32 +1200,35 @@ package: manager: conda platform: linux-64 dependencies: - krb5: '>=1.21.1,<1.22.0a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda + __glibc: '>=2.17,<3.0.a0' + krb5: '>=1.22.2,<1.23.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + libzlib: '>=1.3.1,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h7a8fb5f_6.conda hash: - md5: d4529f4dff3057982a7617c7ac58fde3 - sha256: bc67b9b21078c99c6bd8595fe7e1ed6da1f721007726e717f0449de7032798c4 + md5: 49c553b47ff679a6a1e9fc80b9c5a2d4 + sha256: 205c4f19550f3647832ec44e35e6d93c8c206782bdd620c1d7cf66237580ff9c category: main optional: false - name: libcurl - version: 8.8.0 + version: 8.22.0 manager: conda platform: linux-64 dependencies: - krb5: '>=1.21.3,<1.22.0a0' - libgcc-ng: '>=12' - libnghttp2: '>=1.58.0,<2.0a0' - libssh2: '>=1.11.0,<2.0a0' - libzlib: '>=1.2.13,<2.0a0' - openssl: '>=3.3.1,<4.0a0' - zstd: '>=1.5.6,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda + __glibc: '>=2.17,<3.0.a0' + krb5: '>=1.22.2,<1.23.0a0' + libgcc: '>=15' + libnghttp2: '>=1.68.1,<2.0a0' + libpsl: '>=0.23.1,<0.24.0a0' + libssh2: '>=1.11.1,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.8,<4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.22.0-ha042cf0_0.conda hash: - md5: b8afb3e3cb3423cc445cf611ab95fdb0 - sha256: 6b5b64cdcdb643368ebe236de07eedee99b025bb95129bbe317c46e5bdc693f3 + md5: e617deee7af8eb0c04f6296d12b54157 + sha256: 483b7eb97f56fbb3a9cb7190d33012dfa0a5aaed99ede61465563cd97dd82504 category: main optional: false - name: libdeflate @@ -1193,10 +1238,10 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.25-h17f619e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.25-hd45a770_1.conda hash: - md5: 6c77a605a7a689d17d4819c0f8ac9a00 - sha256: aa8e8c4be9a2e81610ddf574e05b64ee131fab5e0e3693210c9d6d2fba32c680 + md5: 40f9b31aa9cf007789867df0decd0492 + sha256: 82e134c8a08b1eed9a2ed8ab578b89aa1730dcde3dea8dd87645ed0637878e54 category: main optional: false - name: libedit @@ -1204,13 +1249,13 @@ package: manager: conda platform: linux-64 dependencies: - ncurses: '>=6.5,<7.0a0' + ncurses: '>=6.6,<7.0a0' + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h373387f_1.conda hash: - md5: c277e0a4d549b03ac1e9d6cbbe3d017b - sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 + md5: 50708d3b951d0f8e2d7f2df5b5edc040 + sha256: 6473eb8caf2aae830f37caa93db9b26dddf7ac84b63229e8bf7fc0e5c3ab95b0 category: main optional: false - name: libev @@ -1218,11 +1263,12 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h280c20c_3.conda hash: - md5: 172bf1cd1ff8629f2b1179945ed45055 - sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 + md5: 7bc31538d6e3fb349e897353969237ec + sha256: e4418f68d01a6307c4431b585c71b584f40189877364e542ee87deb777f5e85b category: main optional: false - name: libexpat @@ -1253,81 +1299,155 @@ package: category: main optional: false - name: libffi - version: 3.5.2 + version: 3.7.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda hash: - md5: a360c33a5abe61c07959e449fa1453eb - sha256: 31f19b6a88ce40ebc0d5a992c131f57d919f73c0b92cd1617a5bec83f6e961e6 + md5: 6525a0b06aa4fd390795f0740636a9dd + sha256: c8c7583ef063bc3c430f1d48298e5ad24f796a35c22ed5b14183325825a61106 + category: main + optional: false +- name: libfreetype + version: 2.14.3 + manager: conda + platform: linux-64 + dependencies: + libfreetype6: '>=2.14.3' + url: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.14.3-ha770c72_2.conda + hash: + md5: f8054e759d0ddddaf34a5c8fedc900a1 + sha256: fb12ecb46c30d18d928c0e8fc346ab13b5f6fc8a9cacae4f2f4bb188782586f5 + category: main + optional: false +- name: libfreetype6 + version: 2.14.3 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libpng: '>=1.6.58,<1.7.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.3-h5e6c136_2.conda + hash: + md5: b72a266a9317036fd0464cb98b027cd0 + sha256: ec607dd5445dd17ff6bf8b7fe6832e5504c226dd91d3aaea7ba83569808b0ce4 category: main optional: false - name: libgcc - version: 15.2.0 + version: 16.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' _openmp_mutex: '>=4.5' - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_4.conda hash: - md5: 57736f29cc2b0ec0b6c2952d3f101b6a - sha256: 8e0a3b5e41272e5678499b5dfc4cddb673f9e935de01eb0767ce857001229f46 + md5: cba14d01083fc62ffd32c24d7d390633 + sha256: 24090e675d34403b4ee1cd4372d8f6c0937da7ecfd66a19a57cac2ed0f4ea793 category: main optional: false - name: libgcc-devel_linux-64 - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.2.0-hdb50d1a_113.conda + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.3.0-h2b852eb_104.conda hash: - md5: d6d21b86a77a173376d23567d11b4373 - sha256: 0f6ea238e24900365a98e58b544eca071e92f5b19115a6e3b1778de3d942c657 + md5: b206066f9a3900bf869ac1a964686c9c + sha256: 83221295f52a5ac410f092b4fe1415052b8542f76ddf9ee9949a3571d19e1d43 category: main optional: false - name: libgcc-ng - version: 15.2.0 + version: 16.2.0 manager: conda platform: linux-64 dependencies: - libgcc: 15.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_19.conda + libgcc: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-16.2.0-h69a702a_4.conda hash: - md5: 331ee9b72b9dff570d56b1302c5ab37d - sha256: 9dcf54adfaa5e861123c2da4f2f0451a685464ea7e5a41ad91cf67b31d658d98 + md5: b3e52878163a841f6fb951989cc0b217 + sha256: d8e66c14e23f2b3c70410cff5979d9d357e6edfb990b28d8e630852f4d395629 category: main optional: false - name: libglib - version: 2.80.2 + version: 2.88.3 manager: conda platform: linux-64 dependencies: - libffi: '>=3.4,<4.0a0' - libgcc-ng: '>=12' - libiconv: '>=1.17,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - pcre2: '>=10.43,<10.44.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.2-hf974151_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + pcre2: '>=10.47,<10.48.0a0' + libzlib: '>=1.3.2,<2.0a0' + libiconv: '>=1.18,<2.0a0' + libffi: '>=3.7.0,<3.8.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_2.conda hash: - md5: 72724f6a78ecb15559396966226d5838 - sha256: 93e03b6cf4765bc06d64fa3dac65f22c53ae4a30247bb0e2dea0bd9c47a3fb26 + md5: 533d342dedadf134c67760ce6fc5b748 + sha256: af6c14f387f810c5df491b328ae955329596d3bc73b1e2e091ab5adb46a10759 category: main optional: false - name: libgomp - version: 15.2.0 + version: 16.2.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_4.conda + hash: + md5: 89d2c1231f47bd818f5d624b9411459d + sha256: 0fe5cb8e0752241ab55e11656ed1b9726248b522d23b929fe7c95b83eb55b9bb + category: main + optional: false +- name: libharfbuzz + version: 14.4.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + cairo: '>=1.18.4,<2.0a0' + graphite2: '>=1.3.15,<2.0a0' + icu: '>=78.3,<79.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-14.4.0-h23af247_0.conda + hash: + md5: 4463210c2a16ff5d3bf7f502af23f1f4 + sha256: a064695a1c12133d6a9dcf6b3b42423b8614fa45667606201af1b5f72628df0d + category: main + optional: false +- name: libharfbuzz-devel + version: 14.4.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda + cairo: '>=1.18.4,<2.0a0' + freetype: '' + graphite2: '>=1.3.15,<2.0a0' + icu: '>=78.3,<79.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libharfbuzz: 14.4.0 + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-devel-14.4.0-h23af247_0.conda hash: - md5: faac990cb7aedc7f3a2224f2c9b0c26c - sha256: 5abe4ab9d93f6c9757d654f1969ae2267d4505315c1f2f8fe705fd60af084f1b + md5: 26e37e05324d7bb723350d50b33057fc + sha256: bdecc73c22cb0a8d44ce066116562e35322fd6c1c04584a4754ae2befcab4cb3 category: main optional: false - name: libiconv @@ -1336,24 +1456,24 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h0cb94f2_3.conda hash: - md5: 915f5995e94f60e9a4826e0b0920ee88 - sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f + md5: f92233bf33e24a25668bb2119e2c51f9 + sha256: f943117edb9cd4d9c61cc972eee5a34291dc55ea7a6e9e38da104995841cbcb6 category: main optional: false - name: libjpeg-turbo - version: 3.1.4.1 + version: 3.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.4.1-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.2.0-hb03c661_1.conda hash: - md5: 6178c6f2fb254558238ef4e6c56fb782 - sha256: 10056646c28115b174de81a44e23e3a0a3b95b5347d2e6c45cc6d49d35294256 + md5: 898d1c9793eaa52efc4727bd84d2e39a + sha256: bba8538e6538ed58a8479b332337b96986561f975d06cfa2039a016c2d246ee4 category: main optional: false - name: liblzma @@ -1363,10 +1483,10 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_1.conda hash: - md5: b88d90cad08e6bc8ad540cb310a761fb - sha256: ec30e52a3c1bf7d0425380a189d209a52baa03f22fb66dd3eb587acaa765bd6d + md5: 1390b7c5ac0b1d8e447bc5efa6d3c8c2 + sha256: 9787df8c22a59c9a70d3e5a10db9ad663485e75e9ccc3f09bd092cb7b95e0dab category: main optional: false - name: liblzma-devel @@ -1377,27 +1497,28 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' liblzma: 5.8.3 - url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.3-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.3-hb03c661_1.conda hash: - md5: 55c20edec8e90c4703787acaade60808 - sha256: 7858f6a173206bc8a5bdc8e75690483bb66c0dcc3809ac1cb43c561a4723623a + md5: 6d83d6a332c19424e9e66b69b180ec11 + sha256: adef6e8b60afb684110b06b5310977c6836e1c923ce3ec199f45c0f000b42f20 category: main optional: false - name: libnghttp2 - version: 1.58.0 + version: 1.68.1 manager: conda platform: linux-64 dependencies: - c-ares: '>=1.23.0,<2.0a0' + __glibc: '>=2.17,<3.0.a0' + c-ares: '>=1.34.8,<2.0a0' libev: '>=4.33,<5.0a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - openssl: '>=3.2.0,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + libgcc: '>=15' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h74cf4be_1.conda hash: - md5: 700ac6ea6d53d5510591c4344d5c989a - sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb + md5: 75d211f04ac87506f1f43420712a69fe + sha256: 11a2f54a6f391e25738bce0023e6ef499600147bbcf21c1fa69d2e251b03cc6a category: main optional: false - name: libnsl @@ -1420,120 +1541,141 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libnuma-2.0.18-hb03c661_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libnuma-2.0.18-hb03c661_4.conda hash: - md5: 672fad24c7fedff73c684c3e9e9848b3 - sha256: 17d72848a6480f0b0708f2b2f64292b5fa0e0996ce56f26fc26e4aebb5a9ca81 + md5: bfe9cd9c6d92170947301fef63356e39 + sha256: db0a0fc67104196afe6732ff055b30829f984f4cf1e8efff4ea5b2bbb1640da2 category: main optional: false - name: libpng - version: 1.6.43 + version: 1.6.58 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.58-h922cc85_1.conda hash: - md5: 009981dd9cfcaa4dbfa25ffaed86bcae - sha256: 502f6ff148ac2777cc55ae4ade01a8fc3543b4ffab25c4e0eaa15f94e90dd997 + md5: fcf71c8d979148873f6f8ad4cfc73d86 + sha256: c19eefb87d70d9b4b0629fa48414a155a47a1be4f04583ae71ed8c5a9a32fdcb + category: main + optional: false +- name: libpsl + version: 0.23.1 + manager: conda + platform: linux-64 + dependencies: + libstdcxx: '>=15' + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' + icu: '>=78.3,<79.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libpsl-0.23.1-hd9e3e90_1.conda + hash: + md5: 77be60417aa572afcb48cbe0f967401d + sha256: 09e8effdc89bc5d021349318d32b85594f5b8d8e3ab8f90a85b81f8fe695a566 category: main optional: false - name: libsanitizer - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=13.2.0' - libstdcxx-ng: '>=13.2.0' - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.2.0-h6ddb7a1_13.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15.3.0' + libstdcxx: '>=15.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.3.0-h54950a5_4.conda hash: - md5: f5b94bbb97e87c09437461b3bb805bb0 - sha256: 86222486ede36124d6a840328d545acc674055b57e76f3d85ca63d168cab030d + md5: 306fcd92c8f1cd7049bc6e361bd37f09 + sha256: 074869ef41874beec0ffee576fdd809f72eb8a4196fe2fa4d1a922c9a0742572 category: main optional: false - name: libsqlite - version: 3.46.0 + version: 3.53.4 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + __glibc: '>=2.17,<3.0.a0' + icu: '>=78.3,<79.0a0' + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.4-h13e7031_1.conda hash: - md5: 18aa975d2094c34aef978060ae7da7d8 - sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8 + md5: e72bbec309c2b0f37823ee7d4fabfcd3 + sha256: f20d70da54e5b31dd4a51fb1efeaafafd5ab6dd8d7ac9d1438eaa2526ac4ed3d category: main optional: false - name: libssh2 - version: 1.11.0 + version: 1.11.1 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - openssl: '>=3.1.1,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-h6154650_1.conda hash: - md5: 1f5a58e686b13bcfde88b93f547d23fe - sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d + md5: 5c526561e1d2a2e071941174eae84557 + sha256: 7e463000fa1cba3f3a6597b776f6ab301d425a96e3bc20d0d9d76a3b9f237aa3 category: main optional: false - name: libstdcxx - version: 15.2.0 + version: 16.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: 15.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_19.conda + libgcc: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_4.conda hash: - md5: 5794b3bdc38177caf969dabd3af08549 - sha256: dff1058c76ec6b8759e41cefa2508162d00e4a5e6721aa68ec3fd10094e702dc + md5: 2f2ef0d96de5bdd8c1270ff22fdf9352 + sha256: 40b792b0186c1e8859280a1f6f19a54fc50a11b32724fc7b637009c1a9bd302b category: main optional: false - name: libstdcxx-devel_linux-64 - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.2.0-hdb50d1a_113.conda + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.3.0-hb2c5482_104.conda hash: - md5: 1cc88314bf1300d47b9f129884628b07 - sha256: c8769152f67cb700d7c50ec403b0b8e245f98ed3a2e8c594237360f6fccd4d09 + md5: c428c727fc8697f18a140c676032f8f5 + sha256: 42de47979a998f594c378498ebdf2f1c833e6a4611dd2ddda56f1ba2d1515c7f category: main optional: false - name: libstdcxx-ng - version: 15.2.0 + version: 16.2.0 manager: conda platform: linux-64 dependencies: - libstdcxx: 15.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_19.conda + libstdcxx: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-16.2.0-hdf11a46_4.conda hash: - md5: e5ce228e579726c07255dbf90dc62101 - sha256: 0672b6b6e1791c92e8eccad58081a99d614fcf82bca5841f9dfa3c3e658f83b9 + md5: de0dceacf3e33c5fc88e167885dc8274 + sha256: 4cdebd87b76cf53a58a08ebd6d15336daa79c5f0aa34d83a895ac503c0203632 category: main optional: false - name: libtiff - version: 4.6.0 + version: 4.7.2 manager: conda platform: linux-64 dependencies: - lerc: '>=4.0.0,<5.0a0' - libdeflate: '>=1.20,<1.26.0a0' - libgcc-ng: '>=12' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libstdcxx-ng: '>=12' - libwebp-base: '>=1.3.2,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - xz: '>=5.2.6,<6.0a0' - zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda + __glibc: '>=2.17,<3.0.a0' + lerc: '>=4.2.0,<5.0a0' + libdeflate: '>=1.25,<1.26.0a0' + libgcc: '>=15' + libjpeg-turbo: '>=3.2.0,<4.0a0' + liblzma: '>=5.8.3,<6.0a0' + libstdcxx: '>=15' + libwebp-base: '>=1.6.0,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.2-hcc2c06a_1.conda hash: - md5: 66f03896ffbe1a110ffda05c7a856504 - sha256: fc3b210f9584a92793c07396cb93e72265ff3f1fa7ca629128bf0a50d5cb15e4 + md5: 0907d876f460ebc941ae590338b6102f + sha256: 10e125da82ca93e09191e66e5a94d566b2cf8d4024e2a0db3a9114297447e0d9 category: main optional: false - name: libuuid @@ -1556,49 +1698,51 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_1.conda hash: - md5: aea31d2e5b1091feca96fcfe945c3cf9 - sha256: 3aed21ab28eddffdaf7f804f49be7a7d701e8f0e46c856d801270b470820a37b + md5: 9332b53d0ea93c5d39e33be03a0c611a + sha256: 8415001414f488c85b72b9d8cc2071dfb3981a47bc3c8eb56ef91a57d12eae7f category: main optional: false - name: libxcb - version: '1.15' + version: 1.17.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' pthread-stubs: '' - xorg-libxau: '' - xorg-libxdmcp: '' - url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda + xorg-libxau: '>=1.0.12,<2.0a0' + xorg-libxdmcp: '>=1.1.5,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-hb83e432_2.conda hash: - md5: 33277193f5b92bad9fdd230eb700929c - sha256: a670902f0a3173a466c058d2ac22ca1dd0df0453d3a80e0212815c20a16b0485 + md5: 61f0ffba9161cbb3a77722869b21e4bb + sha256: 7b49e6fd2a584b7f072943e6adf4149677af5121246975278804782d37752837 category: main optional: false - name: libxcrypt - version: 4.4.36 + version: 4.4.38 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.38-h280c20c_0.conda hash: - md5: 5aa797f8787fe7a17d1b0821485b5adc - sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: f7a7ff5a6ab331e037abd34f379a631d + sha256: f7e9292dd219a6435bbb1223da9586c3e70d66d169c5a92f08db3f2127df04e9 category: main optional: false - name: libzlib - version: 1.2.13 + version: 1.3.2 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h4ab18f5_6.conda + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_3.conda hash: - md5: 27329162c0dc732bcf67a4e0cd488125 - sha256: 8ced4afed6322172182af503f21725d072a589a6eb918f8a58135c1e00d35980 + md5: 0de0122d9570a8ab637c6b73db268389 + sha256: eb8a0db0aa570124f7d2a93d7c7f596e3390df5e047818d873baad32985fc736 category: main optional: false - name: m4 @@ -1620,11 +1764,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/make-4.4.1-hb9d3cd8_2.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/make-4.4.1-hb03c661_3.conda hash: - md5: 33405d2a66b1411db9f7242c8b97c9e7 - sha256: d652c7bd4d3b6f82b0f6d063b0d8df6f54cc47531092d7ff008e780f3261bdda + md5: b4a198dc40024de2a59c1343e4ae4144 + sha256: 4c65d2769847778a6d84db6984ac81bcec6f8958d349f1fe57ae040ccc56a801 category: main optional: false - name: markupsafe @@ -1661,12 +1805,12 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' gmp: '>=6.3.0,<7.0a0' - libgcc: '>=14' + libgcc: '>=15' mpfr: '>=4.2.2,<5.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/mpc-1.4.0-he0a73b1_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/mpc-1.4.0-ha2cb11d_1.conda hash: - md5: 770d00bf57b5599c4544d61b61d8c6c6 - sha256: c1fdeebc9f8e4f51df265efca4ea20c7a13911193cc255db73cccb6e422ae486 + md5: f0f6c8691a9ed4099d1f287a444e251a + sha256: 3d56733fe0f44159787ad086d5e7bdab8b69e6a5a9b6b873a8beb3519f3d8d07 category: main optional: false - name: mpfr @@ -1676,27 +1820,27 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' gmp: '>=6.3.0,<7.0a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-he0a73b1_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-ha2cb11d_1.conda hash: - md5: 85ce2ffa51ab21da5efa4a9edc5946aa - sha256: 8690f550a780f75d9c47f7ffc15f5ff1c149d36ac17208e50eda101ca16611b9 + md5: 7dcc10f6c0bc3596d5519a710a84dfd4 + sha256: 0be79ef2ee536e0c5d3ddb4a52bbae9f26d08560623299f33db2f4c4a17c525a category: main optional: false - name: msgpack-python - version: 1.2.1 + version: 1.2.2 manager: conda platform: linux-64 dependencies: python: '' - libstdcxx: '>=14' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.1-py310haaf941d_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.2-py310he417ec5_1.conda hash: - md5: e2b18dce122ab17adf136492db202aa6 - sha256: 6e76e34089e29a13ad8b8bfa139b39d812bb33964295bcecd94cd698dca35e8d + md5: ba2504336cbb3a6dabc33bf9b1ea9ad7 + sha256: 853f81e12c8afd00d696fd7951cafb2584bfeea7829e2d6cbfb0080ff6681fe5 category: main optional: false - name: ncurses @@ -1706,10 +1850,10 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda hash: - md5: fc21868a1a5aacc937e7a18747acb8a5 - sha256: fc89f74bbe362fb29fa3c037697a89bec140b346a2469a90f7936d1d7ea4d8a3 + md5: ee6c0cd80a60961a1f48aa3e0b91f986 + sha256: 5d46557214ed184381dafe835b7c94a474a1c3b307a08a250b1ea4779b44ffb3 category: main optional: false - name: ninja @@ -1717,13 +1861,13 @@ package: manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=14' libgcc: '>=14' - __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_1.conda hash: - md5: b518e9e92493721281a60fa975bddc65 - sha256: 6f7d59dbec0a7b00bf5d103a4306e8886678b796ff2151b62452d4582b2a53fb + md5: 2db7a395d7dc2b6ed5effaf68fb99443 + sha256: 2b5f2e865122f9fc0637f520a7cb22e16b9727b2db6761ee16cb5e6404412c81 category: main optional: false - name: numactl @@ -1734,10 +1878,10 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' libnuma: 2.0.18 - url: https://conda.anaconda.org/conda-forge/linux-64/numactl-2.0.18-hb03c661_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/numactl-2.0.18-hb03c661_4.conda hash: - md5: c784d46bd1ace2ad1ea8a29584ada074 - sha256: 45c82817d55e7b635b6d7ce49bd0f22ee0ba279a24b5dedb090ab2f1081e459e + md5: 7f930f8dbb1c08351d319c9c1ab7a73f + sha256: 25aa780b35407d8380f234d341e9933ec886dfaadb6ca3549fa0132221a311b0 category: main optional: false - name: oniguruma @@ -1746,11 +1890,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.10-hb9d3cd8_0.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.10-h280c20c_1.conda hash: - md5: 6ce853cb231f18576d2db5c2d4cb473e - sha256: bbff8a60f70d5ebab138b564554f28258472e1e63178614562d4feee29d10da2 + md5: 16c8e401c682f9961676c201c888b1d9 + sha256: 22ba0c20d810f4e27092931191a08331b3bff1b7feeead5de7d8514cfd9230ad category: main optional: false - name: openjdk @@ -1784,29 +1928,29 @@ package: category: main optional: false - name: openssl - version: 3.6.3 + version: 3.6.4 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' ca-certificates: '' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.3-h35e630c_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.4-h781a0a9_0.conda hash: - md5: 79dd2074b5cd5c5c6b2930514a11e22d - sha256: d48f5c22b9897c01e4dff3680f1f57ceb02711ab9c62f74339b080419dfad34b + md5: 16e3034a330cc625f2c685edec60cf4e + sha256: 4747b2d6a8336f52343bceb8a1ebf41a9e6e665b9d2e3f989972de53a310599e category: main optional: false - name: packaging - version: '26.2' + version: '26.3' manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.2-pyhc364b38_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda hash: - md5: 4c06a92e74452cfa53623a81592e8934 - sha256: 3906abfb6511a3bb309e39b9b1b7bc38f50a723971de2395489fd1f379255890 + md5: 936687ed80f295a1f5dbcf8bd34c252c + sha256: c432626b16768b8dab228bfb706f7060c2d462a21c516d240f68f2f902b5a044 category: main optional: false - name: pastel @@ -1822,17 +1966,18 @@ package: category: main optional: false - name: pcre2 - version: '10.43' + version: '10.47' manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' bzip2: '>=1.0.8,<2.0a0' - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.43-hcad00b1_0.conda + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-h8b3dc9c_1.conda hash: - md5: 8292dea9e022d9610a11fce5e0896ed8 - sha256: 766dd986a7ed6197676c14699000bba2625fd26c8a890fcb7a810e5cf56155bc + md5: 06f6113cf1ff4a54b65f87ead132a5f1 + sha256: 9ebb10a4eb3be51ae67d85c679f5a7a50cb040ed25c783e6331a225ea09991d4 category: main optional: false - name: perl @@ -1849,17 +1994,17 @@ package: category: main optional: false - name: pip - version: 26.1.2 + version: 26.2.1 manager: conda platform: linux-64 dependencies: python: '>=3.10,<3.13.0a0' setuptools: '' wheel: '' - url: https://conda.anaconda.org/conda-forge/noarch/pip-26.1.2-pyh8b19718_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.1-pyh8b19718_0.conda hash: - md5: 511fbc2c63d2c73650ad1755e4d357ba - sha256: 29b7d75bf81ad11645a8e320b369abdc90a92b93f2a9178e853d9dddf82e5106 + md5: 77b6cf3b0689d9fc68561df0db9b856d + sha256: c205bae42eb11b364fe3663a817cbcbc20a8ef544c6b2ff6f391013487117259 category: main optional: false - name: pixman @@ -1867,13 +2012,13 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_3.conda hash: - md5: c01af13bdc553d1a8fbfff6e8db075f0 - sha256: 43d37bc9ca3b257c5dd7bf76a8426addbdec381f6786ff441dc90b1a49143b6a + md5: 0ee5bb30034b081a1386c1e2c98ab0a7 + sha256: 829d8288764282de5a9f7b9169acb75cc7dc0b6c3fe2535cfe87dea3436bbc5d category: main optional: false - name: pkginfo @@ -1889,15 +2034,15 @@ package: category: main optional: false - name: platformdirs - version: 4.10.0 + version: 4.11.5 manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.10.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.11.5-pyhcf101f3_0.conda hash: - md5: 2c5ef45db85d34799771629bd5860fd7 - sha256: 9e5e1fd3506ccfc4d444fc4d2d39b0ed097d5d0e3bd3d4bdf6bcc81aaf66860d + md5: 152ec36401f710145a7db03475594410 + sha256: 4496a7e0b584a388b3580ab594a4f384696ab7d702282588fd33a7ee38af983c category: main optional: false - name: pthread-stubs @@ -1906,11 +2051,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb03c661_1003.conda hash: - md5: b3c17d95b5a10c6e64a21fa17573e70e - sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973 + md5: df2c27f36bdb0dde779f55b5df76a352 + sha256: afc3b27b2cbb0487c1d0e963f96e71181ecfb623a24fb393bb19ff974a6382a1 category: main optional: false - name: pycparser @@ -1926,7 +2071,7 @@ package: category: main optional: false - name: pydantic - version: 2.13.4 + version: 2.13.5 manager: conda platform: linux-64 dependencies: @@ -1934,39 +2079,39 @@ package: typing_extensions: '>=4.14.1' python: '' annotated-types: '>=0.6.0' - pydantic-core: 2.46.4 - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.13.4-pyhcf101f3_0.conda + pydantic-core: 2.46.5 + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.13.5-pyhcf101f3_0.conda hash: - md5: 729843edafc0899b3348bd3f19525b9d - sha256: 69700e31165df070e9716315e042196aa92525dae5deb5107785847ab9f4189f + md5: 2d0f9304fc1cb1e3e94e7b37c14cd70a + sha256: 701ed8122021f62e1c9a46bdf4932ada911c10afa56ba0459f56da940bcbe5a7 category: main optional: false - name: pydantic-core - version: 2.46.4 + version: 2.46.5 manager: conda platform: linux-64 dependencies: python: '' typing-extensions: '>=4.6.0,!=4.7.0' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' + libgcc: '>=15' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.46.4-py310hd8f68c5_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.46.5-py310hbfe5df0_1.conda hash: - md5: 72935a417123f81985cc29b58ed26b3c - sha256: 0925c4329787c54e9103ac9ef92c02922bf58a46989eb7b072cf46ab6325e7cd + md5: 6d32b80215d6a4692c32a6f3a2293344 + sha256: a6a9fa2ba997171fc18f1f6d9b0c3824ea7b724dfa7f1ea05457b57dd2841f3e category: main optional: false - name: pygments - version: 2.20.0 + version: 2.21.0 manager: conda platform: linux-64 dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.20.0-pyhd8ed1ab_0.conda + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda hash: - md5: 16c18772b340887160c79a6acc022db0 - sha256: cf70b2f5ad9ae472b71235e5c8a736c9316df3705746de419b59d442e8348e86 + md5: 2882dee445dfa45b0c5afce3ffb7730a + sha256: f5f015ff1bc3e1b7fc08eee096b1865234189ae0b82bebdb86a5369116e42fa0 category: main optional: false - name: pylev @@ -2021,17 +2166,16 @@ package: category: main optional: false - name: python-discovery - version: 1.4.2 + version: 1.6.0 manager: conda platform: linux-64 dependencies: python: '' filelock: '>=3.15.4' - platformdirs: <5,>=4.3.6 - url: https://conda.anaconda.org/conda-forge/noarch/python-discovery-1.4.2-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/python-discovery-1.6.0-pyhcf101f3_0.conda hash: - md5: 7a9095c9300d1b50b1785ca9bc4cadae - sha256: 6914da740f6e3ec44ffb2f687dbc9c33abf084e42f34e3a8bb8235e475850619 + md5: e87738e32eaf5dfa98a5d49f611d6312 + sha256: e48089f2927811994b916d31953563097bc7e8d856965fbdeea3b4d407e3b89f category: main optional: false - name: python_abi @@ -2039,10 +2183,10 @@ package: manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.10-8_cp310.conda + url: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.10-9_cp310.conda hash: - md5: 05e00f3b21e88bb3d658ac700b2ce58c - sha256: 7ad76fa396e4bde336872350124c0819032a9e8a0a40590744ff9527b54351c1 + md5: 3bb52811c66f1f07377537cc82ccb093 + sha256: 24e01bf97a2f5e608ef2d35547bba12281b5f1c8efecfcfd3447c43abc01342b category: main optional: false - name: pyyaml @@ -2067,12 +2211,12 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - ncurses: '>=6.5,<7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + libgcc: '>=15' + ncurses: '>=6.6,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-hd6e31c0_1.conda hash: - md5: d7d95fc8287ea7bf33e0e7116d2b95ec - sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 + md5: 69c01c781e7c8190bbdaf79e3848c5ca + sha256: 01b3fe073a66e321970d09e04b388708f8cbdca5cdfbfcb7c9eeb470ad10383d category: main optional: false - name: requests @@ -2092,26 +2236,25 @@ package: category: main optional: false - name: riscv-tools - version: 1.0.6 + version: 1.0.9 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' expat: '' gmp: '>=6.3.0,<7.0a0' - libexpat: '>=2.6.1,<3.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - mpc: '>=1.3.1,<2.0a0' - mpfr: '>=4.2.1,<5.0a0' - ncurses: '>=6.4,<7.0a0' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* - zlib: '>=1.2.13,<1.3.0a0' - zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/ucb-bar/linux-64/riscv-tools-1.0.6-0_h1234567_g56c29e0.conda + libexpat: '>=2.8.1,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + mpc: '>=1.4.0,<2.0a0' + mpfr: '>=4.2.2,<5.0a0' + ncurses: '>=6.6,<7.0a0' + python: 3.10.14.* + zlib: '' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/ucb-bar/linux-64/riscv-tools-1.0.9-0_h1234567_g70db951.conda hash: - md5: 9929897de5dc35ef6cf686b286d2d32f - sha256: 322019cf5aea325ab7ee094abb4d285d99e71d413fb52bdffa5c6870fdf5f2d4 + md5: 2a62276c8e1c95df12f5751ad38b847d + sha256: 5540ea2f0a78d96c6dc5930276b3f5049bb24f58ad61559fb6f294984b586431 category: main optional: false - name: ruamel.yaml @@ -2134,24 +2277,24 @@ package: dependencies: python: '' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' + libgcc: '>=15' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.15-py310h139afa4_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.15-py310h83e8816_3.conda hash: - md5: a7e3055859e9162d5f7adb9b3c229d56 - sha256: 242ff560883541acc447b4fb11f1c6c0a4e91479b70c8ce895aee5d9a8ce346a + md5: 553f7b99a7e8e050a97f46c3237dcd50 + sha256: af84a75d6a5dcdbd527ed1c23bdf24f5fbefca1e8c498918ce587fcfe597f655 category: main optional: false - name: sbt - version: 2.0.1 + version: 2.0.8 manager: conda platform: linux-64 dependencies: openjdk: '>=8' - url: https://conda.anaconda.org/conda-forge/noarch/sbt-2.0.1-hc364b38_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/sbt-2.0.8-hc364b38_0.conda hash: - md5: da519da81bd35966fb87f72964de4187 - sha256: 89181ac4559c61120f83038c18bebe83520ea40aec9182a39ae9d482a5986ac4 + md5: 2167a7eb74718a56535f4a5bd2dfcab0 + sha256: 32713305960f1e41b055452d0abdd5b4413472cb23d65429d19d298794f078e0 category: main optional: false - name: secretstorage @@ -2164,22 +2307,22 @@ package: jeepney: '>=0.6' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.5.0-py310hff52083_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.5.0-py310hff52083_1.conda hash: - md5: 6da40232669db63f4d5792b7cca7d5f8 - sha256: 2c74700f3d05aca8d38c7bae8b2ff620c419c897a266d7a8df49652e7e0d520b + md5: 8301ffe9a201c1d5e3b56fef03f3e70a + sha256: be0beab5763632d5dbf9b83520d11cae1b27195ec20d2fbfe029fd3c62df96b6 category: main optional: false - name: setuptools - version: 82.0.1 + version: 84.0.0 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.1-pyh332efcf_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.0.0-pyh332efcf_0.conda hash: - md5: 8e194e7b992f99a5015edbd4ebd38efd - sha256: 82088a6e4daa33329a30bc26dc19a98c7c1d3f05c0f73ce9845d4eab4924e9e1 + md5: 62ac906f1cd582c6c264c95625cb9d6f + sha256: 9e200ee5f9ff19a4d94e4b51c4856d53dec849f91032f345cf0c6bc3d51a7183 category: main optional: false - name: six @@ -2270,14 +2413,14 @@ package: manager: conda platform: linux-64 dependencies: - docutils: '>0.18,<0.22' - python: '>=3.8' - sphinx: '>=6,<9' + python: '' + sphinx: '>=6,<10' + docutils: '>0.18,<0.23' sphinxcontrib-jquery: '>=4,<5' - url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda hash: - md5: cede6bc99a0253fa676f03cfdc666d57 - sha256: 1d57a0cd74ecc0e5dc006f6591145d1abb6658464919d4aeb163d3db714f80e6 + md5: 787507b1d0f5c00c186b2f66adacc3ab + sha256: 3581a8335a0da4de41f4344c4f1113a11fcbbb7933577ace813602e263842b02 category: main optional: false - name: sphinxcontrib-applehelp @@ -2371,17 +2514,17 @@ package: category: main optional: false - name: starlette - version: 1.3.1 + version: 1.6.0 manager: conda platform: linux-64 dependencies: anyio: '>=3.6.2,<5' python: '' typing_extensions: '>=4.10.0' - url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.3.1-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda hash: - md5: bb8e15a6ef1a475545720fa2c29f19c4 - sha256: 17e3dc37c0ac9754b782e49285a3d8d223d372f7012d64a4f6ae371466cef143 + md5: 7b7d3f2bcca2be53635bd4f1166b04a7 + sha256: 6074c6d74e86b156a61ff37f2c3f7a29bd188f05d5f490d88db96131eb945e95 category: main optional: false - name: sysroot_linux-64 @@ -2402,12 +2545,13 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda hash: - md5: d453b98d9c83e71da0741bb0ff4d76bc - sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + md5: 676a2f9b1c4fcf57b70aa5c65f6c60d0 + sha256: a1a241d172c1ccab067ba245206dd048bc3c2d1b84504b53c9468e99adfc16a1 category: main optional: false - name: tomli @@ -2423,15 +2567,15 @@ package: category: main optional: false - name: tomlkit - version: 0.15.0 + version: 0.15.1 manager: conda platform: linux-64 dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.0-pyha770c72_0.conda + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.1-pyhcf101f3_0.conda hash: - md5: 42ef10a8f7f5d55a2e267c0d5daa6387 - sha256: 1cd52f9ccb4854c4d731438afe0e833b6b71edaf5ede661152aa98efb3a7cc70 + md5: e4942e2de7436ff28be7f5645cf3c8d6 + sha256: 5cf833b4d199688b7652fb322ecc134de9555e9444d9249750de9a153421ad0a category: main optional: false - name: toolz @@ -2459,16 +2603,16 @@ package: category: main optional: false - name: typing-inspection - version: 0.4.2 + version: 0.4.4 manager: conda platform: linux-64 dependencies: python: '' - typing_extensions: '>=4.12.0' - url: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhcf101f3_2.conda + typing_extensions: '>=4.15.0' + url: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.4-pyhcf101f3_0.conda hash: - md5: 53f5409c5cfd6c5a66417d68e3f0a864 - sha256: 8b90d2f19f9458b8c58a55e1fcdc1d90c1603a847a47654d8a454549413ba60a + md5: 880e91eac5d926568ef278e20554148e + sha256: 293c66b208468d186a94ff486c2ffbf67859a2bde8c88e965fc9d06c517191b2 category: main optional: false - name: typing_extensions @@ -2484,14 +2628,14 @@ package: category: main optional: false - name: tzdata - version: 2025c + version: 2026c manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda hash: - md5: ad659d0a2b3e47e38d829aa8cad2d610 - sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c + md5: fcb489df604d100968b737f2cb6076c6 + sha256: b928c30ddcb0e3f544c6eade8352737e6e610e263276b90232db6a578ef899d8 category: main optional: false - name: urllib3 @@ -2509,7 +2653,7 @@ package: category: main optional: false - name: uvicorn - version: 0.49.0 + version: 0.52.4 manager: conda platform: linux-64 dependencies: @@ -2518,10 +2662,10 @@ package: h11: '>=0.8' python: '' typing_extensions: '>=4.0' - url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.49.0-pyhc90fa1f_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda hash: - md5: 29a950390b7de7577d8c0ebc946055b9 - sha256: dc7477d200432bf07aab5218d305d88771c52fb8d449cf82869cdceae291f100 + md5: 2bf4d228f4df09d3e2ebee46f3a9129e + sha256: b74765ebebe0da43b9e0ec1d9bedc881125304ffbebd86018dcb6d7a4e2d2ee4 category: main optional: false - name: verilator @@ -2544,21 +2688,20 @@ package: category: main optional: false - name: virtualenv - version: 21.5.1 + version: 21.7.7 manager: conda platform: linux-64 dependencies: python: '' distlib: '>=0.3.7,<1' - filelock: <4,>=3.24.2 - importlib-metadata: '>=6.6' + filelock: '>=3.24.2,<4' platformdirs: '>=3.9.1,<5' - python-discovery: '>=1.4.2' + python-discovery: '>=1.6' typing_extensions: '>=4.13.2' - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.5.1-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.7.7-pyhcf101f3_0.conda hash: - md5: e449fb99b714be1e13fa5564dacd1af5 - sha256: 0a7b0a2ada7ad719f9d4f8874eb10911e1fcfdecefc86456105eb806ebd60ac4 + md5: 768a861e1491dc8ee2a93fa8b7ee4317 + sha256: c6a9206ef4b8dfbbb1e6199f06d7db602e041d4948247d2eac3a07f9ce5a5ad5 category: main optional: false - name: watchfiles @@ -2590,7 +2733,7 @@ package: category: main optional: false - name: websockets - version: '16.0' + version: 16.1.1 manager: conda platform: linux-64 dependencies: @@ -2598,63 +2741,23 @@ package: libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/websockets-16.0-py310h139afa4_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/websockets-16.1.1-py310h99dffb4_0.conda hash: - md5: 5494bc9ff7adbeadfdf3b946126af290 - sha256: 056c95a0a964678f8c1e8d7544768a70ffb7e32a382f04cdf56d26c80866dd84 + md5: 7df1f51982640785a33765162e6b06d5 + sha256: 850016b802d4fe74dcc32a144fe1673957eb6ee2bbaa7439ea09fa6ef6ab4b3b category: main optional: false - name: wheel - version: 0.47.0 + version: 0.48.0 manager: conda platform: linux-64 dependencies: packaging: '>=24.0' python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.47.0-pyhd8ed1ab_0.conda - hash: - md5: d0e3b2f0030cf4fca58bde71d246e94c - sha256: 9e156ffaefb8463437144326ada4b85d1de17961b9997ac5f1cbbaf747bd8bed - category: main - optional: false -- name: xorg-fixesproto - version: '5.0' - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - xorg-xextproto: '>=7.3.0,<8.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-hb9d3cd8_1003.conda + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.48.0-pyhd8ed1ab_0.conda hash: - md5: 19fe37721037acc0a1ed76b8cf937359 - sha256: 07268980b659a84a4bac64b475329348e9cf5fa4aee255fa94aa0407ae5b804c - category: main - optional: false -- name: xorg-inputproto - version: 2.3.2 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-inputproto-2.3.2-hb9d3cd8_1003.conda - hash: - md5: 32623b33f2047dbc9ae2f2e8fd3880e9 - sha256: 77eea289f9d3fa753a290f988533c842694b826fe1900abd6d7b142c528512ba - category: main - optional: false -- name: xorg-kbproto - version: 1.0.7 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-hb9d3cd8_1003.conda - hash: - md5: e87bfacb110d85e1eb6099c9ed8e7236 - sha256: 849555ddf7fee334a5a6be9f159d2931c9d076ffb310a9e75b9124f789049d3e + md5: 9a2124517bfd5d792e0f7b86eefdfeb8 + sha256: ba64b29b6d418024cb565081a1799262cb2780d2534ff4c14f76aa858c4286cd category: main optional: false - name: xorg-libice @@ -2662,12 +2765,12 @@ package: manager: conda platform: linux-64 dependencies: + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-h280c20c_0.conda hash: - md5: fb901ff28063514abb6046c9ec2c4a45 - sha256: c12396aabb21244c212e488bbdc4abcdef0b7404b15761d9329f5a4a39113c4b + md5: 85c9442aec283b4e464fa9ecc484a2f3 + sha256: 49b532d1df875c6749d9078b56a76f3f5db49a5abe0ca620b593ed474ef0ebf1 category: main optional: false - name: xorg-libsm @@ -2676,29 +2779,27 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - libuuid: '>=2.38.1,<3.0a0' + libgcc: '>=14' xorg-libice: '>=1.1.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-he73a12e_0.conda + libuuid: '>=2.42.2,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-h0d788c3_1.conda hash: - md5: 1c74ff8c35dcadf952a16f752ca5aa49 - sha256: 277841c43a39f738927145930ff963c5ce4c4dacf66637a3d95d802a64173250 + md5: aa7459ed9ad086ba11dda843d764b33d + sha256: ef907caee0665cf3b0f775602cc50e388e3bade8ce22ecade0873ff26604b2fd category: main optional: false - name: xorg-libx11 - version: 1.8.9 + version: 1.8.13 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libxcb: '>=1.15,<1.16.0a0' - xorg-kbproto: '' - xorg-xextproto: '>=7.3.0,<8.0a0' - xorg-xproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-h8ee46fc_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libxcb: '>=1.17.0,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.13-he1eb515_1.conda hash: - md5: 077b6e8ad6a3ddb741fce2496dd01bec - sha256: 3e53ba247f1ad68353f18aceba5bf8ce87e3dea930de85d36946844a7658c9fb + md5: 8c282bbe4808a3cc80a5c98e9aec1cfc + sha256: 68053eebfa9f0d91666786c8fb5839d989aa9b869add92cb8815228bb2d7302c category: main optional: false - name: xorg-libxau @@ -2708,10 +2809,10 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb03c661_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb03c661_2.conda hash: - md5: b2895afaf55bf96a8c8282a2e47a5de0 - sha256: 6bc6ab7a90a5d8ac94c7e300cc10beb0500eeba4b99822768ca2f2ef356f731b + md5: f06ef439c280a5f90b8bf62355008dbc + sha256: cbf891f6cc1a859347680af1c8562bc6b033bf182a2a3bb536016932be3206de category: main optional: false - name: xorg-libxdmcp @@ -2721,87 +2822,84 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb03c661_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb03c661_2.conda hash: - md5: 1dafce8548e38671bea82e3f5c6ce22f - sha256: 25d255fb2eef929d21ff660a0c687d38a6d2ccfbcbf0cc6aa738b12af6e9d142 + md5: 2e66c929f3d879708335b6ea4557c838 + sha256: c50a16c05ccd7fe7dd6d6cfb539f4e9a491d50f9ed7a5c902fec638f7d0d27be category: main optional: false - name: xorg-libxext - version: 1.3.4 + version: 1.3.7 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - xorg-libx11: '>=1.7.2,<2.0a0' - xorg-xextproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.7-h7cc23a3_1.conda hash: - md5: 82b6df12252e6f32402b96dacc656fec - sha256: 73e5cfbdff41ef8a844441f884412aa5a585a0f0632ec901da035a03e1fe1249 + md5: e5b6b28536b81b3f4cb20db4668a4642 + sha256: aa9bbe8b278aacc194e280ff5037f9f9a1f2c5b33ed97de8e7f01cfbe90dda43 category: main optional: false - name: xorg-libxfixes - version: 5.0.3 + version: 6.0.2 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=9.3.0' - xorg-fixesproto: '' - xorg-libx11: '>=1.7.0,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.2-h7cc23a3_1.conda hash: - md5: e9a21aa4d5e3e5f1aed71e8cefd46b6a - sha256: 1e426a1abb774ef1dcf741945ed5c42ad12ea2dc7aeed7682d293879c3e1e4c3 + md5: 09132e874fe0e1f5e4492b0b6b904b6e + sha256: aec84f554fc897bf4085c7bc8b8f0740e4c224e13bca3cc51c93e7699d56f83a category: main optional: false - name: xorg-libxi - version: 1.7.10 + version: 1.8.3 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc-ng: '>=12' - xorg-inputproto: '' - xorg-libx11: '>=1.8.9,<2.0a0' - xorg-libxext: '>=1.3.4,<2.0a0' - xorg-libxfixes: 5.0.* - xorg-xextproto: '>=7.3.0,<8.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.7.10-h4bc722e_1.conda + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxfixes: '>=6.0.2,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.3-h7cc23a3_1.conda hash: - md5: 749baebe7e2ff3360630e069175e528b - sha256: e1416eb435e3d903bc658e3c637f0e87efd2dca290fe70daf29738b3a3d1f8ff + md5: a1412b2b1184dacda45f8476fef2cc25 + sha256: a523d71344a2f640efe6fc42b88fc261d9cd389d4f9838a5d42dcdb120c2b0c8 category: main optional: false - name: xorg-libxrender - version: 0.9.11 + version: 0.9.12 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - xorg-libx11: '>=1.8.6,<2.0a0' - xorg-renderproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.12-hb03c661_1.conda hash: - md5: ed67c36f215b310412b2af935bf3e530 - sha256: 26da4d1911473c965c32ce2b4ff7572349719eaacb88a066db8d968a4132c3f7 + md5: e470d224a7a5be1b1d021bded7abb536 + sha256: 6901f91d398811e4ec89d7e20a69abac02a7bfebfaf073338b7ea3d1a99685b7 category: main optional: false - name: xorg-libxt - version: 1.3.0 + version: 1.3.1 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - xorg-kbproto: '' - xorg-libice: '>=1.1.1,<2.0a0' - xorg-libsm: '>=1.2.4,<2.0a0' - xorg-libx11: '>=1.8.6,<2.0a0' - xorg-xproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + xorg-libice: '>=1.1.2,<2.0a0' + xorg-libsm: '>=1.2.6,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.1-h7cc23a3_1.conda hash: - md5: ae92aab42726eb29d16488924f7312cb - sha256: e7648d1efe2e858c4bc63ccf4a637c841dc971b37ded85a01be97a5e240fecfa + md5: 2121765de9c261e2a95ab9fc6efabefb + sha256: dff31677674be86f98ee929a796edf2cf7c78bf38610b122a63af9af752d5bf7 category: main optional: false - name: xorg-libxtst @@ -2810,68 +2908,14 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc-ng: '>=12' - xorg-inputproto: '' - xorg-libx11: '>=1.8.9,<2.0a0' - xorg-libxext: '>=1.3.4,<2.0a0' - xorg-libxi: '>=1.7.10,<2.0a0' - xorg-recordproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-h4bc722e_0.conda - hash: - md5: 185159d666308204eca00295599b0a5c - sha256: 0139b52c3cbce57bfd1d120c41637bc239430faff4aa0445f58de0adf4c4b976 - category: main - optional: false -- name: xorg-recordproto - version: 1.14.2 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-recordproto-1.14.2-hb9d3cd8_1003.conda - hash: - md5: 1d600d113f3e22a7eddd7e7d574be3fa - sha256: fa721a0a041453612f9dc03059905cf7426669ab8795e1b46d1b0f61c332b1ea - category: main - optional: false -- name: xorg-renderproto - version: 0.11.1 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-hb9d3cd8_1003.conda - hash: - md5: bf90782559bce8447609933a7d45995a - sha256: 54dd934b0e1c942e54759eb13672fd59b7e523fabea6e69a32d5bf483e45b329 - category: main - optional: false -- name: xorg-xextproto - version: 7.3.0 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-hb9d3cd8_1004.conda - hash: - md5: bc4cd53a083b6720d61a1519a1900878 - sha256: f302a3f6284ee9ad3b39e45251d7ed15167896564dc33e006077a896fd3458a6 - category: main - optional: false -- name: xorg-xproto - version: 7.0.31 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-hb9d3cd8_1008.conda + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxi: '>=1.8.3,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-h7cc23a3_4.conda hash: - md5: a63f5b66876bb1ec734ab4bdc4d11e86 - sha256: ea02425c898d6694167952794e9a865e02e14e9c844efb067374f90b9ce8ce33 + md5: 752a5ac9322e0fbbc24146c1ce3ae44e + sha256: d66525e7b1c492aa179c6c55610fc8dfb0a9a62ea7d4fb9f904fa6af62127f61 category: main optional: false - name: xz @@ -2885,10 +2929,10 @@ package: liblzma-devel: 5.8.3 xz-gpl-tools: 5.8.3 xz-tools: 5.8.3 - url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.3-ha02ee65_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.3-ha02ee65_1.conda hash: - md5: 6a1b6af49a334e4e06b9f103367762bf - sha256: 2553fd3ec0a1020b2ca05ca10b0036a596cb0d4bf3645922fcf69dacce0e6679 + md5: 36a079606b3aaf9d726211825f182452 + sha256: 547b2392d8f7b76efd4a0970946f6da2a1136ad5fe3dc936af81e02eb7181076 category: main optional: false - name: xz-gpl-tools @@ -2899,10 +2943,10 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' liblzma: 5.8.3 - url: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.3-ha02ee65_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.3-ha02ee65_1.conda hash: - md5: 8f5e2c6726c1339287a3c76a2c138ac7 - sha256: 8f139666ea18dc8340a44a54056627dd4e89e242e8cd136ab2467d6dc2c192ba + md5: 137db930adb0b3c5407485e0e1a50cfa + sha256: ed6dbec5e4f0f71e7ac629b90dc4c9fba38d194cc88eab891c29e461b408977a category: main optional: false - name: xz-tools @@ -2913,10 +2957,10 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' liblzma: 5.8.3 - url: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.3-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.3-hb03c661_1.conda hash: - md5: b62b615caa60812640f24db3a8d0fc87 - sha256: 162ebd76803464b8c8ebc7d45df32edf0ec717b3bf369a437ae3b0254f22dc2e + md5: 10d693a2db6e8339e4eebcb3a3dae88d + sha256: c74fa3eddd3ea648456517948f85068d8a07acad7752fd83c7e95b6cebb7114a category: main optional: false - name: yaml @@ -2924,12 +2968,12 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-hebe6cf0_3.conda hash: - md5: a77f85f77be52ff59391544bfe73390a - sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad + md5: e741576fb8f89821ac7c1c537322a33d + sha256: d164dfa75ecd538f6fd68765defcc06aa875bc697b9b215362d79a2a73125dd0 category: main optional: false - name: zipp @@ -2945,45 +2989,28 @@ package: category: main optional: false - name: zlib - version: 1.2.13 - manager: conda - platform: linux-64 - dependencies: - libgcc-ng: '>=12' - libzlib: 1.2.13 - url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-h4ab18f5_6.conda - hash: - md5: 559d338a4234c2ad6e676f460a093e67 - sha256: 534824ea44939f3e59ca8ebb95e3ece6f50f9d2a0e69999fbc692311252ed6ac - category: main - optional: false -- name: zstandard - version: 0.23.0 + version: 1.3.2 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - cffi: '>=1.11' - libgcc: '>=14' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py310h7c4b9e2_3.conda + libzlib: 1.3.2 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.2-h25fd6f3_3.conda hash: - md5: 64c494618303717a9a08e3238bcb8d68 - sha256: 0653ad7d53d8c7b85ef2dd38c01c78b6c9185cd688be06cd6315e76530310635 + md5: 6acb86426229f96f93e5468d1df3a5e8 + sha256: 16080a1c7724f7d25727cdc23c7658e0cec2db52448c1dc0c33467ee2c6e1c62 category: main optional: false - name: zstd - version: 1.5.6 + version: 1.5.7 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + __glibc: '>=2.17,<3.0.a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_7.conda hash: - md5: 4d056880988120e29d75bfff282e0f45 - sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b + md5: aa459086047c0e5e27023ab19f8cb86a + sha256: 47d682b9f6d6ec9eb1a6e6c3e75ea6273e899e78fb7fc59f81d39745009fbc60 category: main optional: false diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index a879507c95..976464cad6 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-64: 612e4842382faab8eaae0d0752d8026f7f53bffbf996d4d74a37c2191a04b987 + linux-64: 59a886e8b62378293b6e70932653a7d990797a184689a545f0eb9eea8e4c9f20 channels: - url: ucb-bar used_env_vars: [] @@ -49,10 +49,24 @@ package: dependencies: cpython: '' python-gil: '' - url: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda + url: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda hash: - md5: aaa2a381ccc56eac91d63b6c1240312f - sha256: a3967b937b9abf0f2a99f3173fa4630293979bd1644709d89580e7c62a544661 + md5: 3845f3d75991bae0fb90884662f4327c + sha256: 2a7204314663eeda5dec482a956f0e2eaf289bd5b9953eaaaad0e81aa64638f2 + category: main + optional: false +- name: adwaita-icon-theme + version: '49.0' + manager: conda + platform: linux-64 + dependencies: + __unix: '' + hicolor-icon-theme: '' + librsvg: '' + url: https://conda.anaconda.org/conda-forge/noarch/adwaita-icon-theme-49.0-unix_0.conda + hash: + md5: b3f0179590f3c0637b7eb5309898f79e + sha256: a362b4f5c96a0bf4def96be1a77317e2730af38915eb9bec85e2a92836501ed7 category: main optional: false - name: aiohappyeyeballs @@ -68,7 +82,7 @@ package: category: main optional: false - name: aiohttp - version: 3.14.1 + version: 3.14.3 manager: conda platform: linux-64 dependencies: @@ -85,10 +99,10 @@ package: python_abi: 3.10.* typing_extensions: '>=4.4' yarl: '>=1.17.0,<2.0' - url: https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.14.1-py310h31b6992_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.14.3-py310h31b6992_0.conda hash: - md5: b71c22403bc9921ed1a3718b10e8a155 - sha256: b7bb842761c5e44444c9dcd99b51836c466af13b86c7f4d4d1f9623bab3c8c25 + md5: a041ad611060a9df037648ad354e1f7f + sha256: d42a5b07a4a731e3ca3b2ef1b8cb1dc17013f7b8d2d5370347af835f2a53b247 category: main optional: false - name: aiosignal @@ -123,28 +137,28 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.16.1-hb03c661_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.16.1-h7cc23a3_1.conda hash: - md5: 8904e09bda369377b3dd07e2ac828c5d - sha256: cf93ca0f1f107e95a35969a4622684e08fcb8cf37f8cf4a1e9e424828386c921 + md5: 7094e0d8d14de0eff6d83f0d2f1f661e + sha256: a35bddac04be093769e81814465a537961c6ed0f8d3cc23d6dce6ecdfaf71821 category: main optional: false - name: annotated-types - version: 0.7.0 + version: 0.8.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' + python: '>=3.10' typing-extensions: '>=4.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.8.0-pyhd8ed1ab_0.conda hash: - md5: 2934f256a8acfe48f6ebb4fce6cde29c - sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48 + md5: 108c928d2a8551832dbc762b535e90bb + sha256: b8fcb994134d3918d1c64a9d62f4168ff85d5bfb89e698102fe4ed679fe0df24 category: main optional: false - name: anyio - version: 4.14.1 + version: 4.14.2 manager: conda platform: linux-64 dependencies: @@ -152,10 +166,10 @@ package: idna: '>=2.8' python: '' typing_extensions: '>=4.5' - url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.1-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda hash: - md5: 7498bb2648f852c6a3cd5724ca80bdeb - sha256: 6119355a0b2a33e7b0dd31a740dbe01df66ffee0a643f80968afb1d53e7dbdb3 + md5: fb568fbae6908ba86a090a85a089d11f + sha256: e36998c5e860e26b22e5dbcd5726dd0c4eabad949c84d383cad8512757bbf6a1 category: main optional: false - name: appdirs @@ -170,32 +184,44 @@ package: sha256: 5b9ef6d338525b332e17c3ed089ca2f53a5d74b7a7b432747d29c6466e39346d category: main optional: false +- name: archspec + version: 0.2.5 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.5-pyhd8ed1ab_0.conda + hash: + md5: 845b38297fca2f2d18a29748e2ece7fa + sha256: eb68e1ce9e9a148168a4b1e257a8feebffdb0664b557bb526a1e4853f2d2fc00 + category: main + optional: false - name: argcomplete - version: 3.7.0 + version: 3.7.2 manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.7.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.7.2-pyhcf101f3_0.conda hash: - md5: 4553b661c03a2f435d8c889eca8f2075 - sha256: fca7deee4f28060413d483851703c1287351797c1f660fb9ab63f8d175576e3f + md5: 5185c9f9742daeffae5daae93c802bf7 + sha256: 7a0e771e709b1620a914ba8a9590433c4a9fd84779d137216ac29ca50e959a1f category: main optional: false - name: ast-serialize - version: 0.6.0 + version: 0.8.0 manager: conda platform: linux-64 dependencies: python: '>=3.10' + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' _python_abi3_support: 1.* cpython: '>=3.10' - url: https://conda.anaconda.org/conda-forge/linux-64/ast-serialize-0.6.0-py310hd8a072f_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ast-serialize-0.8.0-py310ha6597b5_1.conda hash: - md5: 530aaeffb462b062bf8e3abb66879cf0 - sha256: 98eef90c96e2185254d12e667337077b989e9892167ff2c969e19b9296f42743 + md5: caf081b80ddd3672a79b36c34b702737 + sha256: 52ebc10de5c5a1c7914f0c405405de57c6daaa1d6fa1b8f15d1f5dbd78f27534 category: main optional: false - name: async-timeout @@ -210,6 +236,39 @@ package: sha256: 6638b68ab2675d0bed1f73562a4e75a61863b903be1538282cddb56c8e8f75bd category: main optional: false +- name: at-spi2-atk + version: 2.38.0 + manager: conda + platform: linux-64 + dependencies: + at-spi2-core: '>=2.40.0,<2.41.0a0' + atk-1.0: '>=2.36.0' + dbus: '>=1.13.6,<2.0a0' + libgcc-ng: '>=9.3.0' + libglib: '>=2.68.1,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-atk-2.38.0-h0630a04_3.tar.bz2 + hash: + md5: 6b889f174df1e0f816276ae69281af4d + sha256: 26ab9386e80bf196e51ebe005da77d57decf6d989b4f34d96130560bc133479c + category: main + optional: false +- name: at-spi2-core + version: 2.40.3 + manager: conda + platform: linux-64 + dependencies: + dbus: '>=1.13.6,<2.0a0' + libgcc-ng: '>=9.3.0' + libglib: '>=2.68.3,<3.0a0' + xorg-libx11: '' + xorg-libxi: '' + xorg-libxtst: '' + url: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-core-2.40.3-h0630a04_0.tar.bz2 + hash: + md5: 8cb2fc4cd6cc63f1369cfa318f581cc3 + sha256: c4f9b66bd94c40d8f1ce1fad2d8b46534bdefda0c86e3337b28f6c25779f258d + category: main + optional: false - name: atk-1.0 version: 2.38.0 manager: conda @@ -251,49 +310,49 @@ package: category: main optional: false - name: aws-c-auth - version: 0.10.1 + version: 0.10.4 manager: conda platform: linux-64 dependencies: libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - aws-c-io: '>=0.26.3,<0.26.4.0a0' - aws-c-sdkutils: '>=0.2.4,<0.2.5.0a0' - aws-c-common: '>=0.12.6,<0.12.7.0a0' - aws-c-http: '>=0.10.13,<0.10.14.0a0' - aws-c-cal: '>=0.9.13,<0.9.14.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.1-ha62d5e7_3.conda + aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-c-sdkutils: '>=0.2.7,<0.2.8.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.4-h4610da3_2.conda hash: - md5: 55eaf7066da1299d217ab32baedc7fa8 - sha256: ccbf2cc4bea4aab6e071d67ecc2743197759f6df855787e7a5f57f7973f913a2 + md5: cefa84dbf94066e7a6902af288a2fedd + sha256: 0c92dc5ddf4edd4038a63adb79f9f0b03f61e9455ce3253b7d2cf708e06ff99e category: main optional: false - name: aws-c-cal - version: 0.9.13 + version: 0.9.15 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - aws-c-common: '>=0.12.6,<0.12.7.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' libgcc: '>=14' - openssl: '>=3.5.4,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.13-h2c9d079_1.conda + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.15-h6bbde05_1.conda hash: - md5: 3c3d02681058c3d206b562b2e3bc337f - sha256: f21d648349a318f4ae457ea5403d542ba6c0e0343b8642038523dd612b2a5064 + md5: 8f2b374c79908f271be3d0e9f1c462a8 + sha256: 6eb21a0129e0aa7c6be733c7f2d1de6bc97a60c8382c1016f19dced722600d73 category: main optional: false - name: aws-c-common - version: 0.12.6 + version: 0.14.3 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.12.6-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.14.3-hb03c661_0.conda hash: - md5: e36ad70a7e0b48f091ed6902f04c23b8 - sha256: 926a5b9de0a586e88669d81de717c8dd3218c51ce55658e8a16af7e7fe87c833 + md5: ce8664d7c01d4a598ad38107b289b5ec + sha256: 8ea79f36d50ba90d7147fe1a047f9a7f2d33b114a3d4bacf1360cd8df43986e4 category: main optional: false - name: aws-c-compression @@ -303,111 +362,111 @@ package: dependencies: libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - aws-c-common: '>=0.12.6,<0.12.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h8b1a151_0.conda + aws-c-common: '>=0.14.3,<0.14.4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h01ee8f8_5.conda hash: - md5: f16f498641c9e05b645fe65902df661a - sha256: 1838bdc077b77168416801f4715335b65e9223f83641a2c28644f8acd8f9db0e + md5: ae862abdbb3160f97478d3d4749164c0 + sha256: 27f8581573c533a92a1a9619516ebb66d390b9923d296331985cfd342dc32d29 category: main optional: false - name: aws-c-event-stream - version: 0.7.0 + version: 0.7.1 manager: conda platform: linux-64 dependencies: libgcc: '>=14' - __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=14' - aws-c-common: '>=0.12.6,<0.12.7.0a0' + __glibc: '>=2.17,<3.0.a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-checksums: '>=0.2.10,<0.2.11.0a0' - aws-c-io: '>=0.26.3,<0.26.4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.7.0-h9b893ba_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.7.1-h1d67b22_5.conda hash: - md5: 60076118b1579967748f0c9a2912de7c - sha256: 9692edaeaf90f7710b7ec49c7ca42961c59344dafa6fadbaec8c283b0606ca68 + md5: a2dd9d6d6bfe33c44de552b792328a67 + sha256: b25509bf03313a4299e4539e0103db371fdc4a40b433ce1d6a076cbf8cc72a9f category: main optional: false - name: aws-c-http - version: 0.10.13 + version: 0.11.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-compression: '>=0.3.2,<0.3.3.0a0' - aws-c-common: '>=0.12.6,<0.12.7.0a0' - aws-c-cal: '>=0.9.13,<0.9.14.0a0' - aws-c-io: '>=0.26.3,<0.26.4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.10.13-h4bacb7b_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.11.0-hbe094ff_5.conda hash: - md5: 77f70a9ab785a146dbf66fba00131403 - sha256: 38cfc8894db6729770ac18f900296c3f7c20f349a5586a8d8e1a62571fce61d5 + md5: c09f7ec7327b8bd52fc2d6eacaa18d3b + sha256: a4a5e24b398e7c0ef64de5a341ecb3f0fa87c2879177695c5d0bcbde0c4f8b5e category: main optional: false - name: aws-c-io - version: 0.26.3 + version: 0.27.5 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - aws-c-common: '>=0.12.6,<0.12.7.0a0' - s2n: '>=1.7.2,<1.7.3.0a0' - aws-c-cal: '>=0.9.13,<0.9.14.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.26.3-h692f434_1.conda + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + s2n: '>=1.7.6,<1.7.7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.27.5-h4f381ba_1.conda hash: - md5: 14260392d0b491c537b5e26e9a506fff - sha256: e3e33031d641864128ab11f9b8585ad5beb82fa988fe833bb0767dd01878a371 + md5: 948f5a4fddac779b7942626e5807caba + sha256: 76ab4eb6cae12e14244cb1fe11ecccc2f103f8ffa7e80e222099c6b16c19ae20 category: main optional: false - name: aws-c-mqtt - version: 0.15.2 + version: 0.16.0 manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - aws-c-http: '>=0.10.13,<0.10.14.0a0' - aws-c-common: '>=0.12.6,<0.12.7.0a0' - aws-c-io: '>=0.26.3,<0.26.4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.15.2-hc1936db_2.conda + libgcc: '>=14' + aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.16.0-h94f2f89_3.conda hash: - md5: 9120bc47b6f837f3cea90928c3e9a8fa - sha256: 236ab4138ff4600f95903d2da94125df78577055f6687afa8806db0f6ed2e1a8 + md5: 9da082aef418fe3d001af9574f5d277d + sha256: e0921922658fda41d97703ff213ecee4b7fdcfcd55625e66ea538409314180d9 category: main optional: false - name: aws-c-s3 - version: 0.12.2 + version: 0.13.1 manager: conda platform: linux-64 dependencies: libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - aws-c-common: '>=0.12.6,<0.12.7.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-auth: '>=0.10.4,<0.10.5.0a0' + openssl: '>=3.5.7,<4.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-checksums: '>=0.2.10,<0.2.11.0a0' - aws-c-cal: '>=0.9.13,<0.9.14.0a0' - aws-c-io: '>=0.26.3,<0.26.4.0a0' - openssl: '>=3.5.6,<4.0a0' - aws-c-http: '>=0.10.13,<0.10.14.0a0' - aws-c-auth: '>=0.10.1,<0.10.2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.12.2-he6ee468_1.conda + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.13.1-h7508075_1.conda hash: - md5: 50ae8372984b8b98e056ac8f6b70ab29 - sha256: 4cecb4d595b7cf558087c37b8131cae5204b2c64d75f6b951dc3731d3f872bb8 + md5: 2daf54d3eef87b757f68d7597534dd2f + sha256: d24f7f34b3b564535b533b17176e71f71b6944aa2cb71813283bece139908d9f category: main optional: false - name: aws-c-sdkutils - version: 0.2.4 + version: 0.2.7 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - aws-c-common: '>=0.12.6,<0.12.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.4-h8b1a151_4.conda + aws-c-common: '>=0.14.3,<0.14.4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.7-h01ee8f8_3.conda hash: - md5: c7e3e08b7b1b285524ab9d74162ce40b - sha256: 9d62c5029f6f8219368a8665f0a549da572dc777f52413b7d75609cacdbc02cc + md5: 412f0cf18cc4c4945655dba954ca2d76 + sha256: b308c393a3db78cef29942c6b83ca7321f86d357fbb47504d59f55254601c87a category: main optional: false - name: aws-checksums @@ -417,11 +476,11 @@ package: dependencies: libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - aws-c-common: '>=0.12.6,<0.12.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h8b1a151_0.conda + aws-c-common: '>=0.14.3,<0.14.4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h01ee8f8_5.conda hash: - md5: f8e1bcc5c7d839c5882e94498791be08 - sha256: 09472dd5fa4473cffd44741ee4c1112f2c76d7168d1343de53c2ad283dc1efa6 + md5: 4d70caf5260e0787675c3bf61ae5b64c + sha256: f8d2cd9faccb273df739fc28431b484a90aca10027ef44f7fec1d4f0bd229a76 category: main optional: false - name: aws-xray-sdk @@ -439,7 +498,7 @@ package: category: main optional: false - name: awscli - version: 2.35.13 + version: 2.36.34 manager: conda platform: linux-64 dependencies: @@ -450,41 +509,41 @@ package: ruamel.yaml.clib: '>=0.2.0,<=0.2.15' prompt-toolkit: '>=3.0.24,<3.0.52' distro: '>=1.5.0,<1.9.0' - awscrt: 0.32.2 + awscrt: 0.36.2 python-dateutil: '>=2.1,<=2.9.0' jmespath: '>=0.7.1,<1.1.0' urllib3: '>=1.25.4,<=2.6.3' wcwidth: <0.3.0 python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.35.13-py310hd3bfc61_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.36.34-py310hd3bfc61_0.conda hash: - md5: b5ac9ba55a25e056de89d2fe59105577 - sha256: 1b2cc5e9cb5622bc0c1d9ef51247f9cc0cc19febf17da6511bbc08abb420f2b0 + md5: 697f90c85b711e7b9554765c42ce9859 + sha256: b75c1796c16dc61f3a3ac2705d6ec566bbf3f723ba9cbc74017397d358e0e085 category: main optional: false - name: awscrt - version: 0.32.2 + version: 0.36.2 manager: conda platform: linux-64 dependencies: python: '' - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - aws-c-auth: '>=0.10.1,<0.10.2.0a0' - aws-checksums: '>=0.2.10,<0.2.11.0a0' - aws-c-mqtt: '>=0.15.2,<0.15.3.0a0' - aws-c-event-stream: '>=0.7.0,<0.7.1.0a0' - aws-c-cal: '>=0.9.13,<0.9.14.0a0' - aws-c-s3: '>=0.12.2,<0.12.3.0a0' - aws-c-http: '>=0.10.13,<0.10.14.0a0' + __glibc: '>=2.17,<3.0.a0' + aws-c-auth: '>=0.10.4,<0.10.5.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-event-stream: '>=0.7.1,<0.7.2.0a0' python_abi: 3.10.* - aws-c-io: '>=0.26.3,<0.26.4.0a0' - aws-c-common: '>=0.12.6,<0.12.7.0a0' - s2n: '>=1.7.2,<1.7.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.32.2-py310hb8add35_0.conda + aws-c-s3: '>=0.13.1,<0.13.2.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-checksums: '>=0.2.10,<0.2.11.0a0' + aws-c-mqtt: '>=0.16.0,<0.16.1.0a0' + s2n: '>=1.7.6,<1.7.7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.36.2-py310h01eb2e4_0.conda hash: - md5: 52642e226263337d0bd24f2d9662b1c6 - sha256: 4ad96ddc617468805aef273e017c9eb690386e162beb06a3fae3a2fb0b00029d + md5: d29ea38ca3abcc3e5d9f539ef548afb9 + sha256: 04d8a4b980e66b056b333f24f74ef89aef90dd9c750d72d40f6d2b5653a5f5cb category: main optional: false - name: azure-core @@ -556,6 +615,22 @@ package: sha256: 25abdb37e186f0d6ac3b774a63c81c5bc4bf554b5096b51343fa5e7c381193b1 category: main optional: false +- name: backports.zstd + version: 1.7.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + zstd: '>=1.5.7,<1.6.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.7.0-py310hff74037_0.conda + hash: + md5: 3a5e1bf41b700d667440ae26654dd70a + sha256: f86c944b95c943f6c7b797e389a9210fb9dc7ea838d1d0815a240cfaa3188893 + category: main + optional: false - name: bash version: 5.2.37 manager: conda @@ -594,28 +669,29 @@ package: category: main optional: false - name: binutils - version: 2.45.1 + version: 2.46.1 manager: conda platform: linux-64 dependencies: - binutils_impl_linux-64: '>=2.45.1,<2.45.2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.45.1-default_h4852527_102.conda + binutils_impl_linux-64: '>=2.46.1,<2.46.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.46.1-default_h4852527_102.conda hash: - md5: 212fe5f1067445544c99dc1c847d032c - sha256: 3c7c5580c1720206f28b7fa3d60d17986b3f32465e63009c14c9ae1ea64f926c + md5: e8452fe381cac5fff20563a07722dfa5 + sha256: 659c367ef49df7741749a2ad240b007d7df51b4f210505a78543deafb001e44c category: main optional: false - name: binutils_impl_linux-64 - version: 2.45.1 + version: 2.46.1 manager: conda platform: linux-64 dependencies: - ld_impl_linux-64: 2.45.1 + ld_impl_linux-64: 2.46.1 sysroot_linux-64: '' - url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45.1-bootstrap_h59bd682_2.conda + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.46.1-default_hfdba357_102.conda hash: - md5: 89572c6f5e6c24375ffd022c5d790628 - sha256: a439e3c858547c9ee5b3b53a93e1aa4ddbbf7e918f51e2b0747e1f1f83a799c3 + md5: a0c5e0b7f58c8ceeb08e5bc41251d5a2 + sha256: fb7bf36984a37ce7e4714d1d1da0bd0e3bfc679520f5cdc184afc676fd4b5da2 category: main optional: false - name: bison @@ -644,23 +720,35 @@ package: sha256: f7efd22b5c15b400ed84a996d777b6327e5c402e79e3c534a7e086236f1eb2dc category: main optional: false +- name: boltons + version: 26.1.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/boltons-26.1.0-pyhd8ed1ab_0.conda + hash: + md5: 92c88d22e52af7b672605b12a31bf0bb + sha256: ca44f906756aaa908645c9bcef31a132fc82e7934777aa6bb45c12edada6a58c + category: main + optional: false - name: boto3 - version: 1.43.38 + version: 1.43.83 manager: conda platform: linux-64 dependencies: - botocore: '>=1.43.38,<1.44.0' + botocore: '>=1.43.83,<1.44.0' jmespath: '>=0.7.1,<2.0.0' python: '>=3.10' s3transfer: '>=0.19.0,<0.20.0' - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.43.38-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.43.83-pyhd8ed1ab_0.conda hash: - md5: a9e402d2310129646eeeed328c506f75 - sha256: 3d3073773742aafda7dc3bb602513c9c7cbeb9faeb18f66d4d9f45ba9fd8fe18 + md5: 0588eacfedfba364a5257ce3471445ea + sha256: 833d6402cc90eddf65130b822f1c585ccfe568d4d7a9449c645044ab9b3084e8 category: main optional: false - name: boto3-stubs - version: 1.43.40 + version: 1.43.84 manager: conda platform: linux-64 dependencies: @@ -668,14 +756,14 @@ package: python: '>=3.10' types-s3transfer: '' typing-extensions: '>=4.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.43.40-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.43.84-pyhd8ed1ab_0.conda hash: - md5: 0e4e0bf7678ab9b1c833cd2c3e847ada - sha256: 12d8d22b91acb39e102c9a0812d1d1059a59df18f8741ec53ddfbffa97a9366b + md5: f0474b9dfde9556403e3dd6fd0441926 + sha256: 53f59db9babc2e03a0f1488f38477ab2d98806a9de4341e44db3cdbc0482b2be category: main optional: false - name: botocore - version: 1.43.38 + version: 1.43.83 manager: conda platform: linux-64 dependencies: @@ -683,24 +771,24 @@ package: python: '>=3.10' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,!=2.2.0,<3' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.38-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.83-pyhd8ed1ab_0.conda hash: - md5: eea09f107274143eb081efcc4d6b3d61 - sha256: 8dd75af85c3fe535915d1875109df41b052e48f0aa2394649d574dead263a0c2 + md5: 9a70db0ee02ef102c89131fb6b38e821 + sha256: 2ada302fc55fcb7a77c713aaaa17e9a238444584328903b76c7f34ce85b9b2ed category: main optional: false - name: botocore-stubs - version: 1.43.14 + version: 1.43.67 manager: conda platform: linux-64 dependencies: python: '' types-awscrt: '' typing_extensions: '>=4.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.43.14-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.43.67-pyhcf101f3_0.conda hash: - md5: 872581e7c21b0d429aca7a84f58ef24f - sha256: 9d7a3362b540951bb9f995a2d7aabe764a9cce64b9328e97a20de5214ef5e0f0 + md5: f2264f76c19c70f6087f1bea533d7f29 + sha256: b8d2351e740c7fbc3ef59f30b16afba3977e51f1c91a1432ad65c2de4ae8f1fb category: main optional: false - name: brotli @@ -712,11 +800,11 @@ package: brotli-bin: 1.2.0 libbrotlidec: 1.2.0 libbrotlienc: 1.2.0 - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.2.0-hed03a55_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.2.0-h505cf86_3.conda hash: - md5: 8ccf913aaba749a5496c17629d859ed1 - sha256: e511644d691f05eb12ebe1e971fd6dc3ae55a4df5c253b4e1788b789bdf2dfa6 + md5: 6ff307b78fbfb7dcafb7e25ff8bc9c10 + sha256: 1f2ccfebe6e0113bfc473b21906372c1ee4eb69bf6faef0ad7f3d4d79af63a98 category: main optional: false - name: brotli-bin @@ -727,11 +815,11 @@ package: __glibc: '>=2.17,<3.0.a0' libbrotlidec: 1.2.0 libbrotlienc: 1.2.0 - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.2.0-hb03c661_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.2.0-h9908984_3.conda hash: - md5: af39b9a8711d4a8d437b52c1d78eb6a1 - sha256: 64b137f30b83b1dd61db6c946ae7511657eead59fdf74e84ef0ded219605aa94 + md5: 8929291d9efc59715df1cfa7daf5e3ed + sha256: 56b2e5e8a49f9887af74cc63e0d55a3654e60b667ad5558da089549a36ae6a0c category: main optional: false - name: brotli-python @@ -740,14 +828,14 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - libstdcxx: '>=14' + libgcc: '>=15' + libstdcxx: '>=15' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py310hba01987_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py310h25d4438_3.conda hash: - md5: 393fca4557fbd2c4d995dcb89f569048 - sha256: f036fe554d902549f86689a9650a0996901d5c9242b0a1e3fbfe6dbccd2ae011 + md5: 959778f575b33b72cf20c4c68c7d284b + sha256: f215bd8c67695ce2e99d0122bf7d17c44dd45c577909129aa30b16f88a1e61b6 category: main optional: false - name: bzip2 @@ -757,35 +845,35 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_10.conda hash: - md5: d2ffd7602c02f2b316fd921d39876885 - sha256: 0b75d45f0bba3e95dc693336fa51f40ea28c980131fec438afb7ce6118ed05f6 + md5: e675fabcf81499adc7edf58124fb1e01 + sha256: 1a0d382c515ebf55f8ee1f38c8b81bc95af5c2acc42ad53b66bc5df932032f96 category: main optional: false - name: c-ares - version: 1.34.6 + version: 1.34.8 manager: conda platform: linux-64 dependencies: + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.8-hebe6cf0_2.conda hash: - md5: 920bb03579f15389b9e512095ad995b7 - sha256: cc9accf72fa028d31c2a038460787751127317dcfa991f8d1f1babf216bb454e + md5: 3ad2b403be8fc5612b9159e2ce621f69 + sha256: 9c37cc233238adf366ea75b0e845662a5be07ceadf62e458183516369340274b category: main optional: false - name: ca-certificates - version: 2026.6.17 + version: 2026.7.22 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.6.17-hbd8a1cb_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda hash: - md5: a9965dd99f683c5f444428f896635716 - sha256: f8e3c730fa14ee3f170493779f06522c4acf89169f43db4f039727709b6419cf + md5: 0f51e2391ade309db462a55611263e9c + sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 category: main optional: false - name: cachecontrol @@ -816,6 +904,30 @@ package: sha256: becb375d64ebda9f9ed030d529b22da21030401d0dbaee62a208e60fca9c4587 category: main optional: false +- name: cached-property + version: 2.0.1 + manager: conda + platform: linux-64 + dependencies: + cached_property: '>=2.0.1,<2.0.2.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/cached-property-2.0.1-pyhcf101f3_0.conda + hash: + md5: 70e764e549c6c25de5e429d6e4a28b39 + sha256: 39358005c3cc44d8315ed79789b18a960d69365be979970cc6bae8f7a6177703 + category: main + optional: false +- name: cached_property + version: 2.0.1 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/cached_property-2.0.1-pyhcf101f3_0.conda + hash: + md5: 256d863ded0f79464391a075944d24a6 + sha256: 4bd96dab5a434e4ee59fb6910cae704d4c5b453907d4886272a9943d37e42b6f + category: main + optional: false - name: cachy version: 0.3.0 manager: conda @@ -829,137 +941,175 @@ package: category: main optional: false - name: cairo - version: 1.18.0 + version: 1.18.4 manager: conda platform: linux-64 dependencies: - fontconfig: '>=2.14.2,<3.0a0' + __glibc: '>=2.17,<3.0.a0' + fontconfig: '>=2.18.3,<3.0a0' fonts-conda-ecosystem: '' - freetype: '>=2.12.1,<3.0a0' - icu: '>=73.2,<74.0a0' - libgcc-ng: '>=12' - libglib: '>=2.78.0,<3.0a0' - libpng: '>=1.6.39,<1.7.0a0' - libstdcxx-ng: '>=12' - libxcb: '>=1.15,<1.16.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - pixman: '>=0.42.2,<1.0a0' - xorg-libice: '>=1.1.1,<2.0a0' - xorg-libsm: '>=1.2.4,<2.0a0' - xorg-libx11: '>=1.8.6,<2.0a0' - xorg-libxext: '>=1.3.4,<2.0a0' - xorg-libxrender: '>=0.9.11,<0.10.0a0' - zlib: '' - url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda + icu: '>=78.3,<79.0a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libxcb: '>=1.17.0,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + pixman: '>=0.46.4,<1.0a0' + xorg-libice: '>=1.1.2,<2.0a0' + xorg-libsm: '>=1.2.6,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxrender: '>=0.9.12,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3c89d7e_3.conda hash: - md5: f907bb958910dc404647326ca80c263e - sha256: 142e2639a5bc0e99c44d76f4cc8dce9c6a2d87330c4beeabb128832cd871a86e + md5: 7b870cffbaa8430290e567a0facd8dca + sha256: 6b551d9346997bc4c6fadf96b7b92442b8f3244011cc462e4ee77afc714d52c5 category: main optional: false - name: ccache - version: 4.10.1 + version: '4.14' manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc-ng: '>=12' - libhiredis: '>=1.0.2,<1.1.0a0' - libstdcxx-ng: '>=12' - zstd: '>=1.5.6,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/ccache-4.10.1-h065aff2_0.conda + libstdcxx: '>=15' + libgcc: '>=15' + xxhash: '>=0.8.3,<0.8.4.0a0' + libhiredis: '>=1.3.0,<1.4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/ccache-4.14-h420ae53_0.conda hash: - md5: d6b48c138e0c8170a6fe9c136e063540 - sha256: 8ca3531bde782746a388f2e6193c090fa6e4afcdf2054f595e33937148560d85 + md5: 4a06ca30c8f0c68207c1ab0f25efef03 + sha256: adace394e3f21541d1740b64f8f683cb6f6b9693fe419f49d4460a076090675d category: main optional: false - name: certifi - version: 2026.6.17 + version: 2026.7.22 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.6.17-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.7.22-pyhd8ed1ab_0.conda hash: - md5: c13824fedced67005d3832c152fe9c2f - sha256: 6c13620e458ba43278379d0cdacc30c497336bddfda81681fd50d114a65c702f + md5: 37e13edbe3b48f1095a9d085ef9cd83b + sha256: fb167de4388e64e52aa3907ed099afab944c1fa6e5f74b281a312dae1bcf7f3b category: main optional: false - name: cffi - version: 2.0.0 + version: 2.1.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libffi: '>=3.5.2,<3.6.0a0' - libgcc: '>=14' + libffi: '>=3.7.0,<3.8.0a0' + libgcc: '>=15' pycparser: '' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py310he7384ee_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.1.1-py310hd4ea0ea_2.conda hash: - md5: 803e2d778b8dcccdc014127ec5001681 - sha256: bf76ead6d59b70f3e901476a73880ac92011be63b151972d135eec55bbbe6091 + md5: 33706c1639a06dcea0c19d9f118305f1 + sha256: dac4df438ce074376be5faf98d3d4c969a1fbc5016e0b0e8c6545a30a18877a0 category: main optional: false - name: charset-normalizer - version: 3.4.7 + version: 3.5.1 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.7-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.5.1-pyhd8ed1ab_0.conda hash: - md5: a9167b9571f3baa9d448faa2139d1089 - sha256: 3f9483d62ce24ecd063f8a5a714448445dc8d9e201147c46699fc0033e824457 + md5: e0ac3accc64e23e40969d660e5f58ac8 + sha256: cb60ef3e0631c8bacb4f7057196dee4496091a22baa3bb4b9bccb12c7e1c921b category: main optional: false - name: clang-format - version: 18.1.7 + version: 23.1.0 manager: conda platform: linux-64 dependencies: - clang-format-18: 18.1.7 - libclang-cpp18.1: '>=18.1.7,<18.2.0a0' - libgcc-ng: '>=12' - libllvm18: '>=18.1.7,<18.2.0a0' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-18.1.7-default_h9bb3924_0.conda + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + clang-format-23: ==23.1.0 + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-23.1.0-default_hcd25269_1.conda hash: - md5: 13a578aae81d919f4fba0278b1040946 - sha256: 59c3f0e8e60a14c908bd39d7c3f41d8ae0592299b06346f3cf2b9da01f1df31b + md5: baeb4900f00a7470ed297e0cd5cfd62c + sha256: 03018bc89138b71e536b3ee5b0793eb395e7dde2abbf902c4f7b245b37000590 category: main optional: false -- name: clang-format-18 - version: 18.1.7 +- name: clang-format-23 + version: 23.1.0 manager: conda platform: linux-64 dependencies: - libclang-cpp18.1: '>=18.1.7,<18.2.0a0' - libgcc-ng: '>=12' - libllvm18: '>=18.1.7,<18.2.0a0' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-18-18.1.7-default_h9bb3924_0.conda + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-23-23.1.0-default_h0acdd01_1.conda + hash: + md5: ce1c496a9732c0382c24e01e054372a4 + sha256: daefff78c52a5a51241c9f34ea0b645f2532de75d925eb987b671ff8d7acca15 + category: main + optional: false +- name: clang-scan-deps + version: 23.1.0 + manager: conda + platform: linux-64 + dependencies: + libclang13: '>=23.1.0' + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/clang-scan-deps-23.1.0-default_h0acdd01_1.conda hash: - md5: 11870f57d7d3ae9415d7df325595b3fa - sha256: 47aa360b6a1f488cf3de4e032f30136e27e11029d4e6c583d0af43fbcdf9b9db + md5: c9fe508027f299bd61b24175013da9b9 + sha256: 06900d46a8e9abfdc0aa66476fe507357d13acbff77f1d899efe7537421d1937 category: main optional: false - name: clang-tools - version: 18.1.7 + version: 23.1.0 manager: conda platform: linux-64 dependencies: - clang-format: 18.1.7 - libclang-cpp18.1: '>=18.1.7,<18.2.0a0' - libclang13: '>=18.1.7' - libgcc-ng: '>=12' - libllvm18: '>=18.1.7,<18.2.0a0' - libstdcxx-ng: '>=12' - libxml2: '>=2.12.7,<2.14.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/clang-tools-18.1.7-default_h9bb3924_0.conda + clang-format: ==23.1.0 + libclang13: '>=23.1.0' + clang-scan-deps: ==23.1.0 + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/clang-tools-23.1.0-default_h9d70225_1.conda hash: - md5: 540b026c132b76312e0186c94c45b514 - sha256: 4a7bcf3f7ea0f69091ca7d359b1557e5a507f2b9e7a3a41956b2680fb7c551c5 + md5: 66f754e44ffe2fddbd767a54e3016839 + sha256: c925e27990d044e308b4f1e356835f1703188ef083f4375eb32bbd65849ff36b category: main optional: false - name: click @@ -1003,27 +1153,26 @@ package: category: main optional: false - name: cmake - version: 3.26.3 + version: 4.4.3 manager: conda platform: linux-64 dependencies: + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + ncurses: '>=6.6,<7.0a0' bzip2: '>=1.0.8,<2.0a0' - expat: '' - libcurl: '>=7.88.1,<9.0a0' - libexpat: '>=2.5.0,<3.0a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libuv: '' - libzlib: '>=1.2.13,<2.0.0a0' - ncurses: '>=6.3,<7.0a0' - rhash: <=1.4.3 - xz: '>=5.2.6,<6.0a0' - zlib: '' - zstd: '>=1.5.2,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/cmake-3.26.3-h077f3f9_0.conda + libexpat: '>=2.8.1,<3.0a0' + liblzma: '>=5.8.3,<6.0a0' + libcurl: '>=8.21.0,<9.0a0' + rhash: '>=1.4.6,<2.0a0' + libuv: '>=1.52.1,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/cmake-4.4.3-hff7ac6b_0.conda hash: - md5: 6edec767268ad8451d27bb65f38c7ea4 - sha256: 3bb9d7c35d5297d85516769eb0517c83f7fc2ed7ab944a8c028871bb375bed51 + md5: e9d08c8f9a02853bfc6f8c3a4b0b19a4 + sha256: a6d21b5166cd7a44fa975e541f1abf851579a8ac3458e72e77125761da06c842 category: main optional: false - name: colorama @@ -1039,35 +1188,84 @@ package: category: main optional: false - name: conda - version: 22.9.0 - manager: conda - platform: linux-64 - dependencies: - conda-package-handling: '>=1.3.0' + version: 26.7.1 + manager: conda + platform: linux-64 + dependencies: + archspec: '>=0.2.3' + backports.zstd: '>=1.3.0' + boltons: '>=23.0.0' + charset-normalizer: '' + conda-package-handling: '>=2.2.0' + distro: '>=1.5.0' + frozendict: '>=2.4.2' + menuinst: '>=2' + msgpack-python: '>=1.1.1' + packaging: '>=23.0' + platformdirs: '>=3.10.0' + pluggy: '>=1.6.0' pycosat: '>=0.6.3' - pyopenssl: '>=16.2.0' - python: '>=3.10,<3.11.0a0' + python: '' + requests: '>=2.28.0,<3' + ruamel.yaml: '>=0.11.14,<0.19' + setuptools: '>=60.0.0' + tqdm: '>=4' + truststore: '>=0.8.0' + conda-libmamba-solver: '>=26.4.1' + conda-lockfiles: '>=0.2.0' + conda-pypi: '>=0.10.1' + conda-rattler-solver: '>=0.1.1' + conda-self: '>=0.2.0' python_abi: 3.10.* - requests: '>=2.20.1,<3' - ruamel_yaml: '>=0.11.14,<0.17' - setuptools: '>=31.0.1' - toolz: '>=0.8.1' - url: https://conda.anaconda.org/conda-forge/linux-64/conda-22.9.0-py310hff52083_2.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-26.7.1-py310hd3bfc61_0.conda hash: - md5: 8d78ef95742dcd284e6a5ee99bb0659b - sha256: 9be2c55658fdfc9837c5d4f9bf2cc384ebbc8dd2bb8dbdb1300721a8abc93c95 + md5: d0171785698c043c1fbd807c744994b0 + sha256: 79fbcc48c516fae1bce469245826e12b62fb73659524581eeb639de8c6ab7ec2 category: main optional: false - name: conda-gcc-specs - version: 13.2.0 + version: 15.3.0 + manager: conda + platform: linux-64 + dependencies: + gcc_impl_linux-64: '>=15.3.0,<15.3.1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-15.3.0-h8846f6e_4.conda + hash: + md5: 4bfbca2f3bfcdf6d78a339cfd5368fce + sha256: 87ebd4f94c8823763d35adaba292c2dc8c60ddda70e0980f32eae0dbb0e2aa2d + category: main + optional: false +- name: conda-index + version: 0.12.1 + manager: conda + platform: linux-64 + dependencies: + conda: '>=25' + conda-package-streaming: '>=0.12.0' + filelock: '' + jinja2: '' + msgpack-python: '>=1.0.2' + python: '>=3.10' + ruamel.yaml: '' + zstandard: '' + url: https://conda.anaconda.org/conda-forge/noarch/conda-index-0.12.1-pyhd8ed1ab_0.conda + hash: + md5: 1b8035639db6b74dcdc6b5412ae89011 + sha256: 39f8f4b24e6c6b701679949950af3220bcf42bd634a68d63f7d39f64752b79a6 + category: main + optional: false +- name: conda-libmamba-solver + version: 26.7.0 manager: conda platform: linux-64 dependencies: - gcc_impl_linux-64: '>=13.2.0,<13.2.1.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-13.2.0-h6dde443_13.conda + python: '' + libmambapy: '>=2.0.0,!=2.6.2' + boltons: '>=23.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-26.7.0-pyhcf101f3_0.conda hash: - md5: 925dd117f08690f788b5e1084f51791d - sha256: 73526388c2c8403e22c6ca361336e33733935c1b0eab0f65e6443215595bf8ba + md5: 49592004caf4336815fd5282bbb72172 + sha256: b7cc67470a361330edd8d9e331cafd4807dd77bc766ca197a3783ed3db66dfeb category: main optional: false - name: conda-lock @@ -1106,6 +1304,21 @@ package: sha256: 905618b595d7a067fe37a282e3b84a4ed46542c1b497c76cef7b0f33f9335cb7 category: main optional: false +- name: conda-lockfiles + version: 0.2.1 + manager: conda + platform: linux-64 + dependencies: + conda: '>=26.3.0' + pydantic: '>=2.12.5,<3' + python: '>=3.10' + ruamel.yaml: '' + url: https://conda.anaconda.org/conda-forge/noarch/conda-lockfiles-0.2.1-pyhd8ed1ab_0.conda + hash: + md5: 7f1b127b170f9f0d01eca4b54a046ee5 + sha256: eb20fc63ce6438e10d7c64890bd23d0c68f62a479f2bae8b3c892e13949daf03 + category: main + optional: false - name: conda-package-handling version: 2.5.0 manager: conda @@ -1122,16 +1335,64 @@ package: category: main optional: false - name: conda-package-streaming - version: 0.12.0 + version: 0.13.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' - zstandard: '>=0.15' - url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.12.0-pyhd8ed1ab_0.conda + backports.zstd: '' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.13.0-pyhd8ed1ab_0.conda + hash: + md5: b4e3dcace82b486f69bc693f30120205 + sha256: af3b666ea6043a146901cd151d6201126bbe19af8307b58fb175015e3710064c + category: main + optional: false +- name: conda-pypi + version: 0.11.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + pip: '>=23.0.1' + packaging: '' + unearth: '' + python-build: '' + python-installer: '>=1.0' + platformdirs: '' + conda-index: '>=0.11.0' + conda-package-streaming: '>=0.11' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/conda-pypi-0.11.0-py310hd3bfc61_1.conda + hash: + md5: c5841720e044f6b6553c3b6dfff9761b + sha256: 3b7cd3fa49621fed71a467f4718fd331887024e093a7c5242191a0ee7772ad0b + category: main + optional: false +- name: conda-rattler-solver + version: 0.1.1 + manager: conda + platform: linux-64 + dependencies: + python: '' + conda: '>=26.5.0' + py-rattler: '>=0.25.0,<0.26.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/conda-rattler-solver-0.1.1-pyhcf101f3_0.conda + hash: + md5: f5d15171925a157707e1ad165179449c + sha256: 77ea286de14f5d2dd0c376627ec41d0c226ad94ad8b25262f36712070324aa05 + category: main + optional: false +- name: conda-self + version: 0.2.1 + manager: conda + platform: linux-64 + dependencies: + conda: '>=26.1.1' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/conda-self-0.2.1-pyhd8ed1ab_0.conda hash: - md5: ff75d06af779966a5aeae1be1d409b96 - sha256: 11b76b0be2f629e8035be1d723ccb6e583eb0d2af93bde56113da7fa6e2f2649 + md5: ac705504abf28bb924a021a3d5f4b55f + sha256: efd3b7b79a0e3993a174ab0140794479e2479b59fd053605acaaa25718f0f013 category: main optional: false - name: conda-standalone @@ -1146,18 +1407,18 @@ package: category: main optional: false - name: conda-tree - version: 1.1.2 + version: 1.2.0 manager: conda platform: linux-64 dependencies: + python: '' + conda: '>=25.0' + networkx: '>=2.0' colorama: '' - conda: '' - networkx: '' - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.1.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.2.0-pyhcf101f3_0.conda hash: - md5: 8d659bd4054debf8a4ac24acd1fcc304 - sha256: 94ddd2c0fb738138d1733c2838413172a3864c25f820d7b74620f8894efeccb1 + md5: d50ead4984f21edfb9ceeca13e62440a + sha256: 568f52c4ac4aa11bb3b983c5fdde75ebdd0fb2842390c00e32b0157ef216b7f4 category: main optional: false - name: constructor @@ -1196,28 +1457,43 @@ package: category: main optional: false - name: coreutils - version: '9.5' + version: '9.11' manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.5-hd590300_0.conda + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.11-h280c20c_0.conda hash: - md5: 126d457e0e7a535278e808a7d8960015 - sha256: 7cd3b0f55aa55bb27b045c30f32b3f6b874ecc006f3abcb274c71a3bcbacb358 + md5: c63e2851f3d99a32f4b6991d0460dd25 + sha256: 6b19fb6c45302bdd6c97c5ac219e14bcbb7d9055c758e79d8a2577e705a933f0 + category: main + optional: false +- name: cpp-expected + version: 1.3.1 + manager: conda + platform: linux-64 + dependencies: + libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/cpp-expected-1.3.1-h171cf75_1.conda + hash: + md5: 451367db888b29ad0db6b298669fbe77 + sha256: 6a905f317b93104444dc74875933a7cdf65fa14ae05dd6485ece6ffd9d0b5e89 category: main optional: false - name: cpython - version: 3.10.20 + version: 3.10.21 manager: conda platform: linux-64 dependencies: python: '>=3.10,<3.11.0a0' python_abi: '*' - url: https://conda.anaconda.org/conda-forge/noarch/cpython-3.10.20-py310hd8ed1ab_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/cpython-3.10.21-py310hd8ed1ab_0.conda hash: - md5: bfe34936b4fa9b1fbe25e68a7abbd8eb - sha256: 705917252b4cdfca93d8df09d40dc9b08074ecbd23b0ca23eb74bca8d1629599 + md5: 16bfe1eccbb795747206bad6605cb664 + sha256: 480ea56b6e2627f0f44fca21d48f9568a91b206e074c000a710d6b9492f2ec7a category: main optional: false - name: crashtest @@ -1248,36 +1524,6 @@ package: sha256: 692b0394bb3104ec117faa0130d67109a0132e9bd57084ebfde81fc2b9790e58 category: main optional: false -- name: ctags - version: '5.8' - manager: conda - platform: linux-64 - dependencies: - libgcc-ng: '>=7.3.0' - url: https://conda.anaconda.org/conda-forge/linux-64/ctags-5.8-h14c3975_1000.tar.bz2 - hash: - md5: 5fe0e54a3a78750306fefc0a25f81f79 - sha256: 56ab3b9e2c7c59045370c1258399764c13c0d1a346a07817b29b316085785477 - category: main - optional: false -- name: curl - version: 7.88.1 - manager: conda - platform: linux-64 - dependencies: - krb5: '>=1.20.1,<1.21.0a0' - libcurl: 7.88.1 - libgcc-ng: '>=12' - libssh2: '>=1.10.0,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - openssl: '>=3.1.0,<4.0a0' - zstd: '>=1.5.2,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/curl-7.88.1-hdc1c0ab_1.conda - hash: - md5: 2016c398f234cfa354ea704c6731b5d5 - sha256: b52a3b97e4c3d2acca8380d405da49c2fdc2f770fcbb9dd842eb6058f8476def - category: main - optional: false - name: cycler version: 0.12.1 manager: conda @@ -1291,17 +1537,20 @@ package: category: main optional: false - name: dbus - version: 1.13.6 + version: 1.16.2 manager: conda platform: linux-64 dependencies: - expat: '>=2.4.2,<3.0a0' - libgcc-ng: '>=9.4.0' - libglib: '>=2.70.2,<3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libstdcxx: '>=15' + libexpat: '>=2.8.1,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + libglib: '>=2.88.3,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-he8c428d_2.conda hash: - md5: ecfff944ba3960ecb334b9a2663d708d - sha256: 8f5f995699a2d9dbdd62c61385bfeeb57c82a681a7c8c5313c395aa0ccab68a5 + md5: a6eb37b51be1a9a654dc3a8aca039b1a + sha256: 87a0a42d4ccc527597eff3234509dfb03e0d9bf67d5e2b6fc758e2ef389d8abe category: main optional: false - name: diffutils @@ -1394,24 +1643,22 @@ package: category: main optional: false - name: elfutils - version: '0.187' + version: '0.196' manager: conda platform: linux-64 dependencies: + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + zstd: '>=1.5.7,<1.6.0a0' + libarchive: '>=3.8.9,<3.9.0a0' bzip2: '>=1.0.8,<2.0a0' - libarchive: '>=3.5.2,<3.6.0a0' - libcurl: '>=7.82.0,<9.0a0' - libgcc-ng: '>=10.3.0' - libmicrohttpd: '>=0.9.75,<0.10.0a0' - libstdcxx-ng: '>=10.3.0' - libzlib: '>=1.2.11,<2.0.0a0' - sqlite: '>=3.38.2,<4.0a0' - xz: '>=5.2.5,<6.0.0a0' - zstd: '>=1.5.2,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.187-h989201e_0.tar.bz2 + libzlib: '>=1.3.2,<2.0a0' + liblzma: '>=5.8.3,<6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.196-h03e2bf6_0.conda hash: - md5: 2e9ec0e21d51118b004f1f98e4fbf598 - sha256: bee5b4a723472cc844775a36dbdca35ecb24f40fbb162924bd8536b05930c3dc + md5: 24717939d024efa3e042e52e8c279328 + sha256: 075378fb752fa7d15c3d913fe4d30ea4049308b6b88dfba1ce0fda2870ce18f6 category: main optional: false - name: ensureconda @@ -1432,6 +1679,31 @@ package: sha256: e3c35c7cee4e6db53de4ad1ca6d35b7aced263d21a6ee2dcdffe401135646ab2 category: main optional: false +- name: epoxy + version: 1.5.10 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libdrm: '>=2.4.125,<2.5.0a0' + libegl: '>=1.7.0,<2.0a0' + libegl-devel: '' + libgcc: '>=14' + libgl: '>=1.7.0,<2.0a0' + libgl-devel: '' + libglx: '>=1.7.0,<2.0a0' + libglx-devel: '' + xorg-libx11: '>=1.8.12,<2.0a0' + xorg-libxdamage: '>=1.1.6,<2.0a0' + xorg-libxext: '>=1.3.6,<2.0a0' + xorg-libxfixes: '>=6.0.1,<7.0a0' + xorg-libxxf86vm: '>=1.1.6,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/epoxy-1.5.10-hb03c661_2.conda + hash: + md5: 057083b06ccf1c2778344b6dabace38b + sha256: a5b51e491fec22bcc1765f5b2c8fff8a97428e9a5a7ee6730095fb9d091b0747 + category: main + optional: false - name: exceptiongroup version: 1.3.1 manager: conda @@ -1473,29 +1745,30 @@ package: category: main optional: false - name: file - version: '5.39' + version: '5.48' manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libmagic: '5.39' - libzlib: '>=1.2.12,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/file-5.39-h753d276_1.tar.bz2 + libmagic: ==5.48 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/file-5.48-hd479b6e_1.conda hash: - md5: a0f7ed92aaa3b6d109e6e2301e502c24 - sha256: 8c3b26e7241324a4fb8a19966e67af043781e6feb4a7393608e5ebcc84410b62 + md5: cacf6c56b4ed2b8c5fe4f1771f671063 + sha256: 478dd9aa480a0fdf39c354884fb85c37013726730f6bf69ed470efa2e27de0e4 category: main optional: false - name: filelock - version: 3.29.5 + version: 3.32.5 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.29.5-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.32.5-pyhd8ed1ab_0.conda hash: - md5: 288126f559a8a6cacabe59c73327fe1f - sha256: aa1035fbdc0c8fbe66a82ae4630b6ed73b832c2c0c52bd7b45b5f3bd54f51df6 + md5: 9b091d04be6b722d4ed7dfee34295dea + sha256: a52faa011a8176bbbf30c77f76707788be9a9e1a7e30c3753083719c093a15dc category: main optional: false - name: findutils @@ -1558,6 +1831,33 @@ package: sha256: 5a6dba5af1127e859eefd68e77b7af062b42f85401efbb43a970da977ba3e344 category: main optional: false +- name: fmt + version: 12.1.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/fmt-12.1.0-h76c4fd7_1.conda + hash: + md5: a70bb6d42ad121aef456e0007e92bed6 + sha256: 25d14a197601fdd616f2e501431b52887e69b31e7defbc1679381d718357ceb7 + category: main + optional: false +- name: fnm + version: 1.39.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/fnm-1.39.0-hb17b654_1.conda + hash: + md5: aecbd97fa8ca49992e195290cde8db18 + sha256: 64a9fdf1262ee4f2a2cf42ff895f83583a5b48e706a2f8e6dde3b41accd5e405 + category: main + optional: false - name: font-ttf-dejavu-sans-mono version: '2.37' manager: conda @@ -1603,19 +1903,21 @@ package: category: main optional: false - name: fontconfig - version: 2.14.2 + version: 2.18.3 manager: conda platform: linux-64 dependencies: - expat: '>=2.5.0,<3.0a0' - freetype: '>=2.12.1,<3.0a0' - libgcc-ng: '>=12' - libuuid: '>=2.32.1,<3.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + __glibc: '>=2.17,<3.0.a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libuuid: '>=2.42.2,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.18.3-h4db4eae_1.conda hash: - md5: 0f69b688f52ff6da70bccb7ff7001d1d - sha256: 155d534c9037347ea7439a2c6da7c24ffec8e5dd278889b4c57274a1d91e0a83 + md5: 922776b528a470ab5afa81fd42abfa1d + sha256: 5a3eb10b18a97223ab06b3a7f0d7f56658db2f2800e2f2af95836fe3bf55ba63 category: main optional: false - name: fonts-conda-ecosystem @@ -1664,17 +1966,16 @@ package: category: main optional: false - name: freetype - version: 2.12.1 + version: 2.14.3 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libpng: '>=1.6.39,<1.7.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + libfreetype: 2.14.3 + libfreetype6: 2.14.3 + url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.3-ha770c72_2.conda hash: - md5: 9ae35c3d96db2c94ce0cef86efdfa2cb - sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6 + md5: 2d0ea23b23603e07ca47f23f949f67b6 + sha256: 612a8e0c1a6ecae23da54d81ef395f6ebb5c8e4468ec2611593ebce75876a4e0 category: main optional: false - name: fribidi @@ -1684,13 +1985,28 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_1.conda hash: - md5: f9f81ea472684d75b9dd8d0b328cf655 - sha256: 858283ff33d4c033f4971bf440cebff217d5552a5222ba994c49be990dacd40d + md5: 1cd10eda5692519d01bb20e086e214c9 + sha256: 4846a3ca0402f3fe33ad84ed50ab213c6aafde4a0faef3c5002f6bf753e21671 category: main optional: false -- name: frozenlist +- name: frozendict + version: 2.4.7 + manager: conda + platform: linux-64 + dependencies: + python: '' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/frozendict-2.4.7-py310h99dffb4_2.conda + hash: + md5: 275b5910807ea25d5b677e57b8d9fe41 + sha256: 0730c57a7d1812174d521a662b17565a6031ad9f33e1088c15c8891dca364b52 + category: main + optional: false +- name: frozenlist version: 1.8.0 manager: conda platform: linux-64 @@ -1707,61 +2023,65 @@ package: category: main optional: false - name: fsspec - version: 2026.6.0 + version: 2026.7.0 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.6.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.7.0-pyhd8ed1ab_0.conda hash: - md5: 7d7e6c826ba0743fc491ebee0e7b899c - sha256: fe0156e6d658be3531aad2a99e42e8ad1ee23c69837d469c44c1b6010373913d + md5: b9176565976c773a0739bd83deaf06cc + sha256: 3cd1c985695d8114bdba2a4a38c87e86d633fadd7cfe7a6733ebb3fe807fdc86 category: main optional: false - name: gcc - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - gcc_impl_linux-64: 13.2.0.* - url: https://conda.anaconda.org/conda-forge/linux-64/gcc-13.2.0-hc7bed06_13.conda + conda-gcc-specs: '' + gcc_impl_linux-64: 15.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc-15.3.0-hc6a0c74_4.conda hash: - md5: d1f2f36238e939492cac305cac002822 - sha256: 08e808514d405a2eca50abee89ad10ac8b90dc33beb490b1f1e603f0f7647aba + md5: cd390c3b900677ec6b0fdd729173125d + sha256: f9ee593ac1cbad6633c51c498b0ba8b1da14e6dc22c0cb49a1d158abe8d2cb0f category: main optional: false - name: gcc_impl_linux-64 - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - binutils_impl_linux-64: '>=2.40' - libgcc-devel_linux-64: 13.2.0 - libgcc-ng: '>=13.2.0' - libgomp: '>=13.2.0' - libsanitizer: 13.2.0 - libstdcxx-ng: '>=13.2.0' + binutils_impl_linux-64: '>=2.46.1' + libgcc: '>=15.3.0' + libgcc-devel_linux-64: 15.3.0 + libgomp: '>=15.3.0' + libsanitizer: 15.3.0 + libstdcxx: '>=15.3.0' + libstdcxx-devel_linux-64: 15.3.0 sysroot_linux-64: '' - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.2.0-h9eb54c0_13.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.3.0-h6f13dc8_4.conda hash: - md5: f4eea41f1c9672ac7e9cb8e5ad066855 - sha256: 70323a5ae9e008db7bbf12ac56e5b5ce84ad3c5a7830cdad8a0c4274ec617e04 + md5: b1f9f0b4a4697fd26c1fe3c7a1ac659f + sha256: c7e4915c0c5e8f081e107d50ab6041eab17fbe094108538d614faed354ab8974 category: main optional: false - name: gdk-pixbuf - version: 2.42.12 + version: 2.44.8 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libglib: '>=2.80.2,<3.0a0' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libpng: '>=1.6.43,<1.7.0a0' - libtiff: '>=4.6.0,<4.8.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.12-hb9ae30d_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libjpeg-turbo: '>=3.2.0,<4.0a0' + liblzma: '>=5.8.3,<6.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libtiff: '>=4.7.2,<4.8.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.8-h68053f1_1.conda hash: - md5: 201db6c2d9a3c5e46573ac4cb2e92f4f - sha256: d5283b95a8d49dcd88d29b360d8b38694aaa905d968d156d72ab71d32b38facb + md5: 11adf7fc09b1146a6d91deb65d374456 + sha256: 056fadb57a423c29a965c151422dde75b499cbef6525af87a920e642d60cdbc2 category: main optional: false - name: gengetopt @@ -1777,70 +2097,37 @@ package: sha256: 5162bc8b4342678e44b54eff4bc72e541b4078d80466b715238d3745ac83b9ed category: main optional: false -- name: gettext - version: 0.25.1 +- name: giflib + version: 5.2.2 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - gettext-tools: 0.25.1 - libasprintf: 0.25.1 - libasprintf-devel: 0.25.1 libgcc: '>=14' - libgettextpo: 0.25.1 - libgettextpo-devel: 0.25.1 - libiconv: '>=1.18,<2.0a0' - libstdcxx: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.25.1-h3f43e3d_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-ha257d8a_1.conda hash: - md5: c42356557d7f2e37676e121515417e3b - sha256: cbfa8c80771d1842c2687f6016c5e200b52d4ca8f2cc119f6377f64f899ba4ff + md5: bd7c3a8586ed0101f094962100d30a63 + sha256: 3611c5d605cd56017704e6c01c7bd849e74a656a546d4c49d655fde49ddfeecc category: main optional: false -- name: gettext-tools - version: 0.25.1 +- name: git + version: 2.55.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' + libcurl: '>=8.21.0,<9.0a0' + libexpat: '>=2.8.1,<3.0a0' libgcc: '>=14' libiconv: '>=1.18,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.25.1-h3f43e3d_1.conda - hash: - md5: a59c05d22bdcbb4e984bf0c021a2a02f - sha256: c792729288bdd94f21f25f80802d4c66957b4e00a57f7cb20513f07aadfaff06 - category: main - optional: false -- name: giflib - version: 5.2.2 - manager: conda - platform: linux-64 - dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - hash: - md5: 3bf7b9fd5a7136126e0234db4b87c8b6 - sha256: aac402a8298f0c0cc528664249170372ef6b37ac39fdc92b40601a6aed1e32ff - category: main - optional: false -- name: git - version: 2.45.0 - manager: conda - platform: linux-64 - dependencies: - curl: '' - gettext: '' - libexpat: '>=2.6.2,<3.0a0' - libgcc-ng: '>=12' - libiconv: '>=1.17,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - openssl: '>=3.3.0,<4.0a0' - pcre2: '>=10.43,<10.44.0a0' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + pcre2: '>=10.47,<10.48.0a0' perl: 5.* - url: https://conda.anaconda.org/conda-forge/linux-64/git-2.45.0-pl5321hd39f443_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/git-2.55.0-pl5321h5685339_1.conda hash: - md5: ea9f6bfb9486b37d44b8fcaa7d3ff4de - sha256: cfcc27c8fb8c5b78b02f91ae4bbaeaf5d24952a77426bfe2366cb060041ec2b2 + md5: da325124b01b7b88e7374d160d02698b + sha256: ffe825e3ff78876dc5aa28eee791d8d9be4a47157761aa38dbff79e9222b3b8e category: main optional: false - name: gitdb @@ -1857,46 +2144,46 @@ package: category: main optional: false - name: gitpython - version: 3.1.50 + version: 3.1.61 manager: conda platform: linux-64 dependencies: + python: '' gitdb: '>=4.0.1,<5' - python: '>=3.10' typing_extensions: '>=3.10.0.2' - url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.50-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.61-pyhcf101f3_0.conda hash: - md5: 98958318a01373a615f119b1040b3027 - sha256: 718c9d0cc287ffda978996c4105ddd2863dd7bad7fb5794cdd365bd809ef2fa5 + md5: a4d052a35ae133a5fef5bc34fd337cd8 + sha256: 51cb1c112e47ccda9a0c7850fa5ff7c4eaa8bd65a3f7a81861623b8acff00d9e category: main optional: false -- name: gmp - version: 6.3.0 +- name: glib-tools + version: 2.88.3 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda + libglib: ==2.88.3 + libffi: '' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.88.3-h67ed8a3_2.conda hash: - md5: c94a5994ef49749880a8139cf9afcbe1 - sha256: 309cf4f04fec0c31b6771a5809a1909b4b3154a2208f52351e1ada006f4c750c + md5: 5c35ace78b7d630e77efcb37dacb62ae + sha256: 966f78753d7f044df52a0b32876580ee15f006e8ec960afa5360c50e66be0fc5 category: main optional: false -- name: gnutls - version: 3.7.6 +- name: gmp + version: 6.3.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libidn2: '>=2,<3.0a0' - libstdcxx-ng: '>=12' - libtasn1: '>=4.18.0,<5.0a0' - nettle: '>=3.8,<3.9.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/gnutls-3.7.6-he274497_3.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hfd2156b_3.conda hash: - md5: 0e426f0757c1b486ed2269f65f65a70b - sha256: 5af911eb2494e9ae91b30160930a881600d92fdf7685637fdc29bf1e915c8d81 + md5: 576e32739f323438bf69ab006c21be7b + sha256: f36c336efc874f346a53a9011f67e997f9faac505562cc18c13b6d399cfe61c7 category: main optional: false - name: gperf @@ -1905,12 +2192,12 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - libstdcxx: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/gperf-3.3-hecca717_0.conda + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/gperf-3.3-hd2095e1_1.conda hash: - md5: 3c2fe322a6d9bac2f4626b6319273f77 - sha256: 760df960248973f261d8667c8cb56d72f0658fe8154f76371437ef92b87d88c8 + md5: d25cf4f6fdd251b30e8bef7a859b6437 + sha256: d0cb6e64aad7569533e09aa26df1ad40975e3d534c682eceb8da82248b1cab2c category: main optional: false - name: graphite2 @@ -1919,61 +2206,83 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-hecca717_0.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-h54a6638_1.conda hash: - md5: cf09e9fc938518e91d0706572cadf17a - sha256: 885fa7d1d7e2ad9ed0a700ee0d81ceb49de278253082d517959b22d6336eecce + md5: f9fe2984587fa8235a6af6004760cd18 + sha256: 7fa3b6a9c081fa3e545573152a788d061a0a0ba57df7251cc0f4f75225fc93e7 category: main optional: false - name: graphviz - version: 11.0.0 + version: 14.1.2 manager: conda platform: linux-64 dependencies: - cairo: '>=1.18.0,<2.0a0' + __glibc: '>=2.17,<3.0.a0' + adwaita-icon-theme: '' + cairo: '>=1.18.4,<2.0a0' fonts-conda-ecosystem: '' - gdk-pixbuf: '>=2.42.12,<3.0a0' - gtk2: '' + gdk-pixbuf: '>=2.44.4,<3.0a0' + gtk3: '>=3.24.43,<4.0a0' gts: '>=0.7.6,<0.8.0a0' - libexpat: '>=2.6.2,<3.0a0' - libgcc-ng: '>=12' + libexpat: '>=2.7.3,<3.0a0' + libgcc: '>=14' libgd: '>=2.3.3,<2.4.0a0' - libglib: '>=2.80.2,<3.0a0' - librsvg: '>=2.58.0,<3.0a0' - libstdcxx-ng: '>=12' - libwebp-base: '>=1.4.0,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - pango: '>=1.50.14,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/graphviz-11.0.0-hc68bbd7_0.conda + libglib: '>=2.86.3,<3.0a0' + librsvg: '>=2.60.0,<3.0a0' + libstdcxx: '>=14' + libwebp-base: '>=1.6.0,<2.0a0' + libzlib: '>=1.3.1,<2.0a0' + pango: '>=1.56.4,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.2-h8b86629_0.conda hash: - md5: 52a531ef95358086a56086c45d97ab75 - sha256: 7e7ca0901c0d2de455718ec7a0974e2091c38e608f90a4ba98084e4902d93c17 + md5: 341fc61cfe8efa5c72d24db56c776f44 + sha256: 48d4aae8d2f7dd038b8c2b6a1b68b7bca13fa6b374b78c09fcc0757fa21234a1 category: main optional: false -- name: gtk2 - version: 2.24.33 +- name: gtk3 + version: 3.24.52 manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' + at-spi2-atk: '>=2.38.0,<3.0a0' atk-1.0: '>=2.38.0' - cairo: '>=1.18.0,<2.0a0' - fontconfig: '>=2.14.2,<3.0a0' + cairo: '>=1.18.4,<2.0a0' + epoxy: '>=1.5.10,<1.6.0a0' + fontconfig: '>=2.17.1,<3.0a0' fonts-conda-ecosystem: '' - freetype: '>=2.12.1,<3.0a0' - gdk-pixbuf: '>=2.42.10,<3.0a0' - harfbuzz: '>=8.3.0' - libgcc-ng: '>=12' - libglib: '>=2.78.4,<3.0a0' - pango: '>=1.50.14,<2.0a0' - xorg-libx11: '>=1.8.7,<2.0a0' - xorg-libxext: '>=1.3.4,<2.0a0' - xorg-libxrender: '>=0.9.11,<0.10.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h280cfa0_4.conda - hash: - md5: 410f86e58e880dcc7b0e910a8e89c05c - sha256: b946ba60d177d72157cad8af51723f1d081a4794741d35debe53f8b2c807f3af + fribidi: '>=1.0.16,<2.0a0' + gdk-pixbuf: '>=2.44.5,<3.0a0' + glib-tools: '' + harfbuzz: '>=13.2.1' + hicolor-icon-theme: '' + libcups: '>=2.3.3,<3.0a0' + libexpat: '>=2.7.4,<3.0a0' + libfreetype: '>=2.14.2' + libfreetype6: '>=2.14.2' + libgcc: '>=14' + libglib: '>=2.86.4,<3.0a0' + liblzma: '>=5.8.2,<6.0a0' + libxkbcommon: '>=1.13.1,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + pango: '>=1.56.4,<2.0a0' + wayland: '>=1.25.0,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxcomposite: '>=0.4.7,<1.0a0' + xorg-libxcursor: '>=1.2.3,<2.0a0' + xorg-libxdamage: '>=1.1.6,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxfixes: '>=6.0.2,<7.0a0' + xorg-libxi: '>=1.8.2,<2.0a0' + xorg-libxinerama: '>=1.1.6,<1.2.0a0' + xorg-libxrandr: '>=1.5.5,<2.0a0' + xorg-libxrender: '>=0.9.12,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.52-ha5ea40c_0.conda + hash: + md5: bcaea22d85999a4f17918acfab877e61 + sha256: c6bb4f06331bcb0a566d84e0f0fad7af4b9035a03b13e2d5ecfaf13be57e6e10 category: main optional: false - name: gts @@ -1991,30 +2300,32 @@ package: category: main optional: false - name: gxx - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - gcc: 13.2.0.* - gxx_impl_linux-64: 13.2.0.* - url: https://conda.anaconda.org/conda-forge/linux-64/gxx-13.2.0-hc7bed06_13.conda + conda-gcc-specs: '' + gcc: 15.3.0 + gxx_impl_linux-64: 15.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx-15.3.0-hc6a0c74_4.conda hash: - md5: ac9f9104e162d715e3f8d07ad5c587f8 - sha256: e50d45945a1ecfa706ec49abd74f1de7fa8c20df3b164ab59f97ff8a40633642 + md5: 2264c7beb16d977423e8ebd69f44be88 + sha256: 9ea6ca0830d8fe8ede308b4ab3f206f3504c422f7155981e13f2eca56a5ef9e8 category: main optional: false - name: gxx_impl_linux-64 - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: - gcc_impl_linux-64: 13.2.0 - libstdcxx-devel_linux-64: 13.2.0 + gcc_impl_linux-64: 15.3.0 + libstdcxx-devel_linux-64: 15.3.0 sysroot_linux-64: '' - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.2.0-h2a599c4_13.conda + tzdata: '' + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-15.3.0-h90d9265_4.conda hash: - md5: 101ce6af607c3e55a44cf8d6602fb3d8 - sha256: d2db1519fbeddd699f92d0488d5bff272cf688061b0076ee44052c95a0a102c6 + md5: 9a6fbf3da4dd624b8382e096bbca10f4 + sha256: 2b18349ad16f4be8dd9f2afa58d4ab7b9014fc543326ddecd59db215c6dc721d category: main optional: false - name: gzip @@ -2043,22 +2354,53 @@ package: sha256: 96cac6573fd35ae151f4d6979bab6fbc90cb6b1fb99054ba19eb075da9822fcb category: main optional: false +- name: h2 + version: 4.4.1 + manager: conda + platform: linux-64 + dependencies: + python: '' + hyperframe: '>=6.1,<7' + hpack: '>=4.2,<5' + url: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + hash: + md5: e652ac7756069c456d0da2a922cd7df5 + sha256: 307dd6ec90140c3cf4171071b0e5e870abec314f4565c1edd5bc433e942cdcc0 + category: main + optional: false - name: harfbuzz - version: 9.0.0 + version: 14.4.0 manager: conda platform: linux-64 dependencies: - cairo: '>=1.18.0,<2.0a0' - freetype: '>=2.12.1,<3.0a0' - graphite2: '' - icu: '>=73.2,<74.0a0' - libgcc-ng: '>=12' - libglib: '>=2.80.2,<3.0a0' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hfac3d4d_0.conda + libharfbuzz-devel: 14.4.0 + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-14.4.0-ha770c72_0.conda + hash: + md5: c2d4a4fe3216b26ef30e91d917c1b718 + sha256: 78cf9cedd013ba49455b2c75e95d2cdc4aafd384be8f9ece0def6ff1b2a86c61 + category: main + optional: false +- name: hicolor-icon-theme + version: '0.17' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/hicolor-icon-theme-0.17-ha770c72_3.conda + hash: + md5: 129e404c5b001f3ef5581316971e3ea0 + sha256: 6d7e6e1286cb521059fe69696705100a03b006efb914ffe82a2ae97ecbae66b7 + category: main + optional: false +- name: hpack + version: 4.2.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda hash: - md5: c7b47c64af53e8ecee01d101eeab2342 - sha256: 5854e5ac2d3399ef30b59f15045c19fa5f0bab94d116bd75cac4d05181543dc3 + md5: b395909221b9bd1df066e5930e18855b + sha256: fdcea5d7cb314485d3907192ef024c704311548c5b0cbeb390cd1951051e29d2 category: main optional: false - name: html5lib @@ -2075,6 +2417,39 @@ package: sha256: 8027e436ad59e2a7392f6036392ef9d6c223798d8a1f4f12d5926362def02367 category: main optional: false +- name: httpcore + version: 1.0.9 + manager: conda + platform: linux-64 + dependencies: + python: '' + h11: '>=0.16' + h2: '>=3,<5' + sniffio: 1.* + anyio: '>=4.0,<5.0' + certifi: '' + url: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda + hash: + md5: 4f14640d58e2cc0aa0819d9d8ba125bb + sha256: 04d49cb3c42714ce533a8553986e1642d0549a05dc5cc48e0d43ff5be6679a5b + category: main + optional: false +- name: httpx + version: 0.28.1 + manager: conda + platform: linux-64 + dependencies: + anyio: '' + certifi: '' + httpcore: 1.* + idna: '' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda + hash: + md5: d6989ead454181f4f9bc987d3dc4e285 + sha256: cd0f1de3697b252df95f98383e9edb1d00386bfdd03fdf607fa42fe5fcb09950 + category: main + optional: false - name: humanfriendly version: '10.0' manager: conda @@ -2088,54 +2463,67 @@ package: sha256: fa2071da7fab758c669e78227e6094f6b3608228740808a6de5d6bce83d9e52d category: main optional: false +- name: hyperframe + version: 6.1.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + hash: + md5: 8e6923fc12f1fe8f8c4e5c9f343256ac + sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 + category: main + optional: false - name: icu - version: '73.2' + version: '78.3' manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=14' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-py310h44b86e0_2.conda hash: - md5: cc47e1facc155f91abd89b11e48e72ff - sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 + md5: 72a381cbad04f24b1c2a43ef707f45b4 + sha256: 9f07834f0c546ab14d885ce0366285f61f44e326c0edd1fc63b8294e113ae432 category: main optional: false - name: idna - version: '3.18' + version: '3.19' manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/idna-3.18-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda hash: - md5: 577b04680ae422adb86fc60d7b940659 - sha256: c75632ea624aa450a394f570749420c5a2e0997d0216bc29d5d45b0f39df0426 + md5: a39ae05027e9b707742e41b30d296b75 + sha256: 1c35a59c1545ad0fdaddf1fbde7bcfa6ef41a8d68c3a2b0b4a291be00676163e category: main optional: false - name: imagesize - version: 2.0.0 + version: 2.0.1 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/imagesize-2.0.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/imagesize-2.0.1-pyhd8ed1ab_0.conda hash: - md5: 92617c2ba2847cca7a6ed813b6f4ab79 - sha256: 5a047f9eac290e679b4e6f6f4cbfcc5acdfbf031a4f06824d4ddb590cdbb850b + md5: ebc56022e4ef7e74a829be94c53797ca + sha256: 4e787f9ccc31053ccea56d98ecd284a4f788988a3f9c4627db72fdd0b127529b category: main optional: false - name: importlib-metadata - version: 9.0.0 + version: 9.0.1 manager: conda platform: linux-64 dependencies: python: '' zipp: '>=3.20' - url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.1-pyhcf101f3_0.conda hash: - md5: ffc17e785d64e12fc311af9184221839 - sha256: 43e2a5497cad1598ff88a3e69f69bc88b7b8f141fa63c60eab5db296317318b8 + md5: 77ec68e0aa61c3fff9ecbf840f93d64e + sha256: 95a074a7d3f58b3494c068d4789c364dcb591c56b70ca6b12f149a540f9aeea4 category: main optional: false - name: importlib_resources @@ -2175,6 +2563,19 @@ package: sha256: 1684b7b16eec08efef5302ce298c606b163c18272b69a62b666fbaa61516f170 category: main optional: false +- name: jansson + version: 2.15.1 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/jansson-2.15.1-h280c20c_0.conda + hash: + md5: 3ddeaf8ad65dd9bc7ecc95f65ae1dff7 + sha256: e138c68824c8661e55f3184c489fe1db425c06ffae1a37edc780bcb92cde9058 + category: main + optional: false - name: jaraco.classes version: 3.4.0 manager: conda @@ -2202,16 +2603,16 @@ package: category: main optional: false - name: jaraco.functools - version: 4.5.0 + version: 4.6.0 manager: conda platform: linux-64 dependencies: python: '' more-itertools: '' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.5.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.6.0-pyhcf101f3_0.conda hash: - md5: 8e33f6f90e5de5efd971840c7634d954 - sha256: 8bc317fe1e93dec7350b460f7b4e82ea9c3d157c278219bfc6a95b7a51007fdd + md5: 8665b873062a31a90b563bf493f9fb2c + sha256: d23b9e8e8d5968699ec2bc9f8d182598e86e494dbe8a3a71b4a53b1be9a3cb16 category: main optional: false - name: jeepney @@ -2272,10 +2673,10 @@ package: oniguruma: '>=6.9.10,<6.10.0a0' libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_1.conda hash: - md5: e246309d3884a2b8a4cde89d17f4a1a3 - sha256: 74d0a62d64cbe84a916ab437f71c61bf113b29a2b75e80cb5cc440626eef947e + md5: 6ec056e539486e84f0c7acef6b5863f9 + sha256: f14c52155ba14ccb41fdd6f71d74b21153c35e131185434da7334cf25b3eef46 category: main optional: false - name: jsondiff @@ -2301,10 +2702,10 @@ package: python: '' referencing: '>=0.28.4' rpds-py: '>=0.25.0' - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_1.conda hash: - md5: ada41c863af263cc4c5fcbaff7c3e4dc - sha256: db973a37d75db8e19b5f44bbbdaead0c68dde745407f281e2a7fe4db74ec51d7 + md5: 204b5ca91eba7738790ecc333facbbbe + sha256: 328756a4555941d57af4a5f553e5d8598e9f3b37db028f557e30f9f0b3086db6 category: main optional: false - name: jsonschema-path @@ -2374,43 +2775,44 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-h7cc23a3_1.conda hash: - md5: b38117a3c920364aff79f870c984b4a3 - sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 + md5: ba55d1b89fd7775e67de8291029b4059 + sha256: dd053c96dcb0dcfd59422aefea9d2fe937a190167f34fba7893ec1e10a7e8963 category: main optional: false - name: kiwisolver - version: 1.5.0 + version: 1.5.1 manager: conda platform: linux-64 dependencies: python: '' - libstdcxx: '>=14' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.0-py310haaf941d_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.1-py310he417ec5_0.conda hash: - md5: 8993ab7e5dce89147288dd78686e790c - sha256: 44312f8b881a4c77af4be198c8e2e2022e406f58314191c31be8e172382ecdf7 + md5: cabf97abf572041a7f7bf38b45c88ad6 + sha256: b40a191ac761b629805db4ff9d6ac5bdaeaebfb9eb38af7329f8b449d7c6d8c9 category: main optional: false - name: krb5 - version: 1.20.1 + version: 1.22.2 manager: conda platform: linux-64 dependencies: - keyutils: '>=1.6.1,<2.0a0' - libedit: '>=3.1.20191231,<4.0a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - openssl: '>=3.0.7,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.20.1-h81ceb04_0.conda + __glibc: '>=2.17,<3.0.a0' + keyutils: '>=1.6.3,<2.0a0' + libedit: '>=3.1.20250104,<4.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-hbc21106_2.conda hash: - md5: 89a41adce7106749573d883b2f657d78 - sha256: 51a346807ce981e1450eb04c3566415b05eed705bc9e6c98c198ec62367b7c62 + md5: 53318d715316929a574f83591308b1f8 + sha256: 2a5c38c85e63df84c4e69ee71439841ce570d259ae3060627bb9a49a938d66f4 category: main optional: false - name: lazy-object-proxy @@ -2418,116 +2820,92 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - python: '>=3.10,<3.11.0a0' + libgcc: '>=15' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/lazy-object-proxy-1.12.0-py310h7c4b9e2_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/lazy-object-proxy-1.12.0-py310h83e8816_4.conda hash: - md5: cf5c0102b90b2458b990c9874bf9bdcf - sha256: 9f4a21af3fc7c4c24eb6ea96e0a3ebf94c17afcc283f9c839074249b0b44168c + md5: 06795dfbf2800c956f54b993e220787e + sha256: b45a34cb357f09b082c87eaec808c37aa11be80e25420172673872a0f3f9bffc category: main optional: false - name: lcms2 - version: '2.16' + version: 2.19.1 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libtiff: '>=4.6.0,<4.8.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libjpeg-turbo: '>=3.2.0,<4.0a0' + libtiff: '>=4.7.2,<4.8.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.19.1-h9073bf1_2.conda hash: - md5: 51bb7010fc86f70eee639b4bb7a894f5 - sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 + md5: b68c7304d2edb0f1a5bdfb875094d603 + sha256: 8cdec1ff3f276cd2069dca0dae4f45f3dc5c224e2d72daef78227832938467a6 category: main optional: false - name: ld_impl_linux-64 - version: 2.45.1 + version: 2.46.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-bootstrap_ha15bf96_2.conda + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_102.conda hash: - md5: bafc61899c34054d1f5e7cd85a2f81e9 - sha256: ffc8fb61b32f421687a35b1b6bdd7e73278da0ea1a0d616b624eb3760ed21742 + md5: 449500f2c089da11c40f5c21312e3e07 + sha256: 27d83f1188cd19bcb7754a078b3fa7f4cfb8527f8eb2fde54dd01fc529d1adec category: main optional: false - name: lerc - version: 4.1.0 + version: 4.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' libstdcxx: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.1.0-hdb68285_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.2.0-hdb68285_0.conda hash: - md5: a752488c68f2e7c456bcbd8f16eec275 - sha256: f84cb54782f7e9cea95e810ea8fef186e0652d0fa73d3009914fa2c1262594e1 + md5: fb9d356b1a57d6d54768be7ebd5fce09 + sha256: bf9fdebf55d8bc99d83531cdffda00703f4dc5f93a1a956768c147362c72feda category: main optional: false - name: libabseil - version: '20240116.2' - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_he02047a_1.conda - hash: - md5: c48fc56ec03229f294176923c3265c05 - sha256: 945396726cadae174a661ce006e3f74d71dbd719219faf7cc74696b267f7b0b5 - category: main - optional: false -- name: libarchive - version: 3.5.2 - manager: conda - platform: linux-64 - dependencies: - bzip2: '>=1.0.8,<2.0a0' - libgcc-ng: '>=12' - libxml2: '>=2.9.14,<2.14.0a0' - libzlib: '>=1.2.12,<2.0.0a0' - lz4-c: '>=1.9.3,<1.10.0a0' - lzo: '>=2.10,<3.0a0' - openssl: '>=3.0.3,<4.0a0' - xz: '>=5.2.5,<6.0.0a0' - zstd: '>=1.5.2,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.5.2-hada088e_3.tar.bz2 - hash: - md5: c0c3973a9f2df3e1a408e3205d86a88d - sha256: b67ff7262422ef04bfa1056c5ef10eba4d64773f40bb34314e0d492f58e726e7 - category: main - optional: false -- name: libasprintf - version: 0.25.1 + version: '20260526.0' manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' libstdcxx: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.25.1-h3f43e3d_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20260526.0-cxx17_h0dc7533_2.conda hash: - md5: 3b0d184bc9404516d418d4509e418bdc - sha256: cb728a2a95557bb6a5184be2b8be83a6f2083000d0c7eff4ad5bbe5792133541 + md5: 6983bfe8e09992014b9cf393769c7a84 + sha256: 7bb3d495411b7059e85225aae500d84e7846a4bb02ebd77e4450200b20c180f0 category: main optional: false -- name: libasprintf-devel - version: 0.25.1 +- name: libarchive + version: 3.8.9 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libasprintf: 0.25.1 - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.25.1-h3f43e3d_1.conda + bzip2: '>=1.0.8,<2.0a0' + libgcc: '>=15' + liblzma: '>=5.8.3,<6.0a0' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + lz4-c: '>=1.10.0,<1.11.0a0' + lzo: '>=2.10,<3.0a0' + openssl: '>=3.5.7,<4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.8.9-gpl_h3152399_101.conda hash: - md5: fd9cf4a11d07f0ef3e44fc061611b1ed - sha256: 2fc95060efc3d76547b7872875af0b7212d4b1407165be11c5f830aeeb57fc3a + md5: 680520cff78a974d564cd99cdf5ec0b5 + sha256: bfae027a67d02325cd6b75edd60beb67cf24483af9df0ae9ef74d4438e41c806 category: main optional: false - name: libblas @@ -2535,11 +2913,11 @@ package: manager: conda platform: linux-64 dependencies: - libopenblas: '>=0.3.33,<1.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-8_h4a7cf45_openblas.conda + libopenblas: '>=0.3.34,<1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-10_h4a7cf45_openblas.conda hash: - md5: 00fc660ab1b2f5ca07e92b4900d10c79 - sha256: b2da6bfd72a1c9cb143ccf64bf5b28790cb4eb58bd1cb978f6537b2322f7d48b + md5: e2ca3eadd889d39b4e4b6b1ecc671816 + sha256: 3b0600d79b16cc868421adbba03364ba59d2a3c088c79eef678f4a0b43fc7c07 category: main optional: false - name: libbrotlicommon @@ -2548,11 +2926,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-h39a168f_3.conda hash: - md5: 72c8fd1af66bd67bf580645b426513ed - sha256: 318f36bd49ca8ad85e6478bd8506c88d82454cc008c1ac1c6bf00a3c42fa610e + md5: 7a2499a177753582fb7ae7e9dc4a908a + sha256: e5864f257f839ffc27d681659bac95901f524f602b9121e5dcc5e2df18437f2d category: main optional: false - name: libbrotlidec @@ -2562,11 +2940,11 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libbrotlicommon: 1.2.0 - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-ha411449_3.conda hash: - md5: 366b40a69f0ad6072561c1d09301c886 - sha256: 12fff21d38f98bc446d82baa890e01fd82e3b750378fedc720ff93522ffb752b + md5: 6ab3315dc56618d652c1da42a648a129 + sha256: dad31b6d104973deb89710929a35651033aad692d4e7793cdb5b786a9bd54678 category: main optional: false - name: libbrotlienc @@ -2576,11 +2954,11 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libbrotlicommon: 1.2.0 - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-h018ffa1_3.conda hash: - md5: 4ffbb341c8b616aa2494b6afb26a0c5f - sha256: a0c15c79997820bbd3fbc8ecf146f4fe0eca36cc60b62b63ac6cf78857f1dd0d + md5: 2ac965638d4c6b2b38383bb1aebaf543 + sha256: d37124d0f51816e7d5e3a94bfc9ed3d6174d077f9b4f832d20c5a08b52bebf1f category: main optional: false - name: libcblas @@ -2589,38 +2967,49 @@ package: platform: linux-64 dependencies: libblas: 3.11.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-8_h0358290_openblas.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-10_h0358290_openblas.conda hash: - md5: 33a413f1095f8325e5c30fde3b0d2445 - sha256: 1a2bc77bb26520255904a3d9b1f40e6bf0bf9d8d3405c7709dd162282820915a + md5: a275bd95aa4e22c24120bf6ece6eb056 + sha256: 90fd992748d501f6efe2b8310aa81f5ee4a63629450dd88e851ba4ab757f3c3a category: main optional: false -- name: libclang-cpp18.1 - version: 18.1.7 +- name: libclang-cpp23.1 + version: 23.1.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libllvm18: '>=18.1.7,<18.2.0a0' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp18.1-18.1.7-default_h9bb3924_0.conda + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp23.1-23.1.0-default_h0acdd01_1.conda hash: - md5: bff3d36fbd1b1a2f1e6d34aa3eb6b58c - sha256: 710556634edf342cbfcb01d454e8644d4a0ac674eed0a9aebfc1fe86ea8c0bf6 + md5: d3ba2947f7d7cdd7c4eb73b206de330b + sha256: ff0507777b9d5ff5678466516d2f1793361ecef541114fb6f3cabb91fc7d5b3c category: main optional: false - name: libclang13 - version: 18.1.7 + version: 23.1.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libllvm18: '>=18.1.7,<18.2.0a0' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.7-default_h087397f_0.conda + libclang-cpp23.1: ==23.1.0 + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-23.1.0-default_h7855034_1.conda hash: - md5: 536526073c2e7f9056fdce8584da779e - sha256: d981a2734c3af6217dd42c1bccc13b99fc3ca5a64c379739612d6cf67f992a1d + md5: 6afb92887568acc8f18281c57c92c28b + sha256: 1c7589a69833294ab79e5b239d4d70c8c6af68b745a5c17344319d088d884bb0 category: main optional: false - name: libcups @@ -2628,32 +3017,35 @@ package: manager: conda platform: linux-64 dependencies: - krb5: '>=1.20.1,<1.21.0a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h36d4200_3.conda + __glibc: '>=2.17,<3.0.a0' + krb5: '>=1.22.2,<1.23.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + libzlib: '>=1.3.1,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h7a8fb5f_6.conda hash: - md5: c9f4416a34bc91e0eb029f912c68f81f - sha256: 0ccd610207807f53328f137b2adc99c413f8e1dcd1302f0325412796a94eaaf7 + md5: 49c553b47ff679a6a1e9fc80b9c5a2d4 + sha256: 205c4f19550f3647832ec44e35e6d93c8c206782bdd620c1d7cf66237580ff9c category: main optional: false - name: libcurl - version: 7.88.1 + version: 8.22.0 manager: conda platform: linux-64 dependencies: - krb5: '>=1.20.1,<1.21.0a0' - libgcc-ng: '>=12' - libnghttp2: '>=1.52.0,<2.0a0' - libssh2: '>=1.10.0,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - openssl: '>=3.1.0,<4.0a0' - zstd: '>=1.5.2,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.88.1-hdc1c0ab_1.conda + __glibc: '>=2.17,<3.0.a0' + krb5: '>=1.22.2,<1.23.0a0' + libgcc: '>=15' + libnghttp2: '>=1.68.1,<2.0a0' + libpsl: '>=0.23.1,<0.24.0a0' + libssh2: '>=1.11.1,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.8,<4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.22.0-ha042cf0_0.conda hash: - md5: 3d1189864d1c0ed2a5919cb067b5903d - sha256: 500c08e61871df6dc4fc87913c99cb799f5fa8333db991201be32b657e9dcdb1 + md5: e617deee7af8eb0c04f6296d12b54157 + sha256: 483b7eb97f56fbb3a9cb7190d33012dfa0a5aaed99ede61465563cd97dd82504 category: main optional: false - name: libdeflate @@ -2663,39 +3055,55 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.25-h17f619e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.25-hd45a770_1.conda hash: - md5: 6c77a605a7a689d17d4819c0f8ac9a00 - sha256: aa8e8c4be9a2e81610ddf574e05b64ee131fab5e0e3693210c9d6d2fba32c680 + md5: 40f9b31aa9cf007789867df0decd0492 + sha256: 82e134c8a08b1eed9a2ed8ab578b89aa1730dcde3dea8dd87645ed0637878e54 + category: main + optional: false +- name: libdrm + version: 2.4.129 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libpciaccess: '>=0.19,<0.20.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.129-h7cc23a3_0.conda + hash: + md5: 64cc91512b6278c315349dc13c53f680 + sha256: ea46b0ca0fa16af1f8b329b740e6cd8b4577c5378fa8717b28a885f70668633d category: main optional: false - name: libdwarf - version: 0.0.0.20190110_28_ga81397fc4 + version: 2.1.0 manager: conda platform: linux-64 dependencies: - elfutils: '>=0.187,<0.188.0a0' - libgcc-ng: '>=12' - libzlib: '>=1.2.12,<1.3.0a0' - url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libzlib: '>=1.3.1,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libdwarf-2.1.0-h43af8da_1.conda hash: - md5: 5b3ed39ee3809d63d347b649de0a45f8 - sha256: '' + md5: 1c886d94b2c8d1818f823ffa87ef36fd + sha256: 78d024db4f2d10de2fc74e4dc7a0284f86dab48e656ee6b9aaf6754e1327e842 category: main optional: false - name: libdwarf-dev - version: 0.0.0.20190110_28_ga81397fc4 + version: 2.1.0 manager: conda platform: linux-64 dependencies: - elfutils: '>=0.187,<0.188.0a0' - libdwarf: 0.0.0.20190110_28_ga81397fc4 - libgcc-ng: '>=12' - libzlib: '>=1.2.12,<1.3.0a0' - url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-dev-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libdwarf: 2.1.0 + libgcc: '>=14' + libzlib: '>=1.3.1,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libdwarf-dev-2.1.0-h43af8da_1.conda hash: - md5: 899c511688e6c41cb51c2921a8d25e63 - sha256: '' + md5: c08d232e264f7689ece98d0447ee1a12 + sha256: a28f337e2ed8619cda9e725b32a495d05cedc6a6bc49b13b651c0bcafb1024b9 category: main optional: false - name: libedit @@ -2703,13 +3111,41 @@ package: manager: conda platform: linux-64 dependencies: - ncurses: '>=6.5,<7.0a0' + ncurses: '>=6.6,<7.0a0' + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h373387f_1.conda + hash: + md5: 50708d3b951d0f8e2d7f2df5b5edc040 + sha256: 6473eb8caf2aae830f37caa93db9b26dddf7ac84b63229e8bf7fc0e5c3ab95b0 + category: main + optional: false +- name: libegl + version: 1.7.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libglvnd: 1.7.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libegl-1.7.0-ha4b6fd6_5.conda + hash: + md5: 3a1b41c4591a0a1734382af3e2b8bc08 + sha256: 13d3fde9c1dcf254968cc70652222a43f25d04e69555ccf855553110e753288e + category: main + optional: false +- name: libegl-devel + version: 1.7.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libegl: 1.7.0 + libgl-devel: 1.7.0 + xorg-libx11: '' + url: https://conda.anaconda.org/conda-forge/linux-64/libegl-devel-1.7.0-ha4b6fd6_5.conda hash: - md5: c277e0a4d549b03ac1e9d6cbbe3d017b - sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 + md5: 577800fc8c9d8b7d9727246bbfde704e + sha256: fd2794bbcff7e692fb476c17886702702893d074071d429217bad7cfb072abfd category: main optional: false - name: libev @@ -2717,11 +3153,12 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h280c20c_3.conda hash: - md5: 172bf1cd1ff8629f2b1179945ed45055 - sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 + md5: 7bc31538d6e3fb349e897353969237ec + sha256: e4418f68d01a6307c4431b585c71b584f40189877364e542ee87deb777f5e85b category: main optional: false - name: libexpat @@ -2752,273 +3189,331 @@ package: category: main optional: false - name: libffi - version: 3.5.2 + version: 3.7.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda + hash: + md5: 6525a0b06aa4fd390795f0740636a9dd + sha256: c8c7583ef063bc3c430f1d48298e5ad24f796a35c22ed5b14183325825a61106 + category: main + optional: false +- name: libfreetype + version: 2.14.3 + manager: conda + platform: linux-64 + dependencies: + libfreetype6: '>=2.14.3' + url: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.14.3-ha770c72_2.conda + hash: + md5: f8054e759d0ddddaf34a5c8fedc900a1 + sha256: fb12ecb46c30d18d928c0e8fc346ab13b5f6fc8a9cacae4f2f4bb188782586f5 + category: main + optional: false +- name: libfreetype6 + version: 2.14.3 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libpng: '>=1.6.58,<1.7.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.3-h5e6c136_2.conda hash: - md5: a360c33a5abe61c07959e449fa1453eb - sha256: 31f19b6a88ce40ebc0d5a992c131f57d919f73c0b92cd1617a5bec83f6e961e6 + md5: b72a266a9317036fd0464cb98b027cd0 + sha256: ec607dd5445dd17ff6bf8b7fe6832e5504c226dd91d3aaea7ba83569808b0ce4 category: main optional: false - name: libgcc - version: 15.2.0 + version: 16.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' _openmp_mutex: '>=4.5' - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_4.conda hash: - md5: 57736f29cc2b0ec0b6c2952d3f101b6a - sha256: 8e0a3b5e41272e5678499b5dfc4cddb673f9e935de01eb0767ce857001229f46 + md5: cba14d01083fc62ffd32c24d7d390633 + sha256: 24090e675d34403b4ee1cd4372d8f6c0937da7ecfd66a19a57cac2ed0f4ea793 category: main optional: false - name: libgcc-devel_linux-64 - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.2.0-hdb50d1a_113.conda + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.3.0-h2b852eb_104.conda hash: - md5: d6d21b86a77a173376d23567d11b4373 - sha256: 0f6ea238e24900365a98e58b544eca071e92f5b19115a6e3b1778de3d942c657 + md5: b206066f9a3900bf869ac1a964686c9c + sha256: 83221295f52a5ac410f092b4fe1415052b8542f76ddf9ee9949a3571d19e1d43 category: main optional: false - name: libgcc-ng - version: 15.2.0 + version: 16.2.0 manager: conda platform: linux-64 dependencies: - libgcc: 15.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_19.conda + libgcc: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-16.2.0-h69a702a_4.conda hash: - md5: 331ee9b72b9dff570d56b1302c5ab37d - sha256: 9dcf54adfaa5e861123c2da4f2f0451a685464ea7e5a41ad91cf67b31d658d98 + md5: b3e52878163a841f6fb951989cc0b217 + sha256: d8e66c14e23f2b3c70410cff5979d9d357e6edfb990b28d8e630852f4d395629 category: main optional: false -- name: libgcrypt +- name: libgcrypt-lib version: 1.12.2 manager: conda platform: linux-64 dependencies: - libgcrypt-devel: 1.12.2 - libgcrypt-lib: 1.12.2 - libgcrypt-tools: 1.12.2 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.12.2-ha770c72_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libgpg-error: '>=1.61,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-lib-1.12.2-h7cc23a3_2.conda hash: - md5: 0a6b81df106bed99015c35a112f4a662 - sha256: a98425d866a1aa56042d24ff453d2df0ff0b0bb1ef9a77e54dcc82f6f8e0510b + md5: d41f64fd667061c0fe8524f2c878ae93 + sha256: a67e7b569f08459fbd62619cbbc14a0e2da9d9e519feb11ee035bb31c653d1a9 category: main optional: false -- name: libgcrypt-devel - version: 1.12.2 +- name: libgd + version: 2.3.3 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' + fontconfig: '>=2.15.0,<3.0a0' + fonts-conda-ecosystem: '' + icu: '>=78.1,<79.0a0' + libexpat: '>=2.7.3,<3.0a0' + libfreetype: '>=2.14.1' + libfreetype6: '>=2.14.1' libgcc: '>=14' - libgcrypt-lib: 1.12.2 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-devel-1.12.2-hb03c661_0.conda + libjpeg-turbo: '>=3.1.2,<4.0a0' + libpng: '>=1.6.53,<1.7.0a0' + libtiff: '>=4.7.1,<4.8.0a0' + libwebp-base: '>=1.6.0,<2.0a0' + libzlib: '>=1.3.1,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h5fbf134_12.conda hash: - md5: d568597317da07615072fb2573a8ac61 - sha256: 7128f96ebc18fb1ca51b0ef55a18570eb5fff28bb24c0b20a8eb09f95f212aeb + md5: 88c1c66987cd52a712eea89c27104be6 + sha256: 245be793e831170504f36213134f4c24eedaf39e634679809fd5391ad214480b category: main optional: false -- name: libgcrypt-lib - version: 1.12.2 +- name: libgfortran + version: 16.2.0 + manager: conda + platform: linux-64 + dependencies: + libgfortran5: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-16.2.0-h69a702a_4.conda + hash: + md5: 5e92b8413fd1c8f8f3006f4661b12def + sha256: 7653be4d88a4d74676c38dd892914d027dcecc0c65c406be772d31cb641f8cfd + category: main + optional: false +- name: libgfortran5 + version: 16.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - libgpg-error: '>=1.61,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-lib-1.12.2-hb03c661_0.conda + libgcc: '>=16.2.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-16.2.0-h6b99dfc_4.conda hash: - md5: 02d1c2751ad5cf488e53d69884e60313 - sha256: 9779af09721826ebd0217f507e03dfa09df899483d8f129116ae38b374c6788b + md5: c22348a769bb072b6184eb6f7f05e4f2 + sha256: a5510cbcea3b9e9ab24b336429de997fa727af1dba323031500a962a20e38600 category: main optional: false -- name: libgcrypt-tools - version: 1.12.2 +- name: libgirepository + version: 1.86.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - libgcrypt-lib: 1.12.2 - libgpg-error: '>=1.61,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-tools-1.12.2-hb03c661_0.conda + cairo: '>=1.18.4,<2.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgirepository-1.86.0-h6d5faa7_2.conda hash: - md5: c8c10d4b34512c546be3b2965734c40c - sha256: 9c7deb5e609dfb6ebf1eb327081c31b5bad7ab380176910759a46951c64c9c5d + md5: d5653bb7e56164853b626ff90f85eb3d + sha256: d1be4b13fcf50e76bcefa80030c2f93319fc1d78d9083c319d30797a9c3857ea category: main optional: false -- name: libgd - version: 2.3.3 +- name: libgl + version: 1.7.0 manager: conda platform: linux-64 dependencies: - expat: '' - fontconfig: '>=2.14.2,<3.0a0' - fonts-conda-ecosystem: '' - freetype: '>=2.12.1,<3.0a0' - icu: '>=73.2,<74.0a0' - libexpat: '>=2.5.0,<3.0a0' - libgcc-ng: '>=12' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libpng: '>=1.6.39,<1.7.0a0' - libtiff: '>=4.6.0,<4.8.0a0' - libwebp: '' - libwebp-base: '>=1.3.2,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - zlib: '' - url: https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h119a65a_9.conda + __glibc: '>=2.17,<3.0.a0' + libglvnd: 1.7.0 + libglx: 1.7.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_5.conda hash: - md5: cfebc557e54905dadc355c0e9f003004 - sha256: b74f95a6e1f3b31a74741b39cba83ed99fc82d17243c0fd3b5ab16ddd48ab89d + md5: 81141db127a106eb5a91df69a29c9918 + sha256: 7b2e7e31e8a4f5a01c45ecadcd8aa68c8f733b035240bc7ba9881835ef4bf7b4 category: main optional: false -- name: libgettextpo - version: 0.25.1 +- name: libgl-devel + version: 1.7.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - libiconv: '>=1.18,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.25.1-h3f43e3d_1.conda + libgl: 1.7.0 + libglx-devel: 1.7.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libgl-devel-1.7.0-ha4b6fd6_5.conda hash: - md5: 2f4de899028319b27eb7a4023be5dfd2 - sha256: 50a9e9815cf3f5bce1b8c5161c0899cc5b6c6052d6d73a4c27f749119e607100 + md5: f5f7fc038c611a25b22758c0a40d25c9 + sha256: 3bebdbeb3ce451287794dddd5cc4d7f4970aac200b2fb797f0d17ac727a71cb7 category: main optional: false -- name: libgettextpo-devel - version: 0.25.1 +- name: libglib + version: 2.88.3 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - libgettextpo: 0.25.1 + libgcc: '>=15' + pcre2: '>=10.47,<10.48.0a0' + libzlib: '>=1.3.2,<2.0a0' libiconv: '>=1.18,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.25.1-h3f43e3d_1.conda + libffi: '>=3.7.0,<3.8.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_2.conda hash: - md5: 3f7a43b3160ec0345c9535a9f0d7908e - sha256: c7ea10326fd450a2a21955987db09dde78c99956a91f6f05386756a7bfe7cc04 + md5: 533d342dedadf134c67760ce6fc5b748 + sha256: af6c14f387f810c5df491b328ae955329596d3bc73b1e2e091ab5adb46a10759 category: main optional: false -- name: libgfortran - version: 15.2.0 +- name: libglvnd + version: 1.7.0 manager: conda platform: linux-64 dependencies: - libgfortran5: 15.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_19.conda + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_5.conda hash: - md5: 42bf7eca1a951735fa06c0e3c0d5c8e6 - sha256: 561a42758ef25b9ce308c4e2cf56daee4f06138385a17e29a492cd928e00be6f + md5: cfcf11edcfd4acf0094771a9c3b8587f + sha256: 6eb77601a44b78c4631d886d54ef54f321c2bdc69fdefc4065a1e0491f030c76 category: main optional: false -- name: libgfortran-ng - version: 15.2.0 +- name: libglx + version: 1.7.0 manager: conda platform: linux-64 dependencies: - libgfortran: 15.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-15.2.0-h69a702a_19.conda + __glibc: '>=2.17,<3.0.a0' + libglvnd: 1.7.0 + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_5.conda hash: - md5: 35d07243abf828674d273aecd1dd537e - sha256: 9ca1d254a3e44e608abec6186b18d372cec21e5253e6da9750f4a8f4780ea0bb + md5: 614e10aae180f87b84f0d1ca8ceb7d9e + sha256: d1f0d51aea6bcc5d915969cbed32e72a8ed6a95931b87357ef8d0866573688c4 category: main optional: false -- name: libgfortran5 - version: 15.2.0 +- name: libglx-devel + version: 1.7.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15.2.0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_19.conda + libglx: 1.7.0 + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-xorgproto: '' + url: https://conda.anaconda.org/conda-forge/linux-64/libglx-devel-1.7.0-ha4b6fd6_5.conda hash: - md5: 85072b0ad177c966294f129b7c04a2d5 - sha256: 057978bb69fea29ed715a9b98adf71015c31baecc4aeb2bfc20d4fd5d83579d4 + md5: fb00b4fb800f2d431303a5c1625ef9d0 + sha256: aff3841e3404d78e1887fef988ca4842930c577399d566fa0980808756b1df51 category: main optional: false -- name: libgirepository - version: 1.80.1 +- name: libgomp + version: 16.2.0 manager: conda platform: linux-64 dependencies: - cairo: '>=1.18.0,<2.0a0' - libffi: '>=3.4,<4.0a0' - libgcc-ng: '>=12' - libglib: '>=2.80.0,<3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgirepository-1.80.1-h003a4f0_0.conda + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_4.conda hash: - md5: 7259e6f93988d4469b0484554c6b9959 - sha256: f10db026178a2fa67c18a3118d0cbb3dc8bc013cca82ddc7e52a827d0ff0285a + md5: 89d2c1231f47bd818f5d624b9411459d + sha256: 0fe5cb8e0752241ab55e11656ed1b9726248b522d23b929fe7c95b83eb55b9bb category: main optional: false -- name: libglib - version: 2.80.2 +- name: libgpg-error + version: '1.61' manager: conda platform: linux-64 dependencies: - libffi: '>=3.4,<4.0a0' - libgcc-ng: '>=12' - libiconv: '>=1.17,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - pcre2: '>=10.43,<10.44.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.2-hf974151_0.conda + libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.61-h54a6638_2.conda hash: - md5: 72724f6a78ecb15559396966226d5838 - sha256: 93e03b6cf4765bc06d64fa3dac65f22c53ae4a30247bb0e2dea0bd9c47a3fb26 + md5: d42eda95b8dfc91f3cc48d950efec715 + sha256: b69606451dfce168990dd40324e52daf981472511788d412ce78664760d3889f category: main optional: false -- name: libgomp - version: 15.2.0 +- name: libharfbuzz + version: 14.4.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda + cairo: '>=1.18.4,<2.0a0' + graphite2: '>=1.3.15,<2.0a0' + icu: '>=78.3,<79.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-14.4.0-h23af247_0.conda hash: - md5: faac990cb7aedc7f3a2224f2c9b0c26c - sha256: 5abe4ab9d93f6c9757d654f1969ae2267d4505315c1f2f8fe705fd60af084f1b + md5: 4463210c2a16ff5d3bf7f502af23f1f4 + sha256: a064695a1c12133d6a9dcf6b3b42423b8614fa45667606201af1b5f72628df0d category: main optional: false -- name: libgpg-error - version: '1.61' +- name: libharfbuzz-devel + version: 14.4.0 manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.61-h54a6638_0.conda + cairo: '>=1.18.4,<2.0a0' + freetype: '' + graphite2: '>=1.3.15,<2.0a0' + icu: '>=78.3,<79.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libharfbuzz: 14.4.0 + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-devel-14.4.0-h23af247_0.conda hash: - md5: f980b2ea1d227356414a2fb47be406de - sha256: 22c789e7186380e0c728d6ab4064e5b026aab112a10ecb8b7a6eb270adfcd7d8 + md5: 26e37e05324d7bb723350d50b33057fc + sha256: bdecc73c22cb0a8d44ce066116562e35322fd6c1c04584a4754ae2befcab4cb3 category: main optional: false - name: libhiredis - version: 1.0.2 + version: 1.3.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=9.4.0' - libgfortran-ng: '' - libgfortran5: '>=9.4.0' - libstdcxx-ng: '>=9.4.0' - url: https://conda.anaconda.org/conda-forge/linux-64/libhiredis-1.0.2-h2cc385e_0.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=13' + libstdcxx: '>=13' + url: https://conda.anaconda.org/conda-forge/linux-64/libhiredis-1.3.0-h5888daf_1.conda hash: - md5: b34907d3a81a3cd8095ee83d174c074a - sha256: ee39c69df4fb39cfe1139ac4f7405bb066eba773e11ba3ab7c33835be00c2e48 + md5: aa342fcf3bc583660dbfdb2eae6be48e + sha256: 5638e321719590b00826d218431d5028d1a22a76f281532ce621d9a40d5e0f42 category: main optional: false - name: libiconv @@ -3027,11 +3522,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h0cb94f2_3.conda hash: - md5: 915f5995e94f60e9a4826e0b0920ee88 - sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f + md5: f92233bf33e24a25668bb2119e2c51f9 + sha256: f943117edb9cd4d9c61cc972eee5a34291dc55ea7a6e9e38da104995841cbcb6 category: main optional: false - name: libidn2 @@ -3049,16 +3544,16 @@ package: category: main optional: false - name: libjpeg-turbo - version: 3.1.4.1 + version: 3.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.4.1-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.2.0-hb03c661_1.conda hash: - md5: 6178c6f2fb254558238ef4e6c56fb782 - sha256: 10056646c28115b174de81a44e23e3a0a3b95b5347d2e6c45cc6d49d35294256 + md5: 898d1c9793eaa52efc4727bd84d2e39a + sha256: bba8538e6538ed58a8479b332337b96986561f975d06cfa2039a016c2d246ee4 category: main optional: false - name: liblapack @@ -3067,26 +3562,28 @@ package: platform: linux-64 dependencies: libblas: 3.11.0 - url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-8_h47877c9_openblas.conda + url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-10_h47877c9_openblas.conda hash: - md5: 809be8ba8712c77bc7d44c2d99390dc4 - sha256: 168e327d737059553e15cc6ec36d76b9bbb3931c2a7721555fd68b4c9348b247 + md5: 7b918d4958f359c889c662aa361cf992 + sha256: 166da1ef513efd2f9ea9e132246766306e5d1a18b4e83b8b8425b5adffb6345e category: main optional: false -- name: libllvm18 - version: 18.1.7 +- name: libllvm23 + version: 23.1.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libxml2: '>=2.12.7,<2.14.0a0' - libzlib: '>=1.2.13,<2.0a0' - zstd: '>=1.5.6,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.7-hb77312f_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm23-23.1.0-h474f4eb_0.conda hash: - md5: bc0ea7e1f75a9b1c8467597fbbd9f86b - sha256: 9a9167b3e8e05abc517671fe45e5d40ae866d3e8195865ddad3c68131d059e25 + md5: 3b8c8325547a4fd8c51649ef7dfab688 + sha256: 50b31f6c51afe7df0639acf5dde8acf3f4f0dc9f644ab9842b717ae798507d68 category: main optional: false - name: liblzma @@ -3096,10 +3593,10 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_1.conda hash: - md5: b88d90cad08e6bc8ad540cb310a761fb - sha256: ec30e52a3c1bf7d0425380a189d209a52baa03f22fb66dd3eb587acaa765bd6d + md5: 1390b7c5ac0b1d8e447bc5efa6d3c8c2 + sha256: 9787df8c22a59c9a70d3e5a10db9ad663485e75e9ccc3f09bd092cb7b95e0dab category: main optional: false - name: liblzma-devel @@ -3110,53 +3607,124 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' liblzma: 5.8.3 - url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.3-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.3-hb03c661_1.conda hash: - md5: 55c20edec8e90c4703787acaade60808 - sha256: 7858f6a173206bc8a5bdc8e75690483bb66c0dcc3809ac1cb43c561a4723623a + md5: 6d83d6a332c19424e9e66b69b180ec11 + sha256: adef6e8b60afb684110b06b5310977c6836e1c923ce3ec199f45c0f000b42f20 category: main optional: false - name: libmagic - version: '5.39' + version: '5.48' manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: '>=1.2.12,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libmagic-5.39-h753d276_1.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libmagic-5.48-h421ea60_1.conda hash: - md5: fe3ab1049214fca5620b7b96af1a6a55 - sha256: de50b620811232548e3913bc1c19b28b17cc782447e9cb5cd8faa0cfbd15e966 + md5: 797a795edaf1256b329beee28db47d5d + sha256: c27c09fe89e88000259ad3a83c18cb52804d06a8e25ee51b9bedbcf3584b64ba category: main optional: false -- name: libmicrohttpd - version: 0.9.75 +- name: libmamba + version: 2.9.0 manager: conda platform: linux-64 dependencies: - gnutls: '>=3.7.6,<3.8.0a0' - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-0.9.75-h2603550_1.tar.bz2 + cpp-expected: '>=1.3.1,<1.3.2.0a0' + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + libmsgpack-c: '>=6.1.0,<7.0a0' + libarchive: '>=3.8.9,<3.9.0a0' + zstd: '>=1.5.7,<1.6.0a0' + libsolv: '>=0.7.39,<0.8.0a0' + openssl: '>=3.5.8,<4.0a0' + libcurl: '>=8.21.0,<9.0a0' + reproc-cpp: '>=14.2.8.post0,<14.3.0a0' + fmt: '>=12.1.0,<12.2.0a0' + reproc: '>=14.2.8.post0,<14.3.0a0' + simdjson: '>=4.6.9,<4.7.0a0' + spdlog: '>=1.17.0,<1.18.0a0' + yaml-cpp: '>=0.8.0,<0.9.0a0' + nlohmann_json-abi: 3.12.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-2.9.0-py314h6ba947b_0.conda + hash: + md5: 6dd4342973ab963fe98e1fcd3df5d9e2 + sha256: 23d1709bd2db46fb58f18059064b1efce36d0b99788b440dc2e6d0b80aa23773 + category: main + optional: false +- name: libmamba-spdlog + version: 2.9.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + libmamba: '>=2.9.0,<2.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-spdlog-2.9.0-h5efa3ab_0.conda + hash: + md5: ebe4fe5bfcc3e9217c94fe8926696952 + sha256: 9830f335120fc6107bc9083ff19a87d1787439195ee63c1aa47ad122cb8014b1 + category: main + optional: false +- name: libmambapy + version: 2.9.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + libmamba: '>=2.9.0,<2.10.0a0' + libmamba-spdlog: ==2.9.0 + libstdcxx: '>=15' + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' + python_abi: 3.10.* + zstd: '>=1.5.7,<1.6.0a0' + nlohmann_json-abi: 3.12.0 + pybind11-abi: '11' + yaml-cpp: '>=0.8.0,<0.9.0a0' + fmt: '>=12.1.0,<12.2.0a0' + spdlog: '>=1.17.0,<1.18.0a0' + openssl: '>=3.5.8,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-2.9.0-py310h1531c95_0.conda + hash: + md5: 7b794d59b4df28ec5af5fdc9fe0c243c + sha256: 6e127eb16750d65f386b67ceef64269af19ac018ec467a97e008bd98153e5c10 + category: main + optional: false +- name: libmsgpack-c + version: 6.1.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=14' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/libmsgpack-c-6.1.0-h54a6638_7.conda hash: - md5: 78ff89df42ec0d4fe4355490d7843d9b - sha256: 780c82366caab4a741f2a4baa901a9b71fad6c2b8f1f64c168f10f61a939e9d4 + md5: 9ab61308317dbf6609e2142b16b792a5 + sha256: c23ac21547d9fac6be14b6b3463dd29fb0fd4aba5c64c4a9876dfa6d2e3158a9 category: main optional: false - name: libnghttp2 - version: 1.58.0 + version: 1.68.1 manager: conda platform: linux-64 dependencies: - c-ares: '>=1.23.0,<2.0a0' + __glibc: '>=2.17,<3.0.a0' + c-ares: '>=1.34.8,<2.0a0' libev: '>=4.33,<5.0a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - openssl: '>=3.2.0,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + libgcc: '>=15' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h74cf4be_1.conda hash: - md5: 700ac6ea6d53d5510591c4344d5c989a - sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb + md5: 75d211f04ac87506f1f43420712a69fe + sha256: 11a2f54a6f391e25738bce0023e6ef499600147bbcf21c1fa69d2e251b03cc6a category: main optional: false - name: libnsl @@ -3179,197 +3747,250 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libnuma-2.0.18-hb03c661_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libnuma-2.0.18-hb03c661_4.conda hash: - md5: 672fad24c7fedff73c684c3e9e9848b3 - sha256: 17d72848a6480f0b0708f2b2f64292b5fa0e0996ce56f26fc26e4aebb5a9ca81 + md5: bfe9cd9c6d92170947301fef63356e39 + sha256: db0a0fc67104196afe6732ff055b30829f984f4cf1e8efff4ea5b2bbb1640da2 category: main optional: false - name: libopenblas - version: 0.3.33 + version: 0.3.34 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' + libgcc: '>=15' libgfortran: '' - libgfortran5: '>=14.3.0' - url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.33-pthreads_h94d23a6_0.conda + libgfortran5: '>=15.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.34-pthreads_hcf972fe_1.conda hash: - md5: 2d3278b721e40468295ca755c3b84070 - sha256: 3d9aa85648e5e18a6d66db98b8c4317cc426721ad7a220aa86330d1ccedc8903 + md5: 25994250f54292352a82eb05ab4499ba + sha256: b2846ca0b00cc08d248589d289ba891856d4b42da4a3c823be6b2d660bd80a83 + category: main + optional: false +- name: libpciaccess + version: '0.19' + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.19-hb03c661_1.conda + hash: + md5: 35fa2b34bbced424e6976d30f5fde576 + sha256: addc80c69d362a9e6c40305c493139a8e9ee504b2f45a6687dbdaa9da3c6183c category: main optional: false - name: libpng - version: 1.6.43 + version: 1.6.58 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.58-h922cc85_1.conda hash: - md5: 009981dd9cfcaa4dbfa25ffaed86bcae - sha256: 502f6ff148ac2777cc55ae4ade01a8fc3543b4ffab25c4e0eaa15f94e90dd997 + md5: fcf71c8d979148873f6f8ad4cfc73d86 + sha256: c19eefb87d70d9b4b0629fa48414a155a47a1be4f04583ae71ed8c5a9a32fdcb category: main optional: false - name: libprotobuf - version: 4.25.3 + version: 7.35.1 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libabseil: '>=20260526.0,<20260527.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-7.35.1-h622638d_3.conda + hash: + md5: fd307b61cceb36fdca38e1718bdb2893 + sha256: 37c51fbc936a6bb8bf5f67c8f056edacaaa41e8603738bc8a4dee186292bb114 + category: main + optional: false +- name: libpsl + version: 0.23.1 + manager: conda + platform: linux-64 + dependencies: + libstdcxx: '>=15' + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' + icu: '>=78.3,<79.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libpsl-0.23.1-hd9e3e90_1.conda + hash: + md5: 77be60417aa572afcb48cbe0f967401d + sha256: 09e8effdc89bc5d021349318d32b85594f5b8d8e3ab8f90a85b81f8fe695a566 + category: main + optional: false +- name: librsvg + version: 2.62.3 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + cairo: '>=1.18.4,<2.0a0' + fontconfig: '>=2.18.0,<3.0a0' + fonts-conda-ecosystem: '' + gdk-pixbuf: '>=2.44.6,<3.0a0' + harfbuzz: '>=14.2.0' + libgcc: '>=14' + libglib: '>=2.88.1,<3.0a0' + libxml2-16: '>=2.14.6' + pango: '>=1.56.4,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.62.3-h4c96295_0.conda + hash: + md5: 492c8d9b1c564c2e948b6cb4ba0f8261 + sha256: 5571bd8239d71961d4e3ce972f865b3ea95a91ce0b53d5749fe2dd24254ddbda + category: main + optional: false +- name: libsanitizer + version: 15.3.0 manager: conda platform: linux-64 dependencies: - libabseil: '>=20240116.1,<20240117.0a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15.3.0' + libstdcxx: '>=15.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.3.0-h54950a5_4.conda hash: - md5: 6945825cebd2aeb16af4c69d97c32c13 - sha256: 70e0eef046033af2e8d21251a785563ad738ed5281c74e21c31c457780845dcd + md5: 306fcd92c8f1cd7049bc6e361bd37f09 + sha256: 074869ef41874beec0ffee576fdd809f72eb8a4196fe2fa4d1a922c9a0742572 category: main optional: false -- name: librsvg - version: 2.58.1 +- name: libseccomp + version: 2.6.1 manager: conda platform: linux-64 dependencies: - cairo: '>=1.18.0,<2.0a0' - freetype: '>=2.12.1,<3.0a0' - gdk-pixbuf: '>=2.42.12,<3.0a0' - harfbuzz: '>=8.5.0' - libgcc-ng: '>=12' - libglib: '>=2.80.2,<3.0a0' - libpng: '>=1.6.43,<1.7.0a0' - libxml2: '>=2.12.7,<2.14.0a0' - pango: '>=1.50.14,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.58.1-hadf69e7_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libseccomp-2.6.1-h7cc23a3_1.conda hash: - md5: 73fc255d740d23da4f554b58dc4909fd - sha256: c3b6c48e50a3ff8522d868215dcccfbd8f2720e512084b12f4bfcb6a668c5552 + md5: 41ddbd76939bdbc010085c594bd2c6a6 + sha256: 86586156aa6f021242bb8b4d690e33df8f635809bc39edf7b1a2231a51414ac9 category: main optional: false -- name: libsanitizer - version: 13.2.0 +- name: libsecret + version: 0.21.7 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=13.2.0' - libstdcxx-ng: '>=13.2.0' - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.2.0-h6ddb7a1_13.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=13' + libgcrypt-lib: '>=1.11.0,<2.0a0' + libglib: '>=2.82.2,<3.0a0' + libzlib: '>=1.3.1,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsecret-0.21.7-h1e2da66_0.conda hash: - md5: f5b94bbb97e87c09437461b3bb805bb0 - sha256: 86222486ede36124d6a840328d545acc674055b57e76f3d85ca63d168cab030d + md5: 70fc6d1bbf942b3d617646ac0359d9d8 + sha256: 2f4c634536ee8bccfb9f57b0248ef754d2ad4daa587673b76277cd515a2cbf1c category: main optional: false -- name: libsecret - version: 0.18.8 +- name: libsolv + version: 0.7.39 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libgcrypt: '>=1.10.1,<2.0a0' - libglib: '>=2.70.2,<3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libsecret-0.18.8-h329b89f_2.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsolv-0.7.39-h72ddc62_1.conda hash: - md5: 9d6698e3c9585a75156d86f7ef229093 - sha256: c3ffd1ff0d2fa1626a4270ee50a687d25424e8812024d92f88445a2ac9f13931 + md5: f5ac3845eb3e5a6c74100e3a7730c110 + sha256: c55a7242db95609b6f0b56b49ef2f5c1796060c0a221bbca3d61fbe19bf05add category: main optional: false - name: libsqlite - version: 3.46.0 + version: 3.53.4 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + __glibc: '>=2.17,<3.0.a0' + icu: '>=78.3,<79.0a0' + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.4-h13e7031_1.conda hash: - md5: 18aa975d2094c34aef978060ae7da7d8 - sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8 + md5: e72bbec309c2b0f37823ee7d4fabfcd3 + sha256: f20d70da54e5b31dd4a51fb1efeaafafd5ab6dd8d7ac9d1438eaa2526ac4ed3d category: main optional: false - name: libssh2 - version: 1.11.0 + version: 1.11.1 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - openssl: '>=3.1.1,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-h6154650_1.conda hash: - md5: 1f5a58e686b13bcfde88b93f547d23fe - sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d + md5: 5c526561e1d2a2e071941174eae84557 + sha256: 7e463000fa1cba3f3a6597b776f6ab301d425a96e3bc20d0d9d76a3b9f237aa3 category: main optional: false - name: libstdcxx - version: 15.2.0 + version: 16.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: 15.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_19.conda + libgcc: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_4.conda hash: - md5: 5794b3bdc38177caf969dabd3af08549 - sha256: dff1058c76ec6b8759e41cefa2508162d00e4a5e6721aa68ec3fd10094e702dc + md5: 2f2ef0d96de5bdd8c1270ff22fdf9352 + sha256: 40b792b0186c1e8859280a1f6f19a54fc50a11b32724fc7b637009c1a9bd302b category: main optional: false - name: libstdcxx-devel_linux-64 - version: 13.2.0 + version: 15.3.0 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.2.0-hdb50d1a_113.conda + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.3.0-hb2c5482_104.conda hash: - md5: 1cc88314bf1300d47b9f129884628b07 - sha256: c8769152f67cb700d7c50ec403b0b8e245f98ed3a2e8c594237360f6fccd4d09 + md5: c428c727fc8697f18a140c676032f8f5 + sha256: 42de47979a998f594c378498ebdf2f1c833e6a4611dd2ddda56f1ba2d1515c7f category: main optional: false - name: libstdcxx-ng - version: 15.2.0 - manager: conda - platform: linux-64 - dependencies: - libstdcxx: 15.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_19.conda - hash: - md5: e5ce228e579726c07255dbf90dc62101 - sha256: 0672b6b6e1791c92e8eccad58081a99d614fcf82bca5841f9dfa3c3e658f83b9 - category: main - optional: false -- name: libtasn1 - version: 4.21.0 + version: 16.2.0 manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.21.0-hb03c661_0.conda + libstdcxx: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-16.2.0-hdf11a46_4.conda hash: - md5: 0ffe6217a3d09398155d32a2ddb41251 - sha256: a3f0c33ef567eb2e3a22d7fea0717a294a5fea4964478aa06b467ce1c93bec38 + md5: de0dceacf3e33c5fc88e167885dc8274 + sha256: 4cdebd87b76cf53a58a08ebd6d15336daa79c5f0aa34d83a895ac503c0203632 category: main optional: false - name: libtiff - version: 4.6.0 + version: 4.7.2 manager: conda platform: linux-64 dependencies: - lerc: '>=4.0.0,<5.0a0' - libdeflate: '>=1.20,<1.26.0a0' - libgcc-ng: '>=12' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libstdcxx-ng: '>=12' - libwebp-base: '>=1.3.2,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - xz: '>=5.2.6,<6.0a0' - zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda + __glibc: '>=2.17,<3.0.a0' + lerc: '>=4.2.0,<5.0a0' + libdeflate: '>=1.25,<1.26.0a0' + libgcc: '>=15' + libjpeg-turbo: '>=3.2.0,<4.0a0' + liblzma: '>=5.8.3,<6.0a0' + libstdcxx: '>=15' + libwebp-base: '>=1.6.0,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.2-hcc2c06a_1.conda hash: - md5: 66f03896ffbe1a110ffda05c7a856504 - sha256: fc3b210f9584a92793c07396cb93e72265ff3f1fa7ca629128bf0a50d5cb15e4 + md5: 0907d876f460ebc941ae590338b6102f + sha256: 10e125da82ca93e09191e66e5a94d566b2cf8d4024e2a0db3a9114297447e0d9 category: main optional: false - name: libunistring @@ -3416,107 +4037,132 @@ package: dependencies: libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.52.1-h280c20c_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.52.1-h280c20c_1.conda hash: - md5: 4e33d49bf4fc853855a3b00643aa5484 - sha256: e28e4519223f78b3163599ca89c3f2d80bfb53e907e7fc74e806e60d1efa578b + md5: 01c4ed87826af55996768af6dbc936b4 + sha256: 67761d0206f84140047a367eaf9befe03a7e157a29ee25aee0047b40801cc6b6 category: main optional: false -- name: libwebp - version: 1.4.0 +- name: libwebp-base + version: 1.6.0 manager: conda platform: linux-64 dependencies: - giflib: '>=5.2.2,<5.3.0a0' - libgcc-ng: '>=12' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libpng: '>=1.6.43,<1.7.0a0' - libtiff: '>=4.6.0,<4.8.0a0' - libwebp-base: '>=1.4.0,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.4.0-h2c329e2_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_1.conda hash: - md5: 80030debaa84cfc31755d53742df3ca6 - sha256: bd45805b169e3e0ff166d360c3c4842d77107d28c8f9feba020a8e8b9c80f948 + md5: 9332b53d0ea93c5d39e33be03a0c611a + sha256: 8415001414f488c85b72b9d8cc2071dfb3981a47bc3c8eb56ef91a57d12eae7f category: main optional: false -- name: libwebp-base - version: 1.4.0 +- name: libxcb + version: 1.17.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + pthread-stubs: '' + xorg-libxau: '>=1.0.12,<2.0a0' + xorg-libxdmcp: '>=1.1.5,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-hb83e432_2.conda hash: - md5: b26e8aa824079e1be0294e7152ca4559 - sha256: 49bc5f6b1e11cb2babf2a2a731d1a680a5e08a858280876a779dbda06c78c35f + md5: 61f0ffba9161cbb3a77722869b21e4bb + sha256: 7b49e6fd2a584b7f072943e6adf4149677af5121246975278804782d37752837 category: main optional: false -- name: libxcb - version: '1.15' +- name: libxcrypt + version: 4.4.38 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - pthread-stubs: '' - xorg-libxau: '' - xorg-libxdmcp: '' - url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.38-h280c20c_0.conda hash: - md5: 33277193f5b92bad9fdd230eb700929c - sha256: a670902f0a3173a466c058d2ac22ca1dd0df0453d3a80e0212815c20a16b0485 + md5: f7a7ff5a6ab331e037abd34f379a631d + sha256: f7e9292dd219a6435bbb1223da9586c3e70d66d169c5a92f08db3f2127df04e9 category: main optional: false -- name: libxcrypt - version: 4.4.36 +- name: libxkbcommon + version: 1.13.2 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + xkeyboard-config: '' + libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + libxcb: '>=1.17.0,<2.0a0' + xorg-libxau: '>=1.0.12,<2.0a0' + libxml2: '' + libxml2-16: '>=2.14.6' + url: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.13.2-h51789e4_1.conda hash: - md5: 5aa797f8787fe7a17d1b0821485b5adc - sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: f888787e0eab7a8076a67d197e155ffc + sha256: d44878d396713ccf3b355df617f61c40a1442fffcf134392bc6ce0e6c2219369 category: main optional: false - name: libxml2 - version: 2.12.7 + version: 2.15.3 manager: conda platform: linux-64 dependencies: - icu: '>=73.2,<74.0a0' - libgcc-ng: '>=12' - libiconv: '>=1.17,<2.0a0' - libzlib: '>=1.2.13,<2.0a0' - xz: '>=5.2.6,<6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda + __glibc: '>=2.17,<3.0.a0' + icu: '>=78.3,<79.0a0' + libgcc: '>=14' + libiconv: '>=1.18,<2.0a0' + liblzma: '>=5.8.3,<6.0a0' + libxml2-16: 2.15.3 + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.3-h49c6c72_1.conda + hash: + md5: 2d34cdb31014cbc8f1e9384c89ede0a5 + sha256: a16a576a5844a3a0e1cdfc5e162b9fe9c64dccf6a93f44c293bb42851aebe2b4 + category: main + optional: false +- name: libxml2-16 + version: 2.15.3 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + icu: '>=78.3,<79.0a0' + libgcc: '>=14' + libiconv: '>=1.18,<2.0a0' + liblzma: '>=5.8.3,<6.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.3-hca6bf5a_1.conda hash: - md5: 340278ded8b0dc3a73f3660bbb0adbc6 - sha256: 576ea9134176636283ff052897bf7a91ffd8ac35b2c505dfde2890ec52849698 + md5: 20e4d67ec908f0405124f11612c48305 + sha256: 087d4de023f22d6a28b9e1b818961dd41e9bda6e9793590600ff16ca150bf9cb category: main optional: false - name: libzlib - version: 1.2.13 + version: 1.3.2 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h4ab18f5_6.conda + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_3.conda hash: - md5: 27329162c0dc732bcf67a4e0cd488125 - sha256: 8ced4afed6322172182af503f21725d072a589a6eb918f8a58135c1e00d35980 + md5: 0de0122d9570a8ab637c6b73db268389 + sha256: eb8a0db0aa570124f7d2a93d7c7f596e3390df5e047818d873baad32985fc736 category: main optional: false - name: lz4-c - version: 1.9.4 + version: 1.10.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda + libgcc: '>=15' + libstdcxx: '>=15' + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-hee9eb32_2.conda hash: - md5: 318b08df404f9c9be5712aaa5a6f0bb0 - sha256: 1b4c105a887f9b2041219d57036f72c4739ab9e9fe5a1486f094e58c76b31f5f + md5: e38a3253d72ab07d471483f24947e2a2 + sha256: b8c0e930183e6b7f83cd35ace102f2b8c2f0faae41dc05255dc72f247dfc556a category: main optional: false - name: lzo @@ -3524,12 +4170,12 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h280c20c_1002.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hebe6cf0_1003.conda hash: - md5: 45161d96307e3a447cc3eb5896cf6f8c - sha256: 5c6bbeec116e29f08e3dad3d0524e9bc5527098e12fc432c0e5ca53ea16337d4 + md5: 10e0aa58ed390ba598b728badf9eb1b7 + sha256: a0a1400198e5302d8367f2ed53437ee3cc41dbc463cb481921ce765578780b7a category: main optional: false - name: lzop @@ -3565,11 +4211,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/make-4.4.1-hb9d3cd8_2.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/make-4.4.1-hb03c661_3.conda hash: - md5: 33405d2a66b1411db9f7242c8b97c9e7 - sha256: d652c7bd4d3b6f82b0f6d063b0d8df6f54cc47531092d7ff008e780f3261bdda + md5: b4a198dc40024de2a59c1343e4ae4144 + sha256: 4c65d2769847778a6d84db6984ac81bcec6f8958d349f1fe57ae040ccc56a801 category: main optional: false - name: markupsafe @@ -3588,7 +4234,7 @@ package: category: main optional: false - name: matplotlib-base - version: 3.10.1 + version: 3.10.9 manager: conda platform: linux-64 dependencies: @@ -3596,10 +4242,12 @@ package: contourpy: '>=1.0.1' cycler: '>=0.10' fonttools: '>=4.22.0' - freetype: '>=2.12.1,<3.0a0' + freetype: '' kiwisolver: '>=1.3.1' - libgcc: '>=13' - libstdcxx: '>=13' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=14' + libstdcxx: '>=14' numpy: '>=1.23' packaging: '>=20.0' pillow: '>=8' @@ -3609,10 +4257,25 @@ package: python_abi: 3.10.* qhull: '>=2020.2,<2020.3.0a0' tk: '>=8.6.13,<8.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.1-py310h68603db_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.9-py310hfde16b3_0.conda + hash: + md5: 182cef60d49535a1d8c3db692dbf053d + sha256: 3f5901d067947d6f4bce4f994b891fa26865f31bc976275359f81f1ffbf9294f + category: main + optional: false +- name: menuinst + version: 2.5.2 + manager: conda + platform: linux-64 + dependencies: + python: '' + tomli: '' + tomli-w: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.5.2-py310hd3bfc61_2.conda hash: - md5: 29cf3f5959afb841eda926541f26b0fb - sha256: f211079f3346a225ba0d1a4754eb856ed3c0bdbf17d6502c55390d22a2c86cb5 + md5: 0ab5853637af6e4d52222559d1b45a43 + sha256: f8d3d5ee4a6c78be9395215989deac70367f6b7f1ef03cd9070ca602632e813c category: main optional: false - name: more-itertools @@ -3632,21 +4295,23 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libprotobuf: '>=4.25.3,<4.25.4.0a0' - libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - ncurses: '>=6.4,<7.0a0' - openssl: '>=3.2.1,<4.0a0' perl: '>=5.32.1,<5.33.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/mosh-1.4.0-pl5321h7cc048c_8.conda + libgcc: '>=14' + libstdcxx: '>=14' + __glibc: '>=2.17,<3.0.a0' + openssl: '>=3.5.7,<4.0a0' + libabseil: '*' + libzlib: '>=1.3.2,<2.0a0' + ncurses: '>=6.6,<7.0a0' + libprotobuf: '>=7.35.1,<7.35.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/mosh-1.4.0-pl5321h73eb06c_15.conda hash: - md5: 926f0491758d4b707c84deedc59b1b27 - sha256: 6ea077242d051847fb4f8c693f0eb6f6180c13f4fea70aca142b733121deb187 + md5: fe46482e897cc8795af53f75b7cd85c3 + sha256: a69b6888cce5017c65f6fed789d87683fbe06149a563c588ac7663ba869cb668 category: main optional: false - name: moto - version: 5.2.2 + version: 5.2.3 manager: conda platform: linux-64 dependencies: @@ -3667,10 +4332,10 @@ package: aws-xray-sdk: '!=0.96,>=0.93' flask: '!=2.2.0,!=2.2.1' flask-cors: '' - url: https://conda.anaconda.org/conda-forge/noarch/moto-5.2.2-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/moto-5.2.3-pyhcf101f3_0.conda hash: - md5: 9a42eb17d2d9cbe6da8433c610df5ac3 - sha256: ecf89002015d2dc0d817a3387c125f5e877592a5d0dda6aabeba5fa29f9d5fc8 + md5: 9f1405219205a926b6855a4f39408f1b + sha256: b34b0fb78abddbdd5d11cabe3153aaac5999e108edc9098aff934b5844c8e037 category: main optional: false - name: mpc @@ -3680,12 +4345,12 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' gmp: '>=6.3.0,<7.0a0' - libgcc: '>=14' + libgcc: '>=15' mpfr: '>=4.2.2,<5.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/mpc-1.4.0-he0a73b1_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/mpc-1.4.0-ha2cb11d_1.conda hash: - md5: 770d00bf57b5599c4544d61b61d8c6c6 - sha256: c1fdeebc9f8e4f51df265efca4ea20c7a13911193cc255db73cccb6e422ae486 + md5: f0f6c8691a9ed4099d1f287a444e251a + sha256: 3d56733fe0f44159787ad086d5e7bdab8b69e6a5a9b6b873a8beb3519f3d8d07 category: main optional: false - name: mpfr @@ -3695,15 +4360,15 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' gmp: '>=6.3.0,<7.0a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-he0a73b1_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-ha2cb11d_1.conda hash: - md5: 85ce2ffa51ab21da5efa4a9edc5946aa - sha256: 8690f550a780f75d9c47f7ffc15f5ff1c149d36ac17208e50eda101ca16611b9 + md5: 7dcc10f6c0bc3596d5519a710a84dfd4 + sha256: 0be79ef2ee536e0c5d3ddb4a52bbae9f26d08560623299f33db2f4c4a17c525a category: main optional: false - name: msal - version: 1.37.0 + version: 1.38.0 manager: conda platform: linux-64 dependencies: @@ -3711,10 +4376,10 @@ package: pyjwt: <3,>=1.0.0 python: '>=3.10' requests: <3,>=2.0.0 - url: https://conda.anaconda.org/conda-forge/noarch/msal-1.37.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/msal-1.38.0-pyhd8ed1ab_0.conda hash: - md5: 539593f9c2174c98c79cabe16fd25157 - sha256: 4fecbe528e0c66440fd6936630d3c995449e9eaa8f7351624f41f5eca52c8332 + md5: cbbf049636d640efb2e86c031ce0c63f + sha256: 952377b348b25256389c73767295e92c7d4136982ae6acbcbc6eb5fd681aa189 category: main optional: false - name: msal_extensions @@ -3735,19 +4400,19 @@ package: category: main optional: false - name: msgpack-python - version: 1.2.1 + version: 1.2.2 manager: conda platform: linux-64 dependencies: python: '' - libstdcxx: '>=14' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.1-py310haaf941d_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.2-py310he417ec5_1.conda hash: - md5: e2b18dce122ab17adf136492db202aa6 - sha256: 6e76e34089e29a13ad8b8bfa139b39d812bb33964295bcecd94cd698dca35e8d + md5: ba2504336cbb3a6dabc33bf9b1ea9ad7 + sha256: 853f81e12c8afd00d696fd7951cafb2584bfeea7829e2d6cbfb0080ff6681fe5 category: main optional: false - name: multidict @@ -3779,53 +4444,53 @@ package: category: main optional: false - name: mypy - version: 2.1.0 + version: 2.3.1 manager: conda platform: linux-64 dependencies: - ast-serialize: '>=0.3.0,<1.0.0' + ast-serialize: '>=0.6.0,<1.0.0' mypy_extensions: '>=1.0.0' pathspec: '>=1.0.0' python: '' - python-librt: '>=0.11.0' + python-librt: '>=0.13.0' typing_extensions: '>=4.6.0' psutil: '>=4.0' tomli: '>=1.1.0' - libgcc: '>=14' + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/mypy-2.1.0-py310h99dffb4_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/mypy-2.3.1-py310hcd47339_0.conda hash: - md5: d1b5b89ab1f80a678e26aa6309d7dc53 - sha256: 45e9914b84031f7883e0af05b479f69763f4ddc42863f5622136dcd499b35d6c + md5: 027edcb972512913f9c02aaf2ee430e5 + sha256: 79cc30d355ea27b6cc6259668a512da5cd6569b918aead7bee3940e20cffac2b category: main optional: false - name: mypy-boto3-s3 - version: 1.43.31 + version: 1.43.66 manager: conda platform: linux-64 dependencies: boto3: '' python: '' typing-extensions: '' - url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.43.31-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.43.66-pyhcf101f3_0.conda hash: - md5: b9f247b94559f2302e9e7a033ab4d4f1 - sha256: 80c099d9b93c9aad5a9848f9d2550eb4d295fb01029dab0f6f13526a1fb2c414 + md5: 086f12d8b0089984e77ef3b395a83a4b + sha256: c1abf7eaf6bcc5a6c7d5bc80587af9b568bd24b185690f763784c35e6e1a0b3c category: main optional: false - name: mypy_boto3_ec2 - version: 1.43.39 + version: 1.43.82 manager: conda platform: linux-64 dependencies: boto3: '' python: '' typing-extensions: '' - url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.43.39-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.43.82-pyhcf101f3_0.conda hash: - md5: 8bafecf9fa348cccb84b557abfb270e0 - sha256: ccce57a8868a2c7f09728bb8ada33da5571d0e05c361e7e6b153e63cde719024 + md5: 0a72733c626b115808f7b0549013e66c + sha256: 9c39b650c8a6524fda2458ad59838239df429a5218f24c2e24da2732784e4185 category: main optional: false - name: mypy_extensions @@ -3847,22 +4512,10 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda - hash: - md5: fc21868a1a5aacc937e7a18747acb8a5 - sha256: fc89f74bbe362fb29fa3c037697a89bec140b346a2469a90f7936d1d7ea4d8a3 - category: main - optional: false -- name: nettle - version: 3.8.1 - manager: conda - platform: linux-64 - dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/nettle-3.8.1-hc379101_1.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda hash: - md5: 3cb2c7df59990bd37c2ce27fd906de68 - sha256: 49c569a69608eee784e815179a70c6ae4d088dac42b7df999044f68058d593bb + md5: ee6c0cd80a60961a1f48aa3e0b91f986 + sha256: 5d46557214ed184381dafe835b7c94a474a1c3b307a08a250b1ea4779b44ffb3 category: main optional: false - name: networkx @@ -3882,13 +4535,24 @@ package: manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=14' libgcc: '>=14' - __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_1.conda + hash: + md5: 2db7a395d7dc2b6ed5effaf68fb99443 + sha256: 2b5f2e865122f9fc0637f520a7cb22e16b9727b2db6761ee16cb5e6404412c81 + category: main + optional: false +- name: nlohmann_json-abi + version: 3.12.0 + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/nlohmann_json-abi-3.12.0-h0f90c79_2.conda hash: - md5: b518e9e92493721281a60fa975bddc65 - sha256: 6f7d59dbec0a7b00bf5d103a4306e8886678b796ff2151b62452d4582b2a53fb + md5: 849b8852621992c3f3a1901c939a0399 + sha256: 30d271dd63391e053aa3c393c5d93fb622dec5d50a64107171ee28242660608e category: main optional: false - name: numactl @@ -3899,10 +4563,10 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' libnuma: 2.0.18 - url: https://conda.anaconda.org/conda-forge/linux-64/numactl-2.0.18-hb03c661_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/numactl-2.0.18-hb03c661_4.conda hash: - md5: c784d46bd1ace2ad1ea8a29584ada074 - sha256: 45c82817d55e7b635b6d7ce49bd0f22ee0ba279a24b5dedb090ab2f1081e459e + md5: 7f930f8dbb1c08351d319c9c1ab7a73f + sha256: 25aa780b35407d8380f234d341e9933ec886dfaadb6ca3549fa0132221a311b0 category: main optional: false - name: numpy @@ -3930,11 +4594,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.10-hb9d3cd8_0.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.10-h280c20c_1.conda hash: - md5: 6ce853cb231f18576d2db5c2d4cb473e - sha256: bbff8a60f70d5ebab138b564554f28258472e1e63178614562d4feee29d10da2 + md5: 16c8e401c682f9961676c201c888b1d9 + sha256: 22ba0c20d810f4e27092931191a08331b3bff1b7feeead5de7d8514cfd9230ad category: main optional: false - name: openapi-schema-validator @@ -4004,45 +4668,46 @@ package: category: main optional: false - name: openjpeg - version: 2.5.2 + version: 2.5.4 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libpng: '>=1.6.43,<1.7.0a0' - libstdcxx-ng: '>=12' - libtiff: '>=4.6.0,<4.8.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libtiff: '>=4.7.2,<4.8.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-h55e1f5c_1.conda hash: - md5: 7f2e286780f072ed750df46dc2631138 - sha256: 5600a0b82df042bd27d01e4e687187411561dfc11cc05143a08ce29b64bf2af2 + md5: b76e9e2ba1b86d68e2e5285fa959959c + sha256: 9052219184beb2e883086c2db20a89185a82673d472ca4a1f067f3dff2c6ce8c category: main optional: false - name: openssl - version: 3.6.3 + version: 3.6.4 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' ca-certificates: '' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.3-h35e630c_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.4-h781a0a9_0.conda hash: - md5: 79dd2074b5cd5c5c6b2930514a11e22d - sha256: d48f5c22b9897c01e4dff3680f1f57ceb02711ab9c62f74339b080419dfad34b + md5: 16e3034a330cc625f2c685edec60cf4e + sha256: 4747b2d6a8336f52343bceb8a1ebf41a9e6e665b9d2e3f989972de53a310599e category: main optional: false - name: packaging - version: '26.2' + version: '26.3' manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.2-pyhc364b38_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda hash: - md5: 4c06a92e74452cfa53623a81592e8934 - sha256: 3906abfb6511a3bb309e39b9b1b7bc38f50a723971de2395489fd1f379255890 + md5: 936687ed80f295a1f5dbcf8bd34c252c + sha256: c432626b16768b8dab228bfb706f7060c2d462a21c516d240f68f2f902b5a044 category: main optional: false - name: pandas @@ -4066,23 +4731,27 @@ package: category: main optional: false - name: pango - version: 1.54.0 + version: 1.58.2 manager: conda platform: linux-64 dependencies: - cairo: '>=1.18.0,<2.0a0' - fontconfig: '>=2.14.2,<3.0a0' + __glibc: '>=2.17,<3.0.a0' + cairo: '>=1.18.4,<2.0a0' + fontconfig: '>=2.18.2,<3.0a0' fonts-conda-ecosystem: '' - freetype: '>=2.12.1,<3.0a0' - fribidi: '>=1.0.10,<2.0a0' - harfbuzz: '>=9.0.0' - libgcc-ng: '>=12' - libglib: '>=2.80.2,<3.0a0' - libpng: '>=1.6.43,<1.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.54.0-h4c5309f_1.conda + fribidi: '>=1.0.16,<2.0a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=14' + libglib: '>=2.88.3,<3.0a0' + libharfbuzz: '>=14.3.0' + libpng: '>=1.6.58,<1.7.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.58.2-hda50119_0.conda hash: - md5: 7df02e445367703cd87a574046e3a6f0 - sha256: d362237be82d5a0d532fe66ec8d68018c3b2a9705bad6d73c2b63dae2970da02 + md5: 6a2822aaf9a34ac3708904a47ff3dd7e + sha256: 48f27a6c3e4062bc09dafe9c7f6b288c5de5655e81095ab7f1aad920b2163b7b category: main optional: false - name: pastel @@ -4104,10 +4773,10 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/patch-2.8-hb03c661_1002.conda + url: https://conda.anaconda.org/conda-forge/linux-64/patch-2.8-h280c20c_1003.conda hash: - md5: eaa73c6e5aff5b28675147abc350d49a - sha256: 61d3a3ef79952014bf536ffd84828d3558fc58b332adb89ed198b77fb301c2c5 + md5: 8d1a1da6a002b359af180dedd94a7a07 + sha256: 5d48e3826015befd1453f015870bd1db1cdcfe29e93001cb2d125b6f7c1da095 category: main optional: false - name: pathable @@ -4135,17 +4804,18 @@ package: category: main optional: false - name: pcre2 - version: '10.43' + version: '10.47' manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' bzip2: '>=1.0.8,<2.0a0' - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.43-hcad00b1_0.conda + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-h8b3dc9c_1.conda hash: - md5: 8292dea9e022d9610a11fce5e0896ed8 - sha256: 766dd986a7ed6197676c14699000bba2625fd26c8a890fcb7a810e5cf56155bc + md5: 06f6113cf1ff4a54b65f87ead132a5f1 + sha256: 9ebb10a4eb3be51ae67d85c679f5a7a50cb040ed25c783e6331a225ea09991d4 category: main optional: false - name: perl @@ -4162,40 +4832,42 @@ package: category: main optional: false - name: pillow - version: 10.3.0 + version: 12.3.0 manager: conda platform: linux-64 dependencies: - freetype: '>=2.12.1,<3.0a0' - lcms2: '>=2.16,<3.0a0' - libgcc-ng: '>=12' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libtiff: '>=4.6.0,<4.8.0a0' - libwebp-base: '>=1.3.2,<2.0a0' - libxcb: '>=1.15,<1.16.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - openjpeg: '>=2.5.2,<3.0a0' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* + python: '' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' tk: '>=8.6.13,<8.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.3.0-py310hf73ecf8_0.conda + python_abi: 3.10.* + libwebp-base: '>=1.6.0,<2.0a0' + lcms2: '>=2.19.1,<3.0a0' + openjpeg: '>=2.5.4,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libjpeg-turbo: '>=3.1.4.1,<4.0a0' + zlib-ng: '>=2.3.3,<2.4.0a0' + libxcb: '>=1.17.0,<2.0a0' + libtiff: '>=4.7.1,<4.8.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.3.0-py310h5a73078_0.conda hash: - md5: 1de56cf017dfd02aa84093206a0141a8 - sha256: 89caf2bb9b6d6d0c874590128b36676615750b5ef121fab514bc737dc48534da + md5: fb6f1c4063f0df1df2e7f6853bd22f8d + sha256: f4613ff1040ace683a076bd105423bd73964ea5bd3287c99225fbea52902eb79 category: main optional: false - name: pip - version: 26.1.2 + version: 26.2.1 manager: conda platform: linux-64 dependencies: python: '>=3.10,<3.13.0a0' setuptools: '' wheel: '' - url: https://conda.anaconda.org/conda-forge/noarch/pip-26.1.2-pyh8b19718_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.1-pyh8b19718_0.conda hash: - md5: 511fbc2c63d2c73650ad1755e4d357ba - sha256: 29b7d75bf81ad11645a8e320b369abdc90a92b93f2a9178e853d9dddf82e5106 + md5: 77b6cf3b0689d9fc68561df0db9b856d + sha256: c205bae42eb11b364fe3663a817cbcbc20a8ef544c6b2ff6f391013487117259 category: main optional: false - name: pixman @@ -4203,13 +4875,13 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_3.conda hash: - md5: c01af13bdc553d1a8fbfff6e8db075f0 - sha256: 43d37bc9ca3b257c5dd7bf76a8426addbdec381f6786ff441dc90b1a49143b6a + md5: 0ee5bb30034b081a1386c1e2c98ab0a7 + sha256: 829d8288764282de5a9f7b9169acb75cc7dc0b6c3fe2535cfe87dea3436bbc5d category: main optional: false - name: pkginfo @@ -4225,15 +4897,15 @@ package: category: main optional: false - name: platformdirs - version: 4.10.0 + version: 4.11.5 manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.10.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.11.5-pyhcf101f3_0.conda hash: - md5: 2c5ef45db85d34799771629bd5860fd7 - sha256: 9e5e1fd3506ccfc4d444fc4d2d39b0ed097d5d0e3bd3d4bdf6bcc81aaf66860d + md5: 152ec36401f710145a7db03475594410 + sha256: 4496a7e0b584a388b3580ab594a4f384696ab7d702282588fd33a7ee38af983c category: main optional: false - name: pluggy @@ -4253,13 +4925,13 @@ package: manager: conda platform: linux-64 dependencies: + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libiconv: '>=1.18,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/popt-1.19-h3b78370_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/popt-1.19-hcfc3c73_2.conda hash: - md5: 8cc2a5b668fd13c4abf4a94a013ebdb6 - sha256: 6fdd61c3aa1780a902f0ded56237b6af131bc4d261a880e822252e20f50b9bdb + md5: 65d39b6ad3f83e27190f2378a1594bba + sha256: 2c1d0941c8701f4e49a886a487453d0a4a39b985246b5fa7b48224746f3b54e6 category: main optional: false - name: portalocker @@ -4309,13 +4981,13 @@ package: platform: linux-64 dependencies: python: '' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py310h139afa4_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py310h83e8816_2.conda hash: - md5: d210342acdb8e3ca6434295497c10b7c - sha256: 3a6d46033ebad3e69ded3f76852b9c378c2cff632f57421b5926c6add1bae475 + md5: 726d7a9b8101f7c9e98882a533dcfca4 + sha256: d67eed119ebdc9df3bb9aa1fae1ba0757d407e808102a9f4677f3d6154c781e7 category: main optional: false - name: pthread-stubs @@ -4324,27 +4996,59 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb03c661_1003.conda + hash: + md5: df2c27f36bdb0dde779f55b5df76a352 + sha256: afc3b27b2cbb0487c1d0e963f96e71181ecfb623a24fb393bb19ff974a6382a1 + category: main + optional: false +- name: py-rattler + version: 0.25.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + _python_abi3_support: 1.* + cpython: '>=3.10' + openssl: '>=3.5.8,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/py-rattler-0.25.0-py310hefeb9ab_3.conda + hash: + md5: 2a75e016bb35e33e2acb65ee2aa4f0af + sha256: 673052cec285da1db0198313277b077103b8f235b12b9564cce8af5222b4af70 + category: main + optional: false +- name: pybind11-abi + version: '11' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-11-hc364b38_1.conda hash: - md5: b3c17d95b5a10c6e64a21fa17573e70e - sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973 + md5: f0599959a2447c1e544e216bddf393fa + sha256: 9e7fe12f727acd2787fb5816b2049cef4604b7a00ad3e408c5e709c298ce8bf1 category: main optional: false - name: pycairo - version: 1.27.0 + version: 1.29.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - cairo: '>=1.18.0,<2.0a0' - libgcc: '>=13' + cairo: '>=1.18.4,<2.0a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=14' + libzlib: '>=1.3.2,<2.0a0' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/pycairo-1.27.0-py310h25ff670_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pycairo-1.29.1-py310h4b78231_0.conda hash: - md5: 97d04aa121ff0b2ec6c1c6cb32b11e2f - sha256: fe2a2edd89076008a3601741de52e8f89b2bca1e0ba9f874520cee687c22c77a + md5: f2dff3306af5e9b4ce0497bc61cd49a3 + sha256: 57738f2e53f775d5aa919a171d76a7cb12119b98969aaef82f6e069c47ef9246 category: main optional: false - name: pycosat @@ -4356,10 +5060,10 @@ package: libgcc: '>=14' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.6-py310h7c4b9e2_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.6-py310h7c4b9e2_4.conda hash: - md5: 14ab9efb46276ca0d751c942381e90dd - sha256: 86d343a2122b55394fda137eaf5461b6e91ac459ffc6f5b4c78f69f00ffd1a12 + md5: 32dcf423d5337e26f9da916ebc9f15cd + sha256: 54b4950c57fe4e1d4a23a86b9a3f6565fff80f907c41d0ff369fc0362af4db76 category: main optional: false - name: pycparser @@ -4375,7 +5079,7 @@ package: category: main optional: false - name: pydantic - version: 2.13.4 + version: 2.13.5 manager: conda platform: linux-64 dependencies: @@ -4383,31 +5087,31 @@ package: typing_extensions: '>=4.14.1' python: '' annotated-types: '>=0.6.0' - pydantic-core: 2.46.4 - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.13.4-pyhcf101f3_0.conda + pydantic-core: 2.46.5 + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.13.5-pyhcf101f3_0.conda hash: - md5: 729843edafc0899b3348bd3f19525b9d - sha256: 69700e31165df070e9716315e042196aa92525dae5deb5107785847ab9f4189f + md5: 2d0f9304fc1cb1e3e94e7b37c14cd70a + sha256: 701ed8122021f62e1c9a46bdf4932ada911c10afa56ba0459f56da940bcbe5a7 category: main optional: false - name: pydantic-core - version: 2.46.4 + version: 2.46.5 manager: conda platform: linux-64 dependencies: python: '' typing-extensions: '>=4.6.0,!=4.7.0' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' + libgcc: '>=15' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.46.4-py310hd8f68c5_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.46.5-py310hbfe5df0_1.conda hash: - md5: 72935a417123f81985cc29b58ed26b3c - sha256: 0925c4329787c54e9103ac9ef92c02922bf58a46989eb7b072cf46ab6325e7cd + md5: 6d32b80215d6a4692c32a6f3a2293344 + sha256: a6a9fa2ba997171fc18f1f6d9b0c3824ea7b724dfa7f1ea05457b57dd2841f3e category: main optional: false - name: pydantic-settings - version: 2.14.2 + version: 2.15.0 manager: conda platform: linux-64 dependencies: @@ -4415,10 +5119,10 @@ package: python: '' pydantic: '>=2.7.0' python-dotenv: '>=0.21.0' - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.14.2-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.15.0-pyhcf101f3_0.conda hash: - md5: a1c5305893d9956abd2079d377c5113f - sha256: de1eb2cdb22a678387ec7757f10b7815c4c2a4d62f23b2a70fe4beff7e8a1fd4 + md5: 687adac0b3eb2dd73762e9f912b4549e + sha256: 674e1ba12010a88441f817a318d3cec7e7a7682813ebd3f427fbd1c6766a16af category: main optional: false - name: pyelftools @@ -4435,35 +5139,40 @@ package: category: main optional: false - name: pygments - version: 2.20.0 + version: 2.21.0 manager: conda platform: linux-64 dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.20.0-pyhd8ed1ab_0.conda + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda hash: - md5: 16c18772b340887160c79a6acc022db0 - sha256: cf70b2f5ad9ae472b71235e5c8a736c9316df3705746de419b59d442e8348e86 + md5: 2882dee445dfa45b0c5afce3ffb7730a + sha256: f5f015ff1bc3e1b7fc08eee096b1865234189ae0b82bebdb86a5369116e42fa0 category: main optional: false - name: pygobject - version: 3.48.2 + version: 3.58.0 manager: conda platform: linux-64 dependencies: - cairo: '>=1.18.0,<2.0a0' - libffi: '>=3.4,<4.0a0' - libgcc-ng: '>=12' + __glibc: '>=2.17,<3.0.a0' + cairo: '>=1.18.4,<2.0a0' + libexpat: '>=2.8.1,<3.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' libgirepository: '' - libglib: '>=2.80.0,<3.0a0' + libglib: '>=2.88.3,<3.0a0' libiconv: '' + libzlib: '>=1.3.2,<2.0a0' pycairo: '' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/pygobject-3.48.2-py310h30b043a_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pygobject-3.58.0-py310hcac34d9_0.conda hash: - md5: 79c91ba7167431f27815102f5a58704c - sha256: 2c868054820bb7052e6cd415e5c9ebcb18e2afb2cd6582f1bbecb0ed891f465e + md5: fb396939320feab4e9d003c149db939f + sha256: 425a147ba27d2607a96902d93096fa9b41b8ef6bc026c2bc1fec2dea094104f5 category: main optional: false - name: pyjwt @@ -4506,19 +5215,6 @@ package: sha256: 50bd91767686bfe769e50a5a1b883e238d944a6163fea43e7c0beaac54ca674f category: main optional: false -- name: pyopenssl - version: 23.2.0 - manager: conda - platform: linux-64 - dependencies: - cryptography: '>=38.0.0,<42,!=40.0.0,!=40.0.1' - python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.2.0-pyhd8ed1ab_1.conda - hash: - md5: 34f7d568bf59d18e3fef8c405cbece21 - sha256: 4daea3dc896987cc1334956fccfc0ed738663a84ad0c1d3f576a7a7936091534 - category: main - optional: false - name: pyparsing version: 3.3.2 manager: conda @@ -4531,6 +5227,19 @@ package: sha256: 417fba4783e528ee732afa82999300859b065dc59927344b4859c64aae7182de category: main optional: false +- name: pyproject_hooks + version: 1.2.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.9' + tomli: '>=1.1.0' + url: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda + hash: + md5: d4582021af437c931d7d77ec39007845 + sha256: 065ac44591da9abf1ff740feb25929554b920b00d09287a551fcced2c9791092 + category: main + optional: false - name: pysocks version: 1.7.1 manager: conda @@ -4615,6 +5324,23 @@ package: sha256: 76a5d12e73542678b70a94570f7b0f7763f9a938f77f0e75d9ea615ef22aa84c category: main optional: false +- name: python-build + version: 1.6.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + colorama: '' + importlib-metadata: '>=4.6' + packaging: '>=24.0' + pyproject_hooks: '' + tomli: '>=1.1.0' + url: https://conda.anaconda.org/conda-forge/noarch/python-build-1.6.0-pyhc364b38_0.conda + hash: + md5: 1e696c762d003f8f4af971b6dccb8c1e + sha256: d5bad775346fbd21cce7922b29cab2587fe599517654de65c3d2fe50a7126279 + category: main + optional: false - name: python-dateutil version: 2.9.0 manager: conda @@ -4629,42 +5355,41 @@ package: category: main optional: false - name: python-discovery - version: 1.4.2 + version: 1.6.0 manager: conda platform: linux-64 dependencies: python: '' filelock: '>=3.15.4' - platformdirs: <5,>=4.3.6 - url: https://conda.anaconda.org/conda-forge/noarch/python-discovery-1.4.2-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/python-discovery-1.6.0-pyhcf101f3_0.conda hash: - md5: 7a9095c9300d1b50b1785ca9bc4cadae - sha256: 6914da740f6e3ec44ffb2f687dbc9c33abf084e42f34e3a8bb8235e475850619 + md5: e87738e32eaf5dfa98a5d49f611d6312 + sha256: e48089f2927811994b916d31953563097bc7e8d856965fbdeea3b4d407e3b89f category: main optional: false - name: python-dotenv - version: 1.2.2 + version: 1.2.3 manager: conda platform: linux-64 dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.2-pyhcf101f3_0.conda + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.3-pyhcf101f3_0.conda hash: - md5: 130584ad9f3a513cdd71b1fdc1244e9c - sha256: 74e417a768f59f02a242c25e7db0aa796627b5bc8c818863b57786072aeb85e5 + md5: b55edb60d527ce56226a1026abcb3e2c + sha256: ad7b2dd059c1b693a09f799cbaf4b9d06ec7677c02c9447be98e0b33a49bc04c category: main optional: false - name: python-gil - version: 3.10.20 + version: 3.10.21 manager: conda platform: linux-64 dependencies: - cpython: 3.10.20.* + cpython: 3.10.21.* python_abi: '*' - url: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.10.20-hd8ed1ab_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.10.21-hd8ed1ab_0.conda hash: - md5: 33296afcbf60357874f99aec38ead969 - sha256: 84bab2600eb7a94016f33cb580a1a1bbb9fbc2d11460a337d5d014e8151d0bdf + md5: 7bacefa3103d43bc71fd02252df097f9 + sha256: 1335043b432732657a7259095da85cb9357bd93736a956a2466fc668d2dba46e category: main optional: false - name: python-graphviz @@ -4680,31 +5405,43 @@ package: sha256: b0139f80dea17136451975e4c0fefb5c86893d8b7bc6360626e8b025b8d8003a category: main optional: false +- name: python-installer + version: 1.0.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/python-installer-1.0.1-pyh332efcf_0.conda + hash: + md5: 5cc7e2e78962dc902cae9e29c2aa4b2f + sha256: 9c18fa1ebd0c839b6ea12e99d510a0968c2288cc423185cb34bf7332b97684e9 + category: main + optional: false - name: python-librt - version: 0.12.0 + version: 0.15.0 manager: conda platform: linux-64 dependencies: python: '' - libgcc: '>=14' + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.12.0-py310h139afa4_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.15.0-py310h83e8816_1.conda hash: - md5: 69cc19928dc2434e2e47c7332637337e - sha256: b32091f5d39e6e30bc06fd0fa379d51213e662caf15ab9b1cb513db3085c8f7b + md5: 825f2c28f1dd92a50e53bf4a250d8066 + sha256: 2e5f8c45b6b3b46eca95b780948901ac529873fd0b15c88ce60d1d3ddf2d4424 category: main optional: false - name: python-tzdata - version: '2026.2' + version: '2026.3' manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.3-pyhd8ed1ab_0.conda hash: - md5: f6ad7450fc21e00ecc23812baed6d2e4 - sha256: e943f9c15a6bdba2e1b9f423ab913b3f6b02197b0ef9f8e6b7464d78b59965b9 + md5: eefc8d916bd2e708d76d40398ef9a1ee + sha256: 3f05db78cf8be33cf6dbc469664b8e3a01f3980d61d6d6bef48669b171896d8a category: main optional: false - name: python_abi @@ -4712,10 +5449,10 @@ package: manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.10-8_cp310.conda + url: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.10-9_cp310.conda hash: - md5: 05e00f3b21e88bb3d658ac700b2ce58c - sha256: 7ad76fa396e4bde336872350124c0819032a9e8a0a40590744ff9527b54351c1 + md5: 3bb52811c66f1f07377537cc82ccb093 + sha256: 24e01bf97a2f5e608ef2d35547bba12281b5f1c8efecfcfd3447c43abc01342b category: main optional: false - name: pytz @@ -4747,22 +5484,22 @@ package: category: main optional: false - name: qemu - version: 5.0.0 + version: 8.2.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libcurl: '>=7.83.1,<8.0a0' - libgcc-ng: '>=12' - libglib: '>=2.72.1,<3.0a0' - libstdcxx-ng: '>=12' - libzlib: '>=1.2.12,<1.3.0a0' - pixman: '>=0.40.0,<1.0a0' - zstd: '>=1.5.2,<1.6.0a0' - url: https://conda.anaconda.org/ucb-bar/linux-64/qemu-5.0.0-hb15d774_0.tar.bz2 + libcurl: '>=8.22.0,<9.0a0' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + pixman: '>=0.46.4,<1.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/ucb-bar/linux-64/qemu-8.2.0-h2c6b54f_0.conda hash: - md5: def7188533bc19a8df31e57de92260cf - sha256: 0e6f27f17a562308344271e8011553afc7335176ec415a8e89f07892df06db31 + md5: 77da6637959a7a60243f4c2f22729112 + sha256: cfb9713ab0f5c322b55310baaa0bdfb4a33f77d16d903f02dcfcbac8e64fe3ae category: main optional: false - name: qhull @@ -4785,27 +5522,55 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - ncurses: '>=6.5,<7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + libgcc: '>=15' + ncurses: '>=6.6,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-hd6e31c0_1.conda + hash: + md5: 69c01c781e7c8190bbdaf79e3848c5ca + sha256: 01b3fe073a66e321970d09e04b388708f8cbdca5cdfbfcb7c9eeb470ad10383d + category: main + optional: false +- name: referencing + version: 0.37.0 + manager: conda + platform: linux-64 + dependencies: + attrs: '>=22.2.0' + python: '' + rpds-py: '>=0.7.0' + typing_extensions: '>=4.4.0' + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda + hash: + md5: 870293df500ca7e18bedefa5838a22ab + sha256: 0577eedfb347ff94d0f2fa6c052c502989b028216996b45c7f21236f25864414 + category: main + optional: false +- name: reproc + version: 14.2.8.post0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/reproc-14.2.8.post0-hee9eb32_0.conda hash: - md5: d7d95fc8287ea7bf33e0e7116d2b95ec - sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 + md5: 3248db26fec71163db19d13fbabecd42 + sha256: fc23277984a1bfff6edfaf4956484f3daa2f6271035050480eddb3c4c9076d46 category: main optional: false -- name: referencing - version: 0.37.0 +- name: reproc-cpp + version: 14.2.8.post0 manager: conda platform: linux-64 dependencies: - attrs: '>=22.2.0' - python: '' - rpds-py: '>=0.7.0' - typing_extensions: '>=4.4.0' - url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda + reproc: '>=14.2.8.post0,<14.3.0a0' + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.8.post0-h1c70be6_0.conda hash: - md5: 870293df500ca7e18bedefa5838a22ab - sha256: 0577eedfb347ff94d0f2fa6c052c502989b028216996b45c7f21236f25864414 + md5: 04afaf7b13f8ac3c947230a24d835c94 + sha256: 86baa58c2aa797fc9c60d8dac7c9b084651464fcad2c6a2bea8036fcc1d3dd7d category: main optional: false - name: requests @@ -4825,20 +5590,18 @@ package: category: main optional: false - name: responses - version: 0.26.1 + version: 0.26.3 manager: conda platform: linux-64 dependencies: pyyaml: '' python: '' requests: '>=2.30.0,<3.0' - types-pyyaml: '' - typing_extensions: '' urllib3: '>=1.25.10,<3.0' - url: https://conda.anaconda.org/conda-forge/noarch/responses-0.26.1-pyhcf101f3_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/responses-0.26.3-pyhcf101f3_0.conda hash: - md5: eec4aab2de7dc95a331e2f80074fda9b - sha256: b45111bdfdec7640a3bd9b5f5a921dec9abaae7dfb58592a7562fbe98de4e274 + md5: 7a3630f737fa87aec89b8a56db496200 + sha256: 0a48b4b7d7760d63a3f20d7526a8788c992a0b09eb5625f4e8dbadd3a3c3af77 category: main optional: false - name: rfc3339-validator @@ -4855,38 +5618,38 @@ package: category: main optional: false - name: rhash - version: 1.4.3 + version: 1.4.6 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/rhash-1.4.3-hd590300_2.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/rhash-1.4.6-hb03c661_2.conda hash: - md5: 4cabe3858a856bff08d9a0992e413084 - sha256: 475f68cac8981ff2b10c56e53c2f376fc3c805fbc7ec30d22f870cd88f1479ba + md5: 007602d697e07c11ff9864964eba5ee3 + sha256: 186a5b225077ad5f4656966da947d43307101950751ef4a239b455588756b4e1 category: main optional: false - name: riscv-tools - version: 1.0.6 + version: 1.0.9 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' expat: '' gmp: '>=6.3.0,<7.0a0' - libexpat: '>=2.6.1,<3.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - mpc: '>=1.3.1,<2.0a0' - mpfr: '>=4.2.1,<5.0a0' - ncurses: '>=6.4,<7.0a0' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* - zlib: '>=1.2.13,<1.3.0a0' - zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/ucb-bar/linux-64/riscv-tools-1.0.6-0_h1234567_g56c29e0.conda + libexpat: '>=2.8.1,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + mpc: '>=1.4.0,<2.0a0' + mpfr: '>=4.2.2,<5.0a0' + ncurses: '>=6.6,<7.0a0' + python: 3.10.14.* + zlib: '' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/ucb-bar/linux-64/riscv-tools-1.0.9-0_h1234567_g70db951.conda hash: - md5: 9929897de5dc35ef6cf686b286d2d32f - sha256: 322019cf5aea325ab7ee094abb4d285d99e71d413fb52bdffa5c6870fdf5f2d4 + md5: 2a62276c8e1c95df12f5751ad38b847d + sha256: 5540ea2f0a78d96c6dc5930276b3f5049bb24f58ad61559fb6f294984b586431 category: main optional: false - name: rpds-py @@ -4905,22 +5668,23 @@ package: category: main optional: false - name: rsync - version: 3.3.0 + version: 3.4.4 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libiconv: '>=1.17,<2.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - lz4-c: '>=1.9.3,<1.10.0a0' - openssl: '>=3.2.1,<4.0a0' - popt: '>=1.16,<2.0a0' - xxhash: '>=0.8.2,<0.8.3.0a0' - zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/rsync-3.3.0-he6cb5fe_0.conda + libgcc: '>=15' + __glibc: '>=2.28,<3.0.a0' + openssl: '>=3.5.8,<4.0a0' + libiconv: '>=1.18,<2.0a0' + lz4-c: '>=1.10.0,<1.11.0a0' + xxhash: '>=0.8.3,<0.8.4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + popt: '>=1.19,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/rsync-3.4.4-hffd6c76_1.conda hash: - md5: 27da3fb7abe92e3ef592eda5321a0230 - sha256: fca85a7561d4f7a129bb7c18d38caf28111c63c49b899e74f9883571a62d81d4 + md5: 859411ed56b9498eb6a888b86be0e968 + sha256: d611e43d22061a5abe2d370a9ebe9d6a82084b01cb33aaa450a3c21c0ac37dd4 category: main optional: false - name: ruamel.yaml @@ -4946,41 +5710,26 @@ package: dependencies: python: '' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.15-py310h139afa4_1.conda - hash: - md5: a7e3055859e9162d5f7adb9b3c229d56 - sha256: 242ff560883541acc447b4fb11f1c6c0a4e91479b70c8ce895aee5d9a8ce346a - category: main - optional: false -- name: ruamel_yaml - version: 0.15.80 - manager: conda - platform: linux-64 - dependencies: - libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' + libgcc: '>=15' python_abi: 3.10.* - yaml: '>=0.2.5,<0.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel_yaml-0.15.80-py310h2372a71_1009.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.15-py310h83e8816_3.conda hash: - md5: d7ab285da4bd1346ab7a12a8e2524cce - sha256: 9bad45c80820c418d1209b9776b7b3eaa863c4da963e42bf16636e7592244fb6 + md5: 553f7b99a7e8e050a97f46c3237dcd50 + sha256: af84a75d6a5dcdbd527ed1c23bdf24f5fbefca1e8c498918ce587fcfe597f655 category: main optional: false - name: s2n - version: 1.7.2 + version: 1.7.6 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - openssl: '>=3.5.6,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.7.2-hc5a330e_1.conda + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.7.6-h7e3ee7f_0.conda hash: - md5: 3f578c7d2b0bb52469340e4060d48d94 - sha256: 856866fd519b812db3e092aba308248dd87b5c308186fcffe593f309373ae94c + md5: e112cadcd79412d81496e784884bddf0 + sha256: 1e1ccc56fdf3fe82150b4eac1d626c806e612af208fbf40ce3abfe9a2eb2a626 category: main optional: false - name: s3fs @@ -4998,28 +5747,28 @@ package: category: main optional: false - name: s3transfer - version: 0.19.0 + version: 0.19.2 manager: conda platform: linux-64 dependencies: botocore: '>=1.37.4,<2.0a.0' python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.19.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.19.2-pyhd8ed1ab_0.conda hash: - md5: a359066b94e013283b7e11559fbb19fc - sha256: b71e634a77ef831ac41f9d7c956dd01867a838ddd544fa5d9020a612f633f06b + md5: 5548801d61c206d492b85613a02a87e3 + sha256: ce9bb74b5628398aeee08563a73b33dbbd31e0bbdd0f776c06094903276d3a14 category: main optional: false - name: sbt - version: 2.0.1 + version: 2.0.8 manager: conda platform: linux-64 dependencies: openjdk: '>=8' - url: https://conda.anaconda.org/conda-forge/noarch/sbt-2.0.1-hc364b38_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/sbt-2.0.8-hc364b38_0.conda hash: - md5: da519da81bd35966fb87f72964de4187 - sha256: 89181ac4559c61120f83038c18bebe83520ea40aec9182a39ae9d482a5986ac4 + md5: 2167a7eb74718a56535f4a5bd2dfcab0 + sha256: 32713305960f1e41b055452d0abdd5b4413472cb23d65429d19d298794f078e0 category: main optional: false - name: screen @@ -5045,10 +5794,10 @@ package: jeepney: '>=0.6' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.5.0-py310hff52083_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.5.0-py310hff52083_1.conda hash: - md5: 6da40232669db63f4d5792b7cca7d5f8 - sha256: 2c74700f3d05aca8d38c7bae8b2ff620c419c897a266d7a8df49652e7e0d520b + md5: 8301ffe9a201c1d5e3b56fef03f3e70a + sha256: be0beab5763632d5dbf9b83520d11cae1b27195ec20d2fbfe029fd3c62df96b6 category: main optional: false - name: sed @@ -5065,15 +5814,29 @@ package: category: main optional: false - name: setuptools - version: 82.0.1 + version: 84.0.0 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-82.0.1-pyh332efcf_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.0.0-pyh332efcf_0.conda + hash: + md5: 62ac906f1cd582c6c264c95625cb9d6f + sha256: 9e200ee5f9ff19a4d94e4b51c4856d53dec849f91032f345cf0c6bc3d51a7183 + category: main + optional: false +- name: simdjson + version: 4.6.9 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/simdjson-4.6.9-h4dbf13b_0.conda hash: - md5: 8e194e7b992f99a5015edbd4ebd38efd - sha256: 82088a6e4daa33329a30bc26dc19a98c7c1d3f05c0f73ce9845d4eab4924e9e1 + md5: 53a8ff86f8bd6f5d2ea089df06836fdc + sha256: 58d3bd2face0c19f8680c9da0cd7df4bcbc5e32439f00f133986238783d0e26a category: main optional: false - name: six @@ -5100,6 +5863,18 @@ package: sha256: bc86861086db65c9b56dd6a1605755f41a9875b94fc3b69e137f686700d91aa1 category: main optional: false +- name: sniffio + version: 1.3.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda + hash: + md5: 03fe290994c5e4ec17293cfb6bdce520 + sha256: dce518f45e24cd03f401cb0616917773159a210c19d601c5f2d4e0e5879d30ad + category: main + optional: false - name: snowballstemmer version: 3.1.1 manager: conda @@ -5112,6 +5887,21 @@ package: sha256: ad89284ea94821c20ff87e64b948e4afc690cf5202d14c009355b0594cf23aea category: main optional: false +- name: spdlog + version: 1.17.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + fmt: '>=12.1.0,<12.2.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.17.0-hb6aa676_2.conda + hash: + md5: 5e32ceeb7b9514ce4730565052829dbd + sha256: 5fca627690d56c6f87a9dabafceee54cb75d7da392309bb080333948c048365a + category: main + optional: false - name: sphinx version: 7.3.7 manager: conda @@ -5165,14 +5955,14 @@ package: manager: conda platform: linux-64 dependencies: - docutils: '>0.18,<0.22' - python: '>=3.8' - sphinx: '>=6,<9' + python: '' + sphinx: '>=6,<10' + docutils: '>0.18,<0.23' sphinxcontrib-jquery: '>=4,<5' - url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda hash: - md5: cede6bc99a0253fa676f03cfdc666d57 - sha256: 1d57a0cd74ecc0e5dc006f6591145d1abb6658464919d4aeb163d3db714f80e6 + md5: 787507b1d0f5c00c186b2f66adacc3ab + sha256: 3581a8335a0da4de41f4344c4f1113a11fcbbb7933577ace813602e263842b02 category: main optional: false - name: sphinxcontrib-applehelp @@ -5265,34 +6055,18 @@ package: sha256: 20b49741065fd7d3fabf98caf6d19b6436badb06b6d41f66b58f1fc2b52f37a1 category: main optional: false -- name: sqlite - version: 3.46.0 - manager: conda - platform: linux-64 - dependencies: - libgcc-ng: '>=12' - libsqlite: 3.46.0 - libzlib: '>=1.2.13,<2.0a0' - ncurses: '>=6.5,<7.0a0' - readline: '>=8.2,<9.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda - hash: - md5: 77ea8dff5cf8550cc8f5629a6af56323 - sha256: e849d576e52bf3e6fc5786f89b7d76978f2e2438587826c95570324cb572e52b - category: main - optional: false - name: starlette - version: 1.3.1 + version: 1.6.0 manager: conda platform: linux-64 dependencies: anyio: '>=3.6.2,<5' python: '' typing_extensions: '>=4.10.0' - url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.3.1-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda hash: - md5: bb8e15a6ef1a475545720fa2c29f19c4 - sha256: 17e3dc37c0ac9754b782e49285a3d8d223d372f7012d64a4f6ae371466cef143 + md5: 7b7d3f2bcca2be53635bd4f1166b04a7 + sha256: 6074c6d74e86b156a61ff37f2c3f7a29bd188f05d5f490d88db96131eb945e95 category: main optional: false - name: sty @@ -5339,12 +6113,13 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda hash: - md5: d453b98d9c83e71da0741bb0ff4d76bc - sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + md5: 676a2f9b1c4fcf57b70aa5c65f6c60d0 + sha256: a1a241d172c1ccab067ba245206dd048bc3c2d1b84504b53c9468e99adfc16a1 category: main optional: false - name: tomli @@ -5359,16 +6134,28 @@ package: sha256: 91cafdb64268e43e0e10d30bd1bef5af392e69f00edd34dfaf909f69ab2da6bd category: main optional: false +- name: tomli-w + version: 1.2.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.2.0-pyhd8ed1ab_0.conda + hash: + md5: 32e37e8fe9ef45c637ee38ad51377769 + sha256: 304834f2438017921d69f05b3f5a6394b42dc89a90a6128a46acbf8160d377f6 + category: main + optional: false - name: tomlkit - version: 0.15.0 + version: 0.15.1 manager: conda platform: linux-64 dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.0-pyha770c72_0.conda + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.1-pyhcf101f3_0.conda hash: - md5: 42ef10a8f7f5d55a2e267c0d5daa6387 - sha256: 1cd52f9ccb4854c4d731438afe0e833b6b71edaf5ede661152aa98efb3a7cc70 + md5: e4942e2de7436ff28be7f5645cf3c8d6 + sha256: 5cf833b4d199688b7652fb322ecc134de9555e9444d9249750de9a153421ad0a category: main optional: false - name: toolz @@ -5383,41 +6170,65 @@ package: sha256: 22b0a9790317526e08609d5dfdd828210ae89e6d444a9e954855fc29012e90c6 category: main optional: false +- name: tqdm + version: 4.70.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + __unix: '' + url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.70.0-pyh8f84b5b_0.conda + hash: + md5: 00953c3b729e03b0ae21f49fdf3441bb + sha256: a4d9e9da15b13f1ab047e7db412e2ed564bc615832e80213cf129b973c3abf4a + category: main + optional: false +- name: truststore + version: 0.10.4 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.4-pyhcf101f3_0.conda + hash: + md5: c2db35b004913ec69bcac64fb0783de0 + sha256: eece5be81588c39a855a0b70da84e0febb878a6d91dd27d6d21370ce9e5c5a46 + category: main + optional: false - name: types-awscrt - version: 0.34.1 + version: 0.36.2 manager: conda platform: linux-64 dependencies: - pip: '' python: '>=3.10,<4.0' - url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.34.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.36.2-pyhd8ed1ab_1.conda hash: - md5: 094214f8a4ed55e6ea2cf664a3967030 - sha256: e4355ea694891cdb58df48381c17e0d05ef9f378957d6e2533195a002a48b7e7 + md5: ea653022b4e54625d3415a7c813b6b10 + sha256: 3bb8501a9b606b8678a89805ed7cf7e49be1e06ba9a13e5e7462f9a96d02c924 category: main optional: false - name: types-pytz - version: 2026.2.0.20260518 + version: 2026.3.1.20260727 manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.2.0.20260518-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.3.1.20260727-pyhcf101f3_0.conda hash: - md5: ee605d821d094cfb7d0eecdecaccdeee - sha256: b96a77604fbe7cf4df9d48a1679247c5877aad00d00e663ce2e06f13b3e72dcb + md5: b27fc3df415ba0196e462700ef487e5e + sha256: 8174977249085904a62a0e00f29faceed6d81ba7bef33ceb5ff8b0c5896f1e58 category: main optional: false - name: types-pyyaml - version: 6.0.12.20260518 + version: 6.0.12.20260815 manager: conda platform: linux-64 dependencies: python: '' - url: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20260518-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20260815-pyhcf101f3_0.conda hash: - md5: 8c9d908beae2f052bf188c41c85f0b80 - sha256: 58eb35e905356d7105db51e1cd7eb5a9f2029e0d0bb345215c0eb525babaffb4 + md5: cd5c2725760ce602617c80a2b4c26d6d + sha256: 9790e34c023c33e3cebf9c9eeed411d468803eb6edbab3bc61116522fdaa32aa category: main optional: false - name: types-requests @@ -5471,16 +6282,16 @@ package: category: main optional: false - name: typing-inspection - version: 0.4.2 + version: 0.4.4 manager: conda platform: linux-64 dependencies: python: '' - typing_extensions: '>=4.12.0' - url: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhcf101f3_2.conda + typing_extensions: '>=4.15.0' + url: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.4-pyhcf101f3_0.conda hash: - md5: 53f5409c5cfd6c5a66417d68e3f0a864 - sha256: 8b90d2f19f9458b8c58a55e1fcdc1d90c1603a847a47654d8a454549413ba60a + md5: 880e91eac5d926568ef278e20554148e + sha256: 293c66b208468d186a94ff486c2ffbf67859a2bde8c88e965fc9d06c517191b2 category: main optional: false - name: typing_extensions @@ -5496,14 +6307,30 @@ package: category: main optional: false - name: tzdata - version: 2025c + version: 2026c manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda + hash: + md5: fcb489df604d100968b737f2cb6076c6 + sha256: b928c30ddcb0e3f544c6eade8352737e6e610e263276b90232db6a578ef899d8 + category: main + optional: false +- name: unearth + version: 0.18.3 + manager: conda + platform: linux-64 + dependencies: + cached-property: '>=1.5.2' + httpx: '' + packaging: '>=20' + python: '>=3.10' + requests: '>=2.25' + url: https://conda.anaconda.org/conda-forge/noarch/unearth-0.18.3-pyhd8ed1ab_0.conda hash: - md5: ad659d0a2b3e47e38d829aa8cad2d610 - sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c + md5: 2f0f2fb0f8a61529464d95a87b10eda0 + sha256: 00a56cdd16bf3a398f6e87d7696c92a3012d823b8e42ba7d3bda2ec2fa5d8947 category: main optional: false - name: unicodedata2 @@ -5521,6 +6348,27 @@ package: sha256: 44ecba51c98c3fb2ce3d00295d423d3bb254cde1790eff9818ed328aa608ab28 category: main optional: false +- name: universal-ctags + version: 6.2.20260830.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + jansson: '>=2.15.1,<3.0a0' + libgcc: '>=15' + libiconv: '>=1.18,<2.0a0' + libseccomp: '>=2.6.1,<3.0a0' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + pcre2: '>=10.47,<10.48.0a0' + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/universal-ctags-6.2.20260830.0-hf32d8a9_0.conda + hash: + md5: bce4d8caa0cf2a26d672e52d986aec93 + sha256: dcf67bc1a008b6c38b22d018af9b40405e2f7ce48e62e8c80e4df06b8626ebc5 + category: main + optional: false - name: unzip version: '6.0' manager: conda @@ -5549,7 +6397,7 @@ package: category: main optional: false - name: uvicorn - version: 0.49.0 + version: 0.52.4 manager: conda platform: linux-64 dependencies: @@ -5558,10 +6406,10 @@ package: h11: '>=0.8' python: '' typing_extensions: '>=4.0' - url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.49.0-pyhc90fa1f_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda hash: - md5: 29a950390b7de7577d8c0ebc946055b9 - sha256: dc7477d200432bf07aab5218d305d88771c52fb8d449cf82869cdceae291f100 + md5: 2bf4d228f4df09d3e2ebee46f3a9129e + sha256: b74765ebebe0da43b9e0ec1d9bedc881125304ffbebd86018dcb6d7a4e2d2ee4 category: main optional: false - name: verilator @@ -5584,44 +6432,41 @@ package: category: main optional: false - name: vim - version: 9.1.0611 + version: 9.2.0785 manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - gettext: '' - libasprintf: '>=0.22.5,<1.0a0' - libgcc: '>=13' - libgettextpo: '>=0.22.5,<1.0a0' - libstdcxx: '>=13' - ncurses: '>=6.5,<7.0a0' + python: '' perl: '>=5.32.1,<5.33.0a0' - python: '>=3.10,<3.11.0a0' + ncurses: '>=6.6,<7.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxt: '>=1.3.1,<2.0a0' + xorg-xorgproto: '' + libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* - xorg-libx11: '>=1.8.9,<2.0a0' - xorg-libxt: '>=1.3.0,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.1.0611-py310pl5321hc40cd9f_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.2.0785-py310pl5321h784d2b7_0.conda hash: - md5: f3f91629efb34707d433ab9035f7b225 - sha256: b3ad2256a35d4a52b0598ac8172db942c93d0991f7bdbdac8c619300afb3fb4a + md5: 919dce8f866aef2ccfe25b9373252b93 + sha256: 5b07da655155d5377eb0440aa3ff17ecb07f2969eb1c6c4b41cd657d990075fa category: main optional: false - name: virtualenv - version: 21.5.1 + version: 21.7.7 manager: conda platform: linux-64 dependencies: python: '' distlib: '>=0.3.7,<1' - filelock: <4,>=3.24.2 - importlib-metadata: '>=6.6' + filelock: '>=3.24.2,<4' platformdirs: '>=3.9.1,<5' - python-discovery: '>=1.4.2' + python-discovery: '>=1.6' typing_extensions: '>=4.13.2' - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.5.1-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.7.7-pyhcf101f3_0.conda hash: - md5: e449fb99b714be1e13fa5564dacd1af5 - sha256: 0a7b0a2ada7ad719f9d4f8874eb10911e1fcfdecefc86456105eb806ebd60ac4 + md5: 768a861e1491dc8ee2a93fa8b7ee4317 + sha256: c6a9206ef4b8dfbbb1e6199f06d7db602e041d4948247d2eac3a07f9ce5a5ad5 category: main optional: false - name: watchfiles @@ -5640,6 +6485,22 @@ package: sha256: 290ba93180152ba53fbc0e192776f7dd2e0200f13de38bb6d999f5c61b997ad1 category: main optional: false +- name: wayland + version: 1.26.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libexpat: '>=2.8.1,<3.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.26.0-hc1c935e_2.conda + hash: + md5: 88a47e22b53e50865b1cabe2eb648352 + sha256: df65b987979e6d7f88e756494da5a230d4f2d08d17437d04eecd35559c3a04e4 + category: main + optional: false - name: wcwidth version: 0.2.14 manager: conda @@ -5665,7 +6526,7 @@ package: category: main optional: false - name: websockets - version: '16.0' + version: 16.1.1 manager: conda platform: linux-64 dependencies: @@ -5673,10 +6534,10 @@ package: libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/websockets-16.0-py310h139afa4_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/websockets-16.1.1-py310h99dffb4_0.conda hash: - md5: 5494bc9ff7adbeadfdf3b946126af290 - sha256: 056c95a0a964678f8c1e8d7544768a70ffb7e32a382f04cdf56d26c80866dd84 + md5: 7df1f51982640785a33765162e6b06d5 + sha256: 850016b802d4fe74dcc32a144fe1673957eb6ee2bbaa7439ea09fa6ef6ab4b3b category: main optional: false - name: werkzeug @@ -5709,60 +6570,78 @@ package: category: main optional: false - name: wget - version: 1.21.4 + version: 1.25.0 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' libidn2: '>=2,<3.0a0' libunistring: '>=0,<1.0a0' - libzlib: '>=1.2.13,<2.0.0a0' - openssl: '>=3.2.1,<4.0a0' + libzlib: '>=1.3.1,<2.0a0' + openssl: '>=3.5.5,<4.0a0' + pcre2: '>=10.47,<10.48.0a0' zlib: '' - url: https://conda.anaconda.org/conda-forge/linux-64/wget-1.21.4-hda4d442_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/wget-1.25.0-h653f8fd_1.conda hash: - md5: 361e96b664eac64a33c20dfd11affbff - sha256: 70df4ac8cca488618458af4705706551cef7e402bac9c2c41dd17148f60cbd1f + md5: 3b97a15e7345c7f6c51bb57bffad7c93 + sha256: 66a5a05e0e44fd7a57e24d77665d5d6672646a7b316575b2f679108966d9124e category: main optional: false - name: wheel - version: 0.47.0 + version: 0.48.0 manager: conda platform: linux-64 dependencies: packaging: '>=24.0' python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.47.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.48.0-pyhd8ed1ab_0.conda hash: - md5: d0e3b2f0030cf4fca58bde71d246e94c - sha256: 9e156ffaefb8463437144326ada4b85d1de17961b9997ac5f1cbbaf747bd8bed + md5: 9a2124517bfd5d792e0f7b86eefdfeb8 + sha256: ba64b29b6d418024cb565081a1799262cb2780d2534ff4c14f76aa858c4286cd category: main optional: false - name: which - version: '2.21' + version: '2.25' manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/which-2.21-h0b41bf4_1.conda + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=14' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/which-2.25-h171cf75_0.conda hash: - md5: 76d6bc123c1c75bf034c412856fcc935 - sha256: e94d0d5f75a5f58165ad8ac64a25df851c77ec6e9bf626c16807dcbd740226c8 + md5: f16d4aec5e8135e8e7bba02ef600149e + sha256: 2bf9a40d86d29fd5c30d0febec99d06398143ddeece9ebb175cc5a6d20279943 category: main optional: false - name: wrapt - version: 2.2.2 + version: 2.4.0 manager: conda platform: linux-64 dependencies: + python: '' + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-2.2.2-py310h7c4b9e2_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-2.4.0-py310h83e8816_0.conda + hash: + md5: 471391fa2ecc20dd9b05b74ba33f1463 + sha256: eec01c7bfc02d350e6db4740ea190c5070a780a51fe8c51491fb844a1b3cff40 + category: main + optional: false +- name: xkeyboard-config + version: '2.48' + manager: conda + platform: linux-64 + dependencies: + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.48-h280c20c_0.conda hash: - md5: 5eae4e242426bdd5da1daf6c6776eef4 - sha256: ba0ae448c1f531fb6f6dfeec0ec06c751b3ea21802168673c0cd02c5b6fd9aab + md5: b233b41be0bf210989d57160ed39b394 + sha256: 3b04afd5d1a65d2d27ac2d49a63b01ab8bcd875776779ec63e337370ed38afdc category: main optional: false - name: xmltodict @@ -5777,101 +6656,106 @@ package: sha256: 7588e77a5d3885145e693d8b98493952f6efac8f3fabb1c218cd0cbd1a739fad category: main optional: false -- name: xorg-fixesproto - version: '5.0' +- name: xorg-libice + version: 1.1.2 manager: conda platform: linux-64 dependencies: + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - xorg-xextproto: '>=7.3.0,<8.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-hb9d3cd8_1003.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-h280c20c_0.conda hash: - md5: 19fe37721037acc0a1ed76b8cf937359 - sha256: 07268980b659a84a4bac64b475329348e9cf5fa4aee255fa94aa0407ae5b804c + md5: 85c9442aec283b4e464fa9ecc484a2f3 + sha256: 49b532d1df875c6749d9078b56a76f3f5db49a5abe0ca620b593ed474ef0ebf1 category: main optional: false -- name: xorg-inputproto - version: 2.3.2 +- name: xorg-libsm + version: 1.2.6 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-inputproto-2.3.2-hb9d3cd8_1003.conda + libgcc: '>=14' + xorg-libice: '>=1.1.2,<2.0a0' + libuuid: '>=2.42.2,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-h0d788c3_1.conda hash: - md5: 32623b33f2047dbc9ae2f2e8fd3880e9 - sha256: 77eea289f9d3fa753a290f988533c842694b826fe1900abd6d7b142c528512ba + md5: aa7459ed9ad086ba11dda843d764b33d + sha256: ef907caee0665cf3b0f775602cc50e388e3bade8ce22ecade0873ff26604b2fd category: main optional: false -- name: xorg-kbproto - version: 1.0.7 +- name: xorg-libx11 + version: 1.8.13 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-hb9d3cd8_1003.conda + libgcc: '>=14' + libxcb: '>=1.17.0,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.13-he1eb515_1.conda hash: - md5: e87bfacb110d85e1eb6099c9ed8e7236 - sha256: 849555ddf7fee334a5a6be9f159d2931c9d076ffb310a9e75b9124f789049d3e + md5: 8c282bbe4808a3cc80a5c98e9aec1cfc + sha256: 68053eebfa9f0d91666786c8fb5839d989aa9b869add92cb8815228bb2d7302c category: main optional: false -- name: xorg-libice - version: 1.1.2 +- name: xorg-libxau + version: 1.0.12 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb03c661_2.conda hash: - md5: fb901ff28063514abb6046c9ec2c4a45 - sha256: c12396aabb21244c212e488bbdc4abcdef0b7404b15761d9329f5a4a39113c4b + md5: f06ef439c280a5f90b8bf62355008dbc + sha256: cbf891f6cc1a859347680af1c8562bc6b033bf182a2a3bb536016932be3206de category: main optional: false -- name: xorg-libsm - version: 1.2.6 +- name: xorg-libxcomposite + version: 0.4.7 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - libuuid: '>=2.38.1,<3.0a0' - xorg-libice: '>=1.1.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-he73a12e_0.conda + libgcc: '>=14' + xorg-libx11: '>=1.8.12,<2.0a0' + xorg-libxfixes: '>=6.0.2,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcomposite-0.4.7-hb03c661_0.conda hash: - md5: 1c74ff8c35dcadf952a16f752ca5aa49 - sha256: 277841c43a39f738927145930ff963c5ce4c4dacf66637a3d95d802a64173250 + md5: f2ba4192d38b6cef2bb2c25029071d90 + sha256: 048c103000af9541c919deef03ae7c5e9c570ffb4024b42ecb58dbde402e373a category: main optional: false -- name: xorg-libx11 - version: 1.8.9 +- name: xorg-libxcursor + version: 1.2.3 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libxcb: '>=1.15,<1.16.0a0' - xorg-kbproto: '' - xorg-xextproto: '>=7.3.0,<8.0a0' - xorg-xproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-h8ee46fc_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=13' + xorg-libx11: '>=1.8.10,<2.0a0' + xorg-libxfixes: '>=6.0.1,<7.0a0' + xorg-libxrender: '>=0.9.11,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcursor-1.2.3-hb9d3cd8_0.conda hash: - md5: 077b6e8ad6a3ddb741fce2496dd01bec - sha256: 3e53ba247f1ad68353f18aceba5bf8ce87e3dea930de85d36946844a7658c9fb + md5: 2ccd714aa2242315acaf0a67faea780b + sha256: 832f538ade441b1eee863c8c91af9e69b356cd3e9e1350fff4fe36cc573fc91a category: main optional: false -- name: xorg-libxau - version: 1.0.12 +- name: xorg-libxdamage + version: 1.1.6 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb03c661_1.conda + libgcc: '>=13' + xorg-libx11: '>=1.8.10,<2.0a0' + xorg-libxext: '>=1.3.6,<2.0a0' + xorg-libxfixes: '>=6.0.1,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.6-hb9d3cd8_0.conda hash: - md5: b2895afaf55bf96a8c8282a2e47a5de0 - sha256: 6bc6ab7a90a5d8ac94c7e300cc10beb0500eeba4b99822768ca2f2ef356f731b + md5: b5fcc7172d22516e1f965490e65e33a4 + sha256: 43b9772fd6582bf401846642c4635c47a9b0e36ca08116b3ec3df36ab96e0ec0 category: main optional: false - name: xorg-libxdmcp @@ -5881,169 +6765,173 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb03c661_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb03c661_2.conda hash: - md5: 1dafce8548e38671bea82e3f5c6ce22f - sha256: 25d255fb2eef929d21ff660a0c687d38a6d2ccfbcbf0cc6aa738b12af6e9d142 + md5: 2e66c929f3d879708335b6ea4557c838 + sha256: c50a16c05ccd7fe7dd6d6cfb539f4e9a491d50f9ed7a5c902fec638f7d0d27be category: main optional: false - name: xorg-libxext - version: 1.3.4 + version: 1.3.7 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - xorg-libx11: '>=1.7.2,<2.0a0' - xorg-xextproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.7-h7cc23a3_1.conda hash: - md5: 82b6df12252e6f32402b96dacc656fec - sha256: 73e5cfbdff41ef8a844441f884412aa5a585a0f0632ec901da035a03e1fe1249 + md5: e5b6b28536b81b3f4cb20db4668a4642 + sha256: aa9bbe8b278aacc194e280ff5037f9f9a1f2c5b33ed97de8e7f01cfbe90dda43 category: main optional: false - name: xorg-libxfixes - version: 5.0.3 + version: 6.0.2 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=9.3.0' - xorg-fixesproto: '' - xorg-libx11: '>=1.7.0,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.2-h7cc23a3_1.conda hash: - md5: e9a21aa4d5e3e5f1aed71e8cefd46b6a - sha256: 1e426a1abb774ef1dcf741945ed5c42ad12ea2dc7aeed7682d293879c3e1e4c3 + md5: 09132e874fe0e1f5e4492b0b6b904b6e + sha256: aec84f554fc897bf4085c7bc8b8f0740e4c224e13bca3cc51c93e7699d56f83a category: main optional: false - name: xorg-libxi - version: 1.7.10 + version: 1.8.3 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc-ng: '>=12' - xorg-inputproto: '' - xorg-libx11: '>=1.8.9,<2.0a0' - xorg-libxext: '>=1.3.4,<2.0a0' - xorg-libxfixes: 5.0.* - xorg-xextproto: '>=7.3.0,<8.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.7.10-h4bc722e_1.conda + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxfixes: '>=6.0.2,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.3-h7cc23a3_1.conda hash: - md5: 749baebe7e2ff3360630e069175e528b - sha256: e1416eb435e3d903bc658e3c637f0e87efd2dca290fe70daf29738b3a3d1f8ff + md5: a1412b2b1184dacda45f8476fef2cc25 + sha256: a523d71344a2f640efe6fc42b88fc261d9cd389d4f9838a5d42dcdb120c2b0c8 category: main optional: false -- name: xorg-libxrender - version: 0.9.11 +- name: xorg-libxinerama + version: 1.1.6 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - xorg-libx11: '>=1.8.6,<2.0a0' - xorg-renderproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' + xorg-libx11: '>=1.8.12,<2.0a0' + xorg-libxext: '>=1.3.6,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxinerama-1.1.6-hecca717_0.conda hash: - md5: ed67c36f215b310412b2af935bf3e530 - sha256: 26da4d1911473c965c32ce2b4ff7572349719eaacb88a066db8d968a4132c3f7 + md5: 93f5d4b5c17c8540479ad65f206fea51 + sha256: 3a9da41aac6dca9d3ff1b53ee18b9d314de88add76bafad9ca2287a494abcd86 category: main optional: false -- name: xorg-libxt - version: 1.3.0 +- name: xorg-libxrandr + version: 1.5.5 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - xorg-kbproto: '' - xorg-libice: '>=1.1.1,<2.0a0' - xorg-libsm: '>=1.2.4,<2.0a0' - xorg-libx11: '>=1.8.6,<2.0a0' - xorg-xproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxrender: '>=0.9.12,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.5-h7cc23a3_1.conda hash: - md5: ae92aab42726eb29d16488924f7312cb - sha256: e7648d1efe2e858c4bc63ccf4a637c841dc971b37ded85a01be97a5e240fecfa + md5: 798a8c9d171859a022e1cb89e7d0eb10 + sha256: 05a7f25d7f7f5cd32b27a019233ece97167fd8ade255bc13a0e49e53387f4c30 category: main optional: false -- name: xorg-libxtst - version: 1.2.5 +- name: xorg-libxrender + version: 0.9.12 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc-ng: '>=12' - xorg-inputproto: '' - xorg-libx11: '>=1.8.9,<2.0a0' - xorg-libxext: '>=1.3.4,<2.0a0' - xorg-libxi: '>=1.7.10,<2.0a0' - xorg-recordproto: '' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-h4bc722e_0.conda + libgcc: '>=14' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.12-hb03c661_1.conda hash: - md5: 185159d666308204eca00295599b0a5c - sha256: 0139b52c3cbce57bfd1d120c41637bc239430faff4aa0445f58de0adf4c4b976 + md5: e470d224a7a5be1b1d021bded7abb536 + sha256: 6901f91d398811e4ec89d7e20a69abac02a7bfebfaf073338b7ea3d1a99685b7 category: main optional: false -- name: xorg-recordproto - version: 1.14.2 +- name: xorg-libxt + version: 1.3.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-recordproto-1.14.2-hb9d3cd8_1003.conda + libgcc: '>=15' + xorg-libice: '>=1.1.2,<2.0a0' + xorg-libsm: '>=1.2.6,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.1-h7cc23a3_1.conda hash: - md5: 1d600d113f3e22a7eddd7e7d574be3fa - sha256: fa721a0a041453612f9dc03059905cf7426669ab8795e1b46d1b0f61c332b1ea + md5: 2121765de9c261e2a95ab9fc6efabefb + sha256: dff31677674be86f98ee929a796edf2cf7c78bf38610b122a63af9af752d5bf7 category: main optional: false -- name: xorg-renderproto - version: 0.11.1 +- name: xorg-libxtst + version: 1.2.5 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-hb9d3cd8_1003.conda + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxi: '>=1.8.3,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-h7cc23a3_4.conda hash: - md5: bf90782559bce8447609933a7d45995a - sha256: 54dd934b0e1c942e54759eb13672fd59b7e523fabea6e69a32d5bf483e45b329 + md5: 752a5ac9322e0fbbc24146c1ce3ae44e + sha256: d66525e7b1c492aa179c6c55610fc8dfb0a9a62ea7d4fb9f904fa6af62127f61 category: main optional: false -- name: xorg-xextproto - version: 7.3.0 +- name: xorg-libxxf86vm + version: 1.1.7 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-hb9d3cd8_1004.conda + libgcc: '>=14' + xorg-libx11: '>=1.8.12,<2.0a0' + xorg-libxext: '>=1.3.6,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.7-hb03c661_0.conda hash: - md5: bc4cd53a083b6720d61a1519a1900878 - sha256: f302a3f6284ee9ad3b39e45251d7ed15167896564dc33e006077a896fd3458a6 + md5: 665d152b9c6e78da404086088077c844 + sha256: 64db17baaf36fa03ed8fae105e2e671a7383e22df4077486646f7dbf12842c9f category: main optional: false -- name: xorg-xproto - version: 7.0.31 +- name: xorg-xorgproto + version: '2025.1' manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-hb9d3cd8_1008.conda + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2025.1-h280c20c_1.conda hash: - md5: a63f5b66876bb1ec734ab4bdc4d11e86 - sha256: ea02425c898d6694167952794e9a865e02e14e9c844efb067374f90b9ce8ce33 + md5: 3b51576511038b50fdbd05245e22e4b1 + sha256: 051c6088bf2381840fcf8764737b829cc6c5f793718d2417d097d6e3b153eba9 category: main optional: false - name: xxhash - version: 0.8.2 + version: 0.8.3 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/xxhash-0.8.2-hd590300_0.conda + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/xxhash-0.8.3-hec8ed23_1.conda hash: - md5: f08fb5c89edfc4aadee1c81d4cfb1fa1 - sha256: 6fe74a8fd84ab0dc25e4dc3e0c22388dd8accb212897a208b14fe5d4fbb8fc2f + md5: 72ab4ea51529ec63ff010ae9fb62b02f + sha256: 540cf88e742b381244cbfdd2918cd5ed7523c1b0cc2945f3bb63620095c10e50 category: main optional: false - name: xz @@ -6057,10 +6945,10 @@ package: liblzma-devel: 5.8.3 xz-gpl-tools: 5.8.3 xz-tools: 5.8.3 - url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.3-ha02ee65_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.3-ha02ee65_1.conda hash: - md5: 6a1b6af49a334e4e06b9f103367762bf - sha256: 2553fd3ec0a1020b2ca05ca10b0036a596cb0d4bf3645922fcf69dacce0e6679 + md5: 36a079606b3aaf9d726211825f182452 + sha256: 547b2392d8f7b76efd4a0970946f6da2a1136ad5fe3dc936af81e02eb7181076 category: main optional: false - name: xz-gpl-tools @@ -6071,10 +6959,10 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' liblzma: 5.8.3 - url: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.3-ha02ee65_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.3-ha02ee65_1.conda hash: - md5: 8f5e2c6726c1339287a3c76a2c138ac7 - sha256: 8f139666ea18dc8340a44a54056627dd4e89e242e8cd136ab2467d6dc2c192ba + md5: 137db930adb0b3c5407485e0e1a50cfa + sha256: ed6dbec5e4f0f71e7ac629b90dc4c9fba38d194cc88eab891c29e461b408977a category: main optional: false - name: xz-tools @@ -6085,10 +6973,10 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' liblzma: 5.8.3 - url: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.3-hb03c661_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.3-hb03c661_1.conda hash: - md5: b62b615caa60812640f24db3a8d0fc87 - sha256: 162ebd76803464b8c8ebc7d45df32edf0ec717b3bf369a437ae3b0254f22dc2e + md5: 10d693a2db6e8339e4eebcb3a3dae88d + sha256: c74fa3eddd3ea648456517948f85068d8a07acad7752fd83c7e95b6cebb7114a category: main optional: false - name: yaml @@ -6096,16 +6984,30 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-hebe6cf0_3.conda + hash: + md5: e741576fb8f89821ac7c1c537322a33d + sha256: d164dfa75ecd538f6fd68765defcc06aa875bc697b9b215362d79a2a73125dd0 + category: main + optional: false +- name: yaml-cpp + version: 0.8.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-64/yaml-cpp-0.8.0-h54a6638_1.conda hash: - md5: a77f85f77be52ff59391544bfe73390a - sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad + md5: 18bf4b05b458fb8135987e47364f3dcb + sha256: 425808ebd2a20bfc460995293995e1fa0510e93c300535e2ec3622bd3d84288c category: main optional: false - name: yarl - version: 1.24.2 + version: 1.24.5 manager: conda platform: linux-64 dependencies: @@ -6116,10 +7018,10 @@ package: propcache: '>=0.2.1' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.24.2-py310h3406613_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.24.5-py310h3406613_0.conda hash: - md5: de4d84fa958edf06f59cf3f883db1e1f - sha256: 8637506af9059680ee77d3e4bc4a72f04b889ae8bd6bad679d286c8560162993 + md5: 46f4919b18d69a028c6bc5b5a0317b4f + sha256: 8964c7cd752622e39dd159ee1601ced790ea3114ae9fa2c6b62902a26ad47c1e category: main optional: false - name: zipp @@ -6135,46 +7037,60 @@ package: category: main optional: false - name: zlib - version: 1.2.13 + version: 1.3.2 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libzlib: 1.2.13 - url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-h4ab18f5_6.conda + __glibc: '>=2.17,<3.0.a0' + libzlib: 1.3.2 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.2-h25fd6f3_3.conda hash: - md5: 559d338a4234c2ad6e676f460a093e67 - sha256: 534824ea44939f3e59ca8ebb95e3ece6f50f9d2a0e69999fbc692311252ed6ac + md5: 6acb86426229f96f93e5468d1df3a5e8 + sha256: 16080a1c7724f7d25727cdc23c7658e0cec2db52448c1dc0c33467ee2c6e1c62 category: main optional: false -- name: zstandard - version: 0.23.0 +- name: zlib-ng + version: 2.3.3 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.3.3-hce19668_1.conda + hash: + md5: 1726acec19beeed1c764385cd8622405 + sha256: 8b786bb4380fa69a718b08a400040b865bc9207eda337e0a1955717c3c3a9403 + category: main + optional: false +- name: zstandard + version: 0.25.0 + manager: conda + platform: linux-64 + dependencies: + python: '' cffi: '>=1.11' - libgcc: '>=14' - python: '>=3.10,<3.11.0a0' + zstd: '>=1.5.7,<1.6.0a0' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py310h7c4b9e2_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py310h83e8816_3.conda hash: - md5: 64c494618303717a9a08e3238bcb8d68 - sha256: 0653ad7d53d8c7b85ef2dd38c01c78b6c9185cd688be06cd6315e76530310635 + md5: 15b4db9e2c72cb4ac4f7646f52df1bc1 + sha256: d1110aa03456d2d67d620f66960a0a8b0ce955641d6738ca91425b7809aab2e6 category: main optional: false - name: zstd - version: 1.5.6 + version: 1.5.7 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<2.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + __glibc: '>=2.17,<3.0.a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_7.conda hash: - md5: 4d056880988120e29d75bfff282e0f45 - sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b + md5: aa459086047c0e5e27023ab19f8cb86a + sha256: 47d682b9f6d6ec9eb1a6e6c3e75ea6273e899e78fb7fc59f81d39745009fbc60 category: main optional: false - name: asttokens From 89921a6fea4371f6d54a906a15acb880a8afd4ea Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Thu, 3 Sep 2026 06:02:51 -0700 Subject: [PATCH 62/69] fix hacky conda-lock-env creation --- conda-reqs/chipyard-base.yaml | 1 - scripts/build-setup.sh | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/conda-reqs/chipyard-base.yaml b/conda-reqs/chipyard-base.yaml index f53b4b53bc..d484e71c06 100644 --- a/conda-reqs/chipyard-base.yaml +++ b/conda-reqs/chipyard-base.yaml @@ -36,5 +36,4 @@ dependencies: - dtc - verilator==5.022 - # used in build-setup.sh as well - conda-lock diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index 709fc4db6e..2bddcd1b9f 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -175,7 +175,7 @@ conda environment or \`source env.sh\` and skip this step with \`-s 1\`." >&2 fi rm -rf $CONDA_LOCK_ENV_PATH && - conda create -y -p $CONDA_LOCK_ENV_PATH -c conda-forge $(grep "conda-lock" $CONDA_REQS/chipyard-base.yaml | sed 's/^ \+-//') && + CONDA_NO_PLUGINS=true conda create -y -p "$CONDA_LOCK_ENV_PATH" -c conda-forge conda-lock && source $(conda info --base)/etc/profile.d/conda.sh && conda activate $CONDA_LOCK_ENV_PATH exit_if_last_command_failed From a527ab757750979748015147f48f9121363e8309 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Thu, 3 Sep 2026 06:09:46 -0700 Subject: [PATCH 63/69] force use of default miniforge conda --- scripts/build-setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index 2bddcd1b9f..7d7b92346a 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -175,7 +175,7 @@ conda environment or \`source env.sh\` and skip this step with \`-s 1\`." >&2 fi rm -rf $CONDA_LOCK_ENV_PATH && - CONDA_NO_PLUGINS=true conda create -y -p "$CONDA_LOCK_ENV_PATH" -c conda-forge conda-lock && + "$CONDA_EXE" create -y -p "$CONDA_LOCK_ENV_PATH" -c conda-forge conda-lock && source $(conda info --base)/etc/profile.d/conda.sh && conda activate $CONDA_LOCK_ENV_PATH exit_if_last_command_failed From 706aad924751a81929f6ef5352162d636733af8c Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Thu, 3 Sep 2026 06:27:07 -0700 Subject: [PATCH 64/69] bump pk --- toolchains/riscv-tools/riscv-pk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchains/riscv-tools/riscv-pk b/toolchains/riscv-tools/riscv-pk index abadfdc507..9c61d29846 160000 --- a/toolchains/riscv-tools/riscv-pk +++ b/toolchains/riscv-tools/riscv-pk @@ -1 +1 @@ -Subproject commit abadfdc507d5a75b6272dc360e70a80a510c758a +Subproject commit 9c61d29846d8521d9487a57739330f9682d5b542 From 79b074a00e9f489076f40daa7c66def39f0f287a Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Thu, 3 Sep 2026 18:46:28 -0700 Subject: [PATCH 65/69] resolve for lock file --- conda-reqs/chipyard-base.yaml | 2 - conda-reqs/chipyard-extended.yaml | 1 + ...s-riscv-tools-linux-64-lean.conda-lock.yml | 883 +-------- ...ements-riscv-tools-linux-64.conda-lock.yml | 1699 ++++++----------- scripts/generate-conda-lockfiles.sh | 23 +- 5 files changed, 673 insertions(+), 1935 deletions(-) diff --git a/conda-reqs/chipyard-base.yaml b/conda-reqs/chipyard-base.yaml index d484e71c06..b9cf66700e 100644 --- a/conda-reqs/chipyard-base.yaml +++ b/conda-reqs/chipyard-base.yaml @@ -35,5 +35,3 @@ dependencies: - openjdk=20 - dtc - verilator==5.022 - - - conda-lock diff --git a/conda-reqs/chipyard-extended.yaml b/conda-reqs/chipyard-extended.yaml index 481aceecf2..1c608edbb2 100644 --- a/conda-reqs/chipyard-extended.yaml +++ b/conda-reqs/chipyard-extended.yaml @@ -78,6 +78,7 @@ dependencies: # hammer packages - sty # - open_pdks.sky130a + - pydantic<2 # for hammer compatibility - pip: - hammer-vlsi[asap7]==1.2.0 diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml index 40cf219583..fda016b798 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-64: 4ebbc3e28db6f27553ce4d934b826a05c8d4b9aa03fa426216863c06292c4b80 + linux-64: aa5e1c9757970f132166b488d828d8b86a9ebc19faf2b5ed6c0b14b775a7f5d7 channels: - url: ucb-bar used_env_vars: [] @@ -66,19 +66,6 @@ package: sha256: a35bddac04be093769e81814465a537961c6ed0f8d3cc23d6dce6ecdfaf71821 category: main optional: false -- name: annotated-types - version: 0.8.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - typing-extensions: '>=4.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.8.0-pyhd8ed1ab_0.conda - hash: - md5: 108c928d2a8551832dbc762b535e90bb - sha256: b8fcb994134d3918d1c64a9d62f4168ff85d5bfb89e698102fe4ed679fe0df24 - category: main - optional: false - name: anyio version: 4.14.2 manager: conda @@ -86,7 +73,7 @@ package: dependencies: exceptiongroup: '>=1.0.2' idna: '>=2.8' - python: '' + python: '>=3.10' typing_extensions: '>=4.5' url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda hash: @@ -94,18 +81,6 @@ package: sha256: e36998c5e860e26b22e5dbcd5726dd0c4eabad949c84d383cad8512757bbf6a1 category: main optional: false -- name: appdirs - version: 1.4.4 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda - hash: - md5: f4e90937bbfc3a4a92539545a37bb448 - sha256: 5b9ef6d338525b332e17c3ed089ca2f53a5d74b7a7b432747d29c6466e39346d - category: main - optional: false - name: autoconf version: '2.72' manager: conda @@ -125,48 +100,23 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda hash: md5: f1976ce927373500cc19d3c0b2c85177 sha256: a14a9ad02101aab25570543a59c5193043b73dc311a25650134ed9e6cb691770 category: main optional: false -- name: backports - version: '1.0' - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda - hash: - md5: 767d508c1a67e02ae8f50e44cacfadb2 - sha256: e1c3dc8b5aa6e12145423fed262b4754d70fec601339896b9ccf483178f690a6 - category: main - optional: false -- name: backports.tarfile - version: 1.2.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - backports: '' - url: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda - hash: - md5: bea46844deb274b2cc2a3a941745fa73 - sha256: 25abdb37e186f0d6ac3b774a63c81c5bc4bf554b5096b51343fa5e7c381193b1 - category: main - optional: false - name: backports.zstd version: 1.7.0 manager: conda platform: linux-64 dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - zstd: '>=1.5.7,<1.6.0a0' + python: '' python_abi: 3.10.* + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.7.0-py310hff74037_0.conda hash: md5: 3a5e1bf41b700d667440ae26654dd70a @@ -233,8 +183,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.8-hebe6cf0_2.conda hash: md5: 3ad2b403be8fc5612b9159e2ce621f69 @@ -253,46 +203,6 @@ package: sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 category: main optional: false -- name: cachecontrol - version: 0.14.4 - manager: conda - platform: linux-64 - dependencies: - msgpack-python: '>=0.5.2,<2.0.0' - python: '>=3.10' - requests: '>=2.16.0' - url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.4-pyha770c72_0.conda - hash: - md5: 13bdbb9b693b29134c56a9a00c23de41 - sha256: cca3a26282a5bc37a10afb1aa2006a21c45033cbc4ff012f9501f56f2a115c12 - category: main - optional: false -- name: cachecontrol-with-filecache - version: 0.14.4 - manager: conda - platform: linux-64 - dependencies: - cachecontrol: 0.14.4 - filelock: '>=3.8.0' - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.14.4-pyhd8ed1ab_0.conda - hash: - md5: 41a7966424a8733b11410216d9a47227 - sha256: becb375d64ebda9f9ed030d529b22da21030401d0dbaee62a208e60fca9c4587 - category: main - optional: false -- name: cachy - version: 0.3.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/cachy-0.3.0-pyhd8ed1ab_2.conda - hash: - md5: 1efe226b868cf59b8330356c37c8186e - sha256: 2560a98e3dc0ff4ff408a199d05922ae10fab2629417c4c4309e4226267cef8c - category: main - optional: false - name: cairo version: 1.18.4 manager: conda @@ -335,23 +245,6 @@ package: sha256: fb167de4388e64e52aa3907ed099afab944c1fa6e5f74b281a312dae1bcf7f3b category: main optional: false -- name: cffi - version: 2.1.1 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libffi: '>=3.7.0,<3.8.0a0' - libgcc: '>=15' - pycparser: '' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.1.1-py310hd4ea0ea_2.conda - hash: - md5: 33706c1639a06dcea0c19d9f118305f1 - sha256: dac4df438ce074376be5faf98d3d4c969a1fbc5016e0b0e8c6545a30a18877a0 - category: main - optional: false - name: charset-normalizer version: 3.5.1 manager: conda @@ -377,33 +270,6 @@ package: sha256: ccc4787f511964f9a1f2d2d2859c91c5d571fb60f7f09d4c4e092c9b7a94e671 category: main optional: false -- name: click-default-group - version: 1.2.4 - manager: conda - platform: linux-64 - dependencies: - click: '' - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_1.conda - hash: - md5: 7cd83dd6831b61ad9624a694e4afd7dc - sha256: cb7279eecddbd35ea78fd0e189a9a7db8b84c2c0e3b1271cf26251615f75dc4d - category: main - optional: false -- name: clikit - version: 0.6.2 - manager: conda - platform: linux-64 - dependencies: - pastel: '>=0.2.0,<0.3.0' - pylev: '>=1.3,<2.0' - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/clikit-0.6.2-pyhd8ed1ab_3.conda - hash: - md5: 37e178bf9356122c35005a62d850e5d9 - sha256: da000653be96a15b9aad5c59f655dbd4a60cb66fc0137e1018db9de76671bb08 - category: main - optional: false - name: colorama version: 0.4.6 manager: conda @@ -428,127 +294,19 @@ package: sha256: 87ebd4f94c8823763d35adaba292c2dc8c60ddda70e0980f32eae0dbb0e2aa2d category: main optional: false -- name: conda-lock - version: 2.5.7 - manager: conda - platform: linux-64 - dependencies: - cachecontrol-with-filecache: '>=0.12.9' - cachy: '>=0.3.0' - click: '>=8.0' - click-default-group: '' - clikit: '>=0.6.2' - crashtest: '>=0.3.0' - ensureconda: '>=1.3' - gitpython: '>=3.1.30' - html5lib: '>=1.0' - jinja2: '' - keyring: '>=21.2.0' - packaging: '>=20.4' - pkginfo: '>=1.4' - pydantic: '>=1.10' - python: '>=3.9' - pyyaml: '>=5.1' - requests: '>=2.18' - ruamel.yaml: '' - setuptools: '' - tomli: '' - tomlkit: '>=0.7.0' - toolz: '>=0.12.0,<1.0.0' - typing_extensions: '' - urllib3: '>=1.26.5,<2.0' - virtualenv: '>=20.0.26' - url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-2.5.7-pyhd8ed1ab_1.conda - hash: - md5: 518d59879a7ba4f3972109e8666860b2 - sha256: 905618b595d7a067fe37a282e3b84a4ed46542c1b497c76cef7b0f33f9335cb7 - category: main - optional: false -- name: conda-package-streaming - version: 0.13.0 - manager: conda - platform: linux-64 - dependencies: - backports.zstd: '' - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.13.0-pyhd8ed1ab_0.conda - hash: - md5: b4e3dcace82b486f69bc693f30120205 - sha256: af3b666ea6043a146901cd151d6201126bbe19af8307b58fb175015e3710064c - category: main - optional: false - name: coreutils version: '9.11' manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.11-h280c20c_0.conda hash: md5: c63e2851f3d99a32f4b6991d0460dd25 sha256: 6b19fb6c45302bdd6c97c5ac219e14bcbb7d9055c758e79d8a2577e705a933f0 category: main optional: false -- name: crashtest - version: 0.4.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9,<4.0' - url: https://conda.anaconda.org/conda-forge/noarch/crashtest-0.4.1-pyhd8ed1ab_1.conda - hash: - md5: e036e2f76d9c9aebc12510ed23352b6c - sha256: af1622b15f8c7411d9c14b8adf970cec16fec8a28b98069fdf42b1cd2259ccc9 - category: main - optional: false -- name: cryptography - version: 50.0.0 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - cffi: '>=2.0' - libgcc: '>=15' - openssl: '>=3.5.8,<4.0a0' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* - typing_extensions: '>=4.13.2' - url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-50.0.0-py310h20b05aa_1.conda - hash: - md5: 02baf4fc5a1e0c47685d19cf14863396 - sha256: cda7d0178179d8db9ada3b9673728a762aba0101639302c7876cb786c7dbed3a - category: main - optional: false -- name: dbus - version: 1.16.2 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' - libstdcxx: '>=15' - libexpat: '>=2.8.1,<3.0a0' - libzlib: '>=1.3.2,<2.0a0' - libglib: '>=2.88.3,<3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-he8c428d_2.conda - hash: - md5: a6eb37b51be1a9a654dc3a8aca039b1a - sha256: 87a0a42d4ccc527597eff3234509dfb03e0d9bf67d5e2b6fc758e2ef389d8abe - category: main - optional: false -- name: distlib - version: 0.4.3 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.3-pyhcf101f3_0.conda - hash: - md5: 58638f77697c4f6726753eb8be34818b - sha256: e2753997b8bd34205f42be01b8bab8037423dc30c02a1ec12de23e5b4c0b0a2e - category: main - optional: false - name: docutils version: 0.21.2 manager: conda @@ -566,9 +324,9 @@ package: manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' libfdt: '>=1.7.2,<1.8.0a0' libgcc: '>=14' - __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.7.2-h280c20c_6.conda hash: @@ -576,24 +334,6 @@ package: sha256: 43979c780845fe5fd6c91319595bb95b7cafe5efe371e420134d685d56e6020a category: main optional: false -- name: ensureconda - version: 1.6.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - appdirs: '' - click: '>=5.1' - filelock: '' - packaging: '' - requests: '>=2' - conda-package-streaming: '' - url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.6.0-pyhcf101f3_0.conda - hash: - md5: fcc02785e4da41e5f19f740e017b6ffb - sha256: e3c35c7cee4e6db53de4ad1ca6d35b7aced263d21a6ee2dcdffe401135646ab2 - category: main - optional: false - name: exceptiongroup version: 1.3.1 manager: conda @@ -621,18 +361,6 @@ package: sha256: bc1e8177a4ebbbfcda98b6f4a1575f3337e69f0d2f1025a84570533ca27b89eb category: main optional: false -- name: filelock - version: 3.32.5 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.32.5-pyhd8ed1ab_0.conda - hash: - md5: 9b091d04be6b722d4ed7dfee34295dea - sha256: a52faa011a8176bbbf30c77f76707788be9a9e1a7e30c3753083719c093a15dc - category: main - optional: false - name: flex version: 2.6.4 manager: conda @@ -739,10 +467,10 @@ package: manager: conda platform: linux-64 dependencies: - font-ttf-ubuntu: '' - font-ttf-inconsolata: '' font-ttf-dejavu-sans-mono: '' + font-ttf-inconsolata: '' font-ttf-source-code-pro: '' + font-ttf-ubuntu: '' url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda hash: md5: a7970cd949a077b7cb9696379d338681 @@ -827,33 +555,6 @@ package: sha256: ffe825e3ff78876dc5aa28eee791d8d9be4a47157761aa38dbff79e9222b3b8e category: main optional: false -- name: gitdb - version: 4.0.12 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - smmap: '>=3.0.1,<6' - url: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda - hash: - md5: 7c14f3706e099f8fcd47af2d494616cc - sha256: dbbec21a369872c8ebe23cb9a3b9d63638479ee30face165aa0fccc96e93eec3 - category: main - optional: false -- name: gitpython - version: 3.1.61 - manager: conda - platform: linux-64 - dependencies: - python: '' - gitdb: '>=4.0.1,<5' - typing_extensions: '>=3.10.0.2' - url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.61-pyhcf101f3_0.conda - hash: - md5: a4d052a35ae133a5fef5bc34fd337cd8 - sha256: 51cb1c112e47ccda9a0c7850fa5ff7c4eaa8bd65a3f7a81861623b8acff00d9e - category: main - optional: false - name: gmp version: 6.3.0 manager: conda @@ -874,8 +575,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=14' libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-h54a6638_1.conda hash: md5: f9fe2984587fa8235a6af6004760cd18 @@ -916,7 +617,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' typing_extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda hash: @@ -924,30 +625,54 @@ package: sha256: 96cac6573fd35ae151f4d6979bab6fbc90cb6b1fb99054ba19eb075da9822fcb category: main optional: false +- name: h2 + version: 4.4.1 + manager: conda + platform: linux-64 + dependencies: + hpack: '>=4.2,<5' + hyperframe: '>=6.1,<7' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + hash: + md5: e652ac7756069c456d0da2a922cd7df5 + sha256: 307dd6ec90140c3cf4171071b0e5e870abec314f4565c1edd5bc433e942cdcc0 + category: main + optional: false - name: harfbuzz version: 14.4.0 manager: conda platform: linux-64 dependencies: libharfbuzz-devel: 14.4.0 - url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-14.4.0-ha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-14.4.0-ha770c72_1.conda + hash: + md5: d5c10e05d7135fca0731173c288bfff5 + sha256: 12b371fad335d0c27de968140088cc678233d7060c2743baf9cb687a9fa975a7 + category: main + optional: false +- name: hpack + version: 4.2.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda hash: - md5: c2d4a4fe3216b26ef30e91d917c1b718 - sha256: 78cf9cedd013ba49455b2c75e95d2cdc4aafd384be8f9ece0def6ff1b2a86c61 + md5: b395909221b9bd1df066e5930e18855b + sha256: fdcea5d7cb314485d3907192ef024c704311548c5b0cbeb390cd1951051e29d2 category: main optional: false -- name: html5lib - version: '1.1' +- name: hyperframe + version: 6.1.0 manager: conda platform: linux-64 dependencies: python: '>=3.9' - six: '>=1.9' - webencodings: '' - url: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyhd8ed1ab_2.conda + url: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda hash: - md5: cf25bfddbd3bc275f3d3f9936cee1dd3 - sha256: 8027e436ad59e2a7392f6036392ef9d6c223798d8a1f4f12d5926362def02367 + md5: 8e6923fc12f1fe8f8c4e5c9f343256ac + sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 category: main optional: false - name: icu @@ -956,8 +681,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=14' libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-py310h44b86e0_2.conda hash: md5: 72a381cbad04f24b1c2a43ef707f45b4 @@ -969,7 +694,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda hash: md5: a39ae05027e9b707742e41b30d296b75 @@ -988,90 +713,13 @@ package: sha256: 4e787f9ccc31053ccea56d98ecd284a4f788988a3f9c4627db72fdd0b127529b category: main optional: false -- name: importlib-metadata - version: 9.0.1 - manager: conda - platform: linux-64 - dependencies: - python: '' - zipp: '>=3.20' - url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.1-pyhcf101f3_0.conda - hash: - md5: 77ec68e0aa61c3fff9ecbf840f93d64e - sha256: 95a074a7d3f58b3494c068d4789c364dcb591c56b70ca6b12f149a540f9aeea4 - category: main - optional: false -- name: importlib_resources - version: 7.1.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - zipp: '>=3.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-7.1.0-pyhd8ed1ab_0.conda - hash: - md5: 0ba6225c279baf7ea9473a62ea0ec9ae - sha256: a563a51aa522998172838e867e6dedcf630bc45796e8612f5a1f6d73e9c8125a - category: main - optional: false -- name: jaraco.classes - version: 3.4.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - more-itertools: '' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda - hash: - md5: d59568bad316413c89831456e691de29 - sha256: 3cc991f0f09dfd00d2626e745ba68da03e4f1dcbb7b36dd20f7a7373643cd5d5 - category: main - optional: false -- name: jaraco.context - version: 6.1.2 - manager: conda - platform: linux-64 - dependencies: - python: '' - backports.tarfile: '' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.2-pyhcf101f3_0.conda - hash: - md5: b9d2b1ffa307961f6bb7d83c8ba8a8be - sha256: 108b3919db8ef81b5585b38a3fedbe9eeccdf8fa576c250a13559a1188f597cc - category: main - optional: false -- name: jaraco.functools - version: 4.6.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - more-itertools: '' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.6.0-pyhcf101f3_0.conda - hash: - md5: 8665b873062a31a90b563bf493f9fb2c - sha256: d23b9e8e8d5968699ec2bc9f8d182598e86e494dbe8a3a71b4a53b1be9a3cb16 - category: main - optional: false -- name: jeepney - version: 0.9.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.9.0-pyhd8ed1ab_0.conda - hash: - md5: b4b91eb14fbe2f850dd2c5fc20676c0d - sha256: 00d37d85ca856431c67c8f6e890251e7cc9e5ef3724a0302b8d4a101f22aa27f - category: main - optional: false - name: jinja2 version: 3.1.6 manager: conda platform: linux-64 dependencies: markupsafe: '>=2.0' - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda hash: md5: 04558c96691bed63104678757beb4f8d @@ -1083,9 +731,9 @@ package: manager: conda platform: linux-64 dependencies: - oniguruma: '>=6.9.10,<6.10.0a0' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + oniguruma: 6.9.*,>=6.9.10,<6.10.0a0 url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_1.conda hash: md5: 6ec056e539486e84f0c7acef6b5863f9 @@ -1103,26 +751,6 @@ package: sha256: c4d973dd80ab10028b3e4c58c1c6d8f437bfeaf6069dafb1130dabc550e9caf4 category: main optional: false -- name: keyring - version: 25.7.0 - manager: conda - platform: linux-64 - dependencies: - __linux: '' - importlib-metadata: '>=4.11.4' - importlib_resources: '' - jaraco.classes: '' - jaraco.context: '' - jaraco.functools: '' - jeepney: '>=0.4.2' - python: '>=3.10' - secretstorage: '>=3.2' - url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyha804496_0.conda - hash: - md5: 9eeb0eaf04fa934808d3e070eebbe630 - sha256: 010718b1b1a35ce72782d38e6d6b9495d8d7d0dbea9a3e42901d030ff2189545 - category: main - optional: false - name: keyutils version: 1.6.3 manager: conda @@ -1143,7 +771,7 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' keyutils: '>=1.6.3,<2.0a0' - libedit: '>=3.1.20250104,<4.0a0' + libedit: '>=3.1.20250104,<3.2.0a0,>=3.1.20250104,<4.0a0' libgcc: '>=15' libstdcxx: '>=15' openssl: '>=3.5.7,<4.0a0' @@ -1249,9 +877,9 @@ package: manager: conda platform: linux-64 dependencies: - ncurses: '>=6.6,<7.0a0' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + ncurses: '>=6.6,<7.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h373387f_1.conda hash: md5: 50708d3b951d0f8e2d7f2df5b5edc040 @@ -1263,8 +891,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h280c20c_3.conda hash: md5: 7bc31538d6e3fb349e897353969237ec @@ -1289,8 +917,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' yaml: '>=0.2.5,<0.3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.7.2-h280c20c_6.conda hash: @@ -1381,11 +1009,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' + libffi: '>=3.7.0,<3.8.0a0' libgcc: '>=15' - pcre2: '>=10.47,<10.48.0a0' - libzlib: '>=1.3.2,<2.0a0' libiconv: '>=1.18,<2.0a0' - libffi: '>=3.7.0,<3.8.0a0' + libzlib: '>=1.3.2,<2.0a0' + pcre2: '>=10.47,<10.48.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_2.conda hash: md5: 533d342dedadf134c67760ce6fc5b748 @@ -1420,10 +1048,10 @@ package: libpng: '>=1.6.58,<1.7.0a0' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-14.4.0-h23af247_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-14.4.0-h23af247_1.conda hash: - md5: 4463210c2a16ff5d3bf7f502af23f1f4 - sha256: a064695a1c12133d6a9dcf6b3b42423b8614fa45667606201af1b5f72628df0d + md5: c44470b6bfa6a582cb4dd42cbda3401e + sha256: 979b14ba13054aab9e90363809aac470a58b7c37203c330216327356a98c8f60 category: main optional: false - name: libharfbuzz-devel @@ -1444,10 +1072,10 @@ package: libpng: '>=1.6.58,<1.7.0a0' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-devel-14.4.0-h23af247_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-devel-14.4.0-h23af247_1.conda hash: - md5: 26e37e05324d7bb723350d50b33057fc - sha256: bdecc73c22cb0a8d44ce066116562e35322fd6c1c04584a4754ae2befcab4cb3 + md5: 148cd995f5ba8af22412a4258abc2f94 + sha256: 11f08038c165e354c2a7064ce6bcb28dad2668b330931572666f418e2a8f623c category: main optional: false - name: libiconv @@ -1510,7 +1138,7 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' c-ares: '>=1.34.8,<2.0a0' - libev: '>=4.33,<5.0a0' + libev: '>=4.33,<4.34.0a0,>=4.33,<5.0a0' libgcc: '>=15' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' @@ -1566,10 +1194,10 @@ package: manager: conda platform: linux-64 dependencies: - libstdcxx: '>=15' - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' icu: '>=78.3,<79.0a0' + libgcc: '>=15' + libstdcxx: '>=15' url: https://conda.anaconda.org/conda-forge/linux-64/libpsl-0.23.1-hd9e3e90_1.conda hash: md5: 77be60417aa572afcb48cbe0f967401d @@ -1679,16 +1307,16 @@ package: category: main optional: false - name: libuuid - version: 2.42.2 + version: 2.42.3 manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.2-h5347b49_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.3-hcfc3c73_0.conda hash: - md5: 01bb81d12c957de066ea7362007df642 - sha256: 9b1bdce27a7e31f7d241aeecff67a1f3101d52a2b1e33ccc2cdf2613072bf81f + md5: 74a0a409d9f4561265d36b789d3f398a + sha256: aa58bbba56644ffd062a4a9b358782c5eb7560ccead2ab8f7c5c6ede0a7d33a6 category: main optional: false - name: libwebp-base @@ -1725,8 +1353,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.38-h280c20c_0.conda hash: md5: f7a7ff5a6ab331e037abd34f379a631d @@ -1786,18 +1414,6 @@ package: sha256: 9f3c34f8a7a8dcfed64221a2e19bbe0094ab2c6df7c029b7df713e52c9c9f229 category: main optional: false -- name: more-itertools - version: 11.1.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-11.1.0-pyhcf101f3_0.conda - hash: - md5: 0e694257dbf916540b749c3ffc808efe - sha256: 6725c1c8db9d025db763e1bba1acdcff2eb2ae20a7766a71512ea84081033288 - category: main - optional: false - name: mpc version: 1.4.0 manager: conda @@ -1827,22 +1443,6 @@ package: sha256: 0be79ef2ee536e0c5d3ddb4a52bbae9f26d08560623299f33db2f4c4a17c525a category: main optional: false -- name: msgpack-python - version: 1.2.2 - manager: conda - platform: linux-64 - dependencies: - python: '' - __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' - libgcc: '>=15' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.2-py310he417ec5_1.conda - hash: - md5: ba2504336cbb3a6dabc33bf9b1ea9ad7 - sha256: 853f81e12c8afd00d696fd7951cafb2584bfeea7829e2d6cbfb0080ff6681fe5 - category: main - optional: false - name: ncurses version: '6.6' manager: conda @@ -1862,8 +1462,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=14' libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_1.conda hash: md5: 2db7a395d7dc2b6ed5effaf68fb99443 @@ -1946,25 +1546,13 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.9' url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda hash: md5: 936687ed80f295a1f5dbcf8bd34c252c sha256: c432626b16768b8dab228bfb706f7060c2d462a21c516d240f68f2f902b5a044 category: main optional: false -- name: pastel - version: 0.2.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=2.7' - url: https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2 - hash: - md5: a4eea5bff523f26442405bc5d1f52adb - sha256: 9153f0f38c76a09da7688a61fdbf8f3d7504e2326bef53e4ec20d994311b15bd - category: main - optional: false - name: pcre2 version: '10.47' manager: conda @@ -2012,94 +1600,26 @@ package: manager: conda platform: linux-64 dependencies: - libstdcxx: '>=14' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_3.conda hash: md5: 0ee5bb30034b081a1386c1e2c98ab0a7 sha256: 829d8288764282de5a9f7b9169acb75cc7dc0b6c3fe2535cfe87dea3436bbc5d category: main optional: false -- name: pkginfo - version: 1.12.1.2 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.12.1.2-pyhd8ed1ab_0.conda - hash: - md5: dc702b2fae7ebe770aff3c83adb16b63 - sha256: 353fd5a2c3ce31811a6272cd328874eb0d327b1eafd32a1e19001c4ad137ad3a - category: main - optional: false -- name: platformdirs - version: 4.11.5 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.11.5-pyhcf101f3_0.conda - hash: - md5: 152ec36401f710145a7db03475594410 - sha256: 4496a7e0b584a388b3580ab594a4f384696ab7d702282588fd33a7ee38af983c - category: main - optional: false - name: pthread-stubs version: '0.4' manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb03c661_1003.conda - hash: - md5: df2c27f36bdb0dde779f55b5df76a352 - sha256: afc3b27b2cbb0487c1d0e963f96e71181ecfb623a24fb393bb19ff974a6382a1 - category: main - optional: false -- name: pycparser - version: '3.0' - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/pycparser-3.0-pyhcf101f3_0.conda - hash: - md5: 9c5491066224083c41b6d5635ed7107b - sha256: e27e0473fc6723311a0bd48b89b616fa1b996a2f7a2b555338cbbcfb9c640568 - category: main - optional: false -- name: pydantic - version: 2.13.5 - manager: conda - platform: linux-64 - dependencies: - typing-inspection: '>=0.4.2' - typing_extensions: '>=4.14.1' - python: '' - annotated-types: '>=0.6.0' - pydantic-core: 2.46.5 - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.13.5-pyhcf101f3_0.conda - hash: - md5: 2d0f9304fc1cb1e3e94e7b37c14cd70a - sha256: 701ed8122021f62e1c9a46bdf4932ada911c10afa56ba0459f56da940bcbe5a7 - category: main - optional: false -- name: pydantic-core - version: 2.46.5 - manager: conda - platform: linux-64 - dependencies: - python: '' - typing-extensions: '>=4.6.0,!=4.7.0' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.46.5-py310hbfe5df0_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h7cc23a3_1004.conda hash: - md5: 6d32b80215d6a4692c32a6f3a2293344 - sha256: a6a9fa2ba997171fc18f1f6d9b0c3824ea7b724dfa7f1ea05457b57dd2841f3e + md5: bb66b610707b811e3c65181a6431e7a8 + sha256: 4a44fd00ea73b79ca2c89b0727b9ccf61c506ead71e67a9abfa4c590042b5a4a category: main optional: false - name: pygments @@ -2107,25 +1627,13 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda hash: md5: 2882dee445dfa45b0c5afce3ffb7730a sha256: f5f015ff1bc3e1b7fc08eee096b1865234189ae0b82bebdb86a5369116e42fa0 category: main optional: false -- name: pylev - version: 1.4.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.3' - url: https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2 - hash: - md5: edf8651c4379d9d1495ad6229622d150 - sha256: 50bd91767686bfe769e50a5a1b883e238d944a6163fea43e7c0beaac54ca674f - category: main - optional: false - name: pysocks version: 1.7.1 manager: conda @@ -2165,19 +1673,6 @@ package: sha256: 76a5d12e73542678b70a94570f7b0f7763f9a938f77f0e75d9ea615ef22aa84c category: main optional: false -- name: python-discovery - version: 1.6.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - filelock: '>=3.15.4' - url: https://conda.anaconda.org/conda-forge/noarch/python-discovery-1.6.0-pyhcf101f3_0.conda - hash: - md5: e87738e32eaf5dfa98a5d49f611d6312 - sha256: e48089f2927811994b916d31953563097bc7e8d856965fbdeea3b4d407e3b89f - category: main - optional: false - name: python_abi version: '3.10' manager: conda @@ -2189,22 +1684,6 @@ package: sha256: 24e01bf97a2f5e608ef2d35547bba12281b5f1c8efecfcfd3447c43abc01342b category: main optional: false -- name: pyyaml - version: 6.0.3 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* - yaml: '>=0.2.5,<0.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py310h3406613_1.conda - hash: - md5: 2160894f57a40d2d629a34ee8497795f - sha256: f23de6cc72541c6081d3d27482dbc9fc5dd03be93126d9155f06d0cf15d6e90e - category: main - optional: false - name: readline version: '8.3' manager: conda @@ -2224,10 +1703,10 @@ package: manager: conda platform: linux-64 dependencies: - python: '' certifi: '>=2023.5.7' charset-normalizer: '>=2,<4' idna: '>=2.5,<4' + python: '>=3.10' urllib3: '>=1.26,<3' url: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda hash: @@ -2257,34 +1736,6 @@ package: sha256: 5540ea2f0a78d96c6dc5930276b3f5049bb24f58ad61559fb6f294984b586431 category: main optional: false -- name: ruamel.yaml - version: 0.19.1 - manager: conda - platform: linux-64 - dependencies: - python: '' - ruamel.yaml.clib: '>=0.2.15' - url: https://conda.anaconda.org/conda-forge/noarch/ruamel.yaml-0.19.1-pyhcf101f3_0.conda - hash: - md5: 06ad944772941d5dae1e0d09848d8e49 - sha256: b48bebe297a63ae60f52e50be328262e880702db4d9b4e86731473ada459c2a1 - category: main - optional: false -- name: ruamel.yaml.clib - version: 0.2.15 - manager: conda - platform: linux-64 - dependencies: - python: '' - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.15-py310h83e8816_3.conda - hash: - md5: 553f7b99a7e8e050a97f46c3237dcd50 - sha256: af84a75d6a5dcdbd527ed1c23bdf24f5fbefca1e8c498918ce587fcfe597f655 - category: main - optional: false - name: sbt version: 2.0.8 manager: conda @@ -2297,22 +1748,6 @@ package: sha256: 32713305960f1e41b055452d0abdd5b4413472cb23d65429d19d298794f078e0 category: main optional: false -- name: secretstorage - version: 3.5.0 - manager: conda - platform: linux-64 - dependencies: - cryptography: '>=2.0' - dbus: '' - jeepney: '>=0.6' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.5.0-py310hff52083_1.conda - hash: - md5: 8301ffe9a201c1d5e3b56fef03f3e70a - sha256: be0beab5763632d5dbf9b83520d11cae1b27195ec20d2fbfe029fd3c62df96b6 - category: main - optional: false - name: setuptools version: 84.0.0 manager: conda @@ -2325,30 +1760,6 @@ package: sha256: 9e200ee5f9ff19a4d94e4b51c4856d53dec849f91032f345cf0c6bc3d51a7183 category: main optional: false -- name: six - version: 1.17.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - hash: - md5: 3339e3b65d58accf4ca4fb8748ab16b3 - sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d - category: main - optional: false -- name: smmap - version: 5.0.3 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.3-pyhcf101f3_1.conda - hash: - md5: b899f1195be56d8215ed1973a8f409c3 - sha256: bc86861086db65c9b56dd6a1605755f41a9875b94fc3b69e137f686700d91aa1 - category: main - optional: false - name: snowballstemmer version: 3.1.1 manager: conda @@ -2413,9 +1824,9 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - sphinx: '>=6,<10' docutils: '>0.18,<0.23' + python: '>=3.10' + sphinx: '>=6,<10' sphinxcontrib-jquery: '>=4,<5' url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda hash: @@ -2519,7 +1930,7 @@ package: platform: linux-64 dependencies: anyio: '>=3.6.2,<5' - python: '' + python: '>=3.10' typing_extensions: '>=4.10.0' url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda hash: @@ -2545,8 +1956,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda hash: @@ -2559,68 +1970,19 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda hash: md5: b5325cf06a000c5b14970462ff5e4d58 sha256: 91cafdb64268e43e0e10d30bd1bef5af392e69f00edd34dfaf909f69ab2da6bd category: main optional: false -- name: tomlkit - version: 0.15.1 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.1-pyhcf101f3_0.conda - hash: - md5: e4942e2de7436ff28be7f5645cf3c8d6 - sha256: 5cf833b4d199688b7652fb322ecc134de9555e9444d9249750de9a153421ad0a - category: main - optional: false -- name: toolz - version: 0.12.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - hash: - md5: 2fcb582444635e2c402e8569bb94e039 - sha256: 22b0a9790317526e08609d5dfdd828210ae89e6d444a9e954855fc29012e90c6 - category: main - optional: false -- name: typing-extensions - version: 4.16.0 - manager: conda - platform: linux-64 - dependencies: - typing_extensions: ==4.16.0 - url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda - hash: - md5: c680b5747e8c4c8f23dca0bb7042a8fc - sha256: b141933ece3518f6d7b75dfb59451e2f26b405a44c18e2518a83e9a02e09315c - category: main - optional: false -- name: typing-inspection - version: 0.4.4 - manager: conda - platform: linux-64 - dependencies: - python: '' - typing_extensions: '>=4.15.0' - url: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.4-pyhcf101f3_0.conda - hash: - md5: 880e91eac5d926568ef278e20554148e - sha256: 293c66b208468d186a94ff486c2ffbf67859a2bde8c88e965fc9d06c517191b2 - category: main - optional: false - name: typing_extensions version: 4.16.0 manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda hash: md5: c70ad746c22219b9700931707482992c @@ -2639,17 +2001,19 @@ package: category: main optional: false - name: urllib3 - version: 1.26.20 + version: 2.7.0 manager: conda platform: linux-64 dependencies: - brotli-python: '>=1.0.9' + backports.zstd: '>=1.0.0' + brotli-python: '>=1.2.0' + h2: '>=4,<5' pysocks: '>=1.5.6,<2.0,!=1.5.7' python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.20-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.7.0-pyhd8ed1ab_0.conda hash: - md5: 0511ede4b6dd034d77fa80c6d09794e1 - sha256: 97aa149dfac27182d1fc8f7990f7c894a0167180e3edb6e7c6bdbcd7845bb854 + md5: cbb88288f74dbe6ada1c6c7d0a97223e + sha256: feff959a816f7988a0893201aa9727bbb7ee1e9cec2c4f0428269b489eb93fb4 category: main optional: false - name: uvicorn @@ -2660,7 +2024,7 @@ package: __unix: '' click: '>=7.0' h11: '>=0.8' - python: '' + python: '>=3.10' typing_extensions: '>=4.0' url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda hash: @@ -2687,32 +2051,15 @@ package: sha256: e20a4c7da43a36652f6ed8d47a04f32c54c96c47c006b39793fd6b0abc2d9126 category: main optional: false -- name: virtualenv - version: 21.7.7 - manager: conda - platform: linux-64 - dependencies: - python: '' - distlib: '>=0.3.7,<1' - filelock: '>=3.24.2,<4' - platformdirs: '>=3.9.1,<5' - python-discovery: '>=1.6' - typing_extensions: '>=4.13.2' - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.7.7-pyhcf101f3_0.conda - hash: - md5: 768a861e1491dc8ee2a93fa8b7ee4317 - sha256: c6a9206ef4b8dfbbb1e6199f06d7db602e041d4948247d2eac3a07f9ce5a5ad5 - category: main - optional: false - name: watchfiles version: 1.2.0 manager: conda platform: linux-64 dependencies: - python: '' + __glibc: '>=2.17,<3.0.a0' anyio: '>=3.0.0' libgcc: '>=14' - __glibc: '>=2.17,<3.0.a0' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/watchfiles-1.2.0-py310hf7b62b8_1.conda hash: @@ -2720,26 +2067,14 @@ package: sha256: 290ba93180152ba53fbc0e192776f7dd2e0200f13de38bb6d999f5c61b997ad1 category: main optional: false -- name: webencodings - version: 0.5.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda - hash: - md5: 2841eb5bfc75ce15e9a0054b98dcd64d - sha256: 19ff205e138bb056a46f9e3839935a2e60bd1cf01c8241a5e172a422fed4f9c6 - category: main - optional: false - name: websockets version: 16.1.1 manager: conda platform: linux-64 dependencies: - python: '' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/websockets-16.1.1-py310h99dffb4_0.conda hash: @@ -2765,8 +2100,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-h280c20c_0.conda hash: md5: 85c9442aec283b4e464fa9ecc484a2f3 @@ -2780,8 +2115,8 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - xorg-libice: '>=1.1.2,<2.0a0' libuuid: '>=2.42.2,<3.0a0' + xorg-libice: '>=1.1.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-h0d788c3_1.conda hash: md5: aa7459ed9ad086ba11dda843d764b33d @@ -2976,18 +2311,6 @@ package: sha256: d164dfa75ecd538f6fd68765defcc06aa875bc697b9b215362d79a2a73125dd0 category: main optional: false -- name: zipp - version: 4.1.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.0-pyhcf101f3_0.conda - hash: - md5: ba3dcdc8584155c97c648ae9c044b7a3 - sha256: 210bd31c22bb88f5e2a167df24c95bb5f152b2ada7502f9b8c49d1f5366db423 - category: main - optional: false - name: zlib version: 1.3.2 manager: conda diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index 976464cad6..a0ff7aa4b1 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-64: 59a886e8b62378293b6e70932653a7d990797a184689a545f0eb9eea8e4c9f20 + linux-64: a9faf695c3fa3ee10f5af7f7ee4abf68071ce553a4be65052fe734a9ccee6760 channels: - url: ucb-bar used_env_vars: [] @@ -144,17 +144,17 @@ package: sha256: a35bddac04be093769e81814465a537961c6ed0f8d3cc23d6dce6ecdfaf71821 category: main optional: false -- name: annotated-types - version: 0.8.0 +- name: amqp + version: 5.3.1 manager: conda platform: linux-64 dependencies: python: '>=3.10' - typing-extensions: '>=4.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.8.0-pyhd8ed1ab_0.conda + vine: '>=5.0.0,<6.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/amqp-5.3.1-pyhd8ed1ab_0.conda hash: - md5: 108c928d2a8551832dbc762b535e90bb - sha256: b8fcb994134d3918d1c64a9d62f4168ff85d5bfb89e698102fe4ed679fe0df24 + md5: 7b12e35821f20400ac419b830efb03d9 + sha256: f0e7009b24894845cb48b1e6902f8c64e61b4a27ff5df4c0438ce83472c288de category: main optional: false - name: anyio @@ -164,7 +164,7 @@ package: dependencies: exceptiongroup: '>=1.0.2' idna: '>=2.8' - python: '' + python: '>=3.10' typing_extensions: '>=4.5' url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda hash: @@ -172,18 +172,6 @@ package: sha256: e36998c5e860e26b22e5dbcd5726dd0c4eabad949c84d383cad8512757bbf6a1 category: main optional: false -- name: appdirs - version: 1.4.4 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda - hash: - md5: f4e90937bbfc3a4a92539545a37bb448 - sha256: 5b9ef6d338525b332e17c3ed089ca2f53a5d74b7a7b432747d29c6466e39346d - category: main - optional: false - name: archspec version: 0.2.5 manager: conda @@ -201,7 +189,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.7.2-pyhcf101f3_0.conda hash: md5: 5185c9f9742daeffae5daae93c802bf7 @@ -213,11 +201,11 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' _python_abi3_support: 1.* cpython: '>=3.10' + libgcc: '>=15' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/linux-64/ast-serialize-0.8.0-py310ha6597b5_1.conda hash: md5: caf081b80ddd3672a79b36c34b702737 @@ -229,7 +217,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/async-timeout-5.0.1-pyhcf101f3_2.conda hash: md5: 0d0ef7e4a0996b2c4ac2175a12b3bf69 @@ -288,7 +276,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/attrs-26.1.0-pyhcf101f3_0.conda hash: md5: c6b0543676ecb1fb2d7643941fe375f2 @@ -314,13 +302,13 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-c-sdkutils: '>=0.2.7,<0.2.8.0a0' - aws-c-cal: '>=0.9.15,<0.9.16.0a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.4-h4610da3_2.conda hash: md5: cefa84dbf94066e7a6902af288a2fedd @@ -360,9 +348,9 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h01ee8f8_5.conda hash: md5: ae862abdbb3160f97478d3d4749164c0 @@ -374,12 +362,12 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' - libstdcxx: '>=14' __glibc: '>=2.17,<3.0.a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-checksums: '>=0.2.10,<0.2.11.0a0' + libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.7.1-h1d67b22_5.conda hash: md5: a2dd9d6d6bfe33c44de552b792328a67 @@ -392,11 +380,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-c-cal: '>=0.9.15,<0.9.16.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-compression: '>=0.3.2,<0.3.3.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.11.0-hbe094ff_5.conda hash: md5: c09f7ec7327b8bd52fc2d6eacaa18d3b @@ -409,9 +397,9 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' s2n: '>=1.7.6,<1.7.7.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.27.5-h4f381ba_1.conda hash: @@ -425,10 +413,10 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.16.0-h94f2f89_3.conda hash: md5: 9da082aef418fe3d001af9574f5d277d @@ -440,15 +428,15 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-auth: '>=0.10.4,<0.10.5.0a0' - openssl: '>=3.5.7,<4.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' - aws-checksums: '>=0.2.10,<0.2.11.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' - aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-checksums: '>=0.2.10,<0.2.11.0a0' + libgcc: '>=14' + openssl: '>=3.5.7,<4.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.13.1-h7508075_1.conda hash: md5: 2daf54d3eef87b757f68d7597534dd2f @@ -461,8 +449,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.7-h01ee8f8_3.conda hash: md5: 412f0cf18cc4c4945655dba954ca2d76 @@ -474,9 +462,9 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h01ee8f8_5.conda hash: md5: 4d70caf5260e0787675c3bf61ae5b64c @@ -498,27 +486,27 @@ package: category: main optional: false - name: awscli - version: 2.36.34 + version: 2.36.35 manager: conda platform: linux-64 dependencies: - python: '' + awscrt: 0.36.2 colorama: '>=0.2.5,<0.4.7' + distro: '>=1.5.0,<1.9.0' docutils: '>=0.10,<0.20' - ruamel.yaml: '>=0.15.0,<=0.19.1' - ruamel.yaml.clib: '>=0.2.0,<=0.2.15' + jmespath: '>=0.7.1,<1.1.0' prompt-toolkit: '>=3.0.24,<3.0.52' - distro: '>=1.5.0,<1.9.0' - awscrt: 0.36.2 + python: '' python-dateutil: '>=2.1,<=2.9.0' - jmespath: '>=0.7.1,<1.1.0' + python_abi: 3.10.* + ruamel.yaml: '>=0.15.0,<=0.19.1' + ruamel.yaml.clib: '>=0.2.0,<=0.2.15' urllib3: '>=1.25.4,<=2.6.3' wcwidth: <0.3.0 - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.36.34-py310hd3bfc61_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.36.35-py310hd3bfc61_0.conda hash: - md5: 697f90c85b711e7b9554765c42ce9859 - sha256: b75c1796c16dc61f3a3ac2705d6ec566bbf3f723ba9cbc74017397d358e0e085 + md5: d41161242569559450b4840d8291c406 + sha256: ee0ea06f2547aa1afdc48074194e09eee4f0a7e8adaa574a3ad7d2af7ce83299 category: main optional: false - name: awscrt @@ -526,19 +514,19 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' aws-c-auth: '>=0.10.4,<0.10.5.0a0' - aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-event-stream: '>=0.7.1,<0.7.2.0a0' - python_abi: 3.10.* - aws-c-s3: '>=0.13.1,<0.13.2.0a0' - aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' - aws-checksums: '>=0.2.10,<0.2.11.0a0' aws-c-mqtt: '>=0.16.0,<0.16.1.0a0' + aws-c-s3: '>=0.13.1,<0.13.2.0a0' + aws-checksums: '>=0.2.10,<0.2.11.0a0' + libgcc: '>=14' + python: '' + python_abi: 3.10.* s2n: '>=1.7.6,<1.7.7.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.36.2-py310h01eb2e4_0.conda hash: @@ -547,18 +535,19 @@ package: category: main optional: false - name: azure-core - version: 1.38.2 + version: 1.41.0 manager: conda platform: linux-64 dependencies: + flask: 2.2.5 python: '>=3.10' requests: '>=2.21.0' six: '>=1.11.0' typing_extensions: '>=4.6.0' - url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.38.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.41.0-pyhd8ed1ab_0.conda hash: - md5: 743136e218757845f4737a104cd6643c - sha256: 4d57a96231eb98675833bcd845b6c8474c829f4761d1d4de6b04f78d9df362d1 + md5: 3d743fce13d22b101bfd733e29469628 + sha256: fc46c9078396a558e42871e111c1bf88d3bb16afd4cf8f9887125f83b647cea9 category: main optional: false - name: azure-identity @@ -583,48 +572,23 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda hash: md5: f1976ce927373500cc19d3c0b2c85177 sha256: a14a9ad02101aab25570543a59c5193043b73dc311a25650134ed9e6cb691770 category: main optional: false -- name: backports - version: '1.0' - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda - hash: - md5: 767d508c1a67e02ae8f50e44cacfadb2 - sha256: e1c3dc8b5aa6e12145423fed262b4754d70fec601339896b9ccf483178f690a6 - category: main - optional: false -- name: backports.tarfile - version: 1.2.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - backports: '' - url: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda - hash: - md5: bea46844deb274b2cc2a3a941745fa73 - sha256: 25abdb37e186f0d6ac3b774a63c81c5bc4bf554b5096b51343fa5e7c381193b1 - category: main - optional: false - name: backports.zstd version: 1.7.0 manager: conda platform: linux-64 dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - zstd: '>=1.5.7,<1.6.0a0' + python: '' python_abi: 3.10.* + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.7.0-py310hff74037_0.conda hash: md5: 3a5e1bf41b700d667440ae26654dd70a @@ -636,9 +600,9 @@ package: manager: conda platform: linux-64 dependencies: - readline: '>=8.2,<9.0a0' __glibc: '>=2.17,<3.0.a0' libgcc: '>=13' + readline: '>=8.2,<9.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/bash-5.2.37-h4be8908_0.conda hash: md5: c918f7141733d412f5c579d07f437690 @@ -668,6 +632,21 @@ package: sha256: c5e04d9408a0047bd87156b1853a4ac31cb3a5ccdc52374d89c72cbdabe95002 category: main optional: false +- name: billiard + version: 4.2.4 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/billiard-4.2.4-py310h7c4b9e2_0.conda + hash: + md5: 36adaa154a184a872bd8165ae132a19e + sha256: 6db2e9b6b1e491556b6ecb982de41c172fcfd9402dc18edc2401dad366319490 + category: main + optional: false - name: binutils version: 2.46.1 manager: conda @@ -708,18 +687,6 @@ package: sha256: d45803ee7834f71eb0656d74a58644390ef13365ff67f7716cc660309e46cfbd category: main optional: false -- name: blinker - version: 1.9.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - hash: - md5: 42834439227a4551b939beeeb8a4b085 - sha256: f7efd22b5c15b400ed84a996d777b6327e5c402e79e3c534a7e086236f1eb2dc - category: main - optional: false - name: boltons version: 26.1.0 manager: conda @@ -733,18 +700,18 @@ package: category: main optional: false - name: boto3 - version: 1.43.83 + version: 1.43.84 manager: conda platform: linux-64 dependencies: - botocore: '>=1.43.83,<1.44.0' + botocore: '>=1.43.84,<1.44.0' jmespath: '>=0.7.1,<2.0.0' python: '>=3.10' s3transfer: '>=0.19.0,<0.20.0' - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.43.83-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.43.84-pyhd8ed1ab_0.conda hash: - md5: 0588eacfedfba364a5257ce3471445ea - sha256: 833d6402cc90eddf65130b822f1c585ccfe568d4d7a9449c645044ab9b3084e8 + md5: 774c6c766ba3021f06986e7290d13c6e + sha256: 52631573b087bba90106280b75db0f2e0d78f71e5c60dbe79d92b7495ffb529d category: main optional: false - name: boto3-stubs @@ -763,7 +730,7 @@ package: category: main optional: false - name: botocore - version: 1.43.83 + version: 1.43.87 manager: conda platform: linux-64 dependencies: @@ -771,10 +738,10 @@ package: python: '>=3.10' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,!=2.2.0,<3' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.83-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.87-pyhd8ed1ab_0.conda hash: - md5: 9a70db0ee02ef102c89131fb6b38e821 - sha256: 2ada302fc55fcb7a77c713aaaa17e9a238444584328903b76c7f34ce85b9b2ed + md5: 6fcb76f804eb93bf1db9d259629fd52a + sha256: de9b62dafd21aa00bcf231d0240d27d1840776cfe08bfb0d21a85fae107454f1 category: main optional: false - name: botocore-stubs @@ -782,7 +749,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' types-awscrt: '' typing_extensions: '>=4.1.0' url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.43.67-pyhcf101f3_0.conda @@ -856,8 +823,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.8-hebe6cf0_2.conda hash: md5: 3ad2b403be8fc5612b9159e2ce621f69 @@ -876,70 +843,6 @@ package: sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 category: main optional: false -- name: cachecontrol - version: 0.14.4 - manager: conda - platform: linux-64 - dependencies: - msgpack-python: '>=0.5.2,<2.0.0' - python: '>=3.10' - requests: '>=2.16.0' - url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.4-pyha770c72_0.conda - hash: - md5: 13bdbb9b693b29134c56a9a00c23de41 - sha256: cca3a26282a5bc37a10afb1aa2006a21c45033cbc4ff012f9501f56f2a115c12 - category: main - optional: false -- name: cachecontrol-with-filecache - version: 0.14.4 - manager: conda - platform: linux-64 - dependencies: - cachecontrol: 0.14.4 - filelock: '>=3.8.0' - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.14.4-pyhd8ed1ab_0.conda - hash: - md5: 41a7966424a8733b11410216d9a47227 - sha256: becb375d64ebda9f9ed030d529b22da21030401d0dbaee62a208e60fca9c4587 - category: main - optional: false -- name: cached-property - version: 2.0.1 - manager: conda - platform: linux-64 - dependencies: - cached_property: '>=2.0.1,<2.0.2.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/cached-property-2.0.1-pyhcf101f3_0.conda - hash: - md5: 70e764e549c6c25de5e429d6e4a28b39 - sha256: 39358005c3cc44d8315ed79789b18a960d69365be979970cc6bae8f7a6177703 - category: main - optional: false -- name: cached_property - version: 2.0.1 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/cached_property-2.0.1-pyhcf101f3_0.conda - hash: - md5: 256d863ded0f79464391a075944d24a6 - sha256: 4bd96dab5a434e4ee59fb6910cae704d4c5b453907d4886272a9943d37e42b6f - category: main - optional: false -- name: cachy - version: 0.3.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/cachy-0.3.0-pyhd8ed1ab_2.conda - hash: - md5: 1efe226b868cf59b8330356c37c8186e - sha256: 2560a98e3dc0ff4ff408a199d05922ae10fab2629417c4c4309e4226267cef8c - category: main - optional: false - name: cairo version: 1.18.4 manager: conda @@ -976,10 +879,10 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' libgcc: '>=15' - xxhash: '>=0.8.3,<0.8.4.0a0' libhiredis: '>=1.3.0,<1.4.0a0' + libstdcxx: '>=15' + xxhash: '>=0.8.3,<0.8.4.0a0' zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/ccache-4.14-h420ae53_0.conda hash: @@ -987,6 +890,28 @@ package: sha256: adace394e3f21541d1740b64f8f683cb6f6b9693fe419f49d4460a076090675d category: main optional: false +- name: celery + version: 5.6.3 + manager: conda + platform: linux-64 + dependencies: + billiard: '>=4.2.1,<5.0' + click: '>=8.1.2,<9.0' + click-didyoumean: '>=0.3.0' + click-plugins: '>=1.1.1' + click-repl: '>=0.2.0' + exceptiongroup: '>=1.3.0' + kombu: '>=5.6.0' + python: '>=3.10' + python-dateutil: '>=2.8.2' + tzlocal: '' + vine: '>=5.1.0,<6.0' + url: https://conda.anaconda.org/conda-forge/noarch/celery-5.6.3-pyhc364b38_0.conda + hash: + md5: 5faafe2ad8db9e411630f52cf36b4aaa + sha256: 48a6a8b27fcaed2596a424010a22284d9a9205db698f083e0936692a9de9e661 + category: main + optional: false - name: certifi version: 2026.7.22 manager: conda @@ -1033,15 +958,15 @@ package: manager: conda platform: linux-64 dependencies: - libclang-cpp23.1: '>=23.1.0,<23.2.0a0' - clang-format-23: ==23.1.0 __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' + clang-format-23: ==23.1.0 + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' libgcc: '>=15' + libstdcxx: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - zstd: '>=1.5.7,<1.6.0a0' libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-23.1.0-default_hcd25269_1.conda hash: md5: baeb4900f00a7470ed297e0cd5cfd62c @@ -1053,15 +978,15 @@ package: manager: conda platform: linux-64 dependencies: - libclang-cpp23.1: '>=23.1.0,<23.2.0a0' __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - zstd: '>=1.5.7,<1.6.0a0' libzlib: '>=1.3.2,<2.0a0' - libllvm23: '>=23.1.0,<23.2.0a0' + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-23-23.1.0-default_h0acdd01_1.conda hash: md5: ce1c496a9732c0382c24e01e054372a4 @@ -1073,16 +998,16 @@ package: manager: conda platform: linux-64 dependencies: - libclang13: '>=23.1.0' - libclang-cpp23.1: '>=23.1.0,<23.2.0a0' __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + libclang13: '>=23.1.0' libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - zstd: '>=1.5.7,<1.6.0a0' libzlib: '>=1.3.2,<2.0a0' - libllvm23: '>=23.1.0,<23.2.0a0' + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/clang-scan-deps-23.1.0-default_h0acdd01_1.conda hash: md5: c9fe508027f299bd61b24175013da9b9 @@ -1094,18 +1019,18 @@ package: manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' clang-format: ==23.1.0 - libclang13: '>=23.1.0' clang-scan-deps: ==23.1.0 libclang-cpp23.1: '>=23.1.0,<23.2.0a0' - __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' + libclang13: '>=23.1.0' libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - zstd: '>=1.5.7,<1.6.0a0' libzlib: '>=1.3.2,<2.0a0' - libllvm23: '>=23.1.0,<23.2.0a0' + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/clang-tools-23.1.0-default_h9d70225_1.conda hash: md5: 66f754e44ffe2fddbd767a54e3016839 @@ -1125,31 +1050,45 @@ package: sha256: ccc4787f511964f9a1f2d2d2859c91c5d571fb60f7f09d4c4e092c9b7a94e671 category: main optional: false -- name: click-default-group - version: 1.2.4 +- name: click-didyoumean + version: 0.3.1 manager: conda platform: linux-64 dependencies: - click: '' - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_1.conda + click: '>=7' + python: '>=3.9,<4.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/click-didyoumean-0.3.1-pyhd8ed1ab_1.conda hash: - md5: 7cd83dd6831b61ad9624a694e4afd7dc - sha256: cb7279eecddbd35ea78fd0e189a9a7db8b84c2c0e3b1271cf26251615f75dc4d + md5: dd87c399586cac9f8bdd8c644b2592a6 + sha256: f3e6540088db593707766aa30abe184463e4842182012ffb81e1cc784dbdc436 category: main optional: false -- name: clikit - version: 0.6.2 +- name: click-plugins + version: 1.1.1.2 manager: conda platform: linux-64 dependencies: - pastel: '>=0.2.0,<0.3.0' - pylev: '>=1.3,<2.0' + click: '>=4.0' python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/clikit-0.6.2-pyhd8ed1ab_3.conda + url: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda + hash: + md5: e9b05deb91c013e5224672a4ba9cf8d1 + sha256: ba1ee6e2b2be3da41d70d0d51d1159010de900aa3f33fceaea8c52e9bd30a26e + category: main + optional: false +- name: click-repl + version: 0.3.0 + manager: conda + platform: linux-64 + dependencies: + click: '' + prompt_toolkit: '' + python: '>=3.6' + six: '' + url: https://conda.anaconda.org/conda-forge/noarch/click-repl-0.3.0-pyhd8ed1ab_0.conda hash: - md5: 37e178bf9356122c35005a62d850e5d9 - sha256: da000653be96a15b9aad5c59f655dbd4a60cb66fc0137e1018db9de76671bb08 + md5: 27eb8f68250666c1a19d1b6ec9d12c4e + sha256: 69c16e0b89e1fb4fc444af4798ef1222b3075d074cbcbe70b9af793668200a14 category: main optional: false - name: cmake @@ -1157,17 +1096,17 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' - ncurses: '>=6.6,<7.0a0' bzip2: '>=1.0.8,<2.0a0' + libcurl: '>=8.21.0,<9.0a0' libexpat: '>=2.8.1,<3.0a0' + libgcc: '>=15' liblzma: '>=5.8.3,<6.0a0' - libcurl: '>=8.21.0,<9.0a0' - rhash: '>=1.4.6,<2.0a0' + libstdcxx: '>=15' libuv: '>=1.52.1,<2.0a0' libzlib: '>=1.3.2,<2.0a0' + ncurses: '>=6.6,<7.0a0' + rhash: '>=1.4.6,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/cmake-4.4.3-hff7ac6b_0.conda hash: @@ -1188,39 +1127,35 @@ package: category: main optional: false - name: conda - version: 26.7.1 + version: 26.1.1 manager: conda platform: linux-64 dependencies: archspec: '>=0.2.3' - backports.zstd: '>=1.3.0' boltons: '>=23.0.0' charset-normalizer: '' + conda-libmamba-solver: '>=25.4.0' conda-package-handling: '>=2.2.0' distro: '>=1.5.0' frozendict: '>=2.4.2' + jsonpatch: '>=1.32' menuinst: '>=2' - msgpack-python: '>=1.1.1' packaging: '>=23.0' platformdirs: '>=3.10.0' - pluggy: '>=1.6.0' + pluggy: '>=1.0.0' pycosat: '>=0.6.3' - python: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* requests: '>=2.28.0,<3' ruamel.yaml: '>=0.11.14,<0.19' setuptools: '>=60.0.0' tqdm: '>=4' truststore: '>=0.8.0' - conda-libmamba-solver: '>=26.4.1' - conda-lockfiles: '>=0.2.0' - conda-pypi: '>=0.10.1' - conda-rattler-solver: '>=0.1.1' - conda-self: '>=0.2.0' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/conda-26.7.1-py310hd3bfc61_0.conda + zstandard: '>=0.19.0' + url: https://conda.anaconda.org/conda-forge/linux-64/conda-26.1.1-py310hff52083_0.conda hash: - md5: d0171785698c043c1fbd807c744994b0 - sha256: 79fbcc48c516fae1bce469245826e12b62fb73659524581eeb639de8c6ab7ec2 + md5: fdd3d2814d732e0d878fc7d4a2289f7f + sha256: 38b5e5057fe3a69ea82125874f4653cfda2d5ca764a9a0bb8084e1ea3c53a661 category: main optional: false - name: conda-gcc-specs @@ -1235,88 +1170,21 @@ package: sha256: 87ebd4f94c8823763d35adaba292c2dc8c60ddda70e0980f32eae0dbb0e2aa2d category: main optional: false -- name: conda-index - version: 0.12.1 - manager: conda - platform: linux-64 - dependencies: - conda: '>=25' - conda-package-streaming: '>=0.12.0' - filelock: '' - jinja2: '' - msgpack-python: '>=1.0.2' - python: '>=3.10' - ruamel.yaml: '' - zstandard: '' - url: https://conda.anaconda.org/conda-forge/noarch/conda-index-0.12.1-pyhd8ed1ab_0.conda - hash: - md5: 1b8035639db6b74dcdc6b5412ae89011 - sha256: 39f8f4b24e6c6b701679949950af3220bcf42bd634a68d63f7d39f64752b79a6 - category: main - optional: false - name: conda-libmamba-solver - version: 26.7.0 + version: 26.4.2 manager: conda platform: linux-64 dependencies: - python: '' - libmambapy: '>=2.0.0,!=2.6.2' boltons: '>=23.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-26.7.0-pyhcf101f3_0.conda - hash: - md5: 49592004caf4336815fd5282bbb72172 - sha256: b7cc67470a361330edd8d9e331cafd4807dd77bc766ca197a3783ed3db66dfeb - category: main - optional: false -- name: conda-lock - version: 2.5.7 - manager: conda - platform: linux-64 - dependencies: - cachecontrol-with-filecache: '>=0.12.9' - cachy: '>=0.3.0' - click: '>=8.0' - click-default-group: '' - clikit: '>=0.6.2' - crashtest: '>=0.3.0' - ensureconda: '>=1.3' - gitpython: '>=3.1.30' - html5lib: '>=1.0' - jinja2: '' - keyring: '>=21.2.0' - packaging: '>=20.4' - pkginfo: '>=1.4' - pydantic: '>=1.10' - python: '>=3.9' - pyyaml: '>=5.1' - requests: '>=2.18' - ruamel.yaml: '' - setuptools: '' - tomli: '' - tomlkit: '>=0.7.0' - toolz: '>=0.12.0,<1.0.0' - typing_extensions: '' - urllib3: '>=1.26.5,<2.0' - virtualenv: '>=20.0.26' - url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-2.5.7-pyhd8ed1ab_1.conda - hash: - md5: 518d59879a7ba4f3972109e8666860b2 - sha256: 905618b595d7a067fe37a282e3b84a4ed46542c1b497c76cef7b0f33f9335cb7 - category: main - optional: false -- name: conda-lockfiles - version: 0.2.1 - manager: conda - platform: linux-64 - dependencies: - conda: '>=26.3.0' - pydantic: '>=2.12.5,<3' + libmambapy: '>=2.0.0' + msgpack-python: '>=1.1.1' python: '>=3.10' - ruamel.yaml: '' - url: https://conda.anaconda.org/conda-forge/noarch/conda-lockfiles-0.2.1-pyhd8ed1ab_0.conda + requests: '>=2.28.0,<3' + zstandard: '>=0.15' + url: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-26.4.2-pyhcf101f3_1.conda hash: - md5: 7f1b127b170f9f0d01eca4b54a046ee5 - sha256: eb20fc63ce6438e10d7c64890bd23d0c68f62a479f2bae8b3c892e13949daf03 + md5: d950913618dcaa344b33b5c110a72e09 + sha256: 98ad6bdd3c87df9d7a3432729a71bcb98c04773ddbeadddc2584ba311a5c2566 category: main optional: false - name: conda-package-handling @@ -1324,8 +1192,8 @@ package: manager: conda platform: linux-64 dependencies: - python: '' conda-package-streaming: '>=0.12.0' + python: '>=3.10' requests: '' zstandard: '>=0.15' url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.5.0-pyhcf101f3_0.conda @@ -1347,63 +1215,15 @@ package: sha256: af3b666ea6043a146901cd151d6201126bbe19af8307b58fb175015e3710064c category: main optional: false -- name: conda-pypi - version: 0.11.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - pip: '>=23.0.1' - packaging: '' - unearth: '' - python-build: '' - python-installer: '>=1.0' - platformdirs: '' - conda-index: '>=0.11.0' - conda-package-streaming: '>=0.11' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/conda-pypi-0.11.0-py310hd3bfc61_1.conda - hash: - md5: c5841720e044f6b6553c3b6dfff9761b - sha256: 3b7cd3fa49621fed71a467f4718fd331887024e093a7c5242191a0ee7772ad0b - category: main - optional: false -- name: conda-rattler-solver - version: 0.1.1 - manager: conda - platform: linux-64 - dependencies: - python: '' - conda: '>=26.5.0' - py-rattler: '>=0.25.0,<0.26.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/conda-rattler-solver-0.1.1-pyhcf101f3_0.conda - hash: - md5: f5d15171925a157707e1ad165179449c - sha256: 77ea286de14f5d2dd0c376627ec41d0c226ad94ad8b25262f36712070324aa05 - category: main - optional: false -- name: conda-self - version: 0.2.1 - manager: conda - platform: linux-64 - dependencies: - conda: '>=26.1.1' - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/conda-self-0.2.1-pyhd8ed1ab_0.conda - hash: - md5: ac705504abf28bb924a021a3d5f4b55f - sha256: efd3b7b79a0e3993a174ab0140794479e2479b59fd053605acaaa25718f0f013 - category: main - optional: false - name: conda-standalone - version: 26.5.2 + version: 25.3.1 manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-26.5.2-h643be8f_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-25.3.1-ha770c72_0.conda hash: - md5: 0002e091db2447ac9ee8bd6062601bd5 - sha256: 1c5f11bcc585e1dffabda0aad96838a3290339d68504479422533b008c10d2fd + md5: 51fd105c89424615986095cfdc1986cb + sha256: d79aac9482afa559f04de589cb58da2ee183dc29dfd1cacbeb24eb5eb14f0b5c category: main optional: false - name: conda-tree @@ -1411,10 +1231,10 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + colorama: '' conda: '>=25.0' networkx: '>=2.0' - colorama: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.2.0-pyhcf101f3_0.conda hash: md5: d50ead4984f21edfb9ceeca13e62440a @@ -1422,21 +1242,20 @@ package: category: main optional: false - name: constructor - version: 3.16.1 + version: 3.11.3 manager: conda platform: linux-64 dependencies: __linux: '' - conda: '>=4.6' - conda-standalone: '>=24.11.0' + conda: '>=4.6,<26.3.0' + conda-standalone: '' jinja2: '' - python: '' + python: '>=3.9' ruamel.yaml: '>=0.11.14,<0.19' - jsonschema: '>=4' - url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.16.1-pyh4826d0c_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.11.3-pyh66a16d4_0.conda hash: - md5: faeb60369d3f3ec4a45a469da63a30ab - sha256: 96450a122632555562f0cb82d65b9e81aa5ec29e8bcf4a1520083e609b7cd2c2 + md5: 8e53f34ab8cf75e8c56000a4b90aa524 + sha256: d2aca618d1fb3720f4cf0130515e29b659c4aa997b614a2076b9f34230cdc105 category: main optional: false - name: contourpy @@ -1461,8 +1280,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.11-h280c20c_0.conda hash: md5: c63e2851f3d99a32f4b6991d0460dd25 @@ -1474,9 +1293,9 @@ package: manager: conda platform: linux-64 dependencies: - libstdcxx: '>=14' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/cpp-expected-1.3.1-h171cf75_1.conda hash: md5: 451367db888b29ad0db6b298669fbe77 @@ -1496,18 +1315,6 @@ package: sha256: 480ea56b6e2627f0f44fca21d48f9568a91b206e074c000a710d6b9492f2ec7a category: main optional: false -- name: crashtest - version: 0.4.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9,<4.0' - url: https://conda.anaconda.org/conda-forge/noarch/crashtest-0.4.1-pyhd8ed1ab_1.conda - hash: - md5: e036e2f76d9c9aebc12510ed23352b6c - sha256: af1622b15f8c7411d9c14b8adf970cec16fec8a28b98069fdf42b1cd2259ccc9 - category: main - optional: false - name: cryptography version: 40.0.2 manager: conda @@ -1529,7 +1336,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda hash: md5: 4c2a8fef270f6c69591889b93f9f55c1 @@ -1542,11 +1349,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' + libexpat: '>=2.8.1,<3.0a0' libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' libstdcxx: '>=15' - libexpat: '>=2.8.1,<3.0a0' libzlib: '>=1.3.2,<2.0a0' - libglib: '>=2.88.3,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-he8c428d_2.conda hash: md5: a6eb37b51be1a9a654dc3a8aca039b1a @@ -1566,18 +1373,6 @@ package: sha256: e91c2063a7ec42baeb733630ecadfe494f294e203d01d4ed921717deaf3fa7db category: main optional: false -- name: distlib - version: 0.4.3 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.3-pyhcf101f3_0.conda - hash: - md5: 58638f77697c4f6726753eb8be34818b - sha256: e2753997b8bd34205f42be01b8bab8037423dc30c02a1ec12de23e5b4c0b0a2e - category: main - optional: false - name: distro version: 1.8.0 manager: conda @@ -1620,7 +1415,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/doit-0.37.0-pyhcf101f3_0.conda hash: md5: 37b3d4c558f2bb2b5378c43f4d6f1fb5 @@ -1632,9 +1427,9 @@ package: manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' libfdt: '>=1.7.2,<1.8.0a0' libgcc: '>=14' - __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.7.2-h280c20c_6.conda hash: @@ -1647,38 +1442,20 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' - zstd: '>=1.5.7,<1.6.0a0' - libarchive: '>=3.8.9,<3.9.0a0' bzip2: '>=1.0.8,<2.0a0' - libzlib: '>=1.3.2,<2.0a0' + libarchive: '>=3.8.9,<3.9.0a0' + libgcc: '>=15' liblzma: '>=5.8.3,<6.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.196-h03e2bf6_0.conda hash: md5: 24717939d024efa3e042e52e8c279328 sha256: 075378fb752fa7d15c3d913fe4d30ea4049308b6b88dfba1ce0fda2870ce18f6 category: main optional: false -- name: ensureconda - version: 1.6.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - appdirs: '' - click: '>=5.1' - filelock: '' - packaging: '' - requests: '>=2' - conda-package-streaming: '' - url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.6.0-pyhcf101f3_0.conda - hash: - md5: fcc02785e4da41e5f19f740e017b6ffb - sha256: e3c35c7cee4e6db53de4ad1ca6d35b7aced263d21a6ee2dcdffe401135646ab2 - category: main - optional: false - name: epoxy version: 1.5.10 manager: conda @@ -1749,9 +1526,9 @@ package: manager: conda platform: linux-64 dependencies: - libmagic: ==5.48 __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + libmagic: ==5.48 libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/file-5.48-hd479b6e_1.conda hash: @@ -1759,18 +1536,6 @@ package: sha256: 478dd9aa480a0fdf39c354884fb85c37013726730f6bf69ed470efa2e27de0e4 category: main optional: false -- name: filelock - version: 3.32.5 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.32.5-pyhd8ed1ab_0.conda - hash: - md5: 9b091d04be6b722d4ed7dfee34295dea - sha256: a52faa011a8176bbbf30c77f76707788be9a9e1a7e30c3753083719c093a15dc - category: main - optional: false - name: findutils version: 4.10.0 manager: conda @@ -1785,21 +1550,21 @@ package: category: main optional: false - name: flask - version: 3.1.3 + version: 2.2.5 manager: conda platform: linux-64 dependencies: - python: '' - blinker: '>=1.9.0' - click: '>=8.1.3' - itsdangerous: '>=2.2.0' - jinja2: '>=3.1.2' - markupsafe: '>=2.1.1' - werkzeug: '>=3.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/flask-3.1.3-pyhcf101f3_1.conda + celery: '>=5.2.7' + click: '>=8.0' + importlib-metadata: '>=3.6.0' + itsdangerous: '>=2.0' + jinja2: '>=3.0' + python: '>=3.7' + werkzeug: '>=2.2.2' + url: https://conda.anaconda.org/conda-forge/noarch/flask-2.2.5-pyhd8ed1ab_0.conda hash: - md5: 156398929bf849da6df8f89a2c390185 - sha256: 3980dfba1e3900106cc3e6210294e73f50d02a67fdfe7b3bb36b2721ba9379cb + md5: 66c558a28b9b47c1e2aa8e8cb80b9037 + sha256: 9356ae47278788439770eb9d05bfeb72c39a53a8b10a0e534b612f99b9c18e9b category: main optional: false - name: flask-cors @@ -1808,7 +1573,7 @@ package: platform: linux-64 dependencies: flask: '>=0.9' - python: '' + python: '>=3.10' typing_extensions: '>=4.6.0' werkzeug: '>=0.7' url: https://conda.anaconda.org/conda-forge/noarch/flask-cors-6.0.5-pyhcf101f3_0.conda @@ -1937,10 +1702,10 @@ package: manager: conda platform: linux-64 dependencies: - font-ttf-ubuntu: '' - font-ttf-inconsolata: '' font-ttf-dejavu-sans-mono: '' + font-ttf-inconsolata: '' font-ttf-source-code-pro: '' + font-ttf-ubuntu: '' url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda hash: md5: a7970cd949a077b7cb9696379d338681 @@ -1984,11 +1749,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-h7cc23a3_2.conda hash: - md5: 1cd10eda5692519d01bb20e086e214c9 - sha256: 4846a3ca0402f3fe33ad84ed50ab213c6aafde4a0faef3c5002f6bf753e21671 + md5: 16d6e5a0f8dbc17bd6669dba6f49bad3 + sha256: 76dd097bd65d812a9104edb0e266386e152e65928ac5c8eb4f480ce24affc470 category: main optional: false - name: frozendict @@ -1996,9 +1761,9 @@ package: manager: conda platform: linux-64 dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/frozendict-2.4.7-py310h99dffb4_2.conda hash: @@ -2148,8 +1913,8 @@ package: manager: conda platform: linux-64 dependencies: - python: '' gitdb: '>=4.0.1,<5' + python: '>=3.10' typing_extensions: '>=3.10.0.2' url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.61-pyhcf101f3_0.conda hash: @@ -2162,10 +1927,10 @@ package: manager: conda platform: linux-64 dependencies: - libglib: ==2.88.3 - libffi: '' __glibc: '>=2.17,<3.0.a0' + libffi: '' libgcc: '>=15' + libglib: ==2.88.3 url: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.88.3-h67ed8a3_2.conda hash: md5: 5c35ace78b7d630e77efcb37dacb62ae @@ -2206,8 +1971,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=14' libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-h54a6638_1.conda hash: md5: f9fe2984587fa8235a6af6004760cd18 @@ -2258,7 +2023,7 @@ package: glib-tools: '' harfbuzz: '>=13.2.1' hicolor-icon-theme: '' - libcups: '>=2.3.3,<3.0a0' + libcups: '>=2.3.3,<2.4.0a0,>=2.3.3,<3.0a0' libexpat: '>=2.7.4,<3.0a0' libfreetype: '>=2.14.2' libfreetype6: '>=2.14.2' @@ -2346,7 +2111,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' typing_extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda hash: @@ -2359,9 +2124,9 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - hyperframe: '>=6.1,<7' hpack: '>=4.2,<5' + hyperframe: '>=6.1,<7' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda hash: md5: e652ac7756069c456d0da2a922cd7df5 @@ -2374,10 +2139,10 @@ package: platform: linux-64 dependencies: libharfbuzz-devel: 14.4.0 - url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-14.4.0-ha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-14.4.0-ha770c72_1.conda hash: - md5: c2d4a4fe3216b26ef30e91d917c1b718 - sha256: 78cf9cedd013ba49455b2c75e95d2cdc4aafd384be8f9ece0def6ff1b2a86c61 + md5: d5c10e05d7135fca0731173c288bfff5 + sha256: 12b371fad335d0c27de968140088cc678233d7060c2743baf9cb687a9fa975a7 category: main optional: false - name: hicolor-icon-theme @@ -2403,53 +2168,6 @@ package: sha256: fdcea5d7cb314485d3907192ef024c704311548c5b0cbeb390cd1951051e29d2 category: main optional: false -- name: html5lib - version: '1.1' - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - six: '>=1.9' - webencodings: '' - url: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyhd8ed1ab_2.conda - hash: - md5: cf25bfddbd3bc275f3d3f9936cee1dd3 - sha256: 8027e436ad59e2a7392f6036392ef9d6c223798d8a1f4f12d5926362def02367 - category: main - optional: false -- name: httpcore - version: 1.0.9 - manager: conda - platform: linux-64 - dependencies: - python: '' - h11: '>=0.16' - h2: '>=3,<5' - sniffio: 1.* - anyio: '>=4.0,<5.0' - certifi: '' - url: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda - hash: - md5: 4f14640d58e2cc0aa0819d9d8ba125bb - sha256: 04d49cb3c42714ce533a8553986e1642d0549a05dc5cc48e0d43ff5be6679a5b - category: main - optional: false -- name: httpx - version: 0.28.1 - manager: conda - platform: linux-64 - dependencies: - anyio: '' - certifi: '' - httpcore: 1.* - idna: '' - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - hash: - md5: d6989ead454181f4f9bc987d3dc4e285 - sha256: cd0f1de3697b252df95f98383e9edb1d00386bfdd03fdf607fa42fe5fcb09950 - category: main - optional: false - name: humanfriendly version: '10.0' manager: conda @@ -2481,8 +2199,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=14' libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-py310h44b86e0_2.conda hash: md5: 72a381cbad04f24b1c2a43ef707f45b4 @@ -2494,7 +2212,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda hash: md5: a39ae05027e9b707742e41b30d296b75 @@ -2518,7 +2236,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' zipp: '>=3.20' url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.1-pyhcf101f3_0.conda hash: @@ -2526,19 +2244,6 @@ package: sha256: 95a074a7d3f58b3494c068d4789c364dcb591c56b70ca6b12f149a540f9aeea4 category: main optional: false -- name: importlib_resources - version: 7.1.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - zipp: '>=3.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-7.1.0-pyhd8ed1ab_0.conda - hash: - md5: 0ba6225c279baf7ea9473a62ea0ec9ae - sha256: a563a51aa522998172838e867e6dedcf630bc45796e8612f5a1f6d73e9c8125a - category: main - optional: false - name: iniconfig version: 2.3.0 manager: conda @@ -2576,64 +2281,13 @@ package: sha256: e138c68824c8661e55f3184c489fe1db425c06ffae1a37edc780bcb92cde9058 category: main optional: false -- name: jaraco.classes - version: 3.4.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - more-itertools: '' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda - hash: - md5: d59568bad316413c89831456e691de29 - sha256: 3cc991f0f09dfd00d2626e745ba68da03e4f1dcbb7b36dd20f7a7373643cd5d5 - category: main - optional: false -- name: jaraco.context - version: 6.1.2 - manager: conda - platform: linux-64 - dependencies: - python: '' - backports.tarfile: '' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.2-pyhcf101f3_0.conda - hash: - md5: b9d2b1ffa307961f6bb7d83c8ba8a8be - sha256: 108b3919db8ef81b5585b38a3fedbe9eeccdf8fa576c250a13559a1188f597cc - category: main - optional: false -- name: jaraco.functools - version: 4.6.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - more-itertools: '' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.6.0-pyhcf101f3_0.conda - hash: - md5: 8665b873062a31a90b563bf493f9fb2c - sha256: d23b9e8e8d5968699ec2bc9f8d182598e86e494dbe8a3a71b4a53b1be9a3cb16 - category: main - optional: false -- name: jeepney - version: 0.9.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.9.0-pyhd8ed1ab_0.conda - hash: - md5: b4b91eb14fbe2f850dd2c5fc20676c0d - sha256: 00d37d85ca856431c67c8f6e890251e7cc9e5ef3724a0302b8d4a101f22aa27f - category: main - optional: false - name: jinja2 version: 3.1.6 manager: conda platform: linux-64 dependencies: markupsafe: '>=2.0' - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda hash: md5: 04558c96691bed63104678757beb4f8d @@ -2670,9 +2324,9 @@ package: manager: conda platform: linux-64 dependencies: - oniguruma: '>=6.9.10,<6.10.0a0' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + oniguruma: 6.9.*,>=6.9.10,<6.10.0a0 url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_1.conda hash: md5: 6ec056e539486e84f0c7acef6b5863f9 @@ -2692,37 +2346,61 @@ package: sha256: 6cf0505add010cc07ab07b17288ef305a2717e8d16d88c131bb5d408a2c0d293 category: main optional: false +- name: jsonpatch + version: '1.33' + manager: conda + platform: linux-64 + dependencies: + jsonpointer: '>=1.9' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_1.conda + hash: + md5: cb60ae9cf02b9fcb8004dec4089e5691 + sha256: 304955757d1fedbe344af43b12b5467cca072f83cce6109361ba942e186b3993 + category: main + optional: false +- name: jsonpointer + version: 3.1.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.1.1-pyhcf101f3_0.conda + hash: + md5: 89bf346df77603055d3c8fe5811691e6 + sha256: a3d10301b6ff399ba1f3d39e443664804a3d28315a4fb81e745b6817845f70ae + category: main + optional: false - name: jsonschema - version: 4.26.0 + version: 4.24.1 manager: conda platform: linux-64 dependencies: attrs: '>=22.2.0' jsonschema-specifications: '>=2023.3.6' - python: '' + python: '>=3.9' referencing: '>=0.28.4' - rpds-py: '>=0.25.0' - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_1.conda + rpds-py: '>=0.7.1' + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.24.1-pyhe01879c_0.conda hash: - md5: 204b5ca91eba7738790ecc333facbbbe - sha256: 328756a4555941d57af4a5f553e5d8598e9f3b37db028f557e30f9f0b3086db6 + md5: 5bfc971f7d1c463f94b15af1f0e9cd34 + sha256: 5048d421165c75118ebdfa58cd44de7f58a86aa422f08a2cba57ece4e3492544 category: main optional: false - name: jsonschema-path - version: 0.5.0 + version: 0.4.6 manager: conda platform: linux-64 dependencies: - attrs: '>=22.2.0' - pathable: '>=0.6.0,<0.7.0' - python: '' + pathable: '>=0.5.0,<0.6.0' + python: '>=3.10' pyyaml: '>=5.1' referencing: <0.38.0 requests: '>=2.31.0,<3.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-path-0.5.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-path-0.4.6-pyhcf101f3_0.conda hash: - md5: 95c2f7c34c7b2d743f135156a0d3f35a - sha256: 3996a17eab83b75eae9a48200c11da4e34414c23a783c88b29bc2896ee734401 + md5: cc168b7fcf4a70b37fbdb750ae0828b8 + sha256: 729ef0b3f7cfac353d5bacfcf6dd492cf937f0c534234fc625923268e35215df category: main optional: false - name: jsonschema-specifications @@ -2730,7 +2408,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' referencing: '>=0.31.0' url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda hash: @@ -2749,26 +2427,6 @@ package: sha256: c4d973dd80ab10028b3e4c58c1c6d8f437bfeaf6069dafb1130dabc550e9caf4 category: main optional: false -- name: keyring - version: 25.7.0 - manager: conda - platform: linux-64 - dependencies: - __linux: '' - importlib-metadata: '>=4.11.4' - importlib_resources: '' - jaraco.classes: '' - jaraco.context: '' - jaraco.functools: '' - jeepney: '>=0.4.2' - python: '>=3.10' - secretstorage: '>=3.2' - url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyha804496_0.conda - hash: - md5: 9eeb0eaf04fa934808d3e070eebbe630 - sha256: 010718b1b1a35ce72782d38e6d6b9495d8d7d0dbea9a3e42901d030ff2189545 - category: main - optional: false - name: keyutils version: 1.6.3 manager: conda @@ -2787,10 +2445,10 @@ package: manager: conda platform: linux-64 dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' libgcc: '>=15' + libstdcxx: '>=15' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.1-py310he417ec5_0.conda hash: @@ -2798,6 +2456,23 @@ package: sha256: b40a191ac761b629805db4ff9d6ac5bdaeaebfb9eb38af7329f8b449d7c6d8c9 category: main optional: false +- name: kombu + version: 5.6.2 + manager: conda + platform: linux-64 + dependencies: + amqp: '>=5.1.1,<6.0.0' + boto3: '>=1.26.143' + packaging: '' + python: '>=3.10' + python-tzdata: '>=2025.2' + vine: 5.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/kombu-5.6.2-pyha770c72_0.conda + hash: + md5: 2835b89f91d340c6aecf900779721540 + sha256: 03c6aef64ff9ffb06592de7a99e19922649ca193b7f6b3beadedbd8dc058a38b + category: main + optional: false - name: krb5 version: 1.22.2 manager: conda @@ -2805,7 +2480,7 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' keyutils: '>=1.6.3,<2.0a0' - libedit: '>=3.1.20250104,<4.0a0' + libedit: '>=3.1.20250104,<3.2.0a0,>=3.1.20250104,<4.0a0' libgcc: '>=15' libstdcxx: '>=15' openssl: '>=3.5.7,<4.0a0' @@ -2820,9 +2495,9 @@ package: manager: conda platform: linux-64 dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/lazy-object-proxy-1.12.0-py310h83e8816_4.conda hash: @@ -2913,7 +2588,7 @@ package: manager: conda platform: linux-64 dependencies: - libopenblas: '>=0.3.34,<1.0a0' + libopenblas: '>=0.3.34,<0.3.35.0a0,>=0.3.34,<1.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-10_h4a7cf45_openblas.conda hash: md5: e2ca3eadd889d39b4e4b6b1ecc671816 @@ -2979,13 +2654,13 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - zstd: '>=1.5.7,<1.6.0a0' libzlib: '>=1.3.2,<2.0a0' - libllvm23: '>=23.1.0,<23.2.0a0' + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp23.1-23.1.0-default_h0acdd01_1.conda hash: md5: d3ba2947f7d7cdd7c4eb73b206de330b @@ -2997,15 +2672,15 @@ package: manager: conda platform: linux-64 dependencies: - libclang-cpp23.1: ==23.1.0 __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' + libclang-cpp23.1: ==23.1.0 libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - zstd: '>=1.5.7,<1.6.0a0' libzlib: '>=1.3.2,<2.0a0' - libllvm23: '>=23.1.0,<23.2.0a0' + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-23.1.0-default_h7855034_1.conda hash: md5: 6afb92887568acc8f18281c57c92c28b @@ -3111,9 +2786,9 @@ package: manager: conda platform: linux-64 dependencies: - ncurses: '>=6.6,<7.0a0' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + ncurses: '>=6.6,<7.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h373387f_1.conda hash: md5: 50708d3b951d0f8e2d7f2df5b5edc040 @@ -3153,8 +2828,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h280c20c_3.conda hash: md5: 7bc31538d6e3fb349e897353969237ec @@ -3179,8 +2854,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' yaml: '>=0.2.5,<0.3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.7.2-h280c20c_6.conda hash: @@ -3378,11 +3053,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' + libffi: '>=3.7.0,<3.8.0a0' libgcc: '>=15' - pcre2: '>=10.47,<10.48.0a0' - libzlib: '>=1.3.2,<2.0a0' libiconv: '>=1.18,<2.0a0' - libffi: '>=3.7.0,<3.8.0a0' + libzlib: '>=1.3.2,<2.0a0' + pcre2: '>=10.47,<10.48.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_2.conda hash: md5: 533d342dedadf134c67760ce6fc5b748 @@ -3447,9 +3122,9 @@ package: manager: conda platform: linux-64 dependencies: - libstdcxx: '>=14' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.61-h54a6638_2.conda hash: md5: d42eda95b8dfc91f3cc48d950efec715 @@ -3472,10 +3147,10 @@ package: libpng: '>=1.6.58,<1.7.0a0' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-14.4.0-h23af247_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-14.4.0-h23af247_1.conda hash: - md5: 4463210c2a16ff5d3bf7f502af23f1f4 - sha256: a064695a1c12133d6a9dcf6b3b42423b8614fa45667606201af1b5f72628df0d + md5: c44470b6bfa6a582cb4dd42cbda3401e + sha256: 979b14ba13054aab9e90363809aac470a58b7c37203c330216327356a98c8f60 category: main optional: false - name: libharfbuzz-devel @@ -3496,10 +3171,10 @@ package: libpng: '>=1.6.58,<1.7.0a0' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-devel-14.4.0-h23af247_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-devel-14.4.0-h23af247_1.conda hash: - md5: 26e37e05324d7bb723350d50b33057fc - sha256: bdecc73c22cb0a8d44ce066116562e35322fd6c1c04584a4754ae2befcab4cb3 + md5: 148cd995f5ba8af22412a4258abc2f94 + sha256: 11f08038c165e354c2a7064ce6bcb28dad2668b330931572666f418e2a8f623c category: main optional: false - name: libhiredis @@ -3632,23 +3307,23 @@ package: manager: conda platform: linux-64 dependencies: - cpp-expected: '>=1.3.1,<1.3.2.0a0' __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' + cpp-expected: '>=1.3.1,<1.3.2.0a0' + fmt: '>=12.1.0,<12.2.0a0' + libarchive: '>=3.8.9,<3.9.0a0' + libcurl: '>=8.21.0,<9.0a0' libgcc: '>=15' libmsgpack-c: '>=6.1.0,<7.0a0' - libarchive: '>=3.8.9,<3.9.0a0' - zstd: '>=1.5.7,<1.6.0a0' libsolv: '>=0.7.39,<0.8.0a0' + libstdcxx: '>=15' + nlohmann_json-abi: 3.12.0 openssl: '>=3.5.8,<4.0a0' - libcurl: '>=8.21.0,<9.0a0' - reproc-cpp: '>=14.2.8.post0,<14.3.0a0' - fmt: '>=12.1.0,<12.2.0a0' reproc: '>=14.2.8.post0,<14.3.0a0' + reproc-cpp: '>=14.2.8.post0,<14.3.0a0' simdjson: '>=4.6.9,<4.7.0a0' spdlog: '>=1.17.0,<1.18.0a0' yaml-cpp: '>=0.8.0,<0.9.0a0' - nlohmann_json-abi: 3.12.0 + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-2.9.0-py314h6ba947b_0.conda hash: md5: 6dd4342973ab963fe98e1fcd3df5d9e2 @@ -3661,9 +3336,9 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' libgcc: '>=15' libmamba: '>=2.9.0,<2.10.0a0' + libstdcxx: '>=15' url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-spdlog-2.9.0-h5efa3ab_0.conda hash: md5: ebe4fe5bfcc3e9217c94fe8926696952 @@ -3675,20 +3350,20 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - libmamba: '>=2.9.0,<2.10.0a0' + __glibc: '>=2.17,<3.0.a0' + fmt: '>=12.1.0,<12.2.0a0' + libgcc: '>=15' + libmamba: ==2.9.0,>=2.9.0,<2.10.0a0 libmamba-spdlog: ==2.9.0 libstdcxx: '>=15' - libgcc: '>=15' - __glibc: '>=2.17,<3.0.a0' - python_abi: 3.10.* - zstd: '>=1.5.7,<1.6.0a0' nlohmann_json-abi: 3.12.0 + openssl: '>=3.5.8,<4.0a0' pybind11-abi: '11' - yaml-cpp: '>=0.8.0,<0.9.0a0' - fmt: '>=12.1.0,<12.2.0a0' + python: '' + python_abi: 3.10.* spdlog: '>=1.17.0,<1.18.0a0' - openssl: '>=3.5.8,<4.0a0' + yaml-cpp: '>=0.8.0,<0.9.0a0' + zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-2.9.0-py310h1531c95_0.conda hash: md5: 7b794d59b4df28ec5af5fdc9fe0c243c @@ -3701,8 +3376,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=14' libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/libmsgpack-c-6.1.0-h54a6638_7.conda hash: md5: 9ab61308317dbf6609e2142b16b792a5 @@ -3716,7 +3391,7 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' c-ares: '>=1.34.8,<2.0a0' - libev: '>=4.33,<5.0a0' + libev: '>=4.33,<4.34.0a0,>=4.33,<5.0a0' libgcc: '>=15' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' @@ -3801,7 +3476,7 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libabseil: '>=20260526.0,<20260527.0a0' + libabseil: '*,>=20260526.0,<20260527.0a0' libgcc: '>=15' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' @@ -3816,10 +3491,10 @@ package: manager: conda platform: linux-64 dependencies: - libstdcxx: '>=15' - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' icu: '>=78.3,<79.0a0' + libgcc: '>=15' + libstdcxx: '>=15' url: https://conda.anaconda.org/conda-forge/linux-64/libpsl-0.23.1-hd9e3e90_1.conda hash: md5: 77be60417aa572afcb48cbe0f967401d @@ -4018,16 +3693,16 @@ package: category: main optional: false - name: libuuid - version: 2.42.2 + version: 2.42.3 manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.2-h5347b49_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.3-hcfc3c73_0.conda hash: - md5: 01bb81d12c957de066ea7362007df642 - sha256: 9b1bdce27a7e31f7d241aeecff67a1f3101d52a2b1e33ccc2cdf2613072bf81f + md5: 74a0a409d9f4561265d36b789d3f398a + sha256: aa58bbba56644ffd062a4a9b358782c5eb7560ccead2ab8f7c5c6ede0a7d33a6 category: main optional: false - name: libuv @@ -4035,8 +3710,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.52.1-h280c20c_1.conda hash: md5: 01c4ed87826af55996768af6dbc936b4 @@ -4077,8 +3752,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.38-h280c20c_0.conda hash: md5: f7a7ff5a6ab331e037abd34f379a631d @@ -4090,14 +3765,14 @@ package: manager: conda platform: linux-64 dependencies: - xkeyboard-config: '' - libstdcxx: '>=14' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' libxcb: '>=1.17.0,<2.0a0' - xorg-libxau: '>=1.0.12,<2.0a0' libxml2: '' libxml2-16: '>=2.14.6' + xkeyboard-config: '' + xorg-libxau: '>=1.0.12,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.13.2-h51789e4_1.conda hash: md5: f888787e0eab7a8076a67d197e155ffc @@ -4156,9 +3831,9 @@ package: manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' libstdcxx: '>=15' - __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-hee9eb32_2.conda hash: md5: e38a3253d72ab07d471483f24947e2a2 @@ -4183,9 +3858,9 @@ package: manager: conda platform: linux-64 dependencies: - lzo: '>=2.10,<3.0a0' __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + lzo: '>=2.10,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/lzop-1.04-h5a41ae2_4.conda hash: md5: d4f3ef1d032b2269c1105fdda4723261 @@ -4248,7 +3923,7 @@ package: libfreetype6: '>=2.14.3' libgcc: '>=14' libstdcxx: '>=14' - numpy: '>=1.23' + numpy: '>=1.21,<3,>=1.23' packaging: '>=20.0' pillow: '>=8' pyparsing: '>=2.3.1' @@ -4269,41 +3944,29 @@ package: platform: linux-64 dependencies: python: '' + python_abi: 3.10.* tomli: '' tomli-w: '' - python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.5.2-py310hd3bfc61_2.conda hash: md5: 0ab5853637af6e4d52222559d1b45a43 sha256: f8d3d5ee4a6c78be9395215989deac70367f6b7f1ef03cd9070ca602632e813c category: main optional: false -- name: more-itertools - version: 11.1.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-11.1.0-pyhcf101f3_0.conda - hash: - md5: 0e694257dbf916540b749c3ffc808efe - sha256: 6725c1c8db9d025db763e1bba1acdcff2eb2ae20a7766a71512ea84081033288 - category: main - optional: false - name: mosh version: 1.4.0 manager: conda platform: linux-64 dependencies: - perl: '>=5.32.1,<5.33.0a0' + __glibc: '>=2.17,<3.0.a0' + libabseil: '*,>=20260526.0,<20260527.0a0' libgcc: '>=14' + libprotobuf: '>=7.35.1,<7.35.2.0a0' libstdcxx: '>=14' - __glibc: '>=2.17,<3.0.a0' - openssl: '>=3.5.7,<4.0a0' - libabseil: '*' libzlib: '>=1.3.2,<2.0a0' ncurses: '>=6.6,<7.0a0' - libprotobuf: '>=7.35.1,<7.35.2.0a0' + openssl: '>=3.5.7,<4.0a0' + perl: '>=5.32.1,<5.33.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/mosh-1.4.0-pl5321h73eb06c_15.conda hash: md5: fe46482e897cc8795af53f75b7cd85c3 @@ -4315,23 +3978,23 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + aws-xray-sdk: '!=0.96,>=0.93' boto3: '>=1.9.201' botocore: '>=1.14.0,!=1.35.45,!=1.35.46' cryptography: '>=3.3.1' - requests: '>=2.5' - xmltodict: '' - werkzeug: '>=0.5,!=2.2.0,!=2.2.1' - python-dateutil: <3.0.0,>=2.1 - responses: '>=0.15.0' + flask: '!=2.2.0,!=2.2.1' + flask-cors: '' jinja2: '>=2.10.1' - openapi-spec-validator: '>=0.6.0' joserfc: '' - pyparsing: '>=3.0.7' jsondiff: '>=1.1.2' - aws-xray-sdk: '!=0.96,>=0.93' - flask: '!=2.2.0,!=2.2.1' - flask-cors: '' + openapi-spec-validator: '>=0.6.0' + pyparsing: '>=3.0.7' + python: '>=3.10' + python-dateutil: <3.0.0,>=2.1 + requests: '>=2.5' + responses: '>=0.15.0' + werkzeug: '>=0.5,!=2.2.0,!=2.2.1' + xmltodict: '' url: https://conda.anaconda.org/conda-forge/noarch/moto-5.2.3-pyhcf101f3_0.conda hash: md5: 9f1405219205a926b6855a4f39408f1b @@ -4404,10 +4067,10 @@ package: manager: conda platform: linux-64 dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' libgcc: '>=15' + libstdcxx: '>=15' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.2-py310he417ec5_1.conda hash: @@ -4448,17 +4111,17 @@ package: manager: conda platform: linux-64 dependencies: + __glibc: '>=2.17,<3.0.a0' ast-serialize: '>=0.6.0,<1.0.0' + libgcc: '>=15' mypy_extensions: '>=1.0.0' pathspec: '>=1.0.0' + psutil: '>=4.0' python: '' python-librt: '>=0.13.0' - typing_extensions: '>=4.6.0' - psutil: '>=4.0' - tomli: '>=1.1.0' - libgcc: '>=15' - __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* + tomli: '>=1.1.0' + typing_extensions: '>=4.6.0' url: https://conda.anaconda.org/conda-forge/linux-64/mypy-2.3.1-py310hcd47339_0.conda hash: md5: 027edcb972512913f9c02aaf2ee430e5 @@ -4471,7 +4134,7 @@ package: platform: linux-64 dependencies: boto3: '' - python: '' + python: '>=3.10' typing-extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.43.66-pyhcf101f3_0.conda hash: @@ -4485,7 +4148,7 @@ package: platform: linux-64 dependencies: boto3: '' - python: '' + python: '>=3.10' typing-extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.43.82-pyhcf101f3_0.conda hash: @@ -4523,7 +4186,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyh267e887_2.conda hash: md5: fd40bf7f7f4bc4b647dc8512053d9873 @@ -4536,8 +4199,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=14' libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_1.conda hash: md5: 2db7a395d7dc2b6ed5effaf68fb99443 @@ -4602,39 +4265,35 @@ package: category: main optional: false - name: openapi-schema-validator - version: 0.9.0 + version: 0.8.0 manager: conda platform: linux-64 dependencies: jsonschema: '>=4.19.1,<5.0.0' jsonschema-specifications: '>=2024.10.1' - pydantic: '>=2.0.0,<3.0.0' - pydantic-settings: '>=2.0.0,<3.0.0' - python: '' + python: '>=3.10' referencing: '>=0.37.0,<0.38.0' rfc3339-validator: '' - url: https://conda.anaconda.org/conda-forge/noarch/openapi-schema-validator-0.9.0-pyhcf101f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/openapi-schema-validator-0.8.0-pyhcf101f3_0.conda hash: - md5: beb56524d8b61c7163dc286a6903c298 - sha256: a86c8e5ff22da2534462b4aab3572c6d5a2e4ad6cb4ac778f99d0877f4fcd81b + md5: 2f55e7a17f39ed7ddc4272085425a805 + sha256: 8a9e94ff93105530e081afc9ac28ea8654b4ae14f4ab53f9902f3439cc23a776 category: main optional: false - name: openapi-spec-validator - version: 0.9.0 + version: 0.8.2 manager: conda platform: linux-64 dependencies: - jsonschema: '>=4.26.0,<5.0.0' - jsonschema-path: '>=0.5.0,<0.6.0' + jsonschema: '>=4.24.0,<4.25.0' + jsonschema-path: '>=0.4.2,<0.5.0' lazy-object-proxy: '>=1.7.1,<2.0' - openapi-schema-validator: '>=0.9.0,<0.10.0' - pydantic: '>=2.0.0,<3.0.0' - pydantic-settings: '>=2.0.0,<3.0.0' - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/openapi-spec-validator-0.9.0-pyhcf101f3_0.conda + openapi-schema-validator: '>=0.7.3,<0.9.0' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/openapi-spec-validator-0.8.2-pyhcf101f3_0.conda hash: - md5: ccf1526674e7bfc16e58467b5913268f - sha256: a7d037e3724736534c0a423b3df5c641defe3fbe8fa6646f2f9fdd159207cefb + md5: d689d0c8323e45989a028c5ffda9a9bd + sha256: 666e868b87b50d3c96ab3c65a37a75f2810edd268bfeff62db6929a1033b8e05 category: main optional: false - name: openjdk @@ -4678,10 +4337,10 @@ package: libstdcxx: '>=15' libtiff: '>=4.7.2,<4.8.0a0' libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-h55e1f5c_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-heb1ab33_2.conda hash: - md5: b76e9e2ba1b86d68e2e5285fa959959c - sha256: 9052219184beb2e883086c2db20a89185a82673d472ca4a1f067f3dff2c6ce8c + md5: a3f3ac7a68d01c198e276dbb99e62032 + sha256: 131688a88bea8da92fe418c4558c5073435e2848911bc4c836c3a9dd5994b4aa category: main optional: false - name: openssl @@ -4703,7 +4362,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.9' url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda hash: md5: 936687ed80f295a1f5dbcf8bd34c252c @@ -4718,7 +4377,7 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=13' libstdcxx: '>=13' - numpy: '>=1.22.4' + numpy: '>=1.19,<3,>=1.22.4' python: '>=3.10,<3.11.0a0' python-dateutil: '>=2.8.1' python-tzdata: '>=2022a' @@ -4754,18 +4413,6 @@ package: sha256: 48f27a6c3e4062bc09dafe9c7f6b288c5de5655e81095ab7f1aad920b2163b7b category: main optional: false -- name: pastel - version: 0.2.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=2.7' - url: https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2 - hash: - md5: a4eea5bff523f26442405bc5d1f52adb - sha256: 9153f0f38c76a09da7688a61fdbf8f3d7504e2326bef53e4ec20d994311b15bd - category: main - optional: false - name: patch version: '2.8' manager: conda @@ -4780,15 +4427,15 @@ package: category: main optional: false - name: pathable - version: 0.6.0 + version: 0.5.0 manager: conda platform: linux-64 dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/pathable-0.6.0-pyhcf101f3_0.conda + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/pathable-0.5.0-pyhcf101f3_0.conda hash: - md5: a72f42e1701c04f6ef08f6f8619f478b - sha256: c7c36187192251c80d052283bec2d6dc4061081fed7f80e03cbe07b07cc79436 + md5: 21b330e89f7363ed6c4989a94ff20dea + sha256: 9e933ce3ec69b5944a56b6b0c96fbec07da502a10dd3733601ecf90ad01ba2ae category: main optional: false - name: pathspec @@ -4836,20 +4483,20 @@ package: manager: conda platform: linux-64 dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - tk: '>=8.6.13,<8.7.0a0' - python_abi: 3.10.* - libwebp-base: '>=1.6.0,<2.0a0' lcms2: '>=2.19.1,<3.0a0' - openjpeg: '>=2.5.4,<3.0a0' libfreetype: '>=2.14.3' libfreetype6: '>=2.14.3' + libgcc: '>=14' libjpeg-turbo: '>=3.1.4.1,<4.0a0' - zlib-ng: '>=2.3.3,<2.4.0a0' - libxcb: '>=1.17.0,<2.0a0' libtiff: '>=4.7.1,<4.8.0a0' + libwebp-base: '>=1.6.0,<2.0a0' + libxcb: '>=1.17.0,<2.0a0' + openjpeg: '>=2.5.4,<3.0a0' + python: '' + python_abi: 3.10.* + tk: '>=8.6.13,<8.7.0a0' + zlib-ng: '>=2.3.3,<2.4.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.3.0-py310h5a73078_0.conda hash: md5: fb6f1c4063f0df1df2e7f6853bd22f8d @@ -4875,33 +4522,21 @@ package: manager: conda platform: linux-64 dependencies: - libstdcxx: '>=14' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_3.conda hash: md5: 0ee5bb30034b081a1386c1e2c98ab0a7 sha256: 829d8288764282de5a9f7b9169acb75cc7dc0b6c3fe2535cfe87dea3436bbc5d category: main optional: false -- name: pkginfo - version: 1.12.1.2 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.12.1.2-pyhd8ed1ab_0.conda - hash: - md5: dc702b2fae7ebe770aff3c83adb16b63 - sha256: 353fd5a2c3ce31811a6272cd328874eb0d327b1eafd32a1e19001c4ad137ad3a - category: main - optional: false - name: platformdirs version: 4.11.5 manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.11.5-pyhcf101f3_0.conda hash: md5: 152ec36401f710145a7db03475594410 @@ -4913,7 +4548,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.9' url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda hash: md5: d7585b6550ad04c8c5e21097ada2888e @@ -4925,8 +4560,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' libiconv: '>=1.18,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/popt-1.19-hcfc3c73_2.conda hash: @@ -4960,6 +4595,18 @@ package: sha256: ebc1bb62ac612af6d40667da266ff723662394c0ca78935340a5b5c14831227b category: main optional: false +- name: prompt_toolkit + version: 3.0.51 + manager: conda + platform: linux-64 + dependencies: + prompt-toolkit: '>=3.0.51,<3.0.52.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.51-hd8ed1ab_0.conda + hash: + md5: 1e61ab85dd7c60e5e73d853ea035dc29 + sha256: 936189f0373836c1c77cd2d6e71ba1e583e2d3920bf6d015e96ee2d729b5e543 + category: main + optional: false - name: propcache version: 0.5.2 manager: conda @@ -4980,9 +4627,9 @@ package: manager: conda platform: linux-64 dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py310h83e8816_2.conda hash: @@ -4995,29 +4642,12 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb03c661_1003.conda - hash: - md5: df2c27f36bdb0dde779f55b5df76a352 - sha256: afc3b27b2cbb0487c1d0e963f96e71181ecfb623a24fb393bb19ff974a6382a1 - category: main - optional: false -- name: py-rattler - version: 0.25.0 - manager: conda - platform: linux-64 - dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - _python_abi3_support: 1.* - cpython: '>=3.10' - openssl: '>=3.5.8,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/py-rattler-0.25.0-py310hefeb9ab_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h7cc23a3_1004.conda hash: - md5: 2a75e016bb35e33e2acb65ee2aa4f0af - sha256: 673052cec285da1db0198313277b077103b8f235b12b9564cce8af5222b4af70 + md5: bb66b610707b811e3c65181a6431e7a8 + sha256: 4a44fd00ea73b79ca2c89b0727b9ccf61c506ead71e67a9abfa4c590042b5a4a category: main optional: false - name: pybind11-abi @@ -5071,58 +4701,24 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/pycparser-3.0-pyhcf101f3_0.conda hash: - md5: 9c5491066224083c41b6d5635ed7107b - sha256: e27e0473fc6723311a0bd48b89b616fa1b996a2f7a2b555338cbbcfb9c640568 - category: main - optional: false -- name: pydantic - version: 2.13.5 - manager: conda - platform: linux-64 - dependencies: - typing-inspection: '>=0.4.2' - typing_extensions: '>=4.14.1' - python: '' - annotated-types: '>=0.6.0' - pydantic-core: 2.46.5 - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.13.5-pyhcf101f3_0.conda - hash: - md5: 2d0f9304fc1cb1e3e94e7b37c14cd70a - sha256: 701ed8122021f62e1c9a46bdf4932ada911c10afa56ba0459f56da940bcbe5a7 - category: main - optional: false -- name: pydantic-core - version: 2.46.5 - manager: conda - platform: linux-64 - dependencies: - python: '' - typing-extensions: '>=4.6.0,!=4.7.0' - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.46.5-py310hbfe5df0_1.conda - hash: - md5: 6d32b80215d6a4692c32a6f3a2293344 - sha256: a6a9fa2ba997171fc18f1f6d9b0c3824ea7b724dfa7f1ea05457b57dd2841f3e + md5: 9c5491066224083c41b6d5635ed7107b + sha256: e27e0473fc6723311a0bd48b89b616fa1b996a2f7a2b555338cbbcfb9c640568 category: main optional: false -- name: pydantic-settings - version: 2.15.0 +- name: pydantic + version: 1.10.22 manager: conda platform: linux-64 dependencies: - typing-inspection: '>=0.4.0' - python: '' - pydantic: '>=2.7.0' - python-dotenv: '>=0.21.0' - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.15.0-pyhcf101f3_0.conda + python: '>=3.10' + typing_extensions: '>=4.2.0' + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-1.10.22-pyh3cfb1c2_0.conda hash: - md5: 687adac0b3eb2dd73762e9f912b4549e - sha256: 674e1ba12010a88441f817a318d3cec7e7a7682813ebd3f427fbd1c6766a16af + md5: 2aa2384cdd325356830840678adbefdc + sha256: 8660b2660ed19ac7aea35cce1bb62be4e56fa41cc41018fefd27d8f53f536943 category: main optional: false - name: pyelftools @@ -5130,8 +4726,8 @@ package: manager: conda platform: linux-64 dependencies: - python: '' __unix: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/pyelftools-0.33-pyh8f84b5b_0.conda hash: md5: b0e199724ac880c3593df23944b53e93 @@ -5143,7 +4739,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda hash: md5: 2882dee445dfa45b0c5afce3ffb7730a @@ -5180,7 +4776,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' typing_extensions: '>=4.0' url: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.13.0-pyhcf101f3_0.conda hash: @@ -5203,43 +4799,18 @@ package: sha256: db09fdbe0c6f64f1628bb9b59c3c35083e8a8d2c95c3f453b5e8407649e54847 category: main optional: false -- name: pylev - version: 1.4.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.3' - url: https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2 - hash: - md5: edf8651c4379d9d1495ad6229622d150 - sha256: 50bd91767686bfe769e50a5a1b883e238d944a6163fea43e7c0beaac54ca674f - category: main - optional: false - name: pyparsing version: 3.3.2 manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda hash: md5: 3687cc0b82a8b4c17e1f0eb7e47163d5 sha256: 417fba4783e528ee732afa82999300859b065dc59927344b4859c64aae7182de category: main optional: false -- name: pyproject_hooks - version: 1.2.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - tomli: '>=1.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda - hash: - md5: d4582021af437c931d7d77ec39007845 - sha256: 065ac44591da9abf1ff740feb25929554b920b00d09287a551fcced2c9791092 - category: main - optional: false - name: pysocks version: 1.7.1 manager: conda @@ -5259,13 +4830,13 @@ package: platform: linux-64 dependencies: colorama: '' - pygments: '>=2.7.2' - python: '' + exceptiongroup: '>=1' iniconfig: '>=1.0.1' packaging: '>=22' pluggy: '>=1.5,<2' + pygments: '>=2.7.2' + python: '>=3.10' tomli: '>=1' - exceptiongroup: '>=1' url: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda hash: md5: 64c98a12c4e23eb238bf66bbecafdf3c @@ -5324,23 +4895,6 @@ package: sha256: 76a5d12e73542678b70a94570f7b0f7763f9a938f77f0e75d9ea615ef22aa84c category: main optional: false -- name: python-build - version: 1.6.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - colorama: '' - importlib-metadata: '>=4.6' - packaging: '>=24.0' - pyproject_hooks: '' - tomli: '>=1.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/python-build-1.6.0-pyhc364b38_0.conda - hash: - md5: 1e696c762d003f8f4af971b6dccb8c1e - sha256: d5bad775346fbd21cce7922b29cab2587fe599517654de65c3d2fe50a7126279 - category: main - optional: false - name: python-dateutil version: 2.9.0 manager: conda @@ -5354,31 +4908,6 @@ package: sha256: f3ceef02ac164a8d3a080d0d32f8e2ebe10dd29e3a685d240e38b3599e146320 category: main optional: false -- name: python-discovery - version: 1.6.0 - manager: conda - platform: linux-64 - dependencies: - python: '' - filelock: '>=3.15.4' - url: https://conda.anaconda.org/conda-forge/noarch/python-discovery-1.6.0-pyhcf101f3_0.conda - hash: - md5: e87738e32eaf5dfa98a5d49f611d6312 - sha256: e48089f2927811994b916d31953563097bc7e8d856965fbdeea3b4d407e3b89f - category: main - optional: false -- name: python-dotenv - version: 1.2.3 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.3-pyhcf101f3_0.conda - hash: - md5: b55edb60d527ce56226a1026abcb3e2c - sha256: ad7b2dd059c1b693a09f799cbaf4b9d06ec7677c02c9447be98e0b33a49bc04c - category: main - optional: false - name: python-gil version: 3.10.21 manager: conda @@ -5405,26 +4934,14 @@ package: sha256: b0139f80dea17136451975e4c0fefb5c86893d8b7bc6360626e8b025b8d8003a category: main optional: false -- name: python-installer - version: 1.0.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/python-installer-1.0.1-pyh332efcf_0.conda - hash: - md5: 5cc7e2e78962dc902cae9e29c2aa4b2f - sha256: 9c18fa1ebd0c839b6ea12e99d510a0968c2288cc423185cb34bf7332b97684e9 - category: main - optional: false - name: python-librt version: 0.15.0 manager: conda platform: linux-64 dependencies: - python: '' - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.15.0-py310h83e8816_1.conda hash: @@ -5536,7 +5053,7 @@ package: platform: linux-64 dependencies: attrs: '>=22.2.0' - python: '' + python: '>=3.10' rpds-py: '>=0.7.0' typing_extensions: '>=4.4.0' url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda @@ -5563,10 +5080,10 @@ package: manager: conda platform: linux-64 dependencies: - reproc: '>=14.2.8.post0,<14.3.0a0' __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' libgcc: '>=15' + libstdcxx: '>=15' + reproc: ==14.2.8.post0,>=14.2.8.post0,<14.3.0a0 url: https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.8.post0-h1c70be6_0.conda hash: md5: 04afaf7b13f8ac3c947230a24d835c94 @@ -5578,10 +5095,10 @@ package: manager: conda platform: linux-64 dependencies: - python: '' certifi: '>=2023.5.7' charset-normalizer: '>=2,<4' idna: '>=2.5,<4' + python: '>=3.10' urllib3: '>=1.26,<3' url: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda hash: @@ -5594,8 +5111,8 @@ package: manager: conda platform: linux-64 dependencies: + python: '>=3.10' pyyaml: '' - python: '' requests: '>=2.30.0,<3.0' urllib3: '>=1.25.10,<3.0' url: https://conda.anaconda.org/conda-forge/noarch/responses-0.26.3-pyhcf101f3_0.conda @@ -5657,9 +5174,9 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py310hd8f68c5_0.conda hash: @@ -5672,15 +5189,15 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=15' __glibc: '>=2.28,<3.0.a0' - openssl: '>=3.5.8,<4.0a0' + libgcc: '>=15' libiconv: '>=1.18,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' lz4-c: '>=1.10.0,<1.11.0a0' + openssl: '>=3.5.8,<4.0a0' + popt: '>=1.19,<2.0a0' xxhash: '>=0.8.3,<0.8.4.0a0' zstd: '>=1.5.7,<1.6.0a0' - popt: '>=1.19,<2.0a0' - libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/rsync-3.4.4-hffd6c76_1.conda hash: md5: 859411ed56b9498eb6a888b86be0e968 @@ -5692,11 +5209,11 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - ruamel.yaml.clib: '>=0.2.15' __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + python: '' python_abi: 3.10.* + ruamel.yaml.clib: '>=0.2.15' url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.17-py310h139afa4_2.conda hash: md5: 26ad912afb7835e474284d61f482905d @@ -5708,9 +5225,9 @@ package: manager: conda platform: linux-64 dependencies: - python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.15-py310h83e8816_3.conda hash: @@ -5784,22 +5301,6 @@ package: sha256: 3c7020802fb52b946fe37a2180a6cad298f65b7a3e861c2616b6ffd4165ec22f category: main optional: false -- name: secretstorage - version: 3.5.0 - manager: conda - platform: linux-64 - dependencies: - cryptography: '>=2.0' - dbus: '' - jeepney: '>=0.6' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.5.0-py310hff52083_1.conda - hash: - md5: 8301ffe9a201c1d5e3b56fef03f3e70a - sha256: be0beab5763632d5dbf9b83520d11cae1b27195ec20d2fbfe029fd3c62df96b6 - category: main - optional: false - name: sed version: '4.10' manager: conda @@ -5826,17 +5327,17 @@ package: category: main optional: false - name: simdjson - version: 4.6.9 + version: 4.6.10 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=15' libgcc: '>=15' - url: https://conda.anaconda.org/conda-forge/linux-64/simdjson-4.6.9-h4dbf13b_0.conda + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/simdjson-4.6.10-h4dbf13b_0.conda hash: - md5: 53a8ff86f8bd6f5d2ea089df06836fdc - sha256: 58d3bd2face0c19f8680c9da0cd7df4bcbc5e32439f00f133986238783d0e26a + md5: 53ba5412feec78cdf289bcdc660bf071 + sha256: ae6b7ec328ddb270d055835b62fe2e563251d71fb2fbae0d46e1721385649453 category: main optional: false - name: six @@ -5844,7 +5345,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.9' url: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda hash: md5: 3339e3b65d58accf4ca4fb8748ab16b3 @@ -5856,25 +5357,13 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.3-pyhcf101f3_1.conda hash: md5: b899f1195be56d8215ed1973a8f409c3 sha256: bc86861086db65c9b56dd6a1605755f41a9875b94fc3b69e137f686700d91aa1 category: main optional: false -- name: sniffio - version: 1.3.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - hash: - md5: 03fe290994c5e4ec17293cfb6bdce520 - sha256: dce518f45e24cd03f401cb0616917773159a210c19d601c5f2d4e0e5879d30ad - category: main - optional: false - name: snowballstemmer version: 3.1.1 manager: conda @@ -5955,9 +5444,9 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - sphinx: '>=6,<10' docutils: '>0.18,<0.23' + python: '>=3.10' + sphinx: '>=6,<10' sphinxcontrib-jquery: '>=4,<5' url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda hash: @@ -6061,7 +5550,7 @@ package: platform: linux-64 dependencies: anyio: '>=3.6.2,<5' - python: '' + python: '>=3.10' typing_extensions: '>=4.10.0' url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda hash: @@ -6113,8 +5602,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda hash: @@ -6127,7 +5616,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda hash: md5: b5325cf06a000c5b14970462ff5e4d58 @@ -6146,37 +5635,13 @@ package: sha256: 304834f2438017921d69f05b3f5a6394b42dc89a90a6128a46acbf8160d377f6 category: main optional: false -- name: tomlkit - version: 0.15.1 - manager: conda - platform: linux-64 - dependencies: - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.1-pyhcf101f3_0.conda - hash: - md5: e4942e2de7436ff28be7f5645cf3c8d6 - sha256: 5cf833b4d199688b7652fb322ecc134de9555e9444d9249750de9a153421ad0a - category: main - optional: false -- name: toolz - version: 0.12.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - hash: - md5: 2fcb582444635e2c402e8569bb94e039 - sha256: 22b0a9790317526e08609d5dfdd828210ae89e6d444a9e954855fc29012e90c6 - category: main - optional: false - name: tqdm version: 4.70.0 manager: conda platform: linux-64 dependencies: - python: '' __unix: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.70.0-pyh8f84b5b_0.conda hash: md5: 00953c3b729e03b0ae21f49fdf3441bb @@ -6188,7 +5653,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10,<4' url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.4-pyhcf101f3_0.conda hash: md5: c2db35b004913ec69bcac64fb0783de0 @@ -6212,7 +5677,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.3.1.20260727-pyhcf101f3_0.conda hash: md5: b27fc3df415ba0196e462700ef487e5e @@ -6224,7 +5689,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20260815-pyhcf101f3_0.conda hash: md5: cd5c2725760ce602617c80a2b4c26d6d @@ -6232,16 +5697,16 @@ package: category: main optional: false - name: types-requests - version: 2.31.0.6 + version: 2.33.0.20260712 manager: conda platform: linux-64 dependencies: - python: '>=3.6' - types-urllib3: <1.27 - url: https://conda.anaconda.org/conda-forge/noarch/types-requests-2.31.0.6-pyhd8ed1ab_0.conda + python: '>=3.10' + urllib3: '>=2' + url: https://conda.anaconda.org/conda-forge/noarch/types-requests-2.33.0.20260712-pyhcf101f3_0.conda hash: - md5: 69d8b100b4a9e557e33c06b0d3ba4772 - sha256: 2ec1bfb9ffbcdd880f60139d46df88e60cd8d0a404f4e0e498500671b34c1d5b + md5: c28c52d66c18b1682c34ee5c10655224 + sha256: d2a2266cf955f3b976cda6e95202d73be7cd72dabc4f901082922b8763c0e7a6 category: main optional: false - name: types-s3transfer @@ -6249,7 +5714,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' types-awscrt: '' url: https://conda.anaconda.org/conda-forge/noarch/types-s3transfer-0.16.0-pyhcf101f3_0.conda hash: @@ -6257,18 +5722,6 @@ package: sha256: ed7016a46b53af35d02bdcb9ed63a7c9b44445208a22bca344549bed0db275ba category: main optional: false -- name: types-urllib3 - version: 1.26.25.14 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/types-urllib3-1.26.25.14-pyhd8ed1ab_1.conda - hash: - md5: 71064752383d8b42a1e1208064fe5960 - sha256: e6378ff2de225a0f0f9b1bc884c3f05193a28d6ab13ca5ea20ce6a2fa5e0cff9 - category: main - optional: false - name: typing-extensions version: 4.16.0 manager: conda @@ -6281,25 +5734,12 @@ package: sha256: b141933ece3518f6d7b75dfb59451e2f26b405a44c18e2518a83e9a02e09315c category: main optional: false -- name: typing-inspection - version: 0.4.4 - manager: conda - platform: linux-64 - dependencies: - python: '' - typing_extensions: '>=4.15.0' - url: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.4-pyhcf101f3_0.conda - hash: - md5: 880e91eac5d926568ef278e20554148e - sha256: 293c66b208468d186a94ff486c2ffbf67859a2bde8c88e965fc9d06c517191b2 - category: main - optional: false - name: typing_extensions version: 4.16.0 manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda hash: md5: c70ad746c22219b9700931707482992c @@ -6317,20 +5757,17 @@ package: sha256: b928c30ddcb0e3f544c6eade8352737e6e610e263276b90232db6a578ef899d8 category: main optional: false -- name: unearth - version: 0.18.3 +- name: tzlocal + version: 5.4.4 manager: conda platform: linux-64 dependencies: - cached-property: '>=1.5.2' - httpx: '' - packaging: '>=20' + __unix: '' python: '>=3.10' - requests: '>=2.25' - url: https://conda.anaconda.org/conda-forge/noarch/unearth-0.18.3-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tzlocal-5.4.4-pyh8f84b5b_0.conda hash: - md5: 2f0f2fb0f8a61529464d95a87b10eda0 - sha256: 00a56cdd16bf3a398f6e87d7696c92a3012d823b8e42ba7d3bda2ec2fa5d8947 + md5: cbd15812c946aecc2d9479318aca450f + sha256: 5d693f6f22b584fb69bac52e716872a1432c50527ced54d66064cc27e5946c0b category: main optional: false - name: unicodedata2 @@ -6383,17 +5820,19 @@ package: category: main optional: false - name: urllib3 - version: 1.26.20 + version: 2.6.3 manager: conda platform: linux-64 dependencies: - brotli-python: '>=1.0.9' + backports.zstd: '>=1.0.0' + brotli-python: '>=1.2.0' + h2: '>=4,<5' pysocks: '>=1.5.6,<2.0,!=1.5.7' python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.20-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda hash: - md5: 0511ede4b6dd034d77fa80c6d09794e1 - sha256: 97aa149dfac27182d1fc8f7990f7c894a0167180e3edb6e7c6bdbcd7845bb854 + md5: 9272daa869e03efe68833e3dc7a02130 + sha256: af641ca7ab0c64525a96fd9ad3081b0f5bcf5d1cbb091afb3f6ed5a9eee6111a category: main optional: false - name: uvicorn @@ -6404,7 +5843,7 @@ package: __unix: '' click: '>=7.0' h11: '>=0.8' - python: '' + python: '>=3.10' typing_extensions: '>=4.0' url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda hash: @@ -6436,37 +5875,32 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - perl: '>=5.32.1,<5.33.0a0' + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + libstdcxx: '>=14' ncurses: '>=6.6,<7.0a0' + perl: '>=5.32.1,<5.33.0a0' + python: '' + python_abi: 3.10.* xorg-libx11: '>=1.8.13,<2.0a0' xorg-libxt: '>=1.3.1,<2.0a0' xorg-xorgproto: '' - libstdcxx: '>=14' - libgcc: '>=14' - __glibc: '>=2.17,<3.0.a0' - python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.2.0785-py310pl5321h784d2b7_0.conda hash: md5: 919dce8f866aef2ccfe25b9373252b93 sha256: 5b07da655155d5377eb0440aa3ff17ecb07f2969eb1c6c4b41cd657d990075fa category: main optional: false -- name: virtualenv - version: 21.7.7 +- name: vine + version: 5.1.0 manager: conda platform: linux-64 dependencies: - python: '' - distlib: '>=0.3.7,<1' - filelock: '>=3.24.2,<4' - platformdirs: '>=3.9.1,<5' - python-discovery: '>=1.6' - typing_extensions: '>=4.13.2' - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-21.7.7-pyhcf101f3_0.conda + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/vine-5.1.0-pyhd8ed1ab_1.conda hash: - md5: 768a861e1491dc8ee2a93fa8b7ee4317 - sha256: c6a9206ef4b8dfbbb1e6199f06d7db602e041d4948247d2eac3a07f9ce5a5ad5 + md5: e827a22b019357c90c58d6b7c7c4eb7c + sha256: a29620ff2ea4c003b5ba040eb2f3f6183cabfc1c74b03c9feadf89fa79718a03 category: main optional: false - name: watchfiles @@ -6474,10 +5908,10 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + __glibc: '>=2.17,<3.0.a0' anyio: '>=3.0.0' libgcc: '>=14' - __glibc: '>=2.17,<3.0.a0' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/watchfiles-1.2.0-py310hf7b62b8_1.conda hash: @@ -6513,26 +5947,14 @@ package: sha256: e311b64e46c6739e2a35ab8582c20fa30eb608da130625ed379f4467219d4813 category: main optional: false -- name: webencodings - version: 0.5.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda - hash: - md5: 2841eb5bfc75ce15e9a0054b98dcd64d - sha256: 19ff205e138bb056a46f9e3839935a2e60bd1cf01c8241a5e172a422fed4f9c6 - category: main - optional: false - name: websockets version: 16.1.1 manager: conda platform: linux-64 dependencies: - python: '' - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/websockets-16.1.1-py310h99dffb4_0.conda hash: @@ -6546,7 +5968,7 @@ package: platform: linux-64 dependencies: markupsafe: '>=2.1.1' - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.1.8-pyhcf101f3_0.conda hash: md5: 3eeca039e7316268627f4116da9df64c @@ -6607,8 +6029,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libstdcxx: '>=14' libgcc: '>=14' + libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/which-2.25-h171cf75_0.conda hash: md5: f16d4aec5e8135e8e7bba02ef600149e @@ -6620,9 +6042,9 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-2.4.0-py310h83e8816_0.conda hash: @@ -6635,8 +6057,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' xorg-libx11: '>=1.8.13,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.48-h280c20c_0.conda hash: @@ -6649,7 +6071,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/xmltodict-1.0.4-pyhcf101f3_0.conda hash: md5: 0f02dbcae61967ced21fea829a8ee927 @@ -6661,8 +6083,8 @@ package: manager: conda platform: linux-64 dependencies: - libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-h280c20c_0.conda hash: md5: 85c9442aec283b4e464fa9ecc484a2f3 @@ -6676,8 +6098,8 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - xorg-libice: '>=1.1.2,<2.0a0' libuuid: '>=2.42.2,<3.0a0' + xorg-libice: '>=1.1.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-h0d788c3_1.conda hash: md5: aa7459ed9ad086ba11dda843d764b33d @@ -6914,11 +6336,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2025.1-h280c20c_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2025.1-hebe6cf0_2.conda hash: - md5: 3b51576511038b50fdbd05245e22e4b1 - sha256: 051c6088bf2381840fcf8764737b829cc6c5f793718d2417d097d6e3b153eba9 + md5: 7386d38083163c5b5c4a92a1582daaef + sha256: 28be920cbb36bb674f66a23f368b67733dbbb89b2321e5ed7266d9b415156795 category: main optional: false - name: xxhash @@ -7029,7 +6451,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '' + python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.0-pyhcf101f3_0.conda hash: md5: ba3dcdc8584155c97c648ae9c044b7a3 @@ -7068,12 +6490,12 @@ package: manager: conda platform: linux-64 dependencies: - python: '' - cffi: '>=1.11' - zstd: '>=1.5.7,<1.6.0a0' __glibc: '>=2.17,<3.0.a0' + cffi: '>=1.11' libgcc: '>=15' + python: '' python_abi: 3.10.* + zstd: '>=1.5.7,<1.5.8.0a0,>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py310h83e8816_3.conda hash: md5: 15b4db9e2c72cb4ac4f7646f52df1bc1 @@ -7142,11 +6564,11 @@ package: manager: pip platform: linux-64 dependencies: + gdspy: '1.4' + numpy: '>=1.23.0,<2.0.0' pydantic: '>=1.9.2,<2.0.0' pyyaml: '>=6.0,<7.0' - ruamel.yaml: '>=0.17.21,<0.18.0' - numpy: '>=1.23.0,<2.0.0' - gdspy: '1.4' + ruamel-yaml: '>=0.17.21,<0.18.0' url: https://files.pythonhosted.org/packages/dd/85/8a7ffd385db1dc84295ef3101559fe7ae0f8fa39942253ca270728642dc5/hammer_vlsi-1.2.0-py3-none-any.whl hash: sha256: 7c237557d2a7c5f403474e54f9e5498758c71c24844e524a02656ac16369196d @@ -7208,24 +6630,13 @@ package: sha256: b7044611c30140d9a75261653210e2002977b71a0497ff3ba0d98d7edbf62f7c category: main optional: false -- name: pydantic - version: 1.10.26 - manager: pip - platform: linux-64 - dependencies: - typing-extensions: '>=4.2.0' - url: https://files.pythonhosted.org/packages/ba/7d/fdb961e7adc2c31f394feba6f560ef2c74c446f0285e2c2eb87d2b7206c7/pydantic-1.10.26-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - hash: - sha256: a943ce8e00ad708ed06a1d9df5b4fd28f5635a003b82a4908ece6f24c0b18464 - category: main - optional: false - name: pylddwrap version: 1.2.2 manager: pip platform: linux-64 dependencies: - typing-extensions: '>=3.6.6' icontract: '>=2.0.1,<3' + typing-extensions: '>=3.6.6' url: https://files.pythonhosted.org/packages/c9/12/4afd6542c43cd20271f0e53bf0211decc10079a76a41e53c0288025a7b85/pylddwrap-1.2.2.tar.gz hash: sha256: a70437fea7bca647c0e98161e1006ef49970267999c571b499760f1c43c6ba10 @@ -7242,27 +6653,17 @@ package: sha256: 8a66d6fb6ae7661c58995f9c6435bda2b1e68b54b598a6a10247bfcdadac996c category: main optional: false -- name: ruamel.yaml +- name: ruamel-yaml version: 0.17.40 manager: pip platform: linux-64 dependencies: - ruamel.yaml.clib: '>=0.2.7' + ruamel-yaml-clib: '>=0.2.7' url: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl hash: sha256: b16b6c3816dff0a93dca12acf5e70afd089fa5acb80604afd1ffa8b465b7722c category: main optional: false -- name: ruamel.yaml.clib - version: 0.2.15 - manager: pip - platform: linux-64 - dependencies: {} - url: https://files.pythonhosted.org/packages/d9/79/0e8ef51df1f0950300541222e3332f20707a9c210b98f981422937d1278c/ruamel_yaml_clib-0.2.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - hash: - sha256: da3d6adadcf55a93c214d23941aef4abfd45652110aed6580e814152f385b862 - category: main - optional: false - name: sure version: 2.0.1 manager: pip diff --git a/scripts/generate-conda-lockfiles.sh b/scripts/generate-conda-lockfiles.sh index 05bc7bd99e..3ba5b3ce89 100755 --- a/scripts/generate-conda-lockfiles.sh +++ b/scripts/generate-conda-lockfiles.sh @@ -4,14 +4,27 @@ set -ex CUR_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +CY_DIR=$(cd "$CUR_DIR/.." && pwd) + REQS_DIR="$CUR_DIR/../conda-reqs" +CONDA_LOCK_ENV_PATH="$CY_DIR/.conda-lock-env" + if [ ! -d "$REQS_DIR" ]; then echo "$REQS_DIR does not exist, make sure you're calling this script from chipyard/" exit 1 fi -if ! conda-lock --version | grep $(grep "conda-lock" $REQS_DIR/chipyard-base.yaml | sed 's/^ \+-.*=//'); then - echo "Invalid conda-lock version, make sure you're calling this script with the sourced chipyard env.sh" +if [[ ! -x "$CONDA_LOCK_ENV_PATH/bin/conda-lock" ]]; then + echo "conda-lock environment not found; run build-setup.sh Step 1 first." + exit 1 +fi + +# We never authenticate to a private index, so disable the keyring outright. Otherwise sometimes this hangs +export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring + +CONDA_EXE="${CONDA_EXE:-$(command -v conda)}" +if [[ ! -x "$CONDA_EXE" ]]; then + echo "no conda executable found; set CONDA_EXE or put conda on PATH." exit 1 fi @@ -20,7 +33,8 @@ for TOOLCHAIN_TYPE in riscv-tools; do LOCKFILE=$REQS_DIR/conda-lock-reqs/conda-requirements-$TOOLCHAIN_TYPE-linux-64.conda-lock.yml rm -rf $LOCKFILE - conda-lock \ + "$CONDA_LOCK_ENV_PATH/bin/conda-lock" \ + --conda "$CONDA_EXE" \ --no-mamba \ --no-micromamba \ -f "$REQS_DIR/chipyard-base.yaml" \ @@ -33,7 +47,8 @@ for TOOLCHAIN_TYPE in riscv-tools; do LOCKFILE=$REQS_DIR/conda-lock-reqs/conda-requirements-$TOOLCHAIN_TYPE-linux-64-lean.conda-lock.yml rm -rf $LOCKFILE - conda-lock \ + "$CONDA_LOCK_ENV_PATH/bin/conda-lock" \ + --conda "$CONDA_EXE" \ --no-mamba \ --no-micromamba \ -f "$REQS_DIR/chipyard-base.yaml" \ From e78e4b1b10aa6546db3c3a4f4aedced6f5d14aa6 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Mon, 7 Sep 2026 06:29:37 +0000 Subject: [PATCH 66/69] arm linux build --- .gitmodules | 12 +- conda-reqs/chipyard-base.yaml | 3 +- conda-reqs/chipyard-extended.yaml | 1 + ...s-riscv-tools-linux-64-lean.conda-lock.yml | 28 +- ...ements-riscv-tools-linux-64.conda-lock.yml | 262 +- ...cv-tools-linux-aarch64-lean.conda-lock.yml | 2273 ++++++ ...s-riscv-tools-linux-aarch64.conda-lock.yml | 6467 +++++++++++++++++ conda-reqs/docs.yaml | 1 + conda-reqs/riscv-tools.yaml | 1 + scripts/build-circt-from-source.sh | 21 + scripts/build-setup.sh | 43 +- scripts/generate-conda-lockfiles.sh | 51 +- software/firemarshal | 2 +- toolchains/libgloss | 2 +- 14 files changed, 8917 insertions(+), 250 deletions(-) create mode 100644 conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml create mode 100644 conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml diff --git a/.gitmodules b/.gitmodules index 9b5a08d2fe..b567a3c9d0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -73,18 +73,12 @@ [submodule "software/embench/embench-iot"] path = software/embench/embench-iot url = https://github.com/embench/embench-iot.git -[submodule "software/firemarshal"] - path = software/firemarshal - url = https://github.com/firesim/FireMarshal.git [submodule "software/nvdla-workload"] path = software/nvdla-workload url = https://github.com/ucb-bar/nvdla-workload.git [submodule "software/spec2017"] path = software/spec2017 url = https://github.com/ucb-bar/spec2017-workload.git -[submodule "toolchains/libgloss"] - path = toolchains/libgloss - url = https://github.com/ucb-bar/libgloss-htif.git [submodule "toolchains/riscv-tools/riscv-isa-sim"] path = toolchains/riscv-tools/riscv-isa-sim url = https://github.com/riscv-software-src/riscv-isa-sim.git @@ -166,3 +160,9 @@ [submodule "software/spec2026"] path = software/spec2026 url = https://github.com/ucb-bar/spec2026-workload.git +[submodule "toolchains/libgloss"] + path = toolchains/libgloss + url = https://github.com/jimfangx/libgloss-htif.git +[submodule "software/firemarshal"] + path = software/firemarshal + url = https://github.com/jimfangx/FireMarshal.git diff --git a/conda-reqs/chipyard-base.yaml b/conda-reqs/chipyard-base.yaml index b9cf66700e..294a700135 100644 --- a/conda-reqs/chipyard-base.yaml +++ b/conda-reqs/chipyard-base.yaml @@ -3,6 +3,7 @@ channels: - conda-forge - litex-hub - nodefaults + - jimfangx platforms: - linux-64 @@ -16,7 +17,7 @@ dependencies: # documentation on package_spec syntax for constraining versions - gcc>=15,<16 - gxx>=15,<16 - - sysroot_linux-64=2.34 + - sysroot_linux-64=2.39 - conda-gcc-specs - binutils diff --git a/conda-reqs/chipyard-extended.yaml b/conda-reqs/chipyard-extended.yaml index 1c608edbb2..a9f33809ae 100644 --- a/conda-reqs/chipyard-extended.yaml +++ b/conda-reqs/chipyard-extended.yaml @@ -3,6 +3,7 @@ channels: - conda-forge - litex-hub - nodefaults + - jimfangx platforms: - linux-64 diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml index fda016b798..ec52c2fe70 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-64: aa5e1c9757970f132166b488d828d8b86a9ebc19faf2b5ed6c0b14b775a7f5d7 + linux-64: e9f0997234420055b5af57e5a5485434ebab88e954bc2ff9353ce35e8483dbb7 channels: - url: ucb-bar used_env_vars: [] @@ -21,6 +21,8 @@ metadata: used_env_vars: [] - url: litex-hub used_env_vars: [] + - url: jimfangx + used_env_vars: [] platforms: - linux-64 sources: @@ -741,14 +743,14 @@ package: category: main optional: false - name: kernel-headers_linux-64 - version: 5.14.0 + version: 6.12.0 manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-5.14.0-he073ed8_3.conda + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-6.12.0-he073ed8_6.conda hash: - md5: 1e453742ed8f6b4250c66be1dd6ba4fe - sha256: c4d973dd80ab10028b3e4c58c1c6d8f437bfeaf6069dafb1130dabc550e9caf4 + md5: ad5a27ffc9350af2624927dd79edf2be + sha256: 73b11f31db6c9ebe63d900334fa4f46859aa1ddd8f37cfa5f25a043e0a59253c category: main optional: false - name: keyutils @@ -1014,10 +1016,10 @@ package: libiconv: '>=1.18,<2.0a0' libzlib: '>=1.3.2,<2.0a0' pcre2: '>=10.47,<10.48.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_3.conda hash: - md5: 533d342dedadf134c67760ce6fc5b748 - sha256: af6c14f387f810c5df491b328ae955329596d3bc73b1e2e091ab5adb46a10759 + md5: d216efacca3f34f2b13ddd1632f53833 + sha256: f57bf3954dbba8b27ec68540e84f8b2c2375ffa5702f89ca9741e17329fc3953 category: main optional: false - name: libgomp @@ -1939,16 +1941,16 @@ package: category: main optional: false - name: sysroot_linux-64 - version: '2.34' + version: '2.39' manager: conda platform: linux-64 dependencies: - kernel-headers_linux-64: 5.14.0 + kernel-headers_linux-64: 6.12.0 tzdata: '' - url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.34-he3f20f0_3.conda + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.39-he3f20f0_6.conda hash: - md5: 0e967042d560f3f1af601f08f5f0e31c - sha256: d8793b0fab035d128c29a990db0d0e6a96bf6baf4ded4d55a201f614f3d9cd6a + md5: f466e0c4e02d2faf778aaa2f24085934 + sha256: bcbe694a9660abbe76ba25fa1fca3127b8752fc29b733de72a904c21d144ace1 category: main optional: false - name: tk diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index a0ff7aa4b1..ea812e73cc 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-64: a9faf695c3fa3ee10f5af7f7ee4abf68071ce553a4be65052fe734a9ccee6760 + linux-64: fe51b197596af192bd1225315fbf9e182d49f2327c377cccee84e54b27e33e8e channels: - url: ucb-bar used_env_vars: [] @@ -21,6 +21,8 @@ metadata: used_env_vars: [] - url: litex-hub used_env_vars: [] + - url: jimfangx + used_env_vars: [] platforms: - linux-64 sources: @@ -144,19 +146,6 @@ package: sha256: a35bddac04be093769e81814465a537961c6ed0f8d3cc23d6dce6ecdfaf71821 category: main optional: false -- name: amqp - version: 5.3.1 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - vine: '>=5.0.0,<6.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/amqp-5.3.1-pyhd8ed1ab_0.conda - hash: - md5: 7b12e35821f20400ac419b830efb03d9 - sha256: f0e7009b24894845cb48b1e6902f8c64e61b4a27ff5df4c0438ce83472c288de - category: main - optional: false - name: anyio version: 4.14.2 manager: conda @@ -535,19 +524,18 @@ package: category: main optional: false - name: azure-core - version: 1.41.0 + version: 1.38.2 manager: conda platform: linux-64 dependencies: - flask: 2.2.5 python: '>=3.10' requests: '>=2.21.0' six: '>=1.11.0' typing_extensions: '>=4.6.0' - url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.41.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.38.2-pyhd8ed1ab_0.conda hash: - md5: 3d743fce13d22b101bfd733e29469628 - sha256: fc46c9078396a558e42871e111c1bf88d3bb16afd4cf8f9887125f83b647cea9 + md5: 743136e218757845f4737a104cd6643c + sha256: 4d57a96231eb98675833bcd845b6c8474c829f4761d1d4de6b04f78d9df362d1 category: main optional: false - name: azure-identity @@ -632,21 +620,6 @@ package: sha256: c5e04d9408a0047bd87156b1853a4ac31cb3a5ccdc52374d89c72cbdabe95002 category: main optional: false -- name: billiard - version: 4.2.4 - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/billiard-4.2.4-py310h7c4b9e2_0.conda - hash: - md5: 36adaa154a184a872bd8165ae132a19e - sha256: 6db2e9b6b1e491556b6ecb982de41c172fcfd9402dc18edc2401dad366319490 - category: main - optional: false - name: binutils version: 2.46.1 manager: conda @@ -687,6 +660,18 @@ package: sha256: d45803ee7834f71eb0656d74a58644390ef13365ff67f7716cc660309e46cfbd category: main optional: false +- name: blinker + version: 1.9.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda + hash: + md5: 42834439227a4551b939beeeb8a4b085 + sha256: f7efd22b5c15b400ed84a996d777b6327e5c402e79e3c534a7e086236f1eb2dc + category: main + optional: false - name: boltons version: 26.1.0 manager: conda @@ -730,7 +715,7 @@ package: category: main optional: false - name: botocore - version: 1.43.87 + version: 1.43.88 manager: conda platform: linux-64 dependencies: @@ -738,10 +723,10 @@ package: python: '>=3.10' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,!=2.2.0,<3' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.87-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.88-pyhd8ed1ab_0.conda hash: - md5: 6fcb76f804eb93bf1db9d259629fd52a - sha256: de9b62dafd21aa00bcf231d0240d27d1840776cfe08bfb0d21a85fae107454f1 + md5: 1aa61f8701378688b720c3fba469cb6e + sha256: 6e438c78936a1ea4436f4005ab259f43dc89c03bf2276a0dde9a5d50e7a37afd category: main optional: false - name: botocore-stubs @@ -890,28 +875,6 @@ package: sha256: adace394e3f21541d1740b64f8f683cb6f6b9693fe419f49d4460a076090675d category: main optional: false -- name: celery - version: 5.6.3 - manager: conda - platform: linux-64 - dependencies: - billiard: '>=4.2.1,<5.0' - click: '>=8.1.2,<9.0' - click-didyoumean: '>=0.3.0' - click-plugins: '>=1.1.1' - click-repl: '>=0.2.0' - exceptiongroup: '>=1.3.0' - kombu: '>=5.6.0' - python: '>=3.10' - python-dateutil: '>=2.8.2' - tzlocal: '' - vine: '>=5.1.0,<6.0' - url: https://conda.anaconda.org/conda-forge/noarch/celery-5.6.3-pyhc364b38_0.conda - hash: - md5: 5faafe2ad8db9e411630f52cf36b4aaa - sha256: 48a6a8b27fcaed2596a424010a22284d9a9205db698f083e0936692a9de9e661 - category: main - optional: false - name: certifi version: 2026.7.22 manager: conda @@ -1050,47 +1013,6 @@ package: sha256: ccc4787f511964f9a1f2d2d2859c91c5d571fb60f7f09d4c4e092c9b7a94e671 category: main optional: false -- name: click-didyoumean - version: 0.3.1 - manager: conda - platform: linux-64 - dependencies: - click: '>=7' - python: '>=3.9,<4.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/click-didyoumean-0.3.1-pyhd8ed1ab_1.conda - hash: - md5: dd87c399586cac9f8bdd8c644b2592a6 - sha256: f3e6540088db593707766aa30abe184463e4842182012ffb81e1cc784dbdc436 - category: main - optional: false -- name: click-plugins - version: 1.1.1.2 - manager: conda - platform: linux-64 - dependencies: - click: '>=4.0' - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda - hash: - md5: e9b05deb91c013e5224672a4ba9cf8d1 - sha256: ba1ee6e2b2be3da41d70d0d51d1159010de900aa3f33fceaea8c52e9bd30a26e - category: main - optional: false -- name: click-repl - version: 0.3.0 - manager: conda - platform: linux-64 - dependencies: - click: '' - prompt_toolkit: '' - python: '>=3.6' - six: '' - url: https://conda.anaconda.org/conda-forge/noarch/click-repl-0.3.0-pyhd8ed1ab_0.conda - hash: - md5: 27eb8f68250666c1a19d1b6ec9d12c4e - sha256: 69c16e0b89e1fb4fc444af4798ef1222b3075d074cbcbe70b9af793668200a14 - category: main - optional: false - name: cmake version: 4.4.3 manager: conda @@ -1550,21 +1472,21 @@ package: category: main optional: false - name: flask - version: 2.2.5 + version: 3.1.3 manager: conda platform: linux-64 dependencies: - celery: '>=5.2.7' - click: '>=8.0' - importlib-metadata: '>=3.6.0' - itsdangerous: '>=2.0' - jinja2: '>=3.0' - python: '>=3.7' - werkzeug: '>=2.2.2' - url: https://conda.anaconda.org/conda-forge/noarch/flask-2.2.5-pyhd8ed1ab_0.conda + blinker: '>=1.9.0' + click: '>=8.1.3' + itsdangerous: '>=2.2.0' + jinja2: '>=3.1.2' + markupsafe: '>=2.1.1' + python: '>=3.10' + werkzeug: '>=3.1.0' + url: https://conda.anaconda.org/conda-forge/noarch/flask-3.1.3-pyhcf101f3_1.conda hash: - md5: 66c558a28b9b47c1e2aa8e8cb80b9037 - sha256: 9356ae47278788439770eb9d05bfeb72c39a53a8b10a0e534b612f99b9c18e9b + md5: 156398929bf849da6df8f89a2c390185 + sha256: 3980dfba1e3900106cc3e6210294e73f50d02a67fdfe7b3bb36b2721ba9379cb category: main optional: false - name: flask-cors @@ -1843,10 +1765,10 @@ package: liblzma: '>=5.8.3,<6.0a0' libpng: '>=1.6.58,<1.7.0a0' libtiff: '>=4.7.2,<4.8.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.8-h68053f1_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.8-h68053f1_2.conda hash: - md5: 11adf7fc09b1146a6d91deb65d374456 - sha256: 056fadb57a423c29a965c151422dde75b499cbef6525af87a920e642d60cdbc2 + md5: d7bd6ccfc58eb6796bd6bba85878fc0e + sha256: 32f3ebd1871cb6ac7eac36c78c410860f38e8d252d5857a80f6abfcb79c7e0ff category: main optional: false - name: gengetopt @@ -1931,10 +1853,10 @@ package: libffi: '' libgcc: '>=15' libglib: ==2.88.3 - url: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.88.3-h67ed8a3_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.88.3-h0804268_3.conda hash: - md5: 5c35ace78b7d630e77efcb37dacb62ae - sha256: 966f78753d7f044df52a0b32876580ee15f006e8ec960afa5360c50e66be0fc5 + md5: 164d7e0bcf4552bba8d4a8efbe36c990 + sha256: 41d88bd2671de2720cebe28cbfb1b434586383efdeab1669b488a1669ce3e3b0 category: main optional: false - name: gmp @@ -2417,14 +2339,14 @@ package: category: main optional: false - name: kernel-headers_linux-64 - version: 5.14.0 + version: 6.12.0 manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-5.14.0-he073ed8_3.conda + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-6.12.0-he073ed8_6.conda hash: - md5: 1e453742ed8f6b4250c66be1dd6ba4fe - sha256: c4d973dd80ab10028b3e4c58c1c6d8f437bfeaf6069dafb1130dabc550e9caf4 + md5: ad5a27ffc9350af2624927dd79edf2be + sha256: 73b11f31db6c9ebe63d900334fa4f46859aa1ddd8f37cfa5f25a043e0a59253c category: main optional: false - name: keyutils @@ -2456,23 +2378,6 @@ package: sha256: b40a191ac761b629805db4ff9d6ac5bdaeaebfb9eb38af7329f8b449d7c6d8c9 category: main optional: false -- name: kombu - version: 5.6.2 - manager: conda - platform: linux-64 - dependencies: - amqp: '>=5.1.1,<6.0.0' - boto3: '>=1.26.143' - packaging: '' - python: '>=3.10' - python-tzdata: '>=2025.2' - vine: 5.1.0 - url: https://conda.anaconda.org/conda-forge/noarch/kombu-5.6.2-pyha770c72_0.conda - hash: - md5: 2835b89f91d340c6aecf900779721540 - sha256: 03c6aef64ff9ffb06592de7a99e19922649ca193b7f6b3beadedbd8dc058a38b - category: main - optional: false - name: krb5 version: 1.22.2 manager: conda @@ -3058,10 +2963,10 @@ package: libiconv: '>=1.18,<2.0a0' libzlib: '>=1.3.2,<2.0a0' pcre2: '>=10.47,<10.48.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_3.conda hash: - md5: 533d342dedadf134c67760ce6fc5b748 - sha256: af6c14f387f810c5df491b328ae955329596d3bc73b1e2e091ab5adb46a10759 + md5: d216efacca3f34f2b13ddd1632f53833 + sha256: f57bf3954dbba8b27ec68540e84f8b2c2375ffa5702f89ca9741e17329fc3953 category: main optional: false - name: libglvnd @@ -3543,10 +3448,10 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - url: https://conda.anaconda.org/conda-forge/linux-64/libseccomp-2.6.1-h7cc23a3_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libseccomp-2.6.1-h7cc23a3_2.conda hash: - md5: 41ddbd76939bdbc010085c594bd2c6a6 - sha256: 86586156aa6f021242bb8b4d690e33df8f635809bc39edf7b1a2231a51414ac9 + md5: 86efecd73563d98d911da7e246bacccb + sha256: 36b717f86c1f5c1fe56733c4e0b964c602ec4621f686c3e7ce651a651b0c991b category: main optional: false - name: libsecret @@ -4396,21 +4301,21 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' cairo: '>=1.18.4,<2.0a0' - fontconfig: '>=2.18.2,<3.0a0' + fontconfig: '>=2.18.3,<3.0a0' fonts-conda-ecosystem: '' fribidi: '>=1.0.16,<2.0a0' libexpat: '>=2.8.1,<3.0a0' libfreetype: '>=2.14.3' libfreetype6: '>=2.14.3' - libgcc: '>=14' + libgcc: '>=15' libglib: '>=2.88.3,<3.0a0' - libharfbuzz: '>=14.3.0' + libharfbuzz: '>=14.4.0' libpng: '>=1.6.58,<1.7.0a0' libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.58.2-hda50119_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.58.2-h7bb47b9_1.conda hash: - md5: 6a2822aaf9a34ac3708904a47ff3dd7e - sha256: 48f27a6c3e4062bc09dafe9c7f6b288c5de5655e81095ab7f1aad920b2163b7b + md5: 0b889b1c6b472d215d6332c6b195589c + sha256: 47c3d25a0bdb0ae50627f9ef2a10345fabfabe0e6620cbcff04e589a644542d3 category: main optional: false - name: patch @@ -4595,18 +4500,6 @@ package: sha256: ebc1bb62ac612af6d40667da266ff723662394c0ca78935340a5b5c14831227b category: main optional: false -- name: prompt_toolkit - version: 3.0.51 - manager: conda - platform: linux-64 - dependencies: - prompt-toolkit: '>=3.0.51,<3.0.52.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.51-hd8ed1ab_0.conda - hash: - md5: 1e61ab85dd7c60e5e73d853ea035dc29 - sha256: 936189f0373836c1c77cd2d6e71ba1e583e2d3920bf6d015e96ee2d729b5e543 - category: main - optional: false - name: propcache version: 0.5.2 manager: conda @@ -4687,13 +4580,13 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' + libgcc: '>=15' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.6-py310h7c4b9e2_4.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.6-py310h212bed1_5.conda hash: - md5: 32dcf423d5337e26f9da916ebc9f15cd - sha256: 54b4950c57fe4e1d4a23a86b9a3f6565fff80f907c41d0ff369fc0362af4db76 + md5: 0de3163b8c226db0fee432694e8dce76 + sha256: 7f5b85f0982b85fe81981c5b939d5369019e1acec7c5aefe36fd4ee9dfadb869 category: main optional: false - name: pycparser @@ -5571,16 +5464,16 @@ package: category: main optional: false - name: sysroot_linux-64 - version: '2.34' + version: '2.39' manager: conda platform: linux-64 dependencies: - kernel-headers_linux-64: 5.14.0 + kernel-headers_linux-64: 6.12.0 tzdata: '' - url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.34-he3f20f0_3.conda + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.39-he3f20f0_6.conda hash: - md5: 0e967042d560f3f1af601f08f5f0e31c - sha256: d8793b0fab035d128c29a990db0d0e6a96bf6baf4ded4d55a201f614f3d9cd6a + md5: f466e0c4e02d2faf778aaa2f24085934 + sha256: bcbe694a9660abbe76ba25fa1fca3127b8752fc29b733de72a904c21d144ace1 category: main optional: false - name: tar @@ -5757,19 +5650,6 @@ package: sha256: b928c30ddcb0e3f544c6eade8352737e6e610e263276b90232db6a578ef899d8 category: main optional: false -- name: tzlocal - version: 5.4.4 - manager: conda - platform: linux-64 - dependencies: - __unix: '' - python: '>=3.10' - url: https://conda.anaconda.org/conda-forge/noarch/tzlocal-5.4.4-pyh8f84b5b_0.conda - hash: - md5: cbd15812c946aecc2d9479318aca450f - sha256: 5d693f6f22b584fb69bac52e716872a1432c50527ced54d66064cc27e5946c0b - category: main - optional: false - name: unicodedata2 version: 17.0.1 manager: conda @@ -5891,18 +5771,6 @@ package: sha256: 5b07da655155d5377eb0440aa3ff17ecb07f2969eb1c6c4b41cd657d990075fa category: main optional: false -- name: vine - version: 5.1.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/vine-5.1.0-pyhd8ed1ab_1.conda - hash: - md5: e827a22b019357c90c58d6b7c7c4eb7c - sha256: a29620ff2ea4c003b5ba040eb2f3f6183cabfc1c74b03c9feadf89fa79718a03 - category: main - optional: false - name: watchfiles version: 1.2.0 manager: conda diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml new file mode 100644 index 0000000000..121f04cc44 --- /dev/null +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml @@ -0,0 +1,2273 @@ +# This lock file was generated by conda-lock (https://github.com/conda/conda-lock). DO NOT EDIT! +# +# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike +# e.g. `conda env create`, the resulting environment will not change as new package versions become +# available, unless you explicitly update the lock file. +# +# Install this environment as "YOURENV" with: +# conda-lock install -n YOURENV conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml +# To update a single package to the latest version compatible with the version constraints in the source: +# conda-lock lock --lockfile conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml --update PACKAGE +# To re-solve the entire environment, e.g. after changing a version constraint in the source file: +# conda-lock -f ../chipyard-base.yaml -f ../docs.yaml -f ../riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml +version: 1 +metadata: + content_hash: + linux-aarch64: 52b5694ef3bfea1cf84703b3f42741421ca46e97d816878749135eb449467036 + channels: + - url: ucb-bar + used_env_vars: [] + - url: conda-forge + used_env_vars: [] + - url: litex-hub + used_env_vars: [] + - url: jimfangx + used_env_vars: [] + platforms: + - linux-aarch64 + sources: + - ../chipyard-base.yaml + - ../docs.yaml + - ../riscv-tools.yaml +package: +- name: _openmp_mutex + version: '4.5' + manager: conda + platform: linux-aarch64 + dependencies: + libgomp: '>=7.5.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-20_gnu.conda + hash: + md5: 468fd3bb9e1f671d36c2cbc677e56f1d + sha256: a2527b1d81792a0ccd2c05850960df119c2b6d8f5fdec97f2db7d25dc23b1068 + category: main + optional: false +- name: alabaster + version: 1.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda + hash: + md5: 1fd9696649f65fd6611fcdb4ffec738a + sha256: 6c4456a138919dae9edd3ac1a74b6fbe5fd66c05675f54df2f8ab8c8d0cc6cea + category: main + optional: false +- name: alsa-lib + version: 1.2.16.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/alsa-lib-1.2.16.1-h5bc82ec_1.conda + hash: + md5: 5eedc6a72f0485cb557ecef2c83a6b72 + sha256: ac5d76b14009cd6591f39dd4e07ea641a91bb3759889fed34f7750e7a7e9a929 + category: main + optional: false +- name: anyio + version: 4.14.2 + manager: conda + platform: linux-aarch64 + dependencies: + exceptiongroup: '>=1.0.2' + idna: '>=2.8' + python: '>=3.10' + typing_extensions: '>=4.5' + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda + hash: + md5: fb568fbae6908ba86a090a85a089d11f + sha256: e36998c5e860e26b22e5dbcd5726dd0c4eabad949c84d383cad8512757bbf6a1 + category: main + optional: false +- name: autoconf + version: '2.72' + manager: conda + platform: linux-aarch64 + dependencies: + m4: '' + perl: 5.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/autoconf-2.72-pl5321hbecfd40_1.conda + hash: + md5: d85e1de6cee54ac97273f2e5f2ca031c + sha256: 95597fc81d411a526f763344eff39e184dee8c12829a5ee3f2883ec6ffa3a621 + category: main + optional: false +- name: babel + version: 2.18.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda + hash: + md5: f1976ce927373500cc19d3c0b2c85177 + sha256: a14a9ad02101aab25570543a59c5193043b73dc311a25650134ed9e6cb691770 + category: main + optional: false +- name: backports.zstd + version: 1.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + python: '' + python_abi: 3.10.* + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/backports.zstd-1.7.0-py310h5585d39_0.conda + hash: + md5: 3eb003c4058f7eb271e27d695929176f + sha256: f8567287859e9772e8315cdec8bf57a4f41f9a2ead50c183bfe7e7dc9e9ea195 + category: main + optional: false +- name: binutils + version: 2.46.1 + manager: conda + platform: linux-aarch64 + dependencies: + binutils_impl_linux-aarch64: '>=2.46.1,<2.46.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils-2.46.1-default_hf1166c9_102.conda + hash: + md5: 7a2f1cdac4c9fd2e87533ff2d2dcb702 + sha256: 548d128bc257badd2d9dbdff8173eb693fcbec84ceeb0fa74cbfed141ed42ad9 + category: main + optional: false +- name: binutils_impl_linux-aarch64 + version: 2.46.1 + manager: conda + platform: linux-aarch64 + dependencies: + ld_impl_linux-aarch64: 2.46.1 + sysroot_linux-aarch64: '' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_impl_linux-aarch64-2.46.1-default_h5f4c503_102.conda + hash: + md5: 58f37d76b8234c69dbf2939d511bea0b + sha256: eebe159bf600943552e4319ff4ce27b6a2dadf0dcc5443e76dcee9259a408e11 + category: main + optional: false +- name: brotli-python + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-python-1.2.0-py310hac1f945_3.conda + hash: + md5: 47cbecd913075462e9e162cabfd0f9d2 + sha256: 17e26fb9c4c384c860557341bb32be7b478de5f68d3a68e94c520b9030bc7d0d + category: main + optional: false +- name: bzip2 + version: 1.0.8 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h4777abc_10.conda + hash: + md5: fd544ef1c672d645bf78e5819cbb8f91 + sha256: 24eacc8a20fd7c4616566178562bef7f9344eb4a8700cfc3180fa75a6ff9d39f + category: main + optional: false +- name: c-ares + version: 1.34.8 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.34.8-h29ee22c_2.conda + hash: + md5: eb80eb38625b8552a099aa88f8ba5db7 + sha256: 3838d10a78c206a1a4ec7ff041880b4f9b8ecde3520c911daae9e06baeb8858e + category: main + optional: false +- name: ca-certificates + version: 2026.7.22 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda + hash: + md5: 0f51e2391ade309db462a55611263e9c + sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 + category: main + optional: false +- name: cairo + version: 1.18.4 + manager: conda + platform: linux-aarch64 + dependencies: + fontconfig: '>=2.18.3,<3.0a0' + fonts-conda-ecosystem: '' + icu: '>=78.3,<79.0a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libxcb: '>=1.17.0,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + pixman: '>=0.46.4,<1.0a0' + xorg-libice: '>=1.1.2,<2.0a0' + xorg-libsm: '>=1.2.6,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxrender: '>=0.9.12,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cairo-1.18.4-hca320e2_3.conda + hash: + md5: 429852374b814f1fdeee970a3e1512e7 + sha256: 1ac3088ec4ec12b401cd3095dbd178b29651e99bfd25d0a85400624037735d91 + category: main + optional: false +- name: certifi + version: 2026.7.22 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.7.22-pyhd8ed1ab_0.conda + hash: + md5: 37e13edbe3b48f1095a9d085ef9cd83b + sha256: fb167de4388e64e52aa3907ed099afab944c1fa6e5f74b281a312dae1bcf7f3b + category: main + optional: false +- name: charset-normalizer + version: 3.5.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.5.1-pyhd8ed1ab_0.conda + hash: + md5: e0ac3accc64e23e40969d660e5f58ac8 + sha256: cb60ef3e0631c8bacb4f7057196dee4496091a22baa3bb4b9bccb12c7e1c921b + category: main + optional: false +- name: click + version: 8.4.2 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/click-8.4.2-pyhc90fa1f_0.conda + hash: + md5: 2c4bd6aeb90bb157456841c3270a0d92 + sha256: ccc4787f511964f9a1f2d2d2859c91c5d571fb60f7f09d4c4e092c9b7a94e671 + category: main + optional: false +- name: colorama + version: 0.4.6 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + hash: + md5: 962b9857ee8e7018c22f2776ffa0b2d7 + sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287 + category: main + optional: false +- name: conda-gcc-specs + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + gcc_impl_linux-aarch64: '>=15.3.0,<15.3.1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-gcc-specs-15.3.0-hbdd0822_4.conda + hash: + md5: afa5c705e03c6afce0228ff2283d6309 + sha256: d61e8e35090eac2af977f40d9b068fde2c3fdc3494f93230d955947709e4b581 + category: main + optional: false +- name: coreutils + version: '9.11' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/coreutils-9.11-h80f16a2_0.conda + hash: + md5: 289d703d58521cab02bcab0ae6e04665 + sha256: 3410b19e09e7d4ce34dd18ac6d2371c0bf04e17c20df1a92bd0161dcbea83c78 + category: main + optional: false +- name: docutils + version: 0.21.2 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda + hash: + md5: 24c1ca34138ee57de72a943237cde4cc + sha256: fa5966bb1718bbf6967a85075e30e4547901410cc7cb7b16daf68942e9a94823 + category: main + optional: false +- name: dtc + version: 1.7.2 + manager: conda + platform: linux-aarch64 + dependencies: + libfdt: '>=1.7.2,<1.8.0a0' + libgcc: '>=14' + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/dtc-1.7.2-h80f16a2_6.conda + hash: + md5: ce5f1c541602eb6321f5968fe6e2ca0d + sha256: feb7f8d994fe3b973d709e2b75e58317bd5a737880db4bf25dad0db0e13dfdb7 + category: main + optional: false +- name: exceptiongroup + version: 1.3.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + typing_extensions: '>=4.6.0' + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + hash: + md5: 8e662bd460bda79b1ea39194e3c4c9ab + sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144 + category: main + optional: false +- name: expat + version: 2.8.1 + manager: conda + platform: linux-aarch64 + dependencies: + libexpat: 2.8.1 + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/expat-2.8.1-hfae3067_1.conda + hash: + md5: 4bcb07322aecccd75514fd585ad0b719 + sha256: e4cc29e20435f2787031eafaf100496cb700d2ebc246e91211cbde023b2600b4 + category: main + optional: false +- name: flex + version: 2.6.4 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=7.5.0' + libstdcxx-ng: '>=7.5.0' + m4: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/flex-2.6.4-h884eca8_1004.tar.bz2 + hash: + md5: 1e81594037ba4a15a83f42497fee59f3 + sha256: 876d5b6b79d431174668b05b67fc8c931e03101efaefb117a7fadd98727edbb0 + category: main + optional: false +- name: fnm + version: 1.39.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/fnm-1.39.0-h069e38c_1.conda + hash: + md5: 7f4c42474db6f2796450f0bf84712ac2 + sha256: 7457efd999802d3cbb57e692823aca1ba6d5455553203032216b25b5f092eb9d + category: main + optional: false +- name: font-ttf-dejavu-sans-mono + version: '2.37' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + hash: + md5: 0c96522c6bdaed4b1566d11387caaf45 + sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b + category: main + optional: false +- name: font-ttf-inconsolata + version: '3.000' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + hash: + md5: 34893075a5c9e55cdafac56607368fc6 + sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c + category: main + optional: false +- name: font-ttf-source-code-pro + version: '2.038' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + hash: + md5: 4d59c254e01d9cde7957100457e2d5fb + sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139 + category: main + optional: false +- name: font-ttf-ubuntu + version: '0.83' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + hash: + md5: 49023d73832ef61042f6a237cb2687e7 + sha256: 2821ec1dc454bd8b9a31d0ed22a7ce22422c0aef163c59f49dfdf915d0f0ca14 + category: main + optional: false +- name: fontconfig + version: 2.18.3 + manager: conda + platform: linux-aarch64 + dependencies: + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libuuid: '>=2.42.2,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/fontconfig-2.18.3-ha4b22b4_1.conda + hash: + md5: bb629904b3e9326efaa5c39c956f2b63 + sha256: 5f7801b6044ff233943e68f5156d4987fe8447d1be9378fb5c67f7aa009a33e7 + category: main + optional: false +- name: fonts-conda-ecosystem + version: '1' + manager: conda + platform: linux-aarch64 + dependencies: + fonts-conda-forge: '' + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + hash: + md5: fee5683a3f04bd15cbd8318b096a27ab + sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61 + category: main + optional: false +- name: fonts-conda-forge + version: '1' + manager: conda + platform: linux-aarch64 + dependencies: + font-ttf-dejavu-sans-mono: '' + font-ttf-inconsolata: '' + font-ttf-source-code-pro: '' + font-ttf-ubuntu: '' + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda + hash: + md5: a7970cd949a077b7cb9696379d338681 + sha256: 54eea8469786bc2291cc40bca5f46438d3e062a399e8f53f013b6a9f50e98333 + category: main + optional: false +- name: freetype + version: 2.14.3 + manager: conda + platform: linux-aarch64 + dependencies: + libfreetype: 2.14.3 + libfreetype6: 2.14.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/freetype-2.14.3-h8af1aa0_2.conda + hash: + md5: f5d76071be867597bab18a0e45d588e1 + sha256: 7af9e368efdaf59e0709ae89c2e7f0ce0e1067a857958f367318ff3c27209a64 + category: main + optional: false +- name: gcc + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + conda-gcc-specs: '' + gcc_impl_linux-aarch64: 15.3.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc-15.3.0-hfdd745d_4.conda + hash: + md5: 96724903f974e2151a077ec588bf9d7e + sha256: fc89612ee4e163923ba713a8814114e8c402054e79b85e32b75d1c38031b4362 + category: main + optional: false +- name: gcc_impl_linux-aarch64 + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + binutils_impl_linux-aarch64: '>=2.46.1' + libgcc: '>=15.3.0' + libgcc-devel_linux-aarch64: 15.3.0 + libgomp: '>=15.3.0' + libsanitizer: 15.3.0 + libstdcxx: '>=15.3.0' + libstdcxx-devel_linux-aarch64: 15.3.0 + sysroot_linux-aarch64: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_impl_linux-aarch64-15.3.0-hfe63468_4.conda + hash: + md5: a6a25fd37f554f88b36a0d03af7775fa + sha256: 6039029f4ce021e0c49fb47824e981ba5d2863498c0855f78a73dc09a75cf151 + category: main + optional: false +- name: giflib + version: 5.2.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/giflib-5.2.2-h5dd31e5_1.conda + hash: + md5: 6e6566364080aaac269deeff7d1bd6b0 + sha256: bcba20fab38b359fe982bd004e0b28e5ecfa07e43ca03733db2f6f26fad68f8f + category: main + optional: false +- name: git + version: 2.55.0 + manager: conda + platform: linux-aarch64 + dependencies: + libcurl: '>=8.21.0,<9.0a0' + libexpat: '>=2.8.1,<3.0a0' + libgcc: '>=14' + libiconv: '>=1.18,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + pcre2: '>=10.47,<10.48.0a0' + perl: 5.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/git-2.55.0-pl5321h06f7e71_1.conda + hash: + md5: cdbc79af349a0df66596b1f91534e476 + sha256: 02615f600a0d4242dcedcb7ebd8f1faa02f7136551cc3e804fc879a015237644 + category: main + optional: false +- name: gmp + version: 6.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gmp-6.3.0-h4d6b352_3.conda + hash: + md5: ce2326e31df1913341036653e1c07baa + sha256: ab165962a7316f269a7bde936aa442bf69f0fed97a497e63ec28f366b4999037 + category: main + optional: false +- name: graphite2 + version: 1.3.15 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/graphite2-1.3.15-h7ac5ae9_1.conda + hash: + md5: c5835ff5788e0d772d67a97bd5fe001b + sha256: 5be01914b445dfbde85a4751b1d12b331740e7af68a86e4ef6313ab38a870fdd + category: main + optional: false +- name: gxx + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + conda-gcc-specs: '' + gcc: 15.3.0 + gxx_impl_linux-aarch64: 15.3.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx-15.3.0-hfdd745d_4.conda + hash: + md5: a633104932da5d9d0add986193a9b45d + sha256: 36cd033b6473c8bf782ea7ceee7704b2db43bc2070acb9981620f0e86db7ad8d + category: main + optional: false +- name: gxx_impl_linux-aarch64 + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + gcc_impl_linux-aarch64: 15.3.0 + libstdcxx-devel_linux-aarch64: 15.3.0 + sysroot_linux-aarch64: '' + tzdata: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_impl_linux-aarch64-15.3.0-hcb04d1e_4.conda + hash: + md5: ba4fc57002f3425ed6a36496d299332d + sha256: e5a301d88d8902a8954adbf0c4a28b579960bae312d4bd6ba79463a20795a86e + category: main + optional: false +- name: h11 + version: 0.16.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + typing_extensions: '' + url: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda + hash: + md5: b8993c19b0c32a2f7b66cbb58ca27069 + sha256: 96cac6573fd35ae151f4d6979bab6fbc90cb6b1fb99054ba19eb075da9822fcb + category: main + optional: false +- name: h2 + version: 4.4.1 + manager: conda + platform: linux-aarch64 + dependencies: + hpack: '>=4.2,<5' + hyperframe: '>=6.1,<7' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + hash: + md5: e652ac7756069c456d0da2a922cd7df5 + sha256: 307dd6ec90140c3cf4171071b0e5e870abec314f4565c1edd5bc433e942cdcc0 + category: main + optional: false +- name: harfbuzz + version: 14.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + libharfbuzz-devel: 14.4.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/harfbuzz-14.4.0-h8af1aa0_1.conda + hash: + md5: 47068fe215dc328067e8fb3bd7b0c0be + sha256: 3936f8696311d03fe165c46af0e43a5fa7ce02053ee687f01ef5b0650fa6f02a + category: main + optional: false +- name: hpack + version: 4.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda + hash: + md5: b395909221b9bd1df066e5930e18855b + sha256: fdcea5d7cb314485d3907192ef024c704311548c5b0cbeb390cd1951051e29d2 + category: main + optional: false +- name: hyperframe + version: 6.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + hash: + md5: 8e6923fc12f1fe8f8c4e5c9f343256ac + sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 + category: main + optional: false +- name: icu + version: '78.3' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-78.3-py311h3512406_2.conda + hash: + md5: b35bbb1b957440ed742f35fb96eb7f1c + sha256: 54d921defd947adb58a90e10203d3bfe6c1f209f5f1a1ad2c6a9f7617f2fb59e + category: main + optional: false +- name: idna + version: '3.19' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda + hash: + md5: a39ae05027e9b707742e41b30d296b75 + sha256: 1c35a59c1545ad0fdaddf1fbde7bcfa6ef41a8d68c3a2b0b4a291be00676163e + category: main + optional: false +- name: imagesize + version: 2.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/imagesize-2.0.1-pyhd8ed1ab_0.conda + hash: + md5: ebc56022e4ef7e74a829be94c53797ca + sha256: 4e787f9ccc31053ccea56d98ecd284a4f788988a3f9c4627db72fdd0b127529b + category: main + optional: false +- name: jinja2 + version: 3.1.6 + manager: conda + platform: linux-aarch64 + dependencies: + markupsafe: '>=2.0' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda + hash: + md5: 04558c96691bed63104678757beb4f8d + sha256: fc9ca7348a4f25fed2079f2153ecdcf5f9cf2a0bc36c4172420ca09e1849df7b + category: main + optional: false +- name: jq + version: 1.8.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + oniguruma: 6.9.*,>=6.9.10,<6.10.0a0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/jq-1.8.2-h80f16a2_1.conda + hash: + md5: 266917520745dc1ca3da3dfb71365d9c + sha256: b5fc3d450f05eda27f1d667a435425e84c66d0bd3a04f0ac28aaa4ba88e58e2a + category: main + optional: false +- name: kernel-headers_linux-64 + version: 6.12.0 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-6.12.0-he073ed8_6.conda + hash: + md5: ad5a27ffc9350af2624927dd79edf2be + sha256: 73b11f31db6c9ebe63d900334fa4f46859aa1ddd8f37cfa5f25a043e0a59253c + category: main + optional: false +- name: kernel-headers_linux-aarch64 + version: 4.18.0 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-aarch64-4.18.0-h05a177a_9.conda + hash: + md5: bb3b7cad9005f2cbf9d169fb30263f3e + sha256: 5d224bf4df9bac24e69de41897c53756108c5271a0e5d2d2f66fd4e2fbc1d84b + category: main + optional: false +- name: keyutils + version: 1.6.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/keyutils-1.6.3-h5bc82ec_1.conda + hash: + md5: 6d9be306ecb8dfc9ff46f02cb367d5c2 + sha256: 3999b1472f1e549a0b766428e2823abf20626aac5314b474c9b76bf6eb679def + category: main + optional: false +- name: krb5 + version: 1.22.2 + manager: conda + platform: linux-aarch64 + dependencies: + keyutils: '>=1.6.3,<2.0a0' + libedit: '>=3.1.20250104,<3.2.0a0,>=3.1.20250104,<4.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/krb5-1.22.2-h095d8e5_2.conda + hash: + md5: a4d0da122ba952abf76981e76d0d283c + sha256: 601d79af94d9562ba70e2d4947034ba159aae293a3c860855335a7c76c14400e + category: main + optional: false +- name: lcms2 + version: 2.19.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libjpeg-turbo: '>=3.2.0,<4.0a0' + libtiff: '>=4.7.2,<4.8.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/lcms2-2.19.1-h137c43b_2.conda + hash: + md5: 58bc4448c604ca4a3e61ddab4ec333d9 + sha256: 850c544762cc019c9bd75767f30cd30f9c8fab313021b97f53b3a218f1f35668 + category: main + optional: false +- name: ld_impl_linux-aarch64 + version: 2.46.1 + manager: conda + platform: linux-aarch64 + dependencies: + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.46.1-default_h1979696_102.conda + hash: + md5: 489444d0acb2a579d2a002d85a08c059 + sha256: 2c4901f4227b0850328ed0c69f958b30ad2cd18982f7a31c7c1f911827004d08 + category: main + optional: false +- name: lerc + version: 4.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/lerc-4.2.0-h52b7260_0.conda + hash: + md5: 9fcfe6be4f752b72be7abc69842ca396 + sha256: 0176a71d64fcb5aec43c9e8ab4ae72faa6c6b0b1cda8f40b65e19429ce13c84d + category: main + optional: false +- name: libcups + version: 2.3.3 + manager: conda + platform: linux-aarch64 + dependencies: + krb5: '>=1.22.2,<1.23.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + libzlib: '>=1.3.1,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libcups-2.3.3-h4f2b762_6.conda + hash: + md5: 67828c963b17db7dc989fe5d509ef04a + sha256: 41b04f995c9f63af8c4065a35931e46cbc2fdd6b9bf7e4c19f90d53cbb2bc8e5 + category: main + optional: false +- name: libcurl + version: 8.22.0 + manager: conda + platform: linux-aarch64 + dependencies: + krb5: '>=1.22.2,<1.23.0a0' + libgcc: '>=15' + libnghttp2: '>=1.68.1,<2.0a0' + libpsl: '>=0.23.1,<0.24.0a0' + libssh2: '>=1.11.1,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.8,<4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.22.0-h86273da_0.conda + hash: + md5: d79a5b16c3aaff5269f9118aa1d9f1ba + sha256: 8634a43ca7161d49b94098d8d27f32040ccf19b5227b37d05826ec8b5729b3c4 + category: main + optional: false +- name: libdeflate + version: '1.25' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libdeflate-1.25-hfa851ae_1.conda + hash: + md5: 8cdf7f7e4908c9b2cf50c58966f2ff64 + sha256: 4cb3da1d4ce7540604219d2a016253777da66c1a710c41557bc708aae7f54a75 + category: main + optional: false +- name: libedit + version: 3.1.20250104 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + ncurses: '>=6.6,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20250104-pl5321hc48eb74_1.conda + hash: + md5: 6e06eb2c9fda76721699bcdd759b9c60 + sha256: 2d7218da06f1121619335bff25a2669df810dee90d2eb65b17f8b2e6b1c0d372 + category: main + optional: false +- name: libev + version: '4.33' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libev-4.33-h80f16a2_3.conda + hash: + md5: f679b30a53d410d0b5ae0cb8f5b7397e + sha256: 4475f79a020e9ff2a5a0308c48cb2970a25d55c3dd724a97ab28bfac3be6cd49 + category: main + optional: false +- name: libexpat + version: 2.8.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.8.1-hfae3067_1.conda + hash: + md5: fac3b65a605cd253037fdf3daf2de8d9 + sha256: 20a5726bc8705d91437c9e6ef83b30da64a1719b869656d20a1ee818333ea5ac + category: main + optional: false +- name: libfdt + version: 1.7.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libfdt-1.7.2-h80f16a2_6.conda + hash: + md5: bd5b424d96f88b76b7c5109e429e71d7 + sha256: 4bb32c46c3f9e3a5bcfa8dde108a21b69eff38bb9b21babf32d9057cd8768dca + category: main + optional: false +- name: libffi + version: 3.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.7.0-hdaad0be_1.conda + hash: + md5: f9e5b3e446b526b34a7e25ecec08efd9 + sha256: b1879d78b622c5f4817fd6d77fe7ae3ab7b501542e3c2f4ac77198c54c62c189 + category: main + optional: false +- name: libfreetype + version: 2.14.3 + manager: conda + platform: linux-aarch64 + dependencies: + libfreetype6: '>=2.14.3' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libfreetype-2.14.3-h8af1aa0_2.conda + hash: + md5: 9d7e520ae06d08185ef2d500ff116d30 + sha256: 1e6ba895a397ee4fc1646f21000903ad13d93e9e6d9a7fb4dcef1baa837970bf + category: main + optional: false +- name: libfreetype6 + version: 2.14.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libpng: '>=1.6.58,<1.7.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libfreetype6-2.14.3-h9cc7050_2.conda + hash: + md5: f7ee9de31f98281a3e451e496fbee3b5 + sha256: d29eac57042f2362d4e45c63a4a78d64a30e5284b1da29b99e0c1526671dd4c3 + category: main + optional: false +- name: libgcc + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + _openmp_mutex: '>=4.5' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-16.2.0-h205dda4_4.conda + hash: + md5: 2c81f8ce7bda35c7a88c4c044452a97c + sha256: a132d78d49d0fa0a08e9e2a77528a12d974e8e123bc32895c0bd0a737b8abd89 + category: main + optional: false +- name: libgcc-devel_linux-aarch64 + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-aarch64-15.3.0-h6e7e4e0_104.conda + hash: + md5: 4d59c62b87531bb11393daeb4b750c43 + sha256: 7082eeeef07bba617b778348267956db5d0bf84eb5f1b5fe6ada9fee4a6fad85 + category: main + optional: false +- name: libgcc-ng + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-16.2.0-he9431aa_4.conda + hash: + md5: ad0ce2f7fb2e61219df1561115864483 + sha256: e8643044040dd8aa88aee26c19e6b78bbbe0ce8a4d04b1c77ee53c71a1efd814 + category: main + optional: false +- name: libglib + version: 2.88.3 + manager: conda + platform: linux-aarch64 + dependencies: + libffi: '>=3.7.0,<3.8.0a0' + libgcc: '>=15' + libiconv: '>=1.18,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + pcre2: '>=10.47,<10.48.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.88.3-hb514e8e_3.conda + hash: + md5: 18837ca7480048a942c7404a36883b08 + sha256: 90ffb44655cc8ab1d4566ae77be09f887760d859c24358ee926edd56cbdc2e42 + category: main + optional: false +- name: libgomp + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-16.2.0-h8acb6b2_4.conda + hash: + md5: 727c19b26cd43140e4a90a6f8f1cc31a + sha256: 6d216e6dc9a158b920f6e0c1dfdd6d77575bf79420dadf85d64576298ecb4503 + category: main + optional: false +- name: libharfbuzz + version: 14.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + cairo: '>=1.18.4,<2.0a0' + graphite2: '>=1.3.15,<2.0a0' + icu: '>=78.3,<79.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libharfbuzz-14.4.0-h8f7ccb3_1.conda + hash: + md5: 5a2dfb975c0d5a2598e92f695b737d01 + sha256: 7a27b4011455fef1bbad02f815aaac125348a3a9ac229806dba7befead38376c + category: main + optional: false +- name: libharfbuzz-devel + version: 14.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + cairo: '>=1.18.4,<2.0a0' + freetype: '' + graphite2: '>=1.3.15,<2.0a0' + icu: '>=78.3,<79.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libharfbuzz: 14.4.0 + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libharfbuzz-devel-14.4.0-h8f7ccb3_1.conda + hash: + md5: e1caaf33a6e84003c37b359dbf599c72 + sha256: 964cedaf456f8cf4b589f0e05f314ee22494cd46d64a676fd525ff3e2ef41ef5 + category: main + optional: false +- name: libiconv + version: '1.18' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.18-h1ea5142_3.conda + hash: + md5: 951b54a36388613a99820b33b997f690 + sha256: d22c666eb887afd2119aac2110e23a0e817e9391bda99293421f7c46dab1564c + category: main + optional: false +- name: libjpeg-turbo + version: 3.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libjpeg-turbo-3.2.0-he30d5cf_1.conda + hash: + md5: 8730e25aa7eab80ca86dfb9a6bedf1ba + sha256: c5626ea672be2e59784f9be20dc8ceb7961b8ab0053651ded2dffec64e4b8245 + category: main + optional: false +- name: liblzma + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/liblzma-5.8.3-he30d5cf_1.conda + hash: + md5: e0e6411a60d00186eec7c73f4118ab67 + sha256: f760669fd1cea27f689f411c0d5488e26ce50e382c9b63e4ad348f959850124a + category: main + optional: false +- name: liblzma-devel + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + liblzma: 5.8.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/liblzma-devel-5.8.3-he30d5cf_1.conda + hash: + md5: ab7c85535f5924315a7528efeb2011a0 + sha256: f4e81e49d092f95e68e25c7dcca6643c7cfa23c9984b5d39a7e749c3426103e2 + category: main + optional: false +- name: libnghttp2 + version: 1.68.1 + manager: conda + platform: linux-aarch64 + dependencies: + c-ares: '>=1.34.8,<2.0a0' + libev: '>=4.33,<4.34.0a0,>=4.33,<5.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.68.1-ha4b982d_1.conda + hash: + md5: ff4b2b7c169c438bf648fb14f369c3b9 + sha256: 0c28d734512fa2c66a232b2f3968eae7124dbd6ad42c594c752f1d08dfb86195 + category: main + optional: false +- name: libnsl + version: 2.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h86ecc28_1.conda + hash: + md5: d5d58b2dc3e57073fe22303f5fed4db7 + sha256: c0dc4d84198e3eef1f37321299e48e2754ca83fd12e6284754e3cb231357c3a5 + category: main + optional: false +- name: libnuma + version: 2.0.18 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnuma-2.0.18-he30d5cf_4.conda + hash: + md5: 2405fc1bf299396f0bd6716147ab4d57 + sha256: 53d09da65f580ec283cfa7ec0dfb3ae93000d69726b87b781da0d05ed55f7292 + category: main + optional: false +- name: libpng + version: 1.6.58 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libpng-1.6.58-hf9b7768_1.conda + hash: + md5: 308ecb7ad60637dc5e95558ab583c5ba + sha256: bd6e423b08342969689d8893c965aad78244b29724da2168aef3634fa0e1ebd7 + category: main + optional: false +- name: libpsl + version: 0.23.1 + manager: conda + platform: linux-aarch64 + dependencies: + icu: '>=78.3,<79.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libpsl-0.23.1-hb8431ed_1.conda + hash: + md5: 5ab41e5e70b78eb00ef62cdaa35cd86f + sha256: 757f79c182ac3080cf416acd91c7643b8074b8b2e5c1eba0ffc5a16897feb84b + category: main + optional: false +- name: libsanitizer + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15.3.0' + libstdcxx: '>=15.3.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsanitizer-15.3.0-he541324_4.conda + hash: + md5: 82801a6523a59e75c3ca663a80ae810e + sha256: fa1493b8ddd58f40ce4ef688a30cf93c0faf736f09821465e83d51d05475cb5c + category: main + optional: false +- name: libsqlite + version: 3.53.4 + manager: conda + platform: linux-aarch64 + dependencies: + icu: '>=78.3,<79.0a0' + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.53.4-h399dd60_1.conda + hash: + md5: 27e16aa1f45c787aa181549be6f209f4 + sha256: fae75e68e9dbc3c90dcf93d4bae6315f1330c95aaf1404a721e8468266c23475 + category: main + optional: false +- name: libssh2 + version: 1.11.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.1-h7572e3e_1.conda + hash: + md5: 833be3f226277d894df3c7a7131d9532 + sha256: f6fef76c1c8899d7976030871b8cd8016b0a306d2b8519834cd6491d6a42fb82 + category: main + optional: false +- name: libstdcxx + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-16.2.0-hef695bb_4.conda + hash: + md5: 47b6b37e291c14f39bd95f9d340c45f5 + sha256: 84d2b667bce6549325243235952110b1849ff2dfd7091a1479108930b88057d5 + category: main + optional: false +- name: libstdcxx-devel_linux-aarch64 + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-aarch64-15.3.0-h0e8df58_104.conda + hash: + md5: 248aa5cadf9dc07c7c893b3acde3da1b + sha256: 648173a13da532b6599844d49243d40ba9baec655f7ddc5016cc567c89080a87 + category: main + optional: false +- name: libstdcxx-ng + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libstdcxx: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-16.2.0-hdbbeba8_4.conda + hash: + md5: 8d6c3e6616f4e25d05684fbd50c39885 + sha256: 0f962247a60d3e0ae07b399063ac637a44fbdcb95c8602e5d2920c6612e53f01 + category: main + optional: false +- name: libtiff + version: 4.7.2 + manager: conda + platform: linux-aarch64 + dependencies: + lerc: '>=4.2.0,<5.0a0' + libdeflate: '>=1.25,<1.26.0a0' + libgcc: '>=15' + libjpeg-turbo: '>=3.2.0,<4.0a0' + liblzma: '>=5.8.3,<6.0a0' + libstdcxx: '>=15' + libwebp-base: '>=1.6.0,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libtiff-4.7.2-h45f9f85_1.conda + hash: + md5: c6f35f8f9695623b9055341bc280a642 + sha256: fa6daf2301dee912def3e74344fae792a8fc2bbbf7880dedee0e93ee8fb98fc5 + category: main + optional: false +- name: libuuid + version: 2.42.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.42.3-hd6fdeab_0.conda + hash: + md5: b759892402ee563731fbbb43860cae00 + sha256: 3530c720c8b9dbb5aba0712d77fbb158e98d7a533ba1cf4968d42a98c41b7f24 + category: main + optional: false +- name: libwebp-base + version: 1.6.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libwebp-base-1.6.0-ha2e29f5_1.conda + hash: + md5: 548943c39851543734ce0d20eeb469b0 + sha256: 4c64e6843d64876d054a28ecbab70abdf145da3c2cbdaa4a43db26cdf0fd760b + category: main + optional: false +- name: libxcb + version: 1.17.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + pthread-stubs: '' + xorg-libxau: '>=1.0.12,<2.0a0' + xorg-libxdmcp: '>=1.1.5,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcb-1.17.0-h3f04742_2.conda + hash: + md5: fa9fad28d04af5225221613038388d95 + sha256: bb1d9aaa885de73c504bd887e1841ad8e9d5b8432bd370b02eaf33067a001dc3 + category: main + optional: false +- name: libxcrypt + version: 4.4.38 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.38-h80f16a2_0.conda + hash: + md5: b1a5cb7ff2d8f5911ba1fb6897176098 + sha256: d3514900e2121972e435f7803763c1843dad6709e48aa02a2b47c4d481f83be7 + category: main + optional: false +- name: libzlib + version: 1.3.2 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.2-hdc9db2a_3.conda + hash: + md5: bd534c2fbe56d8c2ea3b2d8f5e12bca8 + sha256: 76efa6cc9d7e6f5ee3bbca0939f64054af2bdfb3c3632531f8e633cf6c2ea41e + category: main + optional: false +- name: m4 + version: 1.4.21 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/m4-1.4.21-he30d5cf_0.conda + hash: + md5: 6d65d5c457d993569eea15ebb54a8d43 + sha256: 1be6425e877ce8c9b52f451c1afde0181c539c1608068f1bf2e60869b993926c + category: main + optional: false +- name: make + version: 4.4.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/make-4.4.1-he30d5cf_3.conda + hash: + md5: 9d82bf3d9bf57d56906354e2ad58204a + sha256: b008fb8ba5c93478dacf36d60eed1b2de341d69773c3f73621d2a9e56f834d9d + category: main + optional: false +- name: markupsafe + version: 3.0.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/markupsafe-3.0.3-py310h3b5aacf_1.conda + hash: + md5: 3a8d4c69d626abcfaede3f89df2599f8 + sha256: 3809439f3f7a28893314ac09aeeb04a7663efcfbb48281f9e65a916d5c7b764a + category: main + optional: false +- name: mpc + version: 1.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + gmp: '>=6.3.0,<7.0a0' + libgcc: '>=15' + mpfr: '>=4.2.2,<5.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/mpc-1.4.0-ha78d887_1.conda + hash: + md5: ecffc6dfabb73b06f400dd8f88736f68 + sha256: 100e20d9b0aa5d4c4ea0318a0d528e6b193de3eb6e5546c7732b27058650f14a + category: main + optional: false +- name: mpfr + version: 4.2.2 + manager: conda + platform: linux-aarch64 + dependencies: + gmp: '>=6.3.0,<7.0a0' + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/mpfr-4.2.2-h4b21e80_1.conda + hash: + md5: df5830aa74e0c5c354ca2f800796493b + sha256: f5ada0dadb169f77a1b71393486f4e39986ed8fe3db3f749d20d1fe1d48a1add + category: main + optional: false +- name: ncurses + version: '6.6' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.6-h2b6f883_1.conda + hash: + md5: c3b4349171ca987ff33a1de61f7b3f96 + sha256: d69a04914139627f0a6bfd19412d6c7f1e37edc896af84a6011e07e8bc1e69fa + category: main + optional: false +- name: ninja + version: 1.13.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ninja-1.13.2-hdc560ac_1.conda + hash: + md5: dc59c099f43cdffa2b92e5f6248be5b3 + sha256: 63d956ff75ca18235cae1d2e814246b011f9c85765416517ab1270aff55027d6 + category: main + optional: false +- name: numactl + version: 2.0.18 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libnuma: 2.0.18 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/numactl-2.0.18-he30d5cf_4.conda + hash: + md5: e157591fe6e7984c9965fd6dfde268cd + sha256: 57d7addfbeeda184d1689430c61fdad351fb97156eedcecb08a690f669afd983 + category: main + optional: false +- name: oniguruma + version: 6.9.10 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.10-h80f16a2_1.conda + hash: + md5: e8c22ebf0586bc54534856b7cc054200 + sha256: 2de125162dc348c282e807c099226357f3c620e8f707d35a40d52fb5c0014495 + category: main + optional: false +- name: openjdk + version: 20.0.2 + manager: conda + platform: linux-aarch64 + dependencies: + alsa-lib: '>=1.2.10,<1.3.0.0a0' + fontconfig: '>=2.14.2,<3.0a0' + fonts-conda-ecosystem: '' + freetype: '>=2.12.1,<3.0a0' + giflib: '>=5.2.1,<5.3.0a0' + harfbuzz: '>=8.2.1' + lcms2: '>=2.15,<3.0a0' + libcups: '>=2.3.3,<2.4.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-libxext: '>=1.3.4,<2.0a0' + xorg-libxi: '' + xorg-libxrender: '>=0.9.11,<0.10.0a0' + xorg-libxt: '>=1.3.0,<2.0a0' + xorg-libxtst: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/openjdk-20.0.2-hf79f348_2.conda + hash: + md5: df286a9c0b0952def1d0af2f8a35f8b2 + sha256: 8fcae31803f18b0a60527464c29a5efab45dffbe4c8073627f3c078a5ebd7fae + category: main + optional: false +- name: openssl + version: 3.6.4 + manager: conda + platform: linux-aarch64 + dependencies: + ca-certificates: '' + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.6.4-he6ad1d5_0.conda + hash: + md5: 4aa504e081d16263e90c335df5499b4d + sha256: a70c05a9baba9b1ce17c7e8b9479029372069b3bf402dbf200bc03696c531bed + category: main + optional: false +- name: packaging + version: '26.3' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + hash: + md5: 936687ed80f295a1f5dbcf8bd34c252c + sha256: c432626b16768b8dab228bfb706f7060c2d462a21c516d240f68f2f902b5a044 + category: main + optional: false +- name: pcre2 + version: '10.47' + manager: conda + platform: linux-aarch64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.47-he574923_1.conda + hash: + md5: c98763518d0a4c9895e515190afb7dec + sha256: 16e5bee11686028d60a495004f99a10c613ada44cc27e330bee18a1b67fb184c + category: main + optional: false +- name: perl + version: 5.32.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=12' + libxcrypt: '>=4.4.36' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/perl-5.32.1-7_h31becfc_perl5.conda + hash: + md5: 17d019cb2a6c72073c344e98e40dfd61 + sha256: d78296134263b5bf476cad838ded65451e7162db756f9997c5d06b08122572ed + category: main + optional: false +- name: pip + version: 26.2.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10,<3.13.0a0' + setuptools: '' + wheel: '' + url: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.1-pyh8b19718_0.conda + hash: + md5: 77b6cf3b0689d9fc68561df0db9b856d + sha256: c205bae42eb11b364fe3663a817cbcbc20a8ef544c6b2ff6f391013487117259 + category: main + optional: false +- name: pixman + version: 0.46.4 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pixman-0.46.4-h7ac5ae9_3.conda + hash: + md5: c5f34596fc05afb9ccc2782c42bcfcc5 + sha256: ed718d35c744ceef33063b5686f27b4b8d30d4065485e24efafb248658ee83b5 + category: main + optional: false +- name: pthread-stubs + version: '0.4' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pthread-stubs-0.4-h5bc82ec_1004.conda + hash: + md5: ac6610f5c63c18f5a3df229aa5f7ba37 + sha256: c66ea2c8f64b815b24344340a8a9d62152359dbf48a6151b1f282fdf35204d83 + category: main + optional: false +- name: pygments + version: 2.21.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + hash: + md5: 2882dee445dfa45b0c5afce3ffb7730a + sha256: f5f015ff1bc3e1b7fc08eee096b1865234189ae0b82bebdb86a5369116e42fa0 + category: main + optional: false +- name: pysocks + version: 1.7.1 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + hash: + md5: 461219d1a5bd61342293efa2c0c90eac + sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8 + category: main + optional: false +- name: python + version: 3.10.14 + manager: conda + platform: linux-aarch64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + ld_impl_linux-aarch64: '>=2.36.1' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libnsl: '>=2.0.1,<2.1.0a0' + libsqlite: '>=3.45.2,<4.0a0' + libuuid: '>=2.38.1,<3.0a0' + libxcrypt: '>=4.4.36' + libzlib: '>=1.2.13,<2.0.0a0' + ncurses: '>=6.4.20240210,<7.0a0' + openssl: '>=3.2.1,<4.0a0' + readline: '>=8.2,<9.0a0' + tk: '>=8.6.13,<8.7.0a0' + tzdata: '' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.10.14-hbbe8eec_0_cpython.conda + hash: + md5: 8a8ee3a8c62032c554debc785a3b5aba + sha256: 992583064b95d256e1b1f03581a51e225a425894d865e35ea2bf3017444c3e84 + category: main + optional: false +- name: python_abi + version: '3.10' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.10-9_cp310.conda + hash: + md5: 3bb52811c66f1f07377537cc82ccb093 + sha256: 24e01bf97a2f5e608ef2d35547bba12281b5f1c8efecfcfd3447c43abc01342b + category: main + optional: false +- name: readline + version: '8.3' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + ncurses: '>=6.6,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.3-ha7194a6_1.conda + hash: + md5: 5b399a7afa10098f2a6b02263181426e + sha256: 80167dcf73a96b6d0c1bb2298d7b8b9bc21b27cc5bf56979f9c548b49a4d1722 + category: main + optional: false +- name: requests + version: 2.34.2 + manager: conda + platform: linux-aarch64 + dependencies: + certifi: '>=2023.5.7' + charset-normalizer: '>=2,<4' + idna: '>=2.5,<4' + python: '>=3.10' + urllib3: '>=1.26,<3' + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda + hash: + md5: 4a85203c1d80c1059086ae860836ffb9 + sha256: 1715246b19c9f85ee022933b4845f2fc14ac9184981b7b7d9b728bec8e9588da + category: main + optional: false +- name: riscv-tools + version: 1.0.9 + manager: conda + platform: linux-aarch64 + dependencies: + expat: '' + gmp: '>=6.3.0,<7.0a0' + libexpat: '>=2.8.1,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + mpc: '>=1.4.0,<2.0a0' + mpfr: '>=4.2.2,<5.0a0' + ncurses: '>=6.6,<7.0a0' + python: 3.10.14.* + zlib: '' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/ucb-bar/linux-aarch64/riscv-tools-1.0.9-0_h1234567_g70db951.conda + hash: + md5: 646b97827624165a52e9ce317423c581 + sha256: 00e058b55d54d20d1cec108c18d12a6732db0898c566dc73e89b2b1441817815 + category: main + optional: false +- name: sbt + version: 2.0.8 + manager: conda + platform: linux-aarch64 + dependencies: + openjdk: '>=8' + url: https://conda.anaconda.org/conda-forge/noarch/sbt-2.0.8-hc364b38_0.conda + hash: + md5: 2167a7eb74718a56535f4a5bd2dfcab0 + sha256: 32713305960f1e41b055452d0abdd5b4413472cb23d65429d19d298794f078e0 + category: main + optional: false +- name: setuptools + version: 84.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.0.0-pyh332efcf_0.conda + hash: + md5: 62ac906f1cd582c6c264c95625cb9d6f + sha256: 9e200ee5f9ff19a4d94e4b51c4856d53dec849f91032f345cf0c6bc3d51a7183 + category: main + optional: false +- name: snowballstemmer + version: 3.1.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.1.1-pyhd8ed1ab_0.conda + hash: + md5: 46b6abe31482f6bca064b965696ae807 + sha256: ad89284ea94821c20ff87e64b948e4afc690cf5202d14c009355b0594cf23aea + category: main + optional: false +- name: sphinx + version: 8.1.3 + manager: conda + platform: linux-aarch64 + dependencies: + alabaster: '>=0.7.14' + babel: '>=2.13' + colorama: '>=0.4.6' + docutils: '>=0.20,<0.22' + imagesize: '>=1.3' + jinja2: '>=3.1' + packaging: '>=23.0' + pygments: '>=2.17' + python: '>=3.10' + requests: '>=2.30.0' + snowballstemmer: '>=2.2' + sphinxcontrib-applehelp: '>=1.0.7' + sphinxcontrib-devhelp: '>=1.0.6' + sphinxcontrib-htmlhelp: '>=2.0.6' + sphinxcontrib-jsmath: '>=1.0.1' + sphinxcontrib-qthelp: '>=1.0.6' + sphinxcontrib-serializinghtml: '>=1.1.9' + tomli: '>=2.0' + url: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.1.3-pyhd8ed1ab_1.conda + hash: + md5: 1a3281a0dc355c02b5506d87db2d78ac + sha256: 3228eb332ce159f031d4b7d2e08117df973b0ba3ddcb8f5dbb7f429f71d27ea1 + category: main + optional: false +- name: sphinx-autobuild + version: 2024.10.3 + manager: conda + platform: linux-aarch64 + dependencies: + colorama: '>=0.4.6' + python: '>=3.9' + sphinx: '' + starlette: '>=0.35' + uvicorn: '>=0.25' + watchfiles: '>=0.20' + websockets: '>=11' + url: https://conda.anaconda.org/conda-forge/noarch/sphinx-autobuild-2024.10.3-pyhd8ed1ab_1.conda + hash: + md5: cd457248c6185c0e3ba2137500fcbc0c + sha256: 8efa48241f074da54552409d25359a1abfdc08e94e12ecbe6f90d9d3eba9ac21 + category: main + optional: false +- name: sphinx_rtd_theme + version: 3.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + docutils: '>0.18,<0.23' + python: '>=3.10' + sphinx: '>=6,<10' + sphinxcontrib-jquery: '>=4,<5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda + hash: + md5: 787507b1d0f5c00c186b2f66adacc3ab + sha256: 3581a8335a0da4de41f4344c4f1113a11fcbbb7933577ace813602e263842b02 + category: main + optional: false +- name: sphinxcontrib-applehelp + version: 2.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda + hash: + md5: 16e3f039c0aa6446513e94ab18a8784b + sha256: d7433a344a9ad32a680b881c81b0034bc61618d12c39dd6e3309abeffa9577ba + category: main + optional: false +- name: sphinxcontrib-devhelp + version: 2.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-2.0.0-pyhd8ed1ab_1.conda + hash: + md5: 910f28a05c178feba832f842155cbfff + sha256: 55d5076005d20b84b20bee7844e686b7e60eb9f683af04492e598a622b12d53d + category: main + optional: false +- name: sphinxcontrib-htmlhelp + version: 2.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_1.conda + hash: + md5: e9fb3fe8a5b758b4aff187d434f94f03 + sha256: c1492c0262ccf16694bdcd3bb62aa4627878ea8782d5cd3876614ffeb62b3996 + category: main + optional: false +- name: sphinxcontrib-jquery + version: '4.1' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=1.8' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jquery-4.1-pyhd8ed1ab_1.conda + hash: + md5: 403185829255321ea427333f7773dd1f + sha256: 69c08d18663b57ebc8e4187c64c8d29b10996bb465a515cd288d87b6f2f52a5e + category: main + optional: false +- name: sphinxcontrib-jsmath + version: 1.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda + hash: + md5: fa839b5ff59e192f411ccc7dae6588bb + sha256: 578bef5ec630e5b2b8810d898bbbf79b9ae66d49b7938bcc3efc364e679f2a62 + category: main + optional: false +- name: sphinxcontrib-qthelp + version: 2.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda + hash: + md5: 00534ebcc0375929b45c3039b5ba7636 + sha256: c664fefae4acdb5fae973bdde25836faf451f41d04342b64a358f9a7753c92ca + category: main + optional: false +- name: sphinxcontrib-serializinghtml + version: 2.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-2.0.0-pyhd8ed1ab_0.conda + hash: + md5: f77df1fcf9af03b7287342638befca77 + sha256: 20b49741065fd7d3fabf98caf6d19b6436badb06b6d41f66b58f1fc2b52f37a1 + category: main + optional: false +- name: starlette + version: 1.6.0 + manager: conda + platform: linux-aarch64 + dependencies: + anyio: '>=3.6.2,<5' + python: '>=3.10' + typing_extensions: '>=4.10.0' + url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda + hash: + md5: 7b7d3f2bcca2be53635bd4f1166b04a7 + sha256: 6074c6d74e86b156a61ff37f2c3f7a29bd188f05d5f490d88db96131eb945e95 + category: main + optional: false +- name: sysroot_linux-64 + version: '2.39' + manager: conda + platform: linux-aarch64 + dependencies: + kernel-headers_linux-64: 6.12.0 + tzdata: '' + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.39-he3f20f0_6.conda + hash: + md5: f466e0c4e02d2faf778aaa2f24085934 + sha256: bcbe694a9660abbe76ba25fa1fca3127b8752fc29b733de72a904c21d144ace1 + category: main + optional: false +- name: sysroot_linux-aarch64 + version: '2.28' + manager: conda + platform: linux-aarch64 + dependencies: + __glibc: '>=2.28' + kernel-headers_linux-aarch64: 4.18.0 + tzdata: '' + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-aarch64-2.28-h585391f_9.conda + hash: + md5: fdf07ab944a222ff28c754914fdb0740 + sha256: 1bd2db6b2e451247bab103e4a0128cf6c7595dd72cb26d70f7fadd9edd1d1bc3 + category: main + optional: false +- name: tk + version: 8.6.13 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-noxft_hf03c496_4.conda + hash: + md5: ebaded4b4b74c2cc43a754ded4eed76f + sha256: a1aa0d0f0b3d539644ff992e6dd0facf950c79df58fc37590ce5be84ff5e3f22 + category: main + optional: false +- name: tomli + version: 2.4.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda + hash: + md5: b5325cf06a000c5b14970462ff5e4d58 + sha256: 91cafdb64268e43e0e10d30bd1bef5af392e69f00edd34dfaf909f69ab2da6bd + category: main + optional: false +- name: typing_extensions + version: 4.16.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + hash: + md5: c70ad746c22219b9700931707482992c + sha256: 2d888f90af0686044882c74193ec80a90ec1943145d94a7b1b048958acda1848 + category: main + optional: false +- name: tzdata + version: 2026c + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda + hash: + md5: fcb489df604d100968b737f2cb6076c6 + sha256: b928c30ddcb0e3f544c6eade8352737e6e610e263276b90232db6a578ef899d8 + category: main + optional: false +- name: urllib3 + version: 2.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + backports.zstd: '>=1.0.0' + brotli-python: '>=1.2.0' + h2: '>=4,<5' + pysocks: '>=1.5.6,<2.0,!=1.5.7' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.7.0-pyhd8ed1ab_0.conda + hash: + md5: cbb88288f74dbe6ada1c6c7d0a97223e + sha256: feff959a816f7988a0893201aa9727bbb7ee1e9cec2c4f0428269b489eb93fb4 + category: main + optional: false +- name: uvicorn + version: 0.52.4 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + click: '>=7.0' + h11: '>=0.8' + python: '>=3.10' + typing_extensions: '>=4.0' + url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda + hash: + md5: 2bf4d228f4df09d3e2ebee46f3a9129e + sha256: b74765ebebe0da43b9e0ec1d9bedc881125304ffbebd86018dcb6d7a4e2d2ee4 + category: main + optional: false +- name: verilator + version: '5.022' + manager: conda + platform: linux-aarch64 + dependencies: + flex: '>=2.6.4,<3.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + make: '' + perl: '' + python: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/verilator-5.022-h6921256_1.conda + hash: + md5: f35f7ea0e1c22e3cf66559e91bed15a5 + sha256: a3c8602e50e48a7fd55f7f84fdf9cb359439663f1cf1c3e13c6257d9334ee782 + category: main + optional: false +- name: watchfiles + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + anyio: '>=3.0.0' + libgcc: '>=14' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/watchfiles-1.2.0-py310h1ee47ac_1.conda + hash: + md5: eb5751c551ea7bca1af1eb225848714e + sha256: 7a9094602e1f413bf861a0804066b743a76c5b4be5ffa05e2d8c3718f49d4946 + category: main + optional: false +- name: websockets + version: 16.1.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/websockets-16.1.1-py310hec1369a_0.conda + hash: + md5: 9828d3d484885fc715dcf310f5ece17f + sha256: f44a4795e5f26041321a050a4b1c8df82e9d9acd41587de9339d8fdbc5b63668 + category: main + optional: false +- name: wheel + version: 0.48.0 + manager: conda + platform: linux-aarch64 + dependencies: + packaging: '>=24.0' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.48.0-pyhd8ed1ab_0.conda + hash: + md5: 9a2124517bfd5d792e0f7b86eefdfeb8 + sha256: ba64b29b6d418024cb565081a1799262cb2780d2534ff4c14f76aa858c4286cd + category: main + optional: false +- name: xorg-libice + version: 1.1.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libice-1.1.2-h80f16a2_0.conda + hash: + md5: 0566e37830f85911b141524635939941 + sha256: e56bb636aefe3503a53520a0b7f3737f3a26fe0accf0befffc24d1c0ddd27008 + category: main + optional: false +- name: xorg-libsm + version: 1.2.6 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libuuid: '>=2.42.2,<3.0a0' + xorg-libice: '>=1.1.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libsm-1.2.6-hf23e593_1.conda + hash: + md5: f5f4a1233da463827499fb4e5e1f0172 + sha256: 4978f89a764b54dc8be7a115b2d57f570f793243f3227653232742ce0946101b + category: main + optional: false +- name: xorg-libx11 + version: 1.8.13 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libxcb: '>=1.17.0,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libx11-1.8.13-h63a1b12_1.conda + hash: + md5: 8e873e9efc395329b914ee44e305b624 + sha256: 9ff59d55cbf85561833be3604a8c0a5497b0f13cdf122e8bb490e9cf3138d116 + category: main + optional: false +- name: xorg-libxau + version: 1.0.12 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxau-1.0.12-he30d5cf_2.conda + hash: + md5: b03af9d9dfe7aec9e27db74fc41a4ba9 + sha256: 0822f3a8eb2a54bb41e1133f010e09d4a3242f8f12a372dfff7ad7248c5dbd29 + category: main + optional: false +- name: xorg-libxdmcp + version: 1.1.5 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxdmcp-1.1.5-he30d5cf_2.conda + hash: + md5: 044c398bf4b3b9c01741d8afe4ce1c3e + sha256: 681465a02be4ac256c05cd5b32ce9812da1563b75be1bfc8884d991454194df3 + category: main + optional: false +- name: xorg-libxext + version: 1.3.7 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxext-1.3.7-h5bc82ec_1.conda + hash: + md5: 32734d534d08a853f22bdef1d43223b7 + sha256: e2cc4ba2b5291710f9ae3e88d917d778ce7911262450e673ba8a597a5d43490a + category: main + optional: false +- name: xorg-libxfixes + version: 6.0.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxfixes-6.0.2-h5bc82ec_1.conda + hash: + md5: 3364fc126aef75debcc1d291e0e463c8 + sha256: fc432dbef14598e2fd283760c2a14536472c2441986264308b4cc1877a263e00 + category: main + optional: false +- name: xorg-libxi + version: 1.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxfixes: '>=6.0.2,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxi-1.8.3-h5bc82ec_1.conda + hash: + md5: 3008fa4872fd265945da6a35f684addb + sha256: 3759f62da8f9e093dc94e8fb87a30b99b4a2414e0c197810126e5c2c25a6d63a + category: main + optional: false +- name: xorg-libxrender + version: 0.9.12 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxrender-0.9.12-he30d5cf_1.conda + hash: + md5: 1bcdaa1fc263291e6f42ff061666f3ae + sha256: 3cbac6f69e4a8634ba6b60cf283cba92606c8c74caa1369b799325f96b2f0cbf + category: main + optional: false +- name: xorg-libxt + version: 1.3.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libice: '>=1.1.2,<2.0a0' + xorg-libsm: '>=1.2.6,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxt-1.3.1-h5bc82ec_1.conda + hash: + md5: 06a15405538666fbdc272718ff4e0fe4 + sha256: 90cde7ffd12c2f02ec4a6b893dfa0c1fcb8f7b23b468ff575d3222df2cd187c6 + category: main + optional: false +- name: xorg-libxtst + version: 1.2.5 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxi: '>=1.8.3,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxtst-1.2.5-h5bc82ec_4.conda + hash: + md5: ba6d0e75e2fc9d9b81a9f59694970d60 + sha256: 075b22e79db93db685281cda76b6250c71ac6b454ca64eafd20710cde25ef949 + category: main + optional: false +- name: xz + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + liblzma: 5.8.3 + liblzma-devel: 5.8.3 + xz-gpl-tools: 5.8.3 + xz-tools: 5.8.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.8.3-hd704e39_1.conda + hash: + md5: 96a51f4137a543fd14fe96e1e560a5ac + sha256: 4e9b4a2eabf215c052d57a54c279a1d79343ae3b961d3f81f834e0bf76e5c7d4 + category: main + optional: false +- name: xz-gpl-tools + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + liblzma: 5.8.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-gpl-tools-5.8.3-hd704e39_1.conda + hash: + md5: 6543af33661ff21061b6db52c84a86fa + sha256: 3f0b45a1039c86265f41f3bb5f248cd4d901acff49164f86122fab7cc4efc049 + category: main + optional: false +- name: xz-tools + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + liblzma: 5.8.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-tools-5.8.3-he30d5cf_1.conda + hash: + md5: 7c211f37ed725871ce3043090d5addd8 + sha256: 1619ea83757336aaaac4cde221e4cd0982551c82def3276c91d0d53b0b7159db + category: main + optional: false +- name: yaml + version: 0.2.5 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-0.2.5-h29ee22c_3.conda + hash: + md5: 6c97c1f44a81be1b4d5ba15a06153256 + sha256: 97e0fbe447c8f8bb1789047f37448062ebecda29bd264fcdf6129b8d08f174c9 + category: main + optional: false +- name: zlib + version: 1.3.2 + manager: conda + platform: linux-aarch64 + dependencies: + libzlib: 1.3.2 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.2-hdc9db2a_3.conda + hash: + md5: 254c54ac18eca7bf4f865e661306dc43 + sha256: 3f3c296477cf26474660942f4d8ec104a8eee2cb1abc7c5bfec9ac1102c66451 + category: main + optional: false +- name: zstd + version: 1.5.7 + manager: conda + platform: linux-aarch64 + dependencies: + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.7-h9d15635_7.conda + hash: + md5: d942e34ac3920ba83f8b2d0169570187 + sha256: 427fd14bcb3b8659796fecc682716617409350fb5a98e5b7b47558a10d1a2fc7 + category: main + optional: false diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml new file mode 100644 index 0000000000..9ef6145f77 --- /dev/null +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml @@ -0,0 +1,6467 @@ +# This lock file was generated by conda-lock (https://github.com/conda/conda-lock). DO NOT EDIT! +# +# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike +# e.g. `conda env create`, the resulting environment will not change as new package versions become +# available, unless you explicitly update the lock file. +# +# Install this environment as "YOURENV" with: +# conda-lock install -n YOURENV conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml +# To update a single package to the latest version compatible with the version constraints in the source: +# conda-lock lock --lockfile conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml --update PACKAGE +# To re-solve the entire environment, e.g. after changing a version constraint in the source file: +# conda-lock -f ../chipyard-base.yaml -f ../chipyard-extended.yaml -f ../docs.yaml -f ../riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml +version: 1 +metadata: + content_hash: + linux-aarch64: dff6f72c2e7dfa8c2079ddefbe329ea704d84b05a894e55b1c947c2916c6c8b6 + channels: + - url: ucb-bar + used_env_vars: [] + - url: conda-forge + used_env_vars: [] + - url: litex-hub + used_env_vars: [] + - url: jimfangx + used_env_vars: [] + platforms: + - linux-aarch64 + sources: + - ../chipyard-base.yaml + - ../chipyard-extended.yaml + - ../docs.yaml + - ../riscv-tools.yaml +package: +- name: _openmp_mutex + version: '4.5' + manager: conda + platform: linux-aarch64 + dependencies: + libgomp: '>=7.5.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-20_gnu.conda + hash: + md5: 468fd3bb9e1f671d36c2cbc677e56f1d + sha256: a2527b1d81792a0ccd2c05850960df119c2b6d8f5fdec97f2db7d25dc23b1068 + category: main + optional: false +- name: _python_abi3_support + version: '1.0' + manager: conda + platform: linux-aarch64 + dependencies: + cpython: '' + python-gil: '' + url: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + hash: + md5: 3845f3d75991bae0fb90884662f4327c + sha256: 2a7204314663eeda5dec482a956f0e2eaf289bd5b9953eaaaad0e81aa64638f2 + category: main + optional: false +- name: adwaita-icon-theme + version: '49.0' + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + hicolor-icon-theme: '' + librsvg: '' + url: https://conda.anaconda.org/conda-forge/noarch/adwaita-icon-theme-49.0-unix_0.conda + hash: + md5: b3f0179590f3c0637b7eb5309898f79e + sha256: a362b4f5c96a0bf4def96be1a77317e2730af38915eb9bec85e2a92836501ed7 + category: main + optional: false +- name: aiohappyeyeballs + version: 2.7.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.7.1-pyhd8ed1ab_0.conda + hash: + md5: e51e09bf3b91c62b7461a9f94e92c2c9 + sha256: 5ef589e5fd3736439781a9d48e68ce1e723b7081a471c02169908198eba4f448 + category: main + optional: false +- name: aiohttp + version: 3.14.3 + manager: conda + platform: linux-aarch64 + dependencies: + aiohappyeyeballs: '>=2.5.0' + aiosignal: '>=1.4.0' + async-timeout: '>=4.0,<6.0' + attrs: '>=17.3.0' + frozenlist: '>=1.1.1' + libgcc: '>=14' + multidict: '>=4.5,<7.0' + propcache: '>=0.2.0' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + typing_extensions: '>=4.4' + yarl: '>=1.17.0,<2.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aiohttp-3.14.3-py310h37690e7_0.conda + hash: + md5: 5af6d044cc219f8475a816d49f0253f9 + sha256: b1272df619115cc78a059d13fd2dac634d6470fe3c01ae6806c2b41b1358d148 + category: main + optional: false +- name: aiosignal + version: 1.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + frozenlist: '>=1.1.0' + python: '>=3.9' + typing_extensions: '>=4.2' + url: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.4.0-pyhd8ed1ab_0.conda + hash: + md5: 421a865222cd0c9d83ff08bc78bf3a61 + sha256: 8dc149a6828d19bf104ea96382a9d04dae185d4a03cc6beb1bc7b84c428e3ca2 + category: main + optional: false +- name: alabaster + version: 0.7.16 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda + hash: + md5: def531a3ac77b7fb8c21d17bb5d0badb + sha256: fd39ad2fabec1569bbb0dfdae34ab6ce7de6ec09dcec8638f83dad0373594069 + category: main + optional: false +- name: alsa-lib + version: 1.2.16.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/alsa-lib-1.2.16.1-h5bc82ec_1.conda + hash: + md5: 5eedc6a72f0485cb557ecef2c83a6b72 + sha256: ac5d76b14009cd6591f39dd4e07ea641a91bb3759889fed34f7750e7a7e9a929 + category: main + optional: false +- name: amqp + version: 5.3.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + vine: '>=5.0.0,<6.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/amqp-5.3.1-pyhd8ed1ab_0.conda + hash: + md5: 7b12e35821f20400ac419b830efb03d9 + sha256: f0e7009b24894845cb48b1e6902f8c64e61b4a27ff5df4c0438ce83472c288de + category: main + optional: false +- name: anyio + version: 4.14.2 + manager: conda + platform: linux-aarch64 + dependencies: + exceptiongroup: '>=1.0.2' + idna: '>=2.8' + python: '>=3.10' + typing_extensions: '>=4.5' + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda + hash: + md5: fb568fbae6908ba86a090a85a089d11f + sha256: e36998c5e860e26b22e5dbcd5726dd0c4eabad949c84d383cad8512757bbf6a1 + category: main + optional: false +- name: archspec + version: 0.2.5 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.5-pyhd8ed1ab_0.conda + hash: + md5: 845b38297fca2f2d18a29748e2ece7fa + sha256: eb68e1ce9e9a148168a4b1e257a8feebffdb0664b557bb526a1e4853f2d2fc00 + category: main + optional: false +- name: argcomplete + version: 3.7.2 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.7.2-pyhcf101f3_0.conda + hash: + md5: 5185c9f9742daeffae5daae93c802bf7 + sha256: 7a0e771e709b1620a914ba8a9590433c4a9fd84779d137216ac29ca50e959a1f + category: main + optional: false +- name: ast-serialize + version: 0.8.0 + manager: conda + platform: linux-aarch64 + dependencies: + _python_abi3_support: 1.* + cpython: '>=3.10' + libgcc: '>=15' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ast-serialize-0.8.0-py310he485581_1.conda + hash: + md5: 81bd5eb7f50dc080be259ba4b8fb31c7 + sha256: 2c81588ff97c5b275bd06031a610169d7c89425dd56a9f9db0a84a91579d50f8 + category: main + optional: false +- name: async-timeout + version: 5.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/async-timeout-5.0.1-pyhcf101f3_2.conda + hash: + md5: 0d0ef7e4a0996b2c4ac2175a12b3bf69 + sha256: 6638b68ab2675d0bed1f73562a4e75a61863b903be1538282cddb56c8e8f75bd + category: main + optional: false +- name: at-spi2-atk + version: 2.38.0 + manager: conda + platform: linux-aarch64 + dependencies: + at-spi2-core: '>=2.40.0,<2.41.0a0' + atk-1.0: '>=2.36.0' + dbus: '>=1.13.6,<2.0a0' + libgcc-ng: '>=9.3.0' + libglib: '>=2.68.1,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/at-spi2-atk-2.38.0-h1f2db35_3.tar.bz2 + hash: + md5: 4ea9d4634f3b054549be5e414291801e + sha256: c2c2c998d49c061e390537f929e77ce6b023ef22b51a0f55692d6df7327f3358 + category: main + optional: false +- name: at-spi2-core + version: 2.40.3 + manager: conda + platform: linux-aarch64 + dependencies: + dbus: '>=1.13.6,<2.0a0' + libgcc-ng: '>=9.3.0' + libglib: '>=2.68.3,<3.0a0' + xorg-libx11: '' + xorg-libxi: '' + xorg-libxtst: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/at-spi2-core-2.40.3-h1f2db35_0.tar.bz2 + hash: + md5: a12602a94ee402b57063ef74e82016c0 + sha256: cd48de9674a20133e70a643476accc1a63360c921ab49477638364877937a40d + category: main + optional: false +- name: atk-1.0 + version: 2.38.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=12' + libglib: '>=2.80.0,<3.0a0' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/atk-1.0-2.38.0-hedc4a1f_2.conda + hash: + md5: 9308557e2328f944bd5809c5630761af + sha256: 69f70048a1a915be7b8ad5d2cbb7bf020baa989b5506e45a676ef4ef5106c4f0 + category: main + optional: false +- name: attrs + version: 26.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/attrs-26.1.0-pyhcf101f3_0.conda + hash: + md5: c6b0543676ecb1fb2d7643941fe375f2 + sha256: 1b6124230bb4e571b1b9401537ecff575b7b109cc3a21ee019f65e083b8399ab + category: main + optional: false +- name: autoconf + version: '2.72' + manager: conda + platform: linux-aarch64 + dependencies: + m4: '' + perl: 5.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/autoconf-2.72-pl5321hbecfd40_1.conda + hash: + md5: d85e1de6cee54ac97273f2e5f2ca031c + sha256: 95597fc81d411a526f763344eff39e184dee8c12829a5ee3f2883ec6ffa3a621 + category: main + optional: false +- name: aws-c-auth + version: 0.10.4 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-c-sdkutils: '>=0.2.7,<0.2.8.0a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-auth-0.10.4-h31aafc4_2.conda + hash: + md5: 026b88ebd1c322724ad2e7624df616c5 + sha256: 212285411937be51aaa03d3c1d28f51475d56b500d92b51318be46efc041c92a + category: main + optional: false +- name: aws-c-cal + version: 0.9.15 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-cal-0.9.15-he0a0ff2_1.conda + hash: + md5: a5232f99e4d2aa06e7d4ac96415a2e79 + sha256: b824e648f4497755531141dc3b5cf0932567f4927918ea23e84e8a7722047567 + category: main + optional: false +- name: aws-c-common + version: 0.14.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-common-0.14.3-he30d5cf_0.conda + hash: + md5: d58692f1ab81d9190695afd8f7dfffde + sha256: 0ea7a42ed8c9b4c8cad15de681c1d246e49a6bd75b611a0449b3268363154f05 + category: main + optional: false +- name: aws-c-compression + version: 0.3.2 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-compression-0.3.2-hbc11874_5.conda + hash: + md5: cc1d538269bbd5e5379e417a07e673af + sha256: 516929a3c16581ccf7822755772c6f676e8f24b0936746f6f2f91ed46302a0f9 + category: main + optional: false +- name: aws-c-event-stream + version: 0.7.1 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-checksums: '>=0.2.10,<0.2.11.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-event-stream-0.7.1-h1774bc7_5.conda + hash: + md5: de5418adce7bbf22df3f2d22e41ce06e + sha256: 9d175b538721b3eb23a2f1545a41e344998dec9ffe9663ccab32985009d841ec + category: main + optional: false +- name: aws-c-http + version: 0.11.0 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-compression: '>=0.3.2,<0.3.3.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-http-0.11.0-h299f1a2_5.conda + hash: + md5: b662a55678d5cb908b64f2dc47518613 + sha256: ea2b0575c8ac6d3701f31525c6b4265d2b7107e703ffeed1a3568dc45532171e + category: main + optional: false +- name: aws-c-io + version: 0.27.5 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' + s2n: '>=1.7.6,<1.7.7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-io-0.27.5-hd6bac6b_1.conda + hash: + md5: d52accd5bce872c54f3604ca4cdc2ef7 + sha256: 7b8e3f018d42db7bd6f94ad2e6fa3baa44a9ccc517c765923e537f56d2f98ef8 + category: main + optional: false +- name: aws-c-mqtt + version: 0.16.0 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-mqtt-0.16.0-h1db445d_3.conda + hash: + md5: 70f30ea9f33642874a011d3b2c1595b5 + sha256: 06bf334ddcc7ea926a8bbeedc9fa4c3bc9106d6389460149002a4de77b170a01 + category: main + optional: false +- name: aws-c-s3 + version: 0.13.1 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-auth: '>=0.10.4,<0.10.5.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-checksums: '>=0.2.10,<0.2.11.0a0' + libgcc: '>=14' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-s3-0.13.1-he888730_1.conda + hash: + md5: 3c6a1426bf37d6576d659b696d23e104 + sha256: 7fa7872d401bbb8c5804e39ff510b7b554c2c3c86d597fecfba713c14f29400e + category: main + optional: false +- name: aws-c-sdkutils + version: 0.2.7 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-sdkutils-0.2.7-hbc11874_3.conda + hash: + md5: 155b22146110ad50c07b5988c9411035 + sha256: 13f3432f5f9fdaf84db33ac06976610f7495db54f134ce396218d6b1a1f082c1 + category: main + optional: false +- name: aws-checksums + version: 0.2.10 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-checksums-0.2.10-hbc11874_5.conda + hash: + md5: 5d70c0f98a713a576a286b38c0e550d1 + sha256: dee0e78a46a070b687055c25c477af842c4eb86eb9ce2d82bb09bcee264e4b08 + category: main + optional: false +- name: aws-xray-sdk + version: 2.15.0 + manager: conda + platform: linux-aarch64 + dependencies: + botocore: '>=1.11.3' + python: '>=3.10' + wrapt: '' + url: https://conda.anaconda.org/conda-forge/noarch/aws-xray-sdk-2.15.0-pyhd8ed1ab_0.conda + hash: + md5: 1f48c875aca86dcc773970ab40487a49 + sha256: d1923e6cd042b0550f8660bbc537aca5743a53d3040d19cff5587800b548da2e + category: main + optional: false +- name: awscli + version: 2.36.35 + manager: conda + platform: linux-aarch64 + dependencies: + awscrt: 0.36.2 + colorama: '>=0.2.5,<0.4.7' + distro: '>=1.5.0,<1.9.0' + docutils: '>=0.10,<0.20' + jmespath: '>=0.7.1,<1.1.0' + prompt-toolkit: '>=3.0.24,<3.0.52' + python: 3.10.* + python-dateutil: '>=2.1,<=2.9.0' + python_abi: 3.10.* + ruamel.yaml: '>=0.15.0,<=0.19.1' + ruamel.yaml.clib: '>=0.2.0,<=0.2.15' + urllib3: '>=1.25.4,<=2.6.3' + wcwidth: <0.3.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/awscli-2.36.35-py310h2f441de_0.conda + hash: + md5: 578d9bf756bf730672d9099c1bfab8c5 + sha256: 703c12838689ba69e578cd485d059b9fe7ff5f08687aa176b8e0cefd957ea833 + category: main + optional: false +- name: awscrt + version: 0.36.2 + manager: conda + platform: linux-aarch64 + dependencies: + aws-c-auth: '>=0.10.4,<0.10.5.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-event-stream: '>=0.7.1,<0.7.2.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-c-mqtt: '>=0.16.0,<0.16.1.0a0' + aws-c-s3: '>=0.13.1,<0.13.2.0a0' + aws-checksums: '>=0.2.10,<0.2.11.0a0' + libgcc: '>=14' + python: 3.10.* + python_abi: 3.10.* + s2n: '>=1.7.6,<1.7.7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/awscrt-0.36.2-py310hbe33c7e_0.conda + hash: + md5: 6bf1ee3a9fd0011e1e5e64343e67effe + sha256: 741fd87f5f77ca540834241f8807920db21c7bf3c44fdc59333fc7510f8257bc + category: main + optional: false +- name: azure-core + version: 1.41.0 + manager: conda + platform: linux-aarch64 + dependencies: + flask: 2.2.5 + python: '>=3.10' + requests: '>=2.21.0' + six: '>=1.11.0' + typing_extensions: '>=4.6.0' + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.41.0-pyhd8ed1ab_0.conda + hash: + md5: 3d743fce13d22b101bfd733e29469628 + sha256: fc46c9078396a558e42871e111c1bf88d3bb16afd4cf8f9887125f83b647cea9 + category: main + optional: false +- name: azure-identity + version: 1.25.3 + manager: conda + platform: linux-aarch64 + dependencies: + azure-core: '>=1.31.0' + cryptography: '>=2.5' + msal: '>=1.35.1' + msal_extensions: '>=1.2.0' + python: '>=3.10' + typing_extensions: '>=4.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/azure-identity-1.25.3-pyhd8ed1ab_0.conda + hash: + md5: 92caf4a54b41bf2c27a4da4836570918 + sha256: 219f83c73a05ebffb9abe5691eab18abd02aa6838ba49cfb15943ecdd5cd223d + category: main + optional: false +- name: babel + version: 2.18.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda + hash: + md5: f1976ce927373500cc19d3c0b2c85177 + sha256: a14a9ad02101aab25570543a59c5193043b73dc311a25650134ed9e6cb691770 + category: main + optional: false +- name: backports.zstd + version: 1.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + python: '' + python_abi: 3.10.* + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/backports.zstd-1.7.0-py310h5585d39_0.conda + hash: + md5: 3eb003c4058f7eb271e27d695929176f + sha256: f8567287859e9772e8315cdec8bf57a4f41f9a2ead50c183bfe7e7dc9e9ea195 + category: main + optional: false +- name: bash + version: 5.2.37 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + readline: '>=8.2,<9.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/bash-5.2.37-ha0fa457_0.conda + hash: + md5: c68615ecf964c0a5c8b3874cddf009d8 + sha256: 0df286832f456d39916371735b1edaa4db8bb847e642b62fabdcc158a18dddf1 + category: main + optional: false +- name: bash-completion + version: '2.11' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-aarch64/bash-completion-2.11-h8af1aa0_1.tar.bz2 + hash: + md5: 1b2b9c5f25f7732beadd49a85046632a + sha256: 8d828a32b8fa736b5be6a4df13f59c0e36ddb84ee842ae7d74fafea20c2df92f + category: main + optional: false +- name: bc + version: 1.07.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=9.4.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/bc-1.07.1-hf897c2e_0.tar.bz2 + hash: + md5: 954ae298af138a0339f6599cb1d25725 + sha256: 947f7a57a5f1910db66cd070651d02a457c13cfc42c109ecf9c383cff4d55d18 + category: main + optional: false +- name: billiard + version: 4.2.4 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/billiard-4.2.4-py310h5b55623_0.conda + hash: + md5: 4e32f40cf41e5a4921f0ba66fd7a8004 + sha256: a0190efaa2cc1086421729f1411c6991e5dbb701e9ff1a08873c4d422e0950ee + category: main + optional: false +- name: binutils + version: 2.46.1 + manager: conda + platform: linux-aarch64 + dependencies: + binutils_impl_linux-aarch64: '>=2.46.1,<2.46.2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils-2.46.1-default_hf1166c9_102.conda + hash: + md5: 7a2f1cdac4c9fd2e87533ff2d2dcb702 + sha256: 548d128bc257badd2d9dbdff8173eb693fcbec84ceeb0fa74cbfed141ed42ad9 + category: main + optional: false +- name: binutils_impl_linux-aarch64 + version: 2.46.1 + manager: conda + platform: linux-aarch64 + dependencies: + ld_impl_linux-aarch64: 2.46.1 + sysroot_linux-aarch64: '' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_impl_linux-aarch64-2.46.1-default_h5f4c503_102.conda + hash: + md5: 58f37d76b8234c69dbf2939d511bea0b + sha256: eebe159bf600943552e4319ff4ce27b6a2dadf0dcc5443e76dcee9259a408e11 + category: main + optional: false +- name: bison + version: 3.8.2 + manager: conda + platform: linux-aarch64 + dependencies: + flex: '' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/bison-3.8.2-h2f0025b_0.conda + hash: + md5: a3555ee8c70fa968aaa4e4c504e47f1c + sha256: 50a3abd62c24d43379c6b27e4981e9de4853346d1bb8d633e31fb67a8b5e2527 + category: main + optional: false +- name: boltons + version: 26.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/boltons-26.1.0-pyhd8ed1ab_0.conda + hash: + md5: 92c88d22e52af7b672605b12a31bf0bb + sha256: ca44f906756aaa908645c9bcef31a132fc82e7934777aa6bb45c12edada6a58c + category: main + optional: false +- name: boto3 + version: 1.43.84 + manager: conda + platform: linux-aarch64 + dependencies: + botocore: '>=1.43.84,<1.44.0' + jmespath: '>=0.7.1,<2.0.0' + python: '>=3.10' + s3transfer: '>=0.19.0,<0.20.0' + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.43.84-pyhd8ed1ab_0.conda + hash: + md5: 774c6c766ba3021f06986e7290d13c6e + sha256: 52631573b087bba90106280b75db0f2e0d78f71e5c60dbe79d92b7495ffb529d + category: main + optional: false +- name: boto3-stubs + version: 1.43.84 + manager: conda + platform: linux-aarch64 + dependencies: + botocore-stubs: '' + python: '>=3.10' + types-s3transfer: '' + typing-extensions: '>=4.1.0' + url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.43.84-pyhd8ed1ab_0.conda + hash: + md5: f0474b9dfde9556403e3dd6fd0441926 + sha256: 53f59db9babc2e03a0f1488f38477ab2d98806a9de4341e44db3cdbc0482b2be + category: main + optional: false +- name: botocore + version: 1.43.88 + manager: conda + platform: linux-aarch64 + dependencies: + jmespath: '>=0.7.1,<2.0.0' + python: '>=3.10' + python-dateutil: '>=2.1,<3.0.0' + urllib3: '>=1.25.4,!=2.2.0,<3' + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.88-pyhd8ed1ab_0.conda + hash: + md5: 1aa61f8701378688b720c3fba469cb6e + sha256: 6e438c78936a1ea4436f4005ab259f43dc89c03bf2276a0dde9a5d50e7a37afd + category: main + optional: false +- name: botocore-stubs + version: 1.43.67 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + types-awscrt: '' + typing_extensions: '>=4.1.0' + url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.43.67-pyhcf101f3_0.conda + hash: + md5: f2264f76c19c70f6087f1bea533d7f29 + sha256: b8d2351e740c7fbc3ef59f30b16afba3977e51f1c91a1432ad65c2de4ae8f1fb + category: main + optional: false +- name: brotli + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + brotli-bin: 1.2.0 + libbrotlidec: 1.2.0 + libbrotlienc: 1.2.0 + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-1.2.0-h52fc18c_3.conda + hash: + md5: b1f4ee87d0d9c03e4a4c3578f5dc35a2 + sha256: 82fac3d274aa4b5da63712a2c204e72a816b80977f2810c758055c68a3d5a07b + category: main + optional: false +- name: brotli-bin + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libbrotlidec: 1.2.0 + libbrotlienc: 1.2.0 + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-bin-1.2.0-hdc3483e_3.conda + hash: + md5: 16f1289d41808093c73b3c98a014676b + sha256: 2d1125cb009edcf038096ae8d3fb5a45d0236752bf96e05211f74abc036cb93a + category: main + optional: false +- name: brotli-python + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-python-1.2.0-py310hac1f945_3.conda + hash: + md5: 47cbecd913075462e9e162cabfd0f9d2 + sha256: 17e26fb9c4c384c860557341bb32be7b478de5f68d3a68e94c520b9030bc7d0d + category: main + optional: false +- name: bzip2 + version: 1.0.8 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h4777abc_10.conda + hash: + md5: fd544ef1c672d645bf78e5819cbb8f91 + sha256: 24eacc8a20fd7c4616566178562bef7f9344eb4a8700cfc3180fa75a6ff9d39f + category: main + optional: false +- name: c-ares + version: 1.34.8 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.34.8-h29ee22c_2.conda + hash: + md5: eb80eb38625b8552a099aa88f8ba5db7 + sha256: 3838d10a78c206a1a4ec7ff041880b4f9b8ecde3520c911daae9e06baeb8858e + category: main + optional: false +- name: ca-certificates + version: 2026.7.22 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + url: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda + hash: + md5: 0f51e2391ade309db462a55611263e9c + sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 + category: main + optional: false +- name: cairo + version: 1.18.4 + manager: conda + platform: linux-aarch64 + dependencies: + fontconfig: '>=2.18.3,<3.0a0' + fonts-conda-ecosystem: '' + icu: '>=78.3,<79.0a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libxcb: '>=1.17.0,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + pixman: '>=0.46.4,<1.0a0' + xorg-libice: '>=1.1.2,<2.0a0' + xorg-libsm: '>=1.2.6,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxrender: '>=0.9.12,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cairo-1.18.4-hca320e2_3.conda + hash: + md5: 429852374b814f1fdeee970a3e1512e7 + sha256: 1ac3088ec4ec12b401cd3095dbd178b29651e99bfd25d0a85400624037735d91 + category: main + optional: false +- name: ccache + version: '4.14' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libhiredis: '>=1.3.0,<1.4.0a0' + libstdcxx: '>=15' + xxhash: '>=0.8.3,<0.8.4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ccache-4.14-h2327310_0.conda + hash: + md5: 59855bc332ee0ed56d2c6faff5cbb09b + sha256: f83a8a6a2ec0cbce5e0d7ed9d1f7d56480a139264a1edb66f6f1ff2ae4f4abfc + category: main + optional: false +- name: celery + version: 5.6.3 + manager: conda + platform: linux-aarch64 + dependencies: + billiard: '>=4.2.1,<5.0' + click: '>=8.1.2,<9.0' + click-didyoumean: '>=0.3.0' + click-plugins: '>=1.1.1' + click-repl: '>=0.2.0' + exceptiongroup: '>=1.3.0' + kombu: '>=5.6.0' + python: '>=3.10' + python-dateutil: '>=2.8.2' + tzlocal: '' + vine: '>=5.1.0,<6.0' + url: https://conda.anaconda.org/conda-forge/noarch/celery-5.6.3-pyhc364b38_0.conda + hash: + md5: 5faafe2ad8db9e411630f52cf36b4aaa + sha256: 48a6a8b27fcaed2596a424010a22284d9a9205db698f083e0936692a9de9e661 + category: main + optional: false +- name: certifi + version: 2026.7.22 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.7.22-pyhd8ed1ab_0.conda + hash: + md5: 37e13edbe3b48f1095a9d085ef9cd83b + sha256: fb167de4388e64e52aa3907ed099afab944c1fa6e5f74b281a312dae1bcf7f3b + category: main + optional: false +- name: cffi + version: 2.1.1 + manager: conda + platform: linux-aarch64 + dependencies: + libffi: '>=3.7.0,<3.8.0a0' + libgcc: '>=15' + pycparser: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-2.1.1-py310hbdcee5f_2.conda + hash: + md5: 47c433ff9be4969a76329f37067aa2a4 + sha256: afee9917ece480e9d56aa6ddc4e4f62f7dc52a957f4d7aa68e468d851017d3db + category: main + optional: false +- name: charset-normalizer + version: 3.5.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.5.1-pyhd8ed1ab_0.conda + hash: + md5: e0ac3accc64e23e40969d660e5f58ac8 + sha256: cb60ef3e0631c8bacb4f7057196dee4496091a22baa3bb4b9bccb12c7e1c921b + category: main + optional: false +- name: clang-format + version: 23.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + clang-format-23: ==23.1.0 + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/clang-format-23.1.0-default_h6c96b21_1.conda + hash: + md5: aca79e268dabdbf77eb42840617166f6 + sha256: a236d6d43cda7d0580d72f882d5a1ccdbfb71e1e1bec89ed513c394281f3b61d + category: main + optional: false +- name: clang-format-23 + version: 23.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/clang-format-23-23.1.0-default_h01b09c7_1.conda + hash: + md5: be5ba168c5bfad8a3968cbbb283a805b + sha256: 95711c2983c9d7a95c86bf4ebf9e7e43741b31c622fc691aeabbc4345004f324 + category: main + optional: false +- name: clang-scan-deps + version: 23.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + libclang13: '>=23.1.0' + libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/clang-scan-deps-23.1.0-default_h01b09c7_1.conda + hash: + md5: c8b4f206772e5974eae3fe6cd2150f1a + sha256: 3924db3bb2726ffdfdff13d3cf53dea50b2b8240761d6101e1aae0b30ea297a4 + category: main + optional: false +- name: clang-tools + version: 23.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + clang-format: ==23.1.0 + clang-scan-deps: ==23.1.0 + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + libclang13: '>=23.1.0' + libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/clang-tools-23.1.0-default_h7eda04c_1.conda + hash: + md5: a728c39936cb3340b172b539f4d2e09f + sha256: 4e90b24e2a07a56d48b10d03159d7d502e074e4da78589b270ec5e90f4ac06bd + category: main + optional: false +- name: click + version: 8.4.2 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/click-8.4.2-pyhc90fa1f_0.conda + hash: + md5: 2c4bd6aeb90bb157456841c3270a0d92 + sha256: ccc4787f511964f9a1f2d2d2859c91c5d571fb60f7f09d4c4e092c9b7a94e671 + category: main + optional: false +- name: click-didyoumean + version: 0.3.1 + manager: conda + platform: linux-aarch64 + dependencies: + click: '>=7' + python: '>=3.9,<4.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/click-didyoumean-0.3.1-pyhd8ed1ab_1.conda + hash: + md5: dd87c399586cac9f8bdd8c644b2592a6 + sha256: f3e6540088db593707766aa30abe184463e4842182012ffb81e1cc784dbdc436 + category: main + optional: false +- name: click-plugins + version: 1.1.1.2 + manager: conda + platform: linux-aarch64 + dependencies: + click: '>=4.0' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda + hash: + md5: e9b05deb91c013e5224672a4ba9cf8d1 + sha256: ba1ee6e2b2be3da41d70d0d51d1159010de900aa3f33fceaea8c52e9bd30a26e + category: main + optional: false +- name: click-repl + version: 0.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + click: '' + prompt_toolkit: '' + python: '>=3.6' + six: '' + url: https://conda.anaconda.org/conda-forge/noarch/click-repl-0.3.0-pyhd8ed1ab_0.conda + hash: + md5: 27eb8f68250666c1a19d1b6ec9d12c4e + sha256: 69c16e0b89e1fb4fc444af4798ef1222b3075d074cbcbe70b9af793668200a14 + category: main + optional: false +- name: cmake + version: 4.4.3 + manager: conda + platform: linux-aarch64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libcurl: '>=8.21.0,<9.0a0' + libexpat: '>=2.8.1,<3.0a0' + libgcc: '>=15' + liblzma: '>=5.8.3,<6.0a0' + libstdcxx: '>=15' + libuv: '>=1.52.1,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + ncurses: '>=6.6,<7.0a0' + rhash: '>=1.4.6,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cmake-4.4.3-hcbeb305_0.conda + hash: + md5: 8261cbd7a3cb3cb7ae27d042562a6400 + sha256: e1e2409127984da55665e27abdd21eb6b8a7454cbe0fe7e3ded948a843e25938 + category: main + optional: false +- name: colorama + version: 0.4.6 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + hash: + md5: 962b9857ee8e7018c22f2776ffa0b2d7 + sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287 + category: main + optional: false +- name: conda + version: 26.1.1 + manager: conda + platform: linux-aarch64 + dependencies: + archspec: '>=0.2.3' + boltons: '>=23.0.0' + charset-normalizer: '' + conda-libmamba-solver: '>=25.4.0' + conda-package-handling: '>=2.2.0' + distro: '>=1.5.0' + frozendict: '>=2.4.2' + jsonpatch: '>=1.32' + menuinst: '>=2' + packaging: '>=23.0' + platformdirs: '>=3.10.0' + pluggy: '>=1.0.0' + pycosat: '>=0.6.3' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + requests: '>=2.28.0,<3' + ruamel.yaml: '>=0.11.14,<0.19' + setuptools: '>=60.0.0' + tqdm: '>=4' + truststore: '>=0.8.0' + zstandard: '>=0.19.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-26.1.1-py310h4c7bcd0_0.conda + hash: + md5: 42e348e1bb733f0095fa1ded7e1cfb00 + sha256: 87aed41c4a995f4939816fce5c3555d66ad9551707fc117f3dde3884629c5b3a + category: main + optional: false +- name: conda-gcc-specs + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + gcc_impl_linux-aarch64: '>=15.3.0,<15.3.1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-gcc-specs-15.3.0-hbdd0822_4.conda + hash: + md5: afa5c705e03c6afce0228ff2283d6309 + sha256: d61e8e35090eac2af977f40d9b068fde2c3fdc3494f93230d955947709e4b581 + category: main + optional: false +- name: conda-libmamba-solver + version: 26.4.2 + manager: conda + platform: linux-aarch64 + dependencies: + boltons: '>=23.0.0' + libmambapy: '>=2.0.0' + msgpack-python: '>=1.1.1' + python: '>=3.10' + requests: '>=2.28.0,<3' + zstandard: '>=0.15' + url: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-26.4.2-pyhcf101f3_1.conda + hash: + md5: d950913618dcaa344b33b5c110a72e09 + sha256: 98ad6bdd3c87df9d7a3432729a71bcb98c04773ddbeadddc2584ba311a5c2566 + category: main + optional: false +- name: conda-package-handling + version: 2.5.0 + manager: conda + platform: linux-aarch64 + dependencies: + conda-package-streaming: '>=0.12.0' + python: '>=3.10' + requests: '' + zstandard: '>=0.15' + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.5.0-pyhcf101f3_0.conda + hash: + md5: 3f1854f1ec2090538fb49b7078dbb9de + sha256: 63d5b510644a01b4c93738304cb0dc8a336542fc335b0b77f3b355ba7d119260 + category: main + optional: false +- name: conda-package-streaming + version: 0.13.0 + manager: conda + platform: linux-aarch64 + dependencies: + backports.zstd: '' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.13.0-pyhd8ed1ab_0.conda + hash: + md5: b4e3dcace82b486f69bc693f30120205 + sha256: af3b666ea6043a146901cd151d6201126bbe19af8307b58fb175015e3710064c + category: main + optional: false +- name: conda-standalone + version: 25.3.1 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-standalone-25.3.1-h8af1aa0_0.conda + hash: + md5: 0aa5e48b1809f7c5685ef4fd32cf608c + sha256: c7dd8d9f51d73c558181977e9dd40783c19aa3b55c8850aa4ec93f24905491ff + category: main + optional: false +- name: conda-tree + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + colorama: '' + conda: '>=25.0' + networkx: '>=2.0' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.2.0-pyhcf101f3_0.conda + hash: + md5: d50ead4984f21edfb9ceeca13e62440a + sha256: 568f52c4ac4aa11bb3b983c5fdde75ebdd0fb2842390c00e32b0157ef216b7f4 + category: main + optional: false +- name: constructor + version: 3.11.3 + manager: conda + platform: linux-aarch64 + dependencies: + __linux: '' + conda: '>=4.6,<26.3.0' + conda-standalone: '' + jinja2: '' + python: '>=3.9' + ruamel.yaml: '>=0.11.14,<0.19' + url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.11.3-pyh66a16d4_0.conda + hash: + md5: 8e53f34ab8cf75e8c56000a4b90aa524 + sha256: d2aca618d1fb3720f4cf0130515e29b659c4aa997b614a2076b9f34230cdc105 + category: main + optional: false +- name: contourpy + version: 1.3.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + libstdcxx: '>=13' + numpy: '>=1.23' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/contourpy-1.3.2-py310hf54e67a_0.conda + hash: + md5: 779694434d1f0a67c5260db76b7b7907 + sha256: a81d8c04772ea8c00aa44978ae4c344ecd879a219cf8402f9e1d5e8fb48d2f3f + category: main + optional: false +- name: coreutils + version: '9.11' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/coreutils-9.11-h80f16a2_0.conda + hash: + md5: 289d703d58521cab02bcab0ae6e04665 + sha256: 3410b19e09e7d4ce34dd18ac6d2371c0bf04e17c20df1a92bd0161dcbea83c78 + category: main + optional: false +- name: cpp-expected + version: 1.3.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cpp-expected-1.3.1-hdc560ac_1.conda + hash: + md5: 9d634b13d6b78f143345f2932ae80700 + sha256: 178992e56e45feec10bb4292c8e5a9dd13b997470e624a58b1af14004765c697 + category: main + optional: false +- name: cpython + version: 3.10.21 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: '*' + url: https://conda.anaconda.org/conda-forge/noarch/cpython-3.10.21-py310hd8ed1ab_0.conda + hash: + md5: 16bfe1eccbb795747206bad6605cb664 + sha256: 480ea56b6e2627f0f44fca21d48f9568a91b206e074c000a710d6b9492f2ec7a + category: main + optional: false +- name: cryptography + version: 40.0.2 + manager: conda + platform: linux-aarch64 + dependencies: + cffi: '>=1.12' + libgcc-ng: '>=12' + openssl: '>=3.1.0,<4.0a0' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-40.0.2-py310he4ba0b1_0.conda + hash: + md5: 53666caf73d7633ddb3bf45f75b5afe9 + sha256: d7ce6703be8cd729103a75c036455dcf345c0ccc764a33496355f1d8aebafb9f + category: main + optional: false +- name: cycler + version: 0.12.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda + hash: + md5: 4c2a8fef270f6c69591889b93f9f55c1 + sha256: bb47aec5338695ff8efbddbc669064a3b10fe34ad881fb8ad5d64fbfa6910ed1 + category: main + optional: false +- name: dbus + version: 1.16.2 + manager: conda + platform: linux-aarch64 + dependencies: + libexpat: '>=2.8.1,<3.0a0' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/dbus-1.16.2-h71d469a_2.conda + hash: + md5: 2d4de8dd159984989d47c03fb5543a9f + sha256: d35726cb8b091a239c96d631bdf4286455393e3274266f7102109a68c69c12f9 + category: main + optional: false +- name: diffutils + version: '3.12' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/diffutils-3.12-h06eaf92_0.conda + hash: + md5: 2c042863820986496e78e7675f14fe89 + sha256: 5845de05275e65b8bfd508b6c1623b0587e1b30943840b2adddc002dfe04eaba + category: main + optional: false +- name: distro + version: 1.8.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/distro-1.8.0-pyhd8ed1ab_0.conda + hash: + md5: 67999c5465064480fa8016d00ac768f6 + sha256: 0d01c4da6d4f0a935599210f82ac0630fa9aeb4fc37cbbc78043a932a39ec4f3 + category: main + optional: false +- name: docopt + version: 0.6.2 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/docopt-0.6.2-pyhd8ed1ab_2.conda + hash: + md5: a83e0c5be564702a79a9e3efda32009f + sha256: 7581a21e9bbe279d73d8ea32333f07ab286d2880edcee76a52480e2e4e53470d + category: main + optional: false +- name: docutils + version: '0.19' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/docutils-0.19-py310hbbe02a8_1.tar.bz2 + hash: + md5: 79059293c49d43008ec863e87673ec0e + sha256: 0ea888bcb7281d125e1173efb947780dd2f2bcf9a93661ef7d29d7cb8a167a0f + category: main + optional: false +- name: doit + version: 0.37.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/doit-0.37.0-pyhcf101f3_0.conda + hash: + md5: 37b3d4c558f2bb2b5378c43f4d6f1fb5 + sha256: ed23dc270abd9c51b83af377d3dc09e4a82fc85bb118b6fdaa88b5bc350854a9 + category: main + optional: false +- name: dtc + version: 1.7.2 + manager: conda + platform: linux-aarch64 + dependencies: + libfdt: '>=1.7.2,<1.8.0a0' + libgcc: '>=14' + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/dtc-1.7.2-h80f16a2_6.conda + hash: + md5: ce5f1c541602eb6321f5968fe6e2ca0d + sha256: feb7f8d994fe3b973d709e2b75e58317bd5a737880db4bf25dad0db0e13dfdb7 + category: main + optional: false +- name: elfutils + version: '0.196' + manager: conda + platform: linux-aarch64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libarchive: '>=3.8.9,<3.9.0a0' + libgcc: '>=15' + liblzma: '>=5.8.3,<6.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/elfutils-0.196-h424db8c_0.conda + hash: + md5: aa22638e529df502fc3f7965df1c5c4e + sha256: 4ba513c3efeba21b29691f26b7a7c5c1995c1a2acd4b62ab14cc5e01ca314262 + category: main + optional: false +- name: epoxy + version: 1.5.10 + manager: conda + platform: linux-aarch64 + dependencies: + libdrm: '>=2.4.125,<2.5.0a0' + libegl: '>=1.7.0,<2.0a0' + libegl-devel: '' + libgcc: '>=14' + libgl: '>=1.7.0,<2.0a0' + libgl-devel: '' + libglx: '>=1.7.0,<2.0a0' + libglx-devel: '' + xorg-libx11: '>=1.8.12,<2.0a0' + xorg-libxdamage: '>=1.1.6,<2.0a0' + xorg-libxext: '>=1.3.6,<2.0a0' + xorg-libxfixes: '>=6.0.1,<7.0a0' + xorg-libxxf86vm: '>=1.1.6,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/epoxy-1.5.10-he30d5cf_2.conda + hash: + md5: 1c50e7c46ccefffe918ac974fa1a6752 + sha256: aa562cdd72d2d15b0f2ee4565c8e34f18b52f7135a3f3b1ce727c202425c3bec + category: main + optional: false +- name: exceptiongroup + version: 1.3.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + typing_extensions: '>=4.6.0' + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + hash: + md5: 8e662bd460bda79b1ea39194e3c4c9ab + sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144 + category: main + optional: false +- name: expat + version: 2.8.1 + manager: conda + platform: linux-aarch64 + dependencies: + libexpat: 2.8.1 + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/expat-2.8.1-hfae3067_1.conda + hash: + md5: 4bcb07322aecccd75514fd585ad0b719 + sha256: e4cc29e20435f2787031eafaf100496cb700d2ebc246e91211cbde023b2600b4 + category: main + optional: false +- name: expect + version: 5.45.4 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + tk: '>=8.6.13,<8.7.0a0' + url: https://conda.anaconda.org/jimfangx/linux-aarch64/expect-5.45.4-hdd74a06_0.conda + hash: + md5: 6f2b167dcf2d6427c8ca688c286f86e7 + sha256: 7005f0829d82d20902aca21b89b19174af4cbdcfd3ea760f911bf263348190cc + category: main + optional: false +- name: file + version: '5.48' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libmagic: ==5.48 + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/file-5.48-h3053828_1.conda + hash: + md5: 3a93bbbd40544ef75b955b3e0f358597 + sha256: e0592f730cb83747ba77c416fd6e4767ed234a14752b7c29fefc759493cc2db8 + category: main + optional: false +- name: findutils + version: 4.10.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/findutils-4.10.0-h4e47b5b_1.conda + hash: + md5: fb905fb98dc1c9663c4f4d9b3d0e5abe + sha256: 33f518596c58dc5946b03d1928527833f22914030aa4d990dbb6e6094a3723f0 + category: main + optional: false +- name: flask + version: 2.2.5 + manager: conda + platform: linux-aarch64 + dependencies: + celery: '>=5.2.7' + click: '>=8.0' + importlib-metadata: '>=3.6.0' + itsdangerous: '>=2.0' + jinja2: '>=3.0' + python: '>=3.7' + werkzeug: '>=2.2.2' + url: https://conda.anaconda.org/conda-forge/noarch/flask-2.2.5-pyhd8ed1ab_0.conda + hash: + md5: 66c558a28b9b47c1e2aa8e8cb80b9037 + sha256: 9356ae47278788439770eb9d05bfeb72c39a53a8b10a0e534b612f99b9c18e9b + category: main + optional: false +- name: flask-cors + version: 6.0.5 + manager: conda + platform: linux-aarch64 + dependencies: + flask: '>=0.9' + python: '>=3.10' + typing_extensions: '>=4.6.0' + werkzeug: '>=0.7' + url: https://conda.anaconda.org/conda-forge/noarch/flask-cors-6.0.5-pyhcf101f3_0.conda + hash: + md5: 0bb2541204945f51b74e4b1354294895 + sha256: 56e23944c80bab7c13f75f8d642b73b3d7363e40e2d07549b5fad38e0837a307 + category: main + optional: false +- name: flex + version: 2.6.4 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=7.5.0' + libstdcxx-ng: '>=7.5.0' + m4: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/flex-2.6.4-h884eca8_1004.tar.bz2 + hash: + md5: 1e81594037ba4a15a83f42497fee59f3 + sha256: 876d5b6b79d431174668b05b67fc8c931e03101efaefb117a7fadd98727edbb0 + category: main + optional: false +- name: fmt + version: 12.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/fmt-12.1.0-h166da81_1.conda + hash: + md5: 2ba56bd59c36644d783ef8a8086ec0e4 + sha256: 9576231133ef25127cf8855492a6e34a3189e3a8986cc69ebfef6516670d4822 + category: main + optional: false +- name: fnm + version: 1.39.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/fnm-1.39.0-h069e38c_1.conda + hash: + md5: 7f4c42474db6f2796450f0bf84712ac2 + sha256: 7457efd999802d3cbb57e692823aca1ba6d5455553203032216b25b5f092eb9d + category: main + optional: false +- name: font-ttf-dejavu-sans-mono + version: '2.37' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + hash: + md5: 0c96522c6bdaed4b1566d11387caaf45 + sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b + category: main + optional: false +- name: font-ttf-inconsolata + version: '3.000' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + hash: + md5: 34893075a5c9e55cdafac56607368fc6 + sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c + category: main + optional: false +- name: font-ttf-source-code-pro + version: '2.038' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + hash: + md5: 4d59c254e01d9cde7957100457e2d5fb + sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139 + category: main + optional: false +- name: font-ttf-ubuntu + version: '0.83' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + hash: + md5: 49023d73832ef61042f6a237cb2687e7 + sha256: 2821ec1dc454bd8b9a31d0ed22a7ce22422c0aef163c59f49dfdf915d0f0ca14 + category: main + optional: false +- name: fontconfig + version: 2.18.3 + manager: conda + platform: linux-aarch64 + dependencies: + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libuuid: '>=2.42.2,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/fontconfig-2.18.3-ha4b22b4_1.conda + hash: + md5: bb629904b3e9326efaa5c39c956f2b63 + sha256: 5f7801b6044ff233943e68f5156d4987fe8447d1be9378fb5c67f7aa009a33e7 + category: main + optional: false +- name: fonts-conda-ecosystem + version: '1' + manager: conda + platform: linux-aarch64 + dependencies: + fonts-conda-forge: '' + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + hash: + md5: fee5683a3f04bd15cbd8318b096a27ab + sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61 + category: main + optional: false +- name: fonts-conda-forge + version: '1' + manager: conda + platform: linux-aarch64 + dependencies: + font-ttf-dejavu-sans-mono: '' + font-ttf-inconsolata: '' + font-ttf-source-code-pro: '' + font-ttf-ubuntu: '' + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda + hash: + md5: a7970cd949a077b7cb9696379d338681 + sha256: 54eea8469786bc2291cc40bca5f46438d3e062a399e8f53f013b6a9f50e98333 + category: main + optional: false +- name: fonttools + version: 4.63.0 + manager: conda + platform: linux-aarch64 + dependencies: + brotli: '' + libgcc: '>=14' + munkres: '' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + unicodedata2: '>=15.1.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/fonttools-4.63.0-py310h2d8da20_0.conda + hash: + md5: b77749fdc784b67cd564c091a2d38a0d + sha256: 26cc92dbc52fcb6fdc2820492b02eecf94934322a46b96e47d5fe0895a59f7dc + category: main + optional: false +- name: freetype + version: 2.14.3 + manager: conda + platform: linux-aarch64 + dependencies: + libfreetype: 2.14.3 + libfreetype6: 2.14.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/freetype-2.14.3-h8af1aa0_2.conda + hash: + md5: f5d76071be867597bab18a0e45d588e1 + sha256: 7af9e368efdaf59e0709ae89c2e7f0ce0e1067a857958f367318ff3c27209a64 + category: main + optional: false +- name: fribidi + version: 1.0.16 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/fribidi-1.0.16-h5bc82ec_2.conda + hash: + md5: be4ca084748fe5ceb24ff52486ac802a + sha256: d05e07083ca836efadff257f60ef253d38296ea850aa5034bf85bb9b029a9be3 + category: main + optional: false +- name: frozendict + version: 2.4.7 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/frozendict-2.4.7-pyh851646a_2.conda + hash: + md5: 43fdb6bcc1227a22290d0bc02a9484c9 + sha256: 32b75b9a3097c4156ba5070739bbfdcc0bc23890c0faa0dbff569ecb16b8f44f + category: main + optional: false +- name: frozenlist + version: 1.8.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/frozenlist-1.8.0-py310h6b021dd_0.conda + hash: + md5: 5f4e097ce2b989fd39110cb64eb31d58 + sha256: 5de39b9a3b5293fb0af3376280785527a407ac425c8ae5010a2aa2a1c10b96fb + category: main + optional: false +- name: fsspec + version: 2026.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.7.0-pyhd8ed1ab_0.conda + hash: + md5: b9176565976c773a0739bd83deaf06cc + sha256: 3cd1c985695d8114bdba2a4a38c87e86d633fadd7cfe7a6733ebb3fe807fdc86 + category: main + optional: false +- name: gcc + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + conda-gcc-specs: '' + gcc_impl_linux-aarch64: 15.3.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc-15.3.0-hfdd745d_4.conda + hash: + md5: 96724903f974e2151a077ec588bf9d7e + sha256: fc89612ee4e163923ba713a8814114e8c402054e79b85e32b75d1c38031b4362 + category: main + optional: false +- name: gcc_impl_linux-aarch64 + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + binutils_impl_linux-aarch64: '>=2.46.1' + libgcc: '>=15.3.0' + libgcc-devel_linux-aarch64: 15.3.0 + libgomp: '>=15.3.0' + libsanitizer: 15.3.0 + libstdcxx: '>=15.3.0' + libstdcxx-devel_linux-aarch64: 15.3.0 + sysroot_linux-aarch64: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_impl_linux-aarch64-15.3.0-hfe63468_4.conda + hash: + md5: a6a25fd37f554f88b36a0d03af7775fa + sha256: 6039029f4ce021e0c49fb47824e981ba5d2863498c0855f78a73dc09a75cf151 + category: main + optional: false +- name: gdk-pixbuf + version: 2.44.8 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libjpeg-turbo: '>=3.2.0,<4.0a0' + liblzma: '>=5.8.3,<6.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libtiff: '>=4.7.2,<4.8.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gdk-pixbuf-2.44.8-hb26ce08_2.conda + hash: + md5: 3ae2e4bd62eb5a711f90b53f58c8258b + sha256: 5455ddfeec3b69156a207654dde572ba81b711ac29f39cf9452ef8f0db8348d7 + category: main + optional: false +- name: gengetopt + version: '2.23' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=9.4.0' + libstdcxx-ng: '>=9.4.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gengetopt-2.23-h01db608_0.tar.bz2 + hash: + md5: 64993b390c81da7c7a67fdc7ca7965bf + sha256: e6a98e5c6760f4bb5400cf1515f644d2aa3baa88178deea1d9a8782609a856fe + category: main + optional: false +- name: giflib + version: 5.2.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/giflib-5.2.2-h5dd31e5_1.conda + hash: + md5: 6e6566364080aaac269deeff7d1bd6b0 + sha256: bcba20fab38b359fe982bd004e0b28e5ecfa07e43ca03733db2f6f26fad68f8f + category: main + optional: false +- name: git + version: 2.55.0 + manager: conda + platform: linux-aarch64 + dependencies: + libcurl: '>=8.21.0,<9.0a0' + libexpat: '>=2.8.1,<3.0a0' + libgcc: '>=14' + libiconv: '>=1.18,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + pcre2: '>=10.47,<10.48.0a0' + perl: 5.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/git-2.55.0-pl5321h06f7e71_1.conda + hash: + md5: cdbc79af349a0df66596b1f91534e476 + sha256: 02615f600a0d4242dcedcb7ebd8f1faa02f7136551cc3e804fc879a015237644 + category: main + optional: false +- name: gitdb + version: 4.0.12 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + smmap: '>=3.0.1,<6' + url: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda + hash: + md5: 7c14f3706e099f8fcd47af2d494616cc + sha256: dbbec21a369872c8ebe23cb9a3b9d63638479ee30face165aa0fccc96e93eec3 + category: main + optional: false +- name: gitpython + version: 3.1.61 + manager: conda + platform: linux-aarch64 + dependencies: + gitdb: '>=4.0.1,<5' + python: '>=3.10' + typing_extensions: '>=3.10.0.2' + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.61-pyhcf101f3_0.conda + hash: + md5: a4d052a35ae133a5fef5bc34fd337cd8 + sha256: 51cb1c112e47ccda9a0c7850fa5ff7c4eaa8bd65a3f7a81861623b8acff00d9e + category: main + optional: false +- name: glib-tools + version: 2.88.3 + manager: conda + platform: linux-aarch64 + dependencies: + libffi: '' + libgcc: '>=15' + libglib: ==2.88.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/glib-tools-2.88.3-h8912f12_3.conda + hash: + md5: 5a45b94a73799b9cb97869cda44f2db7 + sha256: f22759ece7940db53a84c9e6b9bb0e960886485dd1454d1593a9146909b57263 + category: main + optional: false +- name: gmp + version: 6.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gmp-6.3.0-h4d6b352_3.conda + hash: + md5: ce2326e31df1913341036653e1c07baa + sha256: ab165962a7316f269a7bde936aa442bf69f0fed97a497e63ec28f366b4999037 + category: main + optional: false +- name: gperf + version: '3.3' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gperf-3.3-h4154aff_1.conda + hash: + md5: 03662b8453993e70c925534e2665f602 + sha256: 1f79aeac7423a94f3a3eaa8a725afdc4c31188f6603d773f5ded24c89a216ca7 + category: main + optional: false +- name: graphite2 + version: 1.3.15 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/graphite2-1.3.15-h7ac5ae9_1.conda + hash: + md5: c5835ff5788e0d772d67a97bd5fe001b + sha256: 5be01914b445dfbde85a4751b1d12b331740e7af68a86e4ef6313ab38a870fdd + category: main + optional: false +- name: graphviz + version: 14.1.2 + manager: conda + platform: linux-aarch64 + dependencies: + adwaita-icon-theme: '' + cairo: '>=1.18.4,<2.0a0' + fonts-conda-ecosystem: '' + gdk-pixbuf: '>=2.44.4,<3.0a0' + gtk3: '>=3.24.43,<4.0a0' + gts: '>=0.7.6,<0.8.0a0' + libexpat: '>=2.7.3,<3.0a0' + libgcc: '>=14' + libgd: '>=2.3.3,<2.4.0a0' + libglib: '>=2.86.3,<3.0a0' + librsvg: '>=2.60.0,<3.0a0' + libstdcxx: '>=14' + libwebp-base: '>=1.6.0,<2.0a0' + libzlib: '>=1.3.1,<2.0a0' + pango: '>=1.56.4,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/graphviz-14.1.2-h45e821f_0.conda + hash: + md5: 60c3b65c5e60fc70e1b9f0de4d0c2247 + sha256: 0ac1a90696a3250febdb1d63a3161b9aad5dc136e602f7f17df4894bd153162c + category: main + optional: false +- name: gtk3 + version: 3.24.52 + manager: conda + platform: linux-aarch64 + dependencies: + at-spi2-atk: '>=2.38.0,<3.0a0' + atk-1.0: '>=2.38.0' + cairo: '>=1.18.4,<2.0a0' + epoxy: '>=1.5.10,<1.6.0a0' + fontconfig: '>=2.17.1,<3.0a0' + fonts-conda-ecosystem: '' + fribidi: '>=1.0.16,<2.0a0' + gdk-pixbuf: '>=2.44.5,<3.0a0' + glib-tools: '' + harfbuzz: '>=13.2.1' + hicolor-icon-theme: '' + libcups: '>=2.3.3,<2.4.0a0,>=2.3.3,<3.0a0' + libexpat: '>=2.7.4,<3.0a0' + libfreetype: '>=2.14.2' + libfreetype6: '>=2.14.2' + libgcc: '>=14' + libglib: '>=2.86.4,<3.0a0' + liblzma: '>=5.8.2,<6.0a0' + libxkbcommon: '>=1.13.1,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + pango: '>=1.56.4,<2.0a0' + wayland: '>=1.25.0,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxcomposite: '>=0.4.7,<1.0a0' + xorg-libxcursor: '>=1.2.3,<2.0a0' + xorg-libxdamage: '>=1.1.6,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxfixes: '>=6.0.2,<7.0a0' + xorg-libxi: '>=1.8.2,<2.0a0' + xorg-libxinerama: '>=1.1.6,<1.2.0a0' + xorg-libxrandr: '>=1.5.5,<2.0a0' + xorg-libxrender: '>=0.9.12,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gtk3-3.24.52-h75d4e7a_0.conda + hash: + md5: f6a9ed300bcf3217da7f1955f57facec + sha256: 5db1347513253a2d200b111717eb452d4b95e9380db48b6dd2c8bb7bb256d754 + category: main + optional: false +- name: gts + version: 0.7.6 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=12' + libglib: '>=2.76.3,<3.0a0' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gts-0.7.6-he293c15_4.conda + hash: + md5: 2aeaeddbd89e84b60165463225814cfc + sha256: 1e9cc30d1c746d5a3399a279f5f642a953f37d9f9c82fd4d55b301e9c2a23f7c + category: main + optional: false +- name: gxx + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + conda-gcc-specs: '' + gcc: 15.3.0 + gxx_impl_linux-aarch64: 15.3.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx-15.3.0-hfdd745d_4.conda + hash: + md5: a633104932da5d9d0add986193a9b45d + sha256: 36cd033b6473c8bf782ea7ceee7704b2db43bc2070acb9981620f0e86db7ad8d + category: main + optional: false +- name: gxx_impl_linux-aarch64 + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + gcc_impl_linux-aarch64: 15.3.0 + libstdcxx-devel_linux-aarch64: 15.3.0 + sysroot_linux-aarch64: '' + tzdata: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_impl_linux-aarch64-15.3.0-hcb04d1e_4.conda + hash: + md5: ba4fc57002f3425ed6a36496d299332d + sha256: e5a301d88d8902a8954adbf0c4a28b579960bae312d4bd6ba79463a20795a86e + category: main + optional: false +- name: gzip + version: '1.14' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gzip-1.14-h86ecc28_0.conda + hash: + md5: 9f2dc28ad0165ff75815955ec96d0705 + sha256: 8c5ce4895cf11a2ed5cb288383ebfb75e32abddf09ca4207c190592598f1c9fd + category: main + optional: false +- name: h11 + version: 0.16.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + typing_extensions: '' + url: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda + hash: + md5: b8993c19b0c32a2f7b66cbb58ca27069 + sha256: 96cac6573fd35ae151f4d6979bab6fbc90cb6b1fb99054ba19eb075da9822fcb + category: main + optional: false +- name: h2 + version: 4.4.1 + manager: conda + platform: linux-aarch64 + dependencies: + hpack: '>=4.2,<5' + hyperframe: '>=6.1,<7' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + hash: + md5: e652ac7756069c456d0da2a922cd7df5 + sha256: 307dd6ec90140c3cf4171071b0e5e870abec314f4565c1edd5bc433e942cdcc0 + category: main + optional: false +- name: harfbuzz + version: 14.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + libharfbuzz-devel: 14.4.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/harfbuzz-14.4.0-h8af1aa0_1.conda + hash: + md5: 47068fe215dc328067e8fb3bd7b0c0be + sha256: 3936f8696311d03fe165c46af0e43a5fa7ce02053ee687f01ef5b0650fa6f02a + category: main + optional: false +- name: hicolor-icon-theme + version: '0.17' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-aarch64/hicolor-icon-theme-0.17-h8af1aa0_3.conda + hash: + md5: af62915a9e4154e16d97f99c64cec14e + sha256: 9f7fa161b33de5f001dc43f9d6399ba45b3fb1efb141ee2fec6bf05a48420d63 + category: main + optional: false +- name: hpack + version: 4.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda + hash: + md5: b395909221b9bd1df066e5930e18855b + sha256: fdcea5d7cb314485d3907192ef024c704311548c5b0cbeb390cd1951051e29d2 + category: main + optional: false +- name: humanfriendly + version: '10.0' + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda + hash: + md5: 7fe569c10905402ed47024fc481bb371 + sha256: fa2071da7fab758c669e78227e6094f6b3608228740808a6de5d6bce83d9e52d + category: main + optional: false +- name: hyperframe + version: 6.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + hash: + md5: 8e6923fc12f1fe8f8c4e5c9f343256ac + sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 + category: main + optional: false +- name: icu + version: '78.3' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-78.3-py311h3512406_2.conda + hash: + md5: b35bbb1b957440ed742f35fb96eb7f1c + sha256: 54d921defd947adb58a90e10203d3bfe6c1f209f5f1a1ad2c6a9f7617f2fb59e + category: main + optional: false +- name: idna + version: '3.19' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda + hash: + md5: a39ae05027e9b707742e41b30d296b75 + sha256: 1c35a59c1545ad0fdaddf1fbde7bcfa6ef41a8d68c3a2b0b4a291be00676163e + category: main + optional: false +- name: imagesize + version: 2.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/imagesize-2.0.1-pyhd8ed1ab_0.conda + hash: + md5: ebc56022e4ef7e74a829be94c53797ca + sha256: 4e787f9ccc31053ccea56d98ecd284a4f788988a3f9c4627db72fdd0b127529b + category: main + optional: false +- name: importlib-metadata + version: 9.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + zipp: '>=3.20' + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.1-pyhcf101f3_0.conda + hash: + md5: 77ec68e0aa61c3fff9ecbf840f93d64e + sha256: 95a074a7d3f58b3494c068d4789c364dcb591c56b70ca6b12f149a540f9aeea4 + category: main + optional: false +- name: iniconfig + version: 2.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda + hash: + md5: 9614359868482abba1bd15ce465e3c42 + sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19 + category: main + optional: false +- name: itsdangerous + version: 2.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/itsdangerous-2.2.0-pyhd8ed1ab_1.conda + hash: + md5: 7ac5f795c15f288984e32add616cdc59 + sha256: 1684b7b16eec08efef5302ce298c606b163c18272b69a62b666fbaa61516f170 + category: main + optional: false +- name: jansson + version: 2.15.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/jansson-2.15.1-h80f16a2_0.conda + hash: + md5: 828c8e433edf4babc0d80b545a986fd2 + sha256: 89dc13dffb0849e5f9cc010fab408516b2a20e145b0885920a0eb6e5e26f3036 + category: main + optional: false +- name: jinja2 + version: 3.1.6 + manager: conda + platform: linux-aarch64 + dependencies: + markupsafe: '>=2.0' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda + hash: + md5: 04558c96691bed63104678757beb4f8d + sha256: fc9ca7348a4f25fed2079f2153ecdcf5f9cf2a0bc36c4172420ca09e1849df7b + category: main + optional: false +- name: jmespath + version: 1.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_1.conda + hash: + md5: 972bdca8f30147135f951847b30399ea + sha256: 3d2f20ee7fd731e3ff55c189db9c43231bc8bde957875817a609c227bcb295c6 + category: main + optional: false +- name: joserfc + version: 1.5.0 + manager: conda + platform: linux-aarch64 + dependencies: + cryptography: '' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/joserfc-1.5.0-pyhd8ed1ab_0.conda + hash: + md5: 0f301599707ac4e1b8a9786829c10c4e + sha256: 8659b4d72227c90b34bf6f2576e346d38e1f3bb3101089f2ac9b7123acecef38 + category: main + optional: false +- name: jq + version: 1.8.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + oniguruma: 6.9.*,>=6.9.10,<6.10.0a0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/jq-1.8.2-h80f16a2_1.conda + hash: + md5: 266917520745dc1ca3da3dfb71365d9c + sha256: b5fc3d450f05eda27f1d667a435425e84c66d0bd3a04f0ac28aaa4ba88e58e2a + category: main + optional: false +- name: jsondiff + version: 2.2.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + pyyaml: '' + url: https://conda.anaconda.org/conda-forge/noarch/jsondiff-2.2.1-pyhd8ed1ab_1.conda + hash: + md5: 17bcb57d022fa03627dfa6a782009a0c + sha256: 6cf0505add010cc07ab07b17288ef305a2717e8d16d88c131bb5d408a2c0d293 + category: main + optional: false +- name: jsonpatch + version: '1.33' + manager: conda + platform: linux-aarch64 + dependencies: + jsonpointer: '>=1.9' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_1.conda + hash: + md5: cb60ae9cf02b9fcb8004dec4089e5691 + sha256: 304955757d1fedbe344af43b12b5467cca072f83cce6109361ba942e186b3993 + category: main + optional: false +- name: jsonpointer + version: 3.1.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.1.1-pyhcf101f3_0.conda + hash: + md5: 89bf346df77603055d3c8fe5811691e6 + sha256: a3d10301b6ff399ba1f3d39e443664804a3d28315a4fb81e745b6817845f70ae + category: main + optional: false +- name: jsonschema + version: 4.24.1 + manager: conda + platform: linux-aarch64 + dependencies: + attrs: '>=22.2.0' + jsonschema-specifications: '>=2023.3.6' + python: '>=3.9' + referencing: '>=0.28.4' + rpds-py: '>=0.7.1' + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.24.1-pyhe01879c_0.conda + hash: + md5: 5bfc971f7d1c463f94b15af1f0e9cd34 + sha256: 5048d421165c75118ebdfa58cd44de7f58a86aa422f08a2cba57ece4e3492544 + category: main + optional: false +- name: jsonschema-path + version: 0.4.6 + manager: conda + platform: linux-aarch64 + dependencies: + pathable: '>=0.5.0,<0.6.0' + python: '>=3.10' + pyyaml: '>=5.1' + referencing: <0.38.0 + requests: '>=2.31.0,<3.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-path-0.4.6-pyhcf101f3_0.conda + hash: + md5: cc168b7fcf4a70b37fbdb750ae0828b8 + sha256: 729ef0b3f7cfac353d5bacfcf6dd492cf937f0c534234fc625923268e35215df + category: main + optional: false +- name: jsonschema-specifications + version: 2025.9.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + referencing: '>=0.31.0' + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda + hash: + md5: 439cd0f567d697b20a8f45cb70a1005a + sha256: 0a4f3b132f0faca10c89fdf3b60e15abb62ded6fa80aebfc007d05965192aa04 + category: main + optional: false +- name: kernel-headers_linux-64 + version: 6.12.0 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-6.12.0-he073ed8_6.conda + hash: + md5: ad5a27ffc9350af2624927dd79edf2be + sha256: 73b11f31db6c9ebe63d900334fa4f46859aa1ddd8f37cfa5f25a043e0a59253c + category: main + optional: false +- name: kernel-headers_linux-aarch64 + version: 4.18.0 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-aarch64-4.18.0-h05a177a_9.conda + hash: + md5: bb3b7cad9005f2cbf9d169fb30263f3e + sha256: 5d224bf4df9bac24e69de41897c53756108c5271a0e5d2d2f66fd4e2fbc1d84b + category: main + optional: false +- name: keyutils + version: 1.6.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/keyutils-1.6.3-h5bc82ec_1.conda + hash: + md5: 6d9be306ecb8dfc9ff46f02cb367d5c2 + sha256: 3999b1472f1e549a0b766428e2823abf20626aac5314b474c9b76bf6eb679def + category: main + optional: false +- name: kiwisolver + version: 1.5.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/kiwisolver-1.5.1-py310h4bba746_0.conda + hash: + md5: 7d16002faf65c798eaa699ca584d71a6 + sha256: e33d50b81721704343f52843a78f0835acc6b1bd5749f5d7a326fd8ced98a36d + category: main + optional: false +- name: kombu + version: 5.6.2 + manager: conda + platform: linux-aarch64 + dependencies: + amqp: '>=5.1.1,<6.0.0' + boto3: '>=1.26.143' + packaging: '' + python: '>=3.10' + python-tzdata: '>=2025.2' + vine: 5.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/kombu-5.6.2-pyha770c72_0.conda + hash: + md5: 2835b89f91d340c6aecf900779721540 + sha256: 03c6aef64ff9ffb06592de7a99e19922649ca193b7f6b3beadedbd8dc058a38b + category: main + optional: false +- name: krb5 + version: 1.22.2 + manager: conda + platform: linux-aarch64 + dependencies: + keyutils: '>=1.6.3,<2.0a0' + libedit: '>=3.1.20250104,<3.2.0a0,>=3.1.20250104,<4.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/krb5-1.22.2-h095d8e5_2.conda + hash: + md5: a4d0da122ba952abf76981e76d0d283c + sha256: 601d79af94d9562ba70e2d4947034ba159aae293a3c860855335a7c76c14400e + category: main + optional: false +- name: lazy-object-proxy + version: 1.12.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/lazy-object-proxy-1.12.0-py310hc1e03d5_4.conda + hash: + md5: 818a1ad26d25e03581172b0d31a58211 + sha256: 767361ae9678aa9540f8c922207af2bba4945f7100f14ad179c5ed2f36bf3f4e + category: main + optional: false +- name: lcms2 + version: 2.19.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libjpeg-turbo: '>=3.2.0,<4.0a0' + libtiff: '>=4.7.2,<4.8.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/lcms2-2.19.1-h137c43b_2.conda + hash: + md5: 58bc4448c604ca4a3e61ddab4ec333d9 + sha256: 850c544762cc019c9bd75767f30cd30f9c8fab313021b97f53b3a218f1f35668 + category: main + optional: false +- name: ld_impl_linux-aarch64 + version: 2.46.1 + manager: conda + platform: linux-aarch64 + dependencies: + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.46.1-default_h1979696_102.conda + hash: + md5: 489444d0acb2a579d2a002d85a08c059 + sha256: 2c4901f4227b0850328ed0c69f958b30ad2cd18982f7a31c7c1f911827004d08 + category: main + optional: false +- name: lerc + version: 4.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/lerc-4.2.0-h52b7260_0.conda + hash: + md5: 9fcfe6be4f752b72be7abc69842ca396 + sha256: 0176a71d64fcb5aec43c9e8ab4ae72faa6c6b0b1cda8f40b65e19429ce13c84d + category: main + optional: false +- name: libabseil + version: '20260526.0' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libabseil-20260526.0-cxx17_hc5e897d_2.conda + hash: + md5: 46a7ae7c040e95909dd43808414747fb + sha256: 2f21286b1c8c978c629cf2fd18c6715f15c5c57fa6d9283587b8f66290bfbfc3 + category: main + optional: false +- name: libarchive + version: 3.8.9 + manager: conda + platform: linux-aarch64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libgcc: '>=15' + liblzma: '>=5.8.3,<6.0a0' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + lz4-c: '>=1.10.0,<1.11.0a0' + lzo: '>=2.10,<3.0a0' + openssl: '>=3.5.7,<4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libarchive-3.8.9-gpl_h1204ebd_101.conda + hash: + md5: e6866e2cdd76f4746a987af670a1613c + sha256: 5f6a00f0fdefd023b45d9688d3b74e73f9e996a2ae73d976bf8215194d8c183f + category: main + optional: false +- name: libblas + version: 3.11.0 + manager: conda + platform: linux-aarch64 + dependencies: + libopenblas: '>=0.3.34,<0.3.35.0a0,>=0.3.34,<1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libblas-3.11.0-10_haddc8a3_openblas.conda + hash: + md5: 0aef6d16472137e6b556ecc2208194f6 + sha256: d5d9c5583906142da757b21348264469f18a66c2250dffc66738632d51049339 + category: main + optional: false +- name: libbrotlicommon + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlicommon-1.2.0-h384ecca_3.conda + hash: + md5: d0d4029ed32776dce412334e0f1c6160 + sha256: e81f38af3387620c4afb3769e668ecfb5bf9426bd9fd9db8a70d071ca4477b1f + category: main + optional: false +- name: libbrotlidec + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libbrotlicommon: 1.2.0 + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlidec-1.2.0-h011f0d3_3.conda + hash: + md5: 8c25aeafcbf1629c1e39ee7c03e77c93 + sha256: a2e41f51d4f05bd96b1148c35882a880e85f2b316f238a32d657d908b928aae6 + category: main + optional: false +- name: libbrotlienc + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libbrotlicommon: 1.2.0 + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlienc-1.2.0-hb247b97_3.conda + hash: + md5: 35f63f9c1202a85c121dbe40657612af + sha256: 4173e5c4d42bf08a9fc751914122acb87f6a565563cc11e8e896f2fa0dcd2ce9 + category: main + optional: false +- name: libcblas + version: 3.11.0 + manager: conda + platform: linux-aarch64 + dependencies: + libblas: 3.11.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libcblas-3.11.0-10_hd72aa62_openblas.conda + hash: + md5: 3d2c6a20ca24a60c5c4604a08940b3ae + sha256: 6a39d1f7de1fda182503896490448f0845bcf4e9420bec50afd9b32769506c3e + category: main + optional: false +- name: libclang-cpp23.1 + version: 23.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libclang-cpp23.1-23.1.0-default_h01b09c7_1.conda + hash: + md5: 56f6878b64c009ce070e3c730b1593ca + sha256: 21f4918d29301a0e3449b1c18c2683246e9e4fe27bbe239c79ce3628cff8681e + category: main + optional: false +- name: libclang13 + version: 23.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + libclang-cpp23.1: ==23.1.0 + libgcc: '>=15' + libllvm23: '>=23.1.0,<23.2.0a0' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libclang13-23.1.0-default_h2e1c083_1.conda + hash: + md5: d970e8406218b8aa6b5e356d75a4b177 + sha256: 703dad819f7f58630d7c4827cdf1cee1ee5ef4779983c0c540e94cd7ba07c0ca + category: main + optional: false +- name: libcups + version: 2.3.3 + manager: conda + platform: linux-aarch64 + dependencies: + krb5: '>=1.22.2,<1.23.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + libzlib: '>=1.3.1,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libcups-2.3.3-h4f2b762_6.conda + hash: + md5: 67828c963b17db7dc989fe5d509ef04a + sha256: 41b04f995c9f63af8c4065a35931e46cbc2fdd6b9bf7e4c19f90d53cbb2bc8e5 + category: main + optional: false +- name: libcurl + version: 8.22.0 + manager: conda + platform: linux-aarch64 + dependencies: + krb5: '>=1.22.2,<1.23.0a0' + libgcc: '>=15' + libnghttp2: '>=1.68.1,<2.0a0' + libpsl: '>=0.23.1,<0.24.0a0' + libssh2: '>=1.11.1,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.8,<4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.22.0-h86273da_0.conda + hash: + md5: d79a5b16c3aaff5269f9118aa1d9f1ba + sha256: 8634a43ca7161d49b94098d8d27f32040ccf19b5227b37d05826ec8b5729b3c4 + category: main + optional: false +- name: libdeflate + version: '1.25' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libdeflate-1.25-hfa851ae_1.conda + hash: + md5: 8cdf7f7e4908c9b2cf50c58966f2ff64 + sha256: 4cb3da1d4ce7540604219d2a016253777da66c1a710c41557bc708aae7f54a75 + category: main + optional: false +- name: libdrm + version: 2.4.129 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libpciaccess: '>=0.19,<0.20.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libdrm-2.4.129-h5bc82ec_0.conda + hash: + md5: 3f34f401fa04c0ad38ff15b046c20596 + sha256: 2a0ee6c7648de5a5b7de2b861aa1aba01c860218f8b97af63ac6c81b0175b960 + category: main + optional: false +- name: libdwarf + version: 2.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libzlib: '>=1.3.1,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libdwarf-2.1.0-h208068f_1.conda + hash: + md5: 296388583eaa9195d3fe9d15eca6a93b + sha256: 7f0d3ec20830f7febc389b6bfe242c90868abef0badbfb755423c1fb5540d67f + category: main + optional: false +- name: libdwarf-dev + version: 2.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + libdwarf: 2.1.0 + libgcc: '>=14' + libzlib: '>=1.3.1,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libdwarf-dev-2.1.0-h208068f_1.conda + hash: + md5: 6cbf60f562050d09e0779e35b295988a + sha256: 6c5361da2ac09e9072d2b9364c99c0fa01e8838e79497b2bf792923049c3a49f + category: main + optional: false +- name: libedit + version: 3.1.20250104 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + ncurses: '>=6.6,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20250104-pl5321hc48eb74_1.conda + hash: + md5: 6e06eb2c9fda76721699bcdd759b9c60 + sha256: 2d7218da06f1121619335bff25a2669df810dee90d2eb65b17f8b2e6b1c0d372 + category: main + optional: false +- name: libegl + version: 1.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libglvnd: 1.7.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libegl-1.7.0-hd24410f_5.conda + hash: + md5: 911931482b914643d0a602e0d7a45813 + sha256: 8d80ccab2fd622ae38931691c27952e56a5d3007ff920efd9f3ff52e2c81a251 + category: main + optional: false +- name: libegl-devel + version: 1.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libegl: 1.7.0 + libgl-devel: 1.7.0 + xorg-libx11: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libegl-devel-1.7.0-hd24410f_5.conda + hash: + md5: 51bc749a4436ed56a8843f78940c5f49 + sha256: ae8dcab97d4905754cb70ecc345dc06df6386df0a1f1d578ec94bb987db2a4d6 + category: main + optional: false +- name: libev + version: '4.33' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libev-4.33-h80f16a2_3.conda + hash: + md5: f679b30a53d410d0b5ae0cb8f5b7397e + sha256: 4475f79a020e9ff2a5a0308c48cb2970a25d55c3dd724a97ab28bfac3be6cd49 + category: main + optional: false +- name: libexpat + version: 2.8.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.8.1-hfae3067_1.conda + hash: + md5: fac3b65a605cd253037fdf3daf2de8d9 + sha256: 20a5726bc8705d91437c9e6ef83b30da64a1719b869656d20a1ee818333ea5ac + category: main + optional: false +- name: libfdt + version: 1.7.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libfdt-1.7.2-h80f16a2_6.conda + hash: + md5: bd5b424d96f88b76b7c5109e429e71d7 + sha256: 4bb32c46c3f9e3a5bcfa8dde108a21b69eff38bb9b21babf32d9057cd8768dca + category: main + optional: false +- name: libffi + version: 3.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.7.0-hdaad0be_1.conda + hash: + md5: f9e5b3e446b526b34a7e25ecec08efd9 + sha256: b1879d78b622c5f4817fd6d77fe7ae3ab7b501542e3c2f4ac77198c54c62c189 + category: main + optional: false +- name: libfreetype + version: 2.14.3 + manager: conda + platform: linux-aarch64 + dependencies: + libfreetype6: '>=2.14.3' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libfreetype-2.14.3-h8af1aa0_2.conda + hash: + md5: 9d7e520ae06d08185ef2d500ff116d30 + sha256: 1e6ba895a397ee4fc1646f21000903ad13d93e9e6d9a7fb4dcef1baa837970bf + category: main + optional: false +- name: libfreetype6 + version: 2.14.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libpng: '>=1.6.58,<1.7.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libfreetype6-2.14.3-h9cc7050_2.conda + hash: + md5: f7ee9de31f98281a3e451e496fbee3b5 + sha256: d29eac57042f2362d4e45c63a4a78d64a30e5284b1da29b99e0c1526671dd4c3 + category: main + optional: false +- name: libgcc + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + _openmp_mutex: '>=4.5' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-16.2.0-h205dda4_4.conda + hash: + md5: 2c81f8ce7bda35c7a88c4c044452a97c + sha256: a132d78d49d0fa0a08e9e2a77528a12d974e8e123bc32895c0bd0a737b8abd89 + category: main + optional: false +- name: libgcc-devel_linux-aarch64 + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-aarch64-15.3.0-h6e7e4e0_104.conda + hash: + md5: 4d59c62b87531bb11393daeb4b750c43 + sha256: 7082eeeef07bba617b778348267956db5d0bf84eb5f1b5fe6ada9fee4a6fad85 + category: main + optional: false +- name: libgcc-ng + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-16.2.0-he9431aa_4.conda + hash: + md5: ad0ce2f7fb2e61219df1561115864483 + sha256: e8643044040dd8aa88aee26c19e6b78bbbe0ce8a4d04b1c77ee53c71a1efd814 + category: main + optional: false +- name: libgcrypt-lib + version: 1.12.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libgpg-error: '>=1.61,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcrypt-lib-1.12.2-h5bc82ec_2.conda + hash: + md5: d8b149d289afc25f6cdca7bc8a6f94bf + sha256: 26f2981255e575a47c1fb4bcd0f869d0fadfa3ab44a0ab005fe3887f75e7a154 + category: main + optional: false +- name: libgd + version: 2.3.3 + manager: conda + platform: linux-aarch64 + dependencies: + fontconfig: '>=2.15.0,<3.0a0' + fonts-conda-ecosystem: '' + icu: '>=78.1,<79.0a0' + libexpat: '>=2.7.3,<3.0a0' + libfreetype: '>=2.14.1' + libfreetype6: '>=2.14.1' + libgcc: '>=14' + libjpeg-turbo: '>=3.1.2,<4.0a0' + libpng: '>=1.6.53,<1.7.0a0' + libtiff: '>=4.7.1,<4.8.0a0' + libwebp-base: '>=1.6.0,<2.0a0' + libzlib: '>=1.3.1,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgd-2.3.3-h88aa843_12.conda + hash: + md5: b4c9083a19a45047173f380624c7e5f3 + sha256: 8b7dfd29a8ce42d28c47a06dcaa7c21f6dad751b72d2352668d680b6ec951630 + category: main + optional: false +- name: libgfortran + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgfortran5: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran-16.2.0-he9431aa_4.conda + hash: + md5: 9370835617c4a9c7265fd34e92887bfa + sha256: 0052421483b466cf0d807cfae679a1f5604466ab366bc8416b531fb69228069c + category: main + optional: false +- name: libgfortran5 + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=16.2.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran5-16.2.0-hc864f27_4.conda + hash: + md5: 3d9b36e26eb91cec10459cf8d6e4dbb4 + sha256: 79074bbd26f70298321bc449748a620240ae48f32d656a834691c150b4fa6424 + category: main + optional: false +- name: libgirepository + version: 1.86.0 + manager: conda + platform: linux-aarch64 + dependencies: + cairo: '>=1.18.4,<2.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgirepository-1.86.0-hb5ad8ab_2.conda + hash: + md5: 46735a45a51e5bb24fde15f4d9274278 + sha256: 48c09c3c1b6239fbf273486497fb12eec0d8e490b5f5c91b1ded996cc751fb01 + category: main + optional: false +- name: libgl + version: 1.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libglvnd: 1.7.0 + libglx: 1.7.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgl-1.7.0-hd24410f_5.conda + hash: + md5: 643cbfb061e49e6608752d4892c98b13 + sha256: f1814f83ebb510cd51147fa1578b7c77eaefcca3b1ce5e32c48b62c114e39de6 + category: main + optional: false +- name: libgl-devel + version: 1.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgl: 1.7.0 + libglx-devel: 1.7.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgl-devel-1.7.0-hd24410f_5.conda + hash: + md5: 68857c172c3f6dba0afd52bc187a850e + sha256: 898b087c28da9cc52e1d1d31d941f12f5cb0810d5db50d7c2f14ff568473f8c7 + category: main + optional: false +- name: libglib + version: 2.88.3 + manager: conda + platform: linux-aarch64 + dependencies: + libffi: '>=3.7.0,<3.8.0a0' + libgcc: '>=15' + libiconv: '>=1.18,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + pcre2: '>=10.47,<10.48.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.88.3-hb514e8e_3.conda + hash: + md5: 18837ca7480048a942c7404a36883b08 + sha256: 90ffb44655cc8ab1d4566ae77be09f887760d859c24358ee926edd56cbdc2e42 + category: main + optional: false +- name: libglvnd + version: 1.7.0 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglvnd-1.7.0-hd24410f_5.conda + hash: + md5: f1b72cbc4b7096fc43e7e81cf6829763 + sha256: 3d9447104ba1611cffbef1ce209a07f516db2eba0ed76d5af84fc344549b1fa1 + category: main + optional: false +- name: libglx + version: 1.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libglvnd: 1.7.0 + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglx-1.7.0-hd24410f_5.conda + hash: + md5: 67b3984e1892dc37d604e841cfd755d7 + sha256: 4440c7ae251efa83bb7bc0d3fd25ba901640cc712b1284c75d7b8333e1c4b62e + category: main + optional: false +- name: libglx-devel + version: 1.7.0 + manager: conda + platform: linux-aarch64 + dependencies: + libglx: 1.7.0 + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-xorgproto: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglx-devel-1.7.0-hd24410f_5.conda + hash: + md5: 7081f55f8ce4a6dd9971c58716b36a79 + sha256: 5dcc18e1d8985fca5357df1da7f484bb9816ad4dfbf37f52e41e50c7dd2ac04e + category: main + optional: false +- name: libgomp + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-16.2.0-h8acb6b2_4.conda + hash: + md5: 727c19b26cd43140e4a90a6f8f1cc31a + sha256: 6d216e6dc9a158b920f6e0c1dfdd6d77575bf79420dadf85d64576298ecb4503 + category: main + optional: false +- name: libgpg-error + version: '1.61' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgpg-error-1.61-h7ac5ae9_2.conda + hash: + md5: 64310a77aae39edde7f0978fc1b3774e + sha256: df4c43ae4003100feea4d96000fcfff57f05832b2aa5b9385bba05cb33fa776f + category: main + optional: false +- name: libharfbuzz + version: 14.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + cairo: '>=1.18.4,<2.0a0' + graphite2: '>=1.3.15,<2.0a0' + icu: '>=78.3,<79.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libharfbuzz-14.4.0-h8f7ccb3_1.conda + hash: + md5: 5a2dfb975c0d5a2598e92f695b737d01 + sha256: 7a27b4011455fef1bbad02f815aaac125348a3a9ac229806dba7befead38376c + category: main + optional: false +- name: libharfbuzz-devel + version: 14.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + cairo: '>=1.18.4,<2.0a0' + freetype: '' + graphite2: '>=1.3.15,<2.0a0' + icu: '>=78.3,<79.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libharfbuzz: 14.4.0 + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libharfbuzz-devel-14.4.0-h8f7ccb3_1.conda + hash: + md5: e1caaf33a6e84003c37b359dbf599c72 + sha256: 964cedaf456f8cf4b589f0e05f314ee22494cd46d64a676fd525ff3e2ef41ef5 + category: main + optional: false +- name: libhiredis + version: 1.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + libstdcxx: '>=13' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libhiredis-1.3.0-h5ad3122_1.conda + hash: + md5: c11818b31f7c054ce220041b2459aacb + sha256: ea5b743b2b76f2cfc6cc6160dd2a07ae14111844d3c32222f97072388fee1852 + category: main + optional: false +- name: libiconv + version: '1.18' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.18-h1ea5142_3.conda + hash: + md5: 951b54a36388613a99820b33b997f690 + sha256: d22c666eb887afd2119aac2110e23a0e817e9391bda99293421f7c46dab1564c + category: main + optional: false +- name: libidn2 + version: 2.3.8 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libunistring: '>=0,<1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libidn2-2.3.8-h99ff5a0_1.conda + hash: + md5: 8b950427dd67ee2e967604f7e448c383 + sha256: 24a063e235affa6a3232c7b66057c34450376204ada660823715353f57a0465f + category: main + optional: false +- name: libjpeg-turbo + version: 3.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libjpeg-turbo-3.2.0-he30d5cf_1.conda + hash: + md5: 8730e25aa7eab80ca86dfb9a6bedf1ba + sha256: c5626ea672be2e59784f9be20dc8ceb7961b8ab0053651ded2dffec64e4b8245 + category: main + optional: false +- name: liblapack + version: 3.11.0 + manager: conda + platform: linux-aarch64 + dependencies: + libblas: 3.11.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/liblapack-3.11.0-10_h88aeb00_openblas.conda + hash: + md5: b4fa79baea29b5217a9848a2c24cad53 + sha256: 87e604f065f5dd363ba2bb9fb5230b7d7b2de6718b5e09a864b061666b3c5c1f + category: main + optional: false +- name: libllvm23 + version: 23.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm23-23.1.0-h680871c_0.conda + hash: + md5: 0bf6e3da8a7c36f713a762771f56ab6e + sha256: 0565cf53224b6fde27f6ad63d0386f123ad9f4bce8b72ce3fa37bee597163d82 + category: main + optional: false +- name: liblzma + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/liblzma-5.8.3-he30d5cf_1.conda + hash: + md5: e0e6411a60d00186eec7c73f4118ab67 + sha256: f760669fd1cea27f689f411c0d5488e26ce50e382c9b63e4ad348f959850124a + category: main + optional: false +- name: liblzma-devel + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + liblzma: 5.8.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/liblzma-devel-5.8.3-he30d5cf_1.conda + hash: + md5: ab7c85535f5924315a7528efeb2011a0 + sha256: f4e81e49d092f95e68e25c7dcca6643c7cfa23c9984b5d39a7e749c3426103e2 + category: main + optional: false +- name: libmagic + version: '5.48' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmagic-5.48-h1abf092_1.conda + hash: + md5: 0ca3ce44f5dcb86ea55dce3b811993b1 + sha256: 2c4b8e2449a0a93d71818785da4b00e8a7e86d7db559fd711a424947507e8c6f + category: main + optional: false +- name: libmamba + version: 2.9.0 + manager: conda + platform: linux-aarch64 + dependencies: + cpp-expected: '>=1.3.1,<1.3.2.0a0' + fmt: '>=12.1.0,<12.2.0a0' + libarchive: '>=3.8.9,<3.9.0a0' + libcurl: '>=8.21.0,<9.0a0' + libgcc: '>=15' + libmsgpack-c: '>=6.1.0,<7.0a0' + libsolv: '>=0.7.39,<0.8.0a0' + libstdcxx: '>=15' + nlohmann_json-abi: 3.12.0 + openssl: '>=3.5.8,<4.0a0' + reproc: '>=14.2.8.post0,<14.3.0a0' + reproc-cpp: '>=14.2.8.post0,<14.3.0a0' + simdjson: '>=4.6.9,<4.7.0a0' + spdlog: '>=1.17.0,<1.18.0a0' + yaml-cpp: '>=0.8.0,<0.9.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-2.9.0-py314hfffb576_0.conda + hash: + md5: 96e0aa2f5e64aa522fd1c7190fa1d9a3 + sha256: 8002df3a11fbf4e458388ab77623d4c31c1710e40f4d8b459cd6f08c3837a452 + category: main + optional: false +- name: libmamba-spdlog + version: 2.9.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libmamba: '>=2.9.0,<2.10.0a0' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-spdlog-2.9.0-he31237c_0.conda + hash: + md5: 59b89380e754afee4fd8d654283ba77a + sha256: 1f18c41f802d782139a3010e28cf8ab600e8510734b2927ceaad394a8484c376 + category: main + optional: false +- name: libmambapy + version: 2.9.0 + manager: conda + platform: linux-aarch64 + dependencies: + fmt: '>=12.1.0,<12.2.0a0' + libgcc: '>=15' + libmamba: ==2.9.0,>=2.9.0,<2.10.0a0 + libmamba-spdlog: ==2.9.0 + libstdcxx: '>=15' + nlohmann_json-abi: 3.12.0 + openssl: '>=3.5.8,<4.0a0' + pybind11-abi: '11' + python: 3.10.* + python_abi: 3.10.* + spdlog: '>=1.17.0,<1.18.0a0' + yaml-cpp: '>=0.8.0,<0.9.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-2.9.0-py310hf44aaeb_0.conda + hash: + md5: afcaa30aaf5d0ba160d329b60315ad3d + sha256: 3d3c6580670b3adbf8de9181a622285ce5ef478fed9c75be3dfdadff26d390b9 + category: main + optional: false +- name: libmsgpack-c + version: 6.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmsgpack-c-6.1.0-h7ac5ae9_7.conda + hash: + md5: f2db2171a033d3293e053142227e9df7 + sha256: 44b4b6a6c14e92ac5b268f202444210b679e8cb5a8406fa43f8b00407094e219 + category: main + optional: false +- name: libnghttp2 + version: 1.68.1 + manager: conda + platform: linux-aarch64 + dependencies: + c-ares: '>=1.34.8,<2.0a0' + libev: '>=4.33,<4.34.0a0,>=4.33,<5.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.68.1-ha4b982d_1.conda + hash: + md5: ff4b2b7c169c438bf648fb14f369c3b9 + sha256: 0c28d734512fa2c66a232b2f3968eae7124dbd6ad42c594c752f1d08dfb86195 + category: main + optional: false +- name: libnsl + version: 2.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h86ecc28_1.conda + hash: + md5: d5d58b2dc3e57073fe22303f5fed4db7 + sha256: c0dc4d84198e3eef1f37321299e48e2754ca83fd12e6284754e3cb231357c3a5 + category: main + optional: false +- name: libnuma + version: 2.0.18 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnuma-2.0.18-he30d5cf_4.conda + hash: + md5: 2405fc1bf299396f0bd6716147ab4d57 + sha256: 53d09da65f580ec283cfa7ec0dfb3ae93000d69726b87b781da0d05ed55f7292 + category: main + optional: false +- name: libopenblas + version: 0.3.34 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libgfortran: '' + libgfortran5: '>=15.3.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libopenblas-0.3.34-pthreads_hdd72021_1.conda + hash: + md5: 40c4c881932f8cee30eb9a91dd5c611f + sha256: b1c7dfbdca5c2ffe68ee20f04d1f4b2ad1e8757e2bd82a3e138179d990752408 + category: main + optional: false +- name: libpciaccess + version: '0.19' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libpciaccess-0.19-he30d5cf_1.conda + hash: + md5: b1cb4a94819281ecb0391438e0be505c + sha256: 2161dacebeb075187f20ba35529297e7d4f6d456a89c4474062782436dbe3735 + category: main + optional: false +- name: libpng + version: 1.6.58 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libpng-1.6.58-hf9b7768_1.conda + hash: + md5: 308ecb7ad60637dc5e95558ab583c5ba + sha256: bd6e423b08342969689d8893c965aad78244b29724da2168aef3634fa0e1ebd7 + category: main + optional: false +- name: libprotobuf + version: 7.35.1 + manager: conda + platform: linux-aarch64 + dependencies: + libabseil: '*,>=20260526.0,<20260527.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libprotobuf-7.35.1-h809b94e_3.conda + hash: + md5: 58dfb4ac83e4599c18406b88a1c458c8 + sha256: 7f085a6a02c3dac7194f8cb44ecdfedab7dcc3c8d86b29846e774a4316d9ec88 + category: main + optional: false +- name: libpsl + version: 0.23.1 + manager: conda + platform: linux-aarch64 + dependencies: + icu: '>=78.3,<79.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libpsl-0.23.1-hb8431ed_1.conda + hash: + md5: 5ab41e5e70b78eb00ef62cdaa35cd86f + sha256: 757f79c182ac3080cf416acd91c7643b8074b8b2e5c1eba0ffc5a16897feb84b + category: main + optional: false +- name: librsvg + version: 2.62.3 + manager: conda + platform: linux-aarch64 + dependencies: + cairo: '>=1.18.4,<2.0a0' + fontconfig: '>=2.18.0,<3.0a0' + fonts-conda-ecosystem: '' + gdk-pixbuf: '>=2.44.6,<3.0a0' + harfbuzz: '>=14.2.0' + libgcc: '>=14' + libglib: '>=2.88.1,<3.0a0' + libxml2-16: '>=2.14.6' + pango: '>=1.56.4,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/librsvg-2.62.3-hf685517_0.conda + hash: + md5: 38209cc04b3e3e5624c534bc703e6939 + sha256: c95ac70755863d8522c1115b54afca86148ea25366b616aa84c993c2ca54b9ce + category: main + optional: false +- name: libsanitizer + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15.3.0' + libstdcxx: '>=15.3.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsanitizer-15.3.0-he541324_4.conda + hash: + md5: 82801a6523a59e75c3ca663a80ae810e + sha256: fa1493b8ddd58f40ce4ef688a30cf93c0faf736f09821465e83d51d05475cb5c + category: main + optional: false +- name: libseccomp + version: 2.6.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libseccomp-2.6.1-h5bc82ec_2.conda + hash: + md5: 74b56a11445269aefffc45e2d47c3ccc + sha256: d168424da89af78e14412c8a89388ef570e874c901e5de2903154eea95ea31d8 + category: main + optional: false +- name: libsecret + version: 0.21.7 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + libgcrypt-lib: '>=1.11.0,<2.0a0' + libglib: '>=2.82.2,<3.0a0' + libzlib: '>=1.3.1,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsecret-0.21.7-h54dc0a4_0.conda + hash: + md5: f521d81b393a7202770df4b0bdd5f193 + sha256: 6f39b43d5f7bc25790664c3c71fa7065153f77871a0692906a91cca0cf85bf0d + category: main + optional: false +- name: libsolv + version: 0.7.39 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsolv-0.7.39-h6e0bd25_1.conda + hash: + md5: d34592f8e14023ab063c19f6c70d2b35 + sha256: a6a28f9b2bd6f629a5b581f2f767c0973cc222defeab47743ac6aa470dcffe75 + category: main + optional: false +- name: libsqlite + version: 3.53.4 + manager: conda + platform: linux-aarch64 + dependencies: + icu: '>=78.3,<79.0a0' + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.53.4-h399dd60_1.conda + hash: + md5: 27e16aa1f45c787aa181549be6f209f4 + sha256: fae75e68e9dbc3c90dcf93d4bae6315f1330c95aaf1404a721e8468266c23475 + category: main + optional: false +- name: libssh2 + version: 1.11.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.1-h7572e3e_1.conda + hash: + md5: 833be3f226277d894df3c7a7131d9532 + sha256: f6fef76c1c8899d7976030871b8cd8016b0a306d2b8519834cd6491d6a42fb82 + category: main + optional: false +- name: libstdcxx + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-16.2.0-hef695bb_4.conda + hash: + md5: 47b6b37e291c14f39bd95f9d340c45f5 + sha256: 84d2b667bce6549325243235952110b1849ff2dfd7091a1479108930b88057d5 + category: main + optional: false +- name: libstdcxx-devel_linux-aarch64 + version: 15.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-aarch64-15.3.0-h0e8df58_104.conda + hash: + md5: 248aa5cadf9dc07c7c893b3acde3da1b + sha256: 648173a13da532b6599844d49243d40ba9baec655f7ddc5016cc567c89080a87 + category: main + optional: false +- name: libstdcxx-ng + version: 16.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libstdcxx: 16.2.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-16.2.0-hdbbeba8_4.conda + hash: + md5: 8d6c3e6616f4e25d05684fbd50c39885 + sha256: 0f962247a60d3e0ae07b399063ac637a44fbdcb95c8602e5d2920c6612e53f01 + category: main + optional: false +- name: libtiff + version: 4.7.2 + manager: conda + platform: linux-aarch64 + dependencies: + lerc: '>=4.2.0,<5.0a0' + libdeflate: '>=1.25,<1.26.0a0' + libgcc: '>=15' + libjpeg-turbo: '>=3.2.0,<4.0a0' + liblzma: '>=5.8.3,<6.0a0' + libstdcxx: '>=15' + libwebp-base: '>=1.6.0,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libtiff-4.7.2-h45f9f85_1.conda + hash: + md5: c6f35f8f9695623b9055341bc280a642 + sha256: fa6daf2301dee912def3e74344fae792a8fc2bbbf7880dedee0e93ee8fb98fc5 + category: main + optional: false +- name: libunistring + version: 0.9.10 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=9.3.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libunistring-0.9.10-hf897c2e_0.tar.bz2 + hash: + md5: 7c68521243dc20afba4c4c05eb09586e + sha256: 03acebd5a01a255fe40d47f941c6cab4dc7829206d86d990b0c88cf0ff66e646 + category: main + optional: false +- name: libusb1 + version: 2.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.4' + url: https://conda.anaconda.org/conda-forge/noarch/libusb1-2.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 6b0e0b484a96af5101026533bef1f93b + sha256: df8809d4eadd5849452cfb2bfc26d4c967159d4c00865c338c7b7817ce3bcb1d + category: main + optional: false +- name: libuuid + version: 2.42.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.42.3-hd6fdeab_0.conda + hash: + md5: b759892402ee563731fbbb43860cae00 + sha256: 3530c720c8b9dbb5aba0712d77fbb158e98d7a533ba1cf4968d42a98c41b7f24 + category: main + optional: false +- name: libuv + version: 1.52.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.52.1-h80f16a2_1.conda + hash: + md5: 8e2136432f02841b9d8b848045f66d7d + sha256: 52f4bc6e340bde53bfe38e45f6cb1080a2d5f8891da9a647087f7cc6a6edfc22 + category: main + optional: false +- name: libwebp-base + version: 1.6.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libwebp-base-1.6.0-ha2e29f5_1.conda + hash: + md5: 548943c39851543734ce0d20eeb469b0 + sha256: 4c64e6843d64876d054a28ecbab70abdf145da3c2cbdaa4a43db26cdf0fd760b + category: main + optional: false +- name: libxcb + version: 1.17.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + pthread-stubs: '' + xorg-libxau: '>=1.0.12,<2.0a0' + xorg-libxdmcp: '>=1.1.5,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcb-1.17.0-h3f04742_2.conda + hash: + md5: fa9fad28d04af5225221613038388d95 + sha256: bb1d9aaa885de73c504bd887e1841ad8e9d5b8432bd370b02eaf33067a001dc3 + category: main + optional: false +- name: libxcrypt + version: 4.4.38 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.38-h80f16a2_0.conda + hash: + md5: b1a5cb7ff2d8f5911ba1fb6897176098 + sha256: d3514900e2121972e435f7803763c1843dad6709e48aa02a2b47c4d481f83be7 + category: main + optional: false +- name: libxkbcommon + version: 1.13.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + libxcb: '>=1.17.0,<2.0a0' + libxml2: '' + libxml2-16: '>=2.14.6' + xkeyboard-config: '' + xorg-libxau: '>=1.0.12,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxkbcommon-1.13.2-he51e330_1.conda + hash: + md5: a9abdfd661d3bf523244a5488ca0f6a5 + sha256: b196478988b576d324b3343fdcf4972a42647ea0a5c1b02dc77b926a64b8ceb8 + category: main + optional: false +- name: libxml2 + version: 2.15.3 + manager: conda + platform: linux-aarch64 + dependencies: + icu: '>=78.3,<79.0a0' + libgcc: '>=14' + libiconv: '>=1.18,<2.0a0' + liblzma: '>=5.8.3,<6.0a0' + libxml2-16: 2.15.3 + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.15.3-h869d058_1.conda + hash: + md5: da311b13a2af5209b926397cd426f27d + sha256: 8d6c8037f5e0b6cb474f98f876c027b4c3c08a002d2639896a2775acb893f729 + category: main + optional: false +- name: libxml2-16 + version: 2.15.3 + manager: conda + platform: linux-aarch64 + dependencies: + icu: '>=78.3,<79.0a0' + libgcc: '>=14' + libiconv: '>=1.18,<2.0a0' + liblzma: '>=5.8.3,<6.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-16-2.15.3-h79dcc73_1.conda + hash: + md5: 0678aa203ef38d165a611bd81d5ca8f2 + sha256: ddc4e8200b34b6d308f7f7060b326086085ddbc6c003ab8539dd48b3917b1f18 + category: main + optional: false +- name: libzlib + version: 1.3.2 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.2-hdc9db2a_3.conda + hash: + md5: bd534c2fbe56d8c2ea3b2d8f5e12bca8 + sha256: 76efa6cc9d7e6f5ee3bbca0939f64054af2bdfb3c3632531f8e633cf6c2ea41e + category: main + optional: false +- name: lz4-c + version: 1.10.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/lz4-c-1.10.0-hfb11796_2.conda + hash: + md5: 36a6fab65bc51cf71761eb5339d8ea04 + sha256: e8392843a18954fef038f2721fde65c4dbe7693fcd07677e5e74fca85b1a690c + category: main + optional: false +- name: lzo + version: '2.10' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/lzo-2.10-h29ee22c_1003.conda + hash: + md5: c7334d99b22d15d1f4ff9c2454185544 + sha256: 37ef465819e0a28d96a527a536106d21624ada3b15a798a98efd741be25ff4aa + category: main + optional: false +- name: lzop + version: '1.04' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + lzo: '>=2.10,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/lzop-1.04-hc1a2142_4.conda + hash: + md5: a58c4b1c45b8f0d32702b4b4b4adbdae + sha256: fd38c7ce4b0a94271f6d6370494bc2bbf4693b8dd3e2279e5b3dc9b617336538 + category: main + optional: false +- name: m4 + version: 1.4.21 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/m4-1.4.21-he30d5cf_0.conda + hash: + md5: 6d65d5c457d993569eea15ebb54a8d43 + sha256: 1be6425e877ce8c9b52f451c1afde0181c539c1608068f1bf2e60869b993926c + category: main + optional: false +- name: make + version: 4.4.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/make-4.4.1-he30d5cf_3.conda + hash: + md5: 9d82bf3d9bf57d56906354e2ad58204a + sha256: b008fb8ba5c93478dacf36d60eed1b2de341d69773c3f73621d2a9e56f834d9d + category: main + optional: false +- name: markupsafe + version: 3.0.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/markupsafe-3.0.3-py310h3b5aacf_1.conda + hash: + md5: 3a8d4c69d626abcfaede3f89df2599f8 + sha256: 3809439f3f7a28893314ac09aeeb04a7663efcfbb48281f9e65a916d5c7b764a + category: main + optional: false +- name: matplotlib-base + version: 3.10.9 + manager: conda + platform: linux-aarch64 + dependencies: + contourpy: '>=1.0.1' + cycler: '>=0.10' + fonttools: '>=4.22.0' + freetype: '' + kiwisolver: '>=1.3.1' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=14' + libstdcxx: '>=14' + numpy: '>=1.21,<3,>=1.23' + packaging: '>=20.0' + pillow: '>=8' + pyparsing: '>=2.3.1' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python-dateutil: '>=2.7' + python_abi: 3.10.* + qhull: '>=2020.2,<2020.3.0a0' + tk: '>=8.6.13,<8.7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/matplotlib-base-3.10.9-py310hc06f52e_0.conda + hash: + md5: cd8514779f55d9909f4484c3e74ffac3 + sha256: eaca4424eeabed968f401d974bb62709395755218c1da313e3a51f5b1d34f1dc + category: main + optional: false +- name: menuinst + version: 2.5.2 + manager: conda + platform: linux-aarch64 + dependencies: + python: '' + python_abi: 3.10.* + tomli: '' + tomli-w: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.5.2-py310h4af9ecd_2.conda + hash: + md5: 7e0c44f7f39ccfed30c69072ef913d0c + sha256: 45b342b9da21b1557c6c4e6c583bd333865b78cc5a841f0a9c15bc5b4b605024 + category: main + optional: false +- name: mosh + version: 1.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + libabseil: '*,>=20260526.0,<20260527.0a0' + libgcc: '>=14' + libprotobuf: '>=7.35.1,<7.35.2.0a0' + libstdcxx: '>=14' + libzlib: '>=1.3.2,<2.0a0' + ncurses: '>=6.6,<7.0a0' + openssl: '>=3.5.7,<4.0a0' + perl: '>=5.32.1,<5.33.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/mosh-1.4.0-pl5321h6b64c7b_15.conda + hash: + md5: ae596da9da5b29c42a2dbf431373da8e + sha256: dff74158d513f9fae01dc7f16df38d143ba1e4729dea3342e1ca960b583260ff + category: main + optional: false +- name: moto + version: 5.2.3 + manager: conda + platform: linux-aarch64 + dependencies: + aws-xray-sdk: '!=0.96,>=0.93' + boto3: '>=1.9.201' + botocore: '>=1.14.0,!=1.35.45,!=1.35.46' + cryptography: '>=3.3.1' + flask: '!=2.2.0,!=2.2.1' + flask-cors: '' + jinja2: '>=2.10.1' + joserfc: '' + jsondiff: '>=1.1.2' + openapi-spec-validator: '>=0.6.0' + pyparsing: '>=3.0.7' + python: '>=3.10' + python-dateutil: <3.0.0,>=2.1 + requests: '>=2.5' + responses: '>=0.15.0' + werkzeug: '>=0.5,!=2.2.0,!=2.2.1' + xmltodict: '' + url: https://conda.anaconda.org/conda-forge/noarch/moto-5.2.3-pyhcf101f3_0.conda + hash: + md5: 9f1405219205a926b6855a4f39408f1b + sha256: b34b0fb78abddbdd5d11cabe3153aaac5999e108edc9098aff934b5844c8e037 + category: main + optional: false +- name: mpc + version: 1.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + gmp: '>=6.3.0,<7.0a0' + libgcc: '>=15' + mpfr: '>=4.2.2,<5.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/mpc-1.4.0-ha78d887_1.conda + hash: + md5: ecffc6dfabb73b06f400dd8f88736f68 + sha256: 100e20d9b0aa5d4c4ea0318a0d528e6b193de3eb6e5546c7732b27058650f14a + category: main + optional: false +- name: mpfr + version: 4.2.2 + manager: conda + platform: linux-aarch64 + dependencies: + gmp: '>=6.3.0,<7.0a0' + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/mpfr-4.2.2-h4b21e80_1.conda + hash: + md5: df5830aa74e0c5c354ca2f800796493b + sha256: f5ada0dadb169f77a1b71393486f4e39986ed8fe3db3f749d20d1fe1d48a1add + category: main + optional: false +- name: msal + version: 1.38.0 + manager: conda + platform: linux-aarch64 + dependencies: + cryptography: <51,>=2.5 + pyjwt: <3,>=1.0.0 + python: '>=3.10' + requests: <3,>=2.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/msal-1.38.0-pyhd8ed1ab_0.conda + hash: + md5: cbbf049636d640efb2e86c031ce0c63f + sha256: 952377b348b25256389c73767295e92c7d4136982ae6acbcbc6eb5fd681aa189 + category: main + optional: false +- name: msal_extensions + version: 1.3.1 + manager: conda + platform: linux-aarch64 + dependencies: + libsecret: '' + msal: '>=1.29,<2' + portalocker: '>=1.6,<4' + pygobject: '>=3,<4' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/msal_extensions-1.3.1-py310h4c7bcd0_1.conda + hash: + md5: c315d39f6b7ea13ac0700a042cd5cdda + sha256: 59e6420022c01d9cea6b5702109d8558239c72c5c03ab2ed8ac89fdf6c8a61ba + category: main + optional: false +- name: msgpack-python + version: 1.2.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/msgpack-python-1.2.2-py310h4bba746_1.conda + hash: + md5: 6b98e272c56e3662ecdb6e02c2bea6c1 + sha256: 486f891d473f2f534815299e9b50ceda4d5d9efff3a43bfdb17a0e28ebd24640 + category: main + optional: false +- name: multidict + version: 6.7.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + typing-extensions: '>=4.1.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/multidict-6.7.1-py310h2d8da20_0.conda + hash: + md5: ac6a85104ecc7d26ffc1680648803b2c + sha256: 56d7e436569e1f9839b13f56c8cca86b2250f6de55974c053ed0032c7bb60fa9 + category: main + optional: false +- name: munkres + version: 1.1.4 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda + hash: + md5: 37293a85a0f4f77bbd9cf7aaefc62609 + sha256: d09c47c2cf456de5c09fa66d2c3c5035aa1fa228a1983a433c47b876aa16ce90 + category: main + optional: false +- name: mypy + version: 2.3.1 + manager: conda + platform: linux-aarch64 + dependencies: + ast-serialize: '>=0.6.0,<1.0.0' + libgcc: '>=15' + mypy_extensions: '>=1.0.0' + pathspec: '>=1.0.0' + psutil: '>=4.0' + python: '' + python-librt: '>=0.13.0' + python_abi: 3.10.* + tomli: '>=1.1.0' + typing_extensions: '>=4.6.0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/mypy-2.3.1-py310h98242dd_0.conda + hash: + md5: d33f680736108f6e811c561986c10d85 + sha256: 376eda4b1f5f1e7c7fbd735ec09aee30c4078c1b6dba174a5658dbe48e1a0147 + category: main + optional: false +- name: mypy-boto3-s3 + version: 1.43.66 + manager: conda + platform: linux-aarch64 + dependencies: + boto3: '' + python: '>=3.10' + typing-extensions: '' + url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.43.66-pyhcf101f3_0.conda + hash: + md5: 086f12d8b0089984e77ef3b395a83a4b + sha256: c1abf7eaf6bcc5a6c7d5bc80587af9b568bd24b185690f763784c35e6e1a0b3c + category: main + optional: false +- name: mypy_boto3_ec2 + version: 1.43.82 + manager: conda + platform: linux-aarch64 + dependencies: + boto3: '' + python: '>=3.10' + typing-extensions: '' + url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.43.82-pyhcf101f3_0.conda + hash: + md5: 0a72733c626b115808f7b0549013e66c + sha256: 9c39b650c8a6524fda2458ad59838239df429a5218f24c2e24da2732784e4185 + category: main + optional: false +- name: mypy_extensions + version: 1.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda + hash: + md5: e9c622e0d00fa24a6292279af3ab6d06 + sha256: 6ed158e4e5dd8f6a10ad9e525631e35cee8557718f83de7a4e3966b1f772c4b1 + category: main + optional: false +- name: ncurses + version: '6.6' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.6-h2b6f883_1.conda + hash: + md5: c3b4349171ca987ff33a1de61f7b3f96 + sha256: d69a04914139627f0a6bfd19412d6c7f1e37edc896af84a6011e07e8bc1e69fa + category: main + optional: false +- name: networkx + version: 3.4.2 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyh267e887_2.conda + hash: + md5: fd40bf7f7f4bc4b647dc8512053d9873 + sha256: 39625cd0c9747fa5c46a9a90683b8997d8b9649881b3dc88336b13b7bdd60117 + category: main + optional: false +- name: ninja + version: 1.13.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ninja-1.13.2-hdc560ac_1.conda + hash: + md5: dc59c099f43cdffa2b92e5f6248be5b3 + sha256: 63d956ff75ca18235cae1d2e814246b011f9c85765416517ab1270aff55027d6 + category: main + optional: false +- name: nlohmann_json-abi + version: 3.12.0 + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/nlohmann_json-abi-3.12.0-h0f90c79_2.conda + hash: + md5: 849b8852621992c3f3a1901c939a0399 + sha256: 30d271dd63391e053aa3c393c5d93fb622dec5d50a64107171ee28242660608e + category: main + optional: false +- name: numactl + version: 2.0.18 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libnuma: 2.0.18 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/numactl-2.0.18-he30d5cf_4.conda + hash: + md5: e157591fe6e7984c9965fd6dfde268cd + sha256: 57d7addfbeeda184d1689430c61fdad351fb97156eedcecb08a690f669afd983 + category: main + optional: false +- name: numpy + version: 2.2.6 + manager: conda + platform: linux-aarch64 + dependencies: + libblas: '>=3.9.0,<4.0a0' + libcblas: '>=3.9.0,<4.0a0' + libgcc: '>=13' + liblapack: '>=3.9.0,<4.0a0' + libstdcxx: '>=13' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/numpy-2.2.6-py310h6e5608f_0.conda + hash: + md5: 9e9f1f279eb02c41bda162a42861adc0 + sha256: d7234b9c45e4863c7d4c5221c1e91d69b0e0009464bf361c3fea47e64dc4adc2 + category: main + optional: false +- name: oniguruma + version: 6.9.10 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.10-h80f16a2_1.conda + hash: + md5: e8c22ebf0586bc54534856b7cc054200 + sha256: 2de125162dc348c282e807c099226357f3c620e8f707d35a40d52fb5c0014495 + category: main + optional: false +- name: openapi-schema-validator + version: 0.8.0 + manager: conda + platform: linux-aarch64 + dependencies: + jsonschema: '>=4.19.1,<5.0.0' + jsonschema-specifications: '>=2024.10.1' + python: '>=3.10' + referencing: '>=0.37.0,<0.38.0' + rfc3339-validator: '' + url: https://conda.anaconda.org/conda-forge/noarch/openapi-schema-validator-0.8.0-pyhcf101f3_0.conda + hash: + md5: 2f55e7a17f39ed7ddc4272085425a805 + sha256: 8a9e94ff93105530e081afc9ac28ea8654b4ae14f4ab53f9902f3439cc23a776 + category: main + optional: false +- name: openapi-spec-validator + version: 0.8.2 + manager: conda + platform: linux-aarch64 + dependencies: + jsonschema: '>=4.24.0,<4.25.0' + jsonschema-path: '>=0.4.2,<0.5.0' + lazy-object-proxy: '>=1.7.1,<2.0' + openapi-schema-validator: '>=0.7.3,<0.9.0' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/openapi-spec-validator-0.8.2-pyhcf101f3_0.conda + hash: + md5: d689d0c8323e45989a028c5ffda9a9bd + sha256: 666e868b87b50d3c96ab3c65a37a75f2810edd268bfeff62db6929a1033b8e05 + category: main + optional: false +- name: openjdk + version: 20.0.2 + manager: conda + platform: linux-aarch64 + dependencies: + alsa-lib: '>=1.2.10,<1.3.0.0a0' + fontconfig: '>=2.14.2,<3.0a0' + fonts-conda-ecosystem: '' + freetype: '>=2.12.1,<3.0a0' + giflib: '>=5.2.1,<5.3.0a0' + harfbuzz: '>=8.2.1' + lcms2: '>=2.15,<3.0a0' + libcups: '>=2.3.3,<2.4.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-libxext: '>=1.3.4,<2.0a0' + xorg-libxi: '' + xorg-libxrender: '>=0.9.11,<0.10.0a0' + xorg-libxt: '>=1.3.0,<2.0a0' + xorg-libxtst: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/openjdk-20.0.2-hf79f348_2.conda + hash: + md5: df286a9c0b0952def1d0af2f8a35f8b2 + sha256: 8fcae31803f18b0a60527464c29a5efab45dffbe4c8073627f3c078a5ebd7fae + category: main + optional: false +- name: openjpeg + version: 2.5.4 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libpng: '>=1.6.58,<1.7.0a0' + libstdcxx: '>=15' + libtiff: '>=4.7.2,<4.8.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/openjpeg-2.5.4-h504851f_2.conda + hash: + md5: 0aa78cf1350df254c6b19bee89d6ce2b + sha256: d07b190935acda11419bef754a96c2fcdc0171df8c5a34ce81c7883dc195b115 + category: main + optional: false +- name: openssl + version: 3.6.4 + manager: conda + platform: linux-aarch64 + dependencies: + ca-certificates: '' + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.6.4-he6ad1d5_0.conda + hash: + md5: 4aa504e081d16263e90c335df5499b4d + sha256: a70c05a9baba9b1ce17c7e8b9479029372069b3bf402dbf200bc03696c531bed + category: main + optional: false +- name: packaging + version: '26.3' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + hash: + md5: 936687ed80f295a1f5dbcf8bd34c252c + sha256: c432626b16768b8dab228bfb706f7060c2d462a21c516d240f68f2f902b5a044 + category: main + optional: false +- name: pandas + version: 2.2.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + libstdcxx: '>=13' + numpy: '>=1.19,<3,>=1.22.4' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python-dateutil: '>=2.8.1' + python-tzdata: '>=2022a' + python_abi: 3.10.* + pytz: '>=2020.1,<2024.2' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pandas-2.2.3-py310hce852f7_1.conda + hash: + md5: 28fd41b43810af3f3efbe52f11428b03 + sha256: 4dfc71ad8b54c250439e08ff66bc39c1e40124cdb53a6d06a4e7ef029befc44f + category: main + optional: false +- name: pango + version: 1.58.2 + manager: conda + platform: linux-aarch64 + dependencies: + cairo: '>=1.18.4,<2.0a0' + fontconfig: '>=2.18.3,<3.0a0' + fonts-conda-ecosystem: '' + fribidi: '>=1.0.16,<2.0a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libharfbuzz: '>=14.4.0' + libpng: '>=1.6.58,<1.7.0a0' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pango-1.58.2-h03cb6a0_1.conda + hash: + md5: 5651f4f355eaace39927a4206348b534 + sha256: d3d6e0a68277ccd4c31cd5de4269e741bcd4c7ac1003a5ad13dd6151156093ea + category: main + optional: false +- name: patch + version: '2.8' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/patch-2.8-h80f16a2_1003.conda + hash: + md5: 712f662b2c1befd0a4859b8e862a48b3 + sha256: d094342f88c9e61468b7b734ddde9bd661f8ceb69655ab1ea70db6b28fe761a9 + category: main + optional: false +- name: pathable + version: 0.5.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/pathable-0.5.0-pyhcf101f3_0.conda + hash: + md5: 21b330e89f7363ed6c4989a94ff20dea + sha256: 9e933ce3ec69b5944a56b6b0c96fbec07da502a10dd3733601ecf90ad01ba2ae + category: main + optional: false +- name: pathspec + version: 1.1.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + hash: + md5: 11adc78451c998c0fd162584abfa3559 + sha256: 6eaee417d33f298db79bc7185ab1208604c0e6cf51dade34cd513c6f9db9c6f3 + category: main + optional: false +- name: pcre2 + version: '10.47' + manager: conda + platform: linux-aarch64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.47-he574923_1.conda + hash: + md5: c98763518d0a4c9895e515190afb7dec + sha256: 16e5bee11686028d60a495004f99a10c613ada44cc27e330bee18a1b67fb184c + category: main + optional: false +- name: perl + version: 5.32.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=12' + libxcrypt: '>=4.4.36' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/perl-5.32.1-7_h31becfc_perl5.conda + hash: + md5: 17d019cb2a6c72073c344e98e40dfd61 + sha256: d78296134263b5bf476cad838ded65451e7162db756f9997c5d06b08122572ed + category: main + optional: false +- name: pillow + version: 12.3.0 + manager: conda + platform: linux-aarch64 + dependencies: + lcms2: '>=2.19.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=14' + libjpeg-turbo: '>=3.1.4.1,<4.0a0' + libtiff: '>=4.7.1,<4.8.0a0' + libwebp-base: '>=1.6.0,<2.0a0' + libxcb: '>=1.17.0,<2.0a0' + openjpeg: '>=2.5.4,<3.0a0' + python: 3.10.* + python_abi: 3.10.* + tk: '>=8.6.13,<8.7.0a0' + zlib-ng: '>=2.3.3,<2.4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pillow-12.3.0-py310hd8fe58f_0.conda + hash: + md5: d47dc1d81a467eefe66bee2d4f875e74 + sha256: ab6ddeb1824e467c606257c9786442da269296329d9fe2f0e7761ce79884b2f9 + category: main + optional: false +- name: pip + version: 26.2.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10,<3.13.0a0' + setuptools: '' + wheel: '' + url: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.1-pyh8b19718_0.conda + hash: + md5: 77b6cf3b0689d9fc68561df0db9b856d + sha256: c205bae42eb11b364fe3663a817cbcbc20a8ef544c6b2ff6f391013487117259 + category: main + optional: false +- name: pixman + version: 0.46.4 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pixman-0.46.4-h7ac5ae9_3.conda + hash: + md5: c5f34596fc05afb9ccc2782c42bcfcc5 + sha256: ed718d35c744ceef33063b5686f27b4b8d30d4065485e24efafb248658ee83b5 + category: main + optional: false +- name: platformdirs + version: 4.11.5 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.11.5-pyhcf101f3_0.conda + hash: + md5: 152ec36401f710145a7db03475594410 + sha256: 4496a7e0b584a388b3580ab594a4f384696ab7d702282588fd33a7ee38af983c + category: main + optional: false +- name: pluggy + version: 1.6.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda + hash: + md5: d7585b6550ad04c8c5e21097ada2888e + sha256: e14aafa63efa0528ca99ba568eaf506eb55a0371d12e6250aaaa61718d2eb62e + category: main + optional: false +- name: popt + version: '1.19' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libiconv: '>=1.18,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/popt-1.19-hd6fdeab_2.conda + hash: + md5: c9b18cf5a96683b0a0ce48295aba9e60 + sha256: 98747d3d2e1dc668a00c8e632c9ccf245c80e9c5543356c2c19d908214fc60c3 + category: main + optional: false +- name: portalocker + version: 3.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/portalocker-3.2.0-py310hbbe02a8_1.conda + hash: + md5: f0475e9181e1291c2c09c12936bc7bd4 + sha256: 2e6f4a4cae466a0f04b7e1ed4c64283b9a1e3aa96b371c73f991b07a6b8e393e + category: main + optional: false +- name: prompt-toolkit + version: 3.0.51 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + wcwidth: '' + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.51-pyha770c72_0.conda + hash: + md5: d17ae9db4dc594267181bd199bf9a551 + sha256: ebc1bb62ac612af6d40667da266ff723662394c0ca78935340a5b5c14831227b + category: main + optional: false +- name: prompt_toolkit + version: 3.0.51 + manager: conda + platform: linux-aarch64 + dependencies: + prompt-toolkit: '>=3.0.51,<3.0.52.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.51-hd8ed1ab_0.conda + hash: + md5: 1e61ab85dd7c60e5e73d853ea035dc29 + sha256: 936189f0373836c1c77cd2d6e71ba1e583e2d3920bf6d015e96ee2d729b5e543 + category: main + optional: false +- name: propcache + version: 0.5.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/propcache-0.5.2-py310h2d8da20_0.conda + hash: + md5: 4618a02262e837858080487e9f6c7b0b + sha256: 125088e31e3d995fc5b69cc051b662c86af090070e38d741c98dcb8be428db3c + category: main + optional: false +- name: psutil + version: 7.2.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/psutil-7.2.2-py310hc1e03d5_2.conda + hash: + md5: a9c8e5e26deb87eb75649def5315f98a + sha256: 1ab80bdabfc21459c94cbeb66d59e354982aebe6e6c59d439884eafb87d75b25 + category: main + optional: false +- name: pthread-stubs + version: '0.4' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pthread-stubs-0.4-h5bc82ec_1004.conda + hash: + md5: ac6610f5c63c18f5a3df229aa5f7ba37 + sha256: c66ea2c8f64b815b24344340a8a9d62152359dbf48a6151b1f282fdf35204d83 + category: main + optional: false +- name: pybind11-abi + version: '11' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-11-hc364b38_1.conda + hash: + md5: f0599959a2447c1e544e216bddf393fa + sha256: 9e7fe12f727acd2787fb5816b2049cef4604b7a00ad3e408c5e709c298ce8bf1 + category: main + optional: false +- name: pycairo + version: 1.29.1 + manager: conda + platform: linux-aarch64 + dependencies: + cairo: '>=1.18.4,<2.0a0' + libexpat: '>=2.8.1,<3.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=14' + libzlib: '>=1.3.2,<2.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pycairo-1.29.1-py310he8bc054_0.conda + hash: + md5: 2a42d2941af656ef4392a0d6fbb99576 + sha256: cca4a57aa1bb0f4685947e2deefcbb6c4b3589fd1e4b36712a219555e823b450 + category: main + optional: false +- name: pycosat + version: 0.6.6 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pycosat-0.6.6-py310h8ae48eb_5.conda + hash: + md5: aa71f2d9f255a22dbde78ed22e9dd8db + sha256: e36f504794f5e2dbad98ddec818e193fb6692be2235e82cea0dce8d367cf9ac5 + category: main + optional: false +- name: pycparser + version: '3.0' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-3.0-pyhcf101f3_0.conda + hash: + md5: 9c5491066224083c41b6d5635ed7107b + sha256: e27e0473fc6723311a0bd48b89b616fa1b996a2f7a2b555338cbbcfb9c640568 + category: main + optional: false +- name: pydantic + version: 1.10.22 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + typing_extensions: '>=4.2.0' + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-1.10.22-pyh3cfb1c2_0.conda + hash: + md5: 2aa2384cdd325356830840678adbefdc + sha256: 8660b2660ed19ac7aea35cce1bb62be4e56fa41cc41018fefd27d8f53f536943 + category: main + optional: false +- name: pyelftools + version: '0.33' + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/pyelftools-0.33-pyh8f84b5b_0.conda + hash: + md5: b0e199724ac880c3593df23944b53e93 + sha256: 6f18a3609c93321d37bd4059c255da736b95afdf6180382854a48c48c6a8b823 + category: main + optional: false +- name: pygments + version: 2.21.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + hash: + md5: 2882dee445dfa45b0c5afce3ffb7730a + sha256: f5f015ff1bc3e1b7fc08eee096b1865234189ae0b82bebdb86a5369116e42fa0 + category: main + optional: false +- name: pygobject + version: 3.58.0 + manager: conda + platform: linux-aarch64 + dependencies: + cairo: '>=1.18.4,<2.0a0' + libexpat: '>=2.8.1,<3.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' + libgcc: '>=15' + libgirepository: '' + libglib: '>=2.88.3,<3.0a0' + libiconv: '' + libzlib: '>=1.3.2,<2.0a0' + pycairo: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pygobject-3.58.0-py310heb68200_0.conda + hash: + md5: 8ad7b4a9951b9320349852360c1c8141 + sha256: 0384ba12d83eb173c060a81200474ada8ec886cf8ff21b9e6e8067a0d1e4f35a + category: main + optional: false +- name: pyjwt + version: 2.13.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + typing_extensions: '>=4.0' + url: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.13.0-pyhcf101f3_0.conda + hash: + md5: edb808d7f7396478ab6e457e697b8ec5 + sha256: 58cda7489477fecb859ec95bf73cba7e4634db1a517e29e0d3086d7ec71733ae + category: main + optional: false +- name: pykwalify + version: 1.8.0 + manager: conda + platform: linux-aarch64 + dependencies: + docopt: '>=0.6.2' + python: '>=3.9' + python-dateutil: '>=2.8.0' + ruamel.yaml: '>=0.16.0' + url: https://conda.anaconda.org/conda-forge/noarch/pykwalify-1.8.0-pyhd8ed1ab_1.conda + hash: + md5: f10683c1777428ee575a90dda2875389 + sha256: db09fdbe0c6f64f1628bb9b59c3c35083e8a8d2c95c3f453b5e8407649e54847 + category: main + optional: false +- name: pyparsing + version: 3.3.2 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda + hash: + md5: 3687cc0b82a8b4c17e1f0eb7e47163d5 + sha256: 417fba4783e528ee732afa82999300859b065dc59927344b4859c64aae7182de + category: main + optional: false +- name: pysocks + version: 1.7.1 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + hash: + md5: 461219d1a5bd61342293efa2c0c90eac + sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8 + category: main + optional: false +- name: pytest + version: 9.1.1 + manager: conda + platform: linux-aarch64 + dependencies: + colorama: '' + exceptiongroup: '>=1' + iniconfig: '>=1.0.1' + packaging: '>=22' + pluggy: '>=1.5,<2' + pygments: '>=2.7.2' + python: '>=3.10' + tomli: '>=1' + url: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda + hash: + md5: 64c98a12c4e23eb238bf66bbecafdf3c + sha256: 430051d80765207a7d782b2b188230ba1489d35c6e75fd9903f76cb9fda4af16 + category: main + optional: false +- name: pytest-dependency + version: 0.5.1 + manager: conda + platform: linux-aarch64 + dependencies: + pytest: '>=3.6.0' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/pytest-dependency-0.5.1-pyhd8ed1ab_1.conda + hash: + md5: 60914baa914392bdf562793a919a55cd + sha256: 467d00cc7393f4968944bf01e70d4a3d35fa405c08b9a2312efdacb6eb8db661 + category: main + optional: false +- name: pytest-mock + version: 3.15.1 + manager: conda + platform: linux-aarch64 + dependencies: + pytest: '>=6.2.5' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.15.1-pyhd8ed1ab_0.conda + hash: + md5: 0511afbe860b1a653125d77c719ece53 + sha256: 2936717381a2740c7bef3d96827c042a3bba3ba1496c59892989296591e3dabb + category: main + optional: false +- name: python + version: 3.10.14 + manager: conda + platform: linux-aarch64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + ld_impl_linux-aarch64: '>=2.36.1' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libnsl: '>=2.0.1,<2.1.0a0' + libsqlite: '>=3.45.2,<4.0a0' + libuuid: '>=2.38.1,<3.0a0' + libxcrypt: '>=4.4.36' + libzlib: '>=1.2.13,<2.0.0a0' + ncurses: '>=6.4.20240210,<7.0a0' + openssl: '>=3.2.1,<4.0a0' + readline: '>=8.2,<9.0a0' + tk: '>=8.6.13,<8.7.0a0' + tzdata: '' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.10.14-hbbe8eec_0_cpython.conda + hash: + md5: 8a8ee3a8c62032c554debc785a3b5aba + sha256: 992583064b95d256e1b1f03581a51e225a425894d865e35ea2bf3017444c3e84 + category: main + optional: false +- name: python-dateutil + version: 2.9.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.7' + six: '>=1.5' + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda + hash: + md5: 2cf4264fffb9e6eff6031c5b6884d61c + sha256: f3ceef02ac164a8d3a080d0d32f8e2ebe10dd29e3a685d240e38b3599e146320 + category: main + optional: false +- name: python-gil + version: 3.10.21 + manager: conda + platform: linux-aarch64 + dependencies: + cpython: 3.10.21.* + python_abi: '*' + url: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.10.21-hd8ed1ab_0.conda + hash: + md5: 7bacefa3103d43bc71fd02252df097f9 + sha256: 1335043b432732657a7259095da85cb9357bd93736a956a2466fc668d2dba46e + category: main + optional: false +- name: python-graphviz + version: '0.21' + manager: conda + platform: linux-aarch64 + dependencies: + graphviz: '>=2.46.1' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/python-graphviz-0.21-pyhbacfb6d_0.conda + hash: + md5: 606d94da4566aa177df7615d68b29176 + sha256: b0139f80dea17136451975e4c0fefb5c86893d8b7bc6360626e8b025b8d8003a + category: main + optional: false +- name: python-librt + version: 0.15.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + python: 3.10.* + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/python-librt-0.15.0-py310h864954f_1.conda + hash: + md5: 691cc45c21b43d26e483f4ff434d296c + sha256: acd84f5eedb74fed77c321bfe78f4c7bcf4a58fcf68f6aff42d7d920f7fb5dfd + category: main + optional: false +- name: python-tzdata + version: '2026.3' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.3-pyhd8ed1ab_0.conda + hash: + md5: eefc8d916bd2e708d76d40398ef9a1ee + sha256: 3f05db78cf8be33cf6dbc469664b8e3a01f3980d61d6d6bef48669b171896d8a + category: main + optional: false +- name: python_abi + version: '3.10' + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.10-9_cp310.conda + hash: + md5: 3bb52811c66f1f07377537cc82ccb093 + sha256: 24e01bf97a2f5e608ef2d35547bba12281b5f1c8efecfcfd3447c43abc01342b + category: main + optional: false +- name: pytz + version: '2024.1' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda + hash: + md5: 3eeeeb9e4827ace8c0c1419c85d590ad + sha256: 1a7d6b233f7e6e3bbcbad054c8fd51e690a67b129a899a056a5e45dd9f00cb41 + category: main + optional: false +- name: pyyaml + version: 6.0.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.3-py310h2d8da20_1.conda + hash: + md5: 7e1a74e779e08e3504230f8216be618b + sha256: 8acefeb5cc4bcf835f33e45b5cc8b350e738b4954f68c3d8051426e851ca2806 + category: main + optional: false +- name: qemu + version: 8.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + libcurl: '>=8.22.0,<9.0a0' + libgcc: '>=15' + libglib: '>=2.88.3,<3.0a0' + libstdcxx: '>=15' + libzlib: '>=1.3.2,<2.0a0' + pixman: '>=0.46.4,<1.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/ucb-bar/linux-aarch64/qemu-8.2.0-h4d75ed2_0.conda + hash: + md5: f12c7232ae65400db4173556b640bd1a + sha256: 7a01ac349170875a3ef5a3ff651304082ce10e68d1fe998b66071b7c350c65c5 + category: main + optional: false +- name: qhull + version: '2020.2' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/qhull-2020.2-h70be974_5.conda + hash: + md5: bb138086d938e2b64f5f364945793ebf + sha256: 49f777bdf3c5e030a8c7b24c58cdfe9486b51d6ae0001841079a3228bdf9fb51 + category: main + optional: false +- name: readline + version: '8.3' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + ncurses: '>=6.6,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.3-ha7194a6_1.conda + hash: + md5: 5b399a7afa10098f2a6b02263181426e + sha256: 80167dcf73a96b6d0c1bb2298d7b8b9bc21b27cc5bf56979f9c548b49a4d1722 + category: main + optional: false +- name: referencing + version: 0.37.0 + manager: conda + platform: linux-aarch64 + dependencies: + attrs: '>=22.2.0' + python: '>=3.10' + rpds-py: '>=0.7.0' + typing_extensions: '>=4.4.0' + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda + hash: + md5: 870293df500ca7e18bedefa5838a22ab + sha256: 0577eedfb347ff94d0f2fa6c052c502989b028216996b45c7f21236f25864414 + category: main + optional: false +- name: reproc + version: 14.2.8.post0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/reproc-14.2.8.post0-hfb11796_0.conda + hash: + md5: 52653cdc7eb154c8d570e8fda7efac9f + sha256: fc4e3e5383d14406a88cef3cd5a9f572fdfef709fd51bec8c291557653c3345a + category: main + optional: false +- name: reproc-cpp + version: 14.2.8.post0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + reproc: ==14.2.8.post0,>=14.2.8.post0,<14.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/reproc-cpp-14.2.8.post0-h63b641b_0.conda + hash: + md5: 42fad327a6215d0e2c5cf3acfd831841 + sha256: d5f3a22646bb38a952e11d87c7b5b8d09aff4b62834efbc2f55d10ffd23d44cf + category: main + optional: false +- name: requests + version: 2.34.2 + manager: conda + platform: linux-aarch64 + dependencies: + certifi: '>=2023.5.7' + charset-normalizer: '>=2,<4' + idna: '>=2.5,<4' + python: '>=3.10' + urllib3: '>=1.26,<3' + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda + hash: + md5: 4a85203c1d80c1059086ae860836ffb9 + sha256: 1715246b19c9f85ee022933b4845f2fc14ac9184981b7b7d9b728bec8e9588da + category: main + optional: false +- name: responses + version: 0.26.3 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + pyyaml: '' + requests: '>=2.30.0,<3.0' + urllib3: '>=1.25.10,<3.0' + url: https://conda.anaconda.org/conda-forge/noarch/responses-0.26.3-pyhcf101f3_0.conda + hash: + md5: 7a3630f737fa87aec89b8a56db496200 + sha256: 0a48b4b7d7760d63a3f20d7526a8788c992a0b09eb5625f4e8dbadd3a3c3af77 + category: main + optional: false +- name: rfc3339-validator + version: 0.1.4 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + six: '' + url: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda + hash: + md5: 36de09a8d3e5d5e6f4ee63af49e59706 + sha256: 2e4372f600490a6e0b3bac60717278448e323cab1c0fecd5f43f7c56535a99c5 + category: main + optional: false +- name: rhash + version: 1.4.6 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/rhash-1.4.6-he30d5cf_2.conda + hash: + md5: aa87887d8ec28a87ae84d996876e728e + sha256: b4e49255aa581788c28f0a4a19ba49756cea968998c599f40feadcfeb80d15fb + category: main + optional: false +- name: riscv-tools + version: 1.0.9 + manager: conda + platform: linux-aarch64 + dependencies: + expat: '' + gmp: '>=6.3.0,<7.0a0' + libexpat: '>=2.8.1,<3.0a0' + libzlib: '>=1.3.2,<2.0a0' + mpc: '>=1.4.0,<2.0a0' + mpfr: '>=4.2.2,<5.0a0' + ncurses: '>=6.6,<7.0a0' + python: 3.10.14.* + zlib: '' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/ucb-bar/linux-aarch64/riscv-tools-1.0.9-0_h1234567_g70db951.conda + hash: + md5: 646b97827624165a52e9ce317423c581 + sha256: 00e058b55d54d20d1cec108c18d12a6732db0898c566dc73e89b2b1441817815 + category: main + optional: false +- name: rpds-py + version: 0.30.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/rpds-py-0.30.0-py310haddc216_0.conda + hash: + md5: eb9b36d85a5cf7f986704c153fd621ba + sha256: 502656baaa06ee999d551f4f300f28f556169b6790066c3af3c20340af6970e6 + category: main + optional: false +- name: rsync + version: 3.4.4 + manager: conda + platform: linux-aarch64 + dependencies: + __glibc: '>=2.28,<3.0.a0' + libgcc: '>=15' + libiconv: '>=1.18,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + lz4-c: '>=1.10.0,<1.11.0a0' + openssl: '>=3.5.8,<4.0a0' + popt: '>=1.19,<2.0a0' + xxhash: '>=0.8.3,<0.8.4.0a0' + zstd: '>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/rsync-3.4.4-h4873a97_1.conda + hash: + md5: 91b39d39635445ffca67b9ba82236683 + sha256: b1158936766e245f83e7a45312a5b2c87ba6b108564b9aae5af576f6c1b71699 + category: main + optional: false +- name: ruamel.yaml + version: 0.18.17 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: 3.10.* + python_abi: 3.10.* + ruamel.yaml.clib: '>=0.2.15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.17-py310hef25091_2.conda + hash: + md5: e867ca69a8d4866b05a363bfddad2250 + sha256: 4ba656144b8e56490f4dcec674310a4a7c411e43dfad8945c43c239c1faec898 + category: main + optional: false +- name: ruamel.yaml.clib + version: 0.2.15 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: 3.10.* + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.15-py310hef25091_1.conda + hash: + md5: e91e48a36a6c9f761e259b967878831a + sha256: fc5cf2db69fab279d0be46a8a077d9354991be5f4d317a73c453fc8df7c69f0a + category: main + optional: false +- name: s2n + version: 1.7.6 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + openssl: '>=3.5.7,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/s2n-1.7.6-h61cb6f2_0.conda + hash: + md5: 4850ce2fa851c0f3410039832c8945a6 + sha256: 294495b65ea65abad37d89c0f77c42a6288952ff3c896432374a117b5f197b20 + category: main + optional: false +- name: s3fs + version: 0.4.2 + manager: conda + platform: linux-aarch64 + dependencies: + boto3: '' + fsspec: '>=0.6.0' + python: '>=3.5' + url: https://conda.anaconda.org/conda-forge/noarch/s3fs-0.4.2-py_0.tar.bz2 + hash: + md5: ead328eb12f01d88706126ba061e7a69 + sha256: 7a4cb574ff7edf773e5e4c396733dcb08ffcfd6e4f8b27e5b84b35fd4666ef5b + category: main + optional: false +- name: s3transfer + version: 0.19.2 + manager: conda + platform: linux-aarch64 + dependencies: + botocore: '>=1.37.4,<2.0a.0' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.19.2-pyhd8ed1ab_0.conda + hash: + md5: 5548801d61c206d492b85613a02a87e3 + sha256: ce9bb74b5628398aeee08563a73b33dbbd31e0bbdd0f776c06094903276d3a14 + category: main + optional: false +- name: sbt + version: 2.0.8 + manager: conda + platform: linux-aarch64 + dependencies: + openjdk: '>=8' + url: https://conda.anaconda.org/conda-forge/noarch/sbt-2.0.8-hc364b38_0.conda + hash: + md5: 2167a7eb74718a56535f4a5bd2dfcab0 + sha256: 32713305960f1e41b055452d0abdd5b4413472cb23d65429d19d298794f078e0 + category: main + optional: false +- name: screen + version: 5.0.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libxcrypt: '>=4.4.38' + ncurses: '>=6.6,<7.0a0' + url: https://conda.anaconda.org/jimfangx/linux-aarch64/screen-5.0.2-h49fed5f_0.conda + hash: + md5: edeed05bef2b7e3ff63dc218b1caa8da + sha256: 8eed9346535693fdf97a638e5774169c1265cd203a06888d4af6451e8d1f9c18 + category: main + optional: false +- name: sed + version: '4.10' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/sed-4.10-he1c5539_0.conda + hash: + md5: 59f2c90c66b956d9bc3e625df3ad8a0a + sha256: 7b2d9835a79bd67c0b2966cedf246c85bf650dc961125c8e31f073646d4ac797 + category: main + optional: false +- name: setuptools + version: 84.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.0.0-pyh332efcf_0.conda + hash: + md5: 62ac906f1cd582c6c264c95625cb9d6f + sha256: 9e200ee5f9ff19a4d94e4b51c4856d53dec849f91032f345cf0c6bc3d51a7183 + category: main + optional: false +- name: simdjson + version: 4.6.10 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/simdjson-4.6.10-h45ce4d5_0.conda + hash: + md5: 28379927576f293409668111acba50f6 + sha256: f47e131a5467c585fbd2278484a5c34a8cbb40b8749ba1588ae6af84626fdd17 + category: main + optional: false +- name: six + version: 1.17.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + hash: + md5: 3339e3b65d58accf4ca4fb8748ab16b3 + sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d + category: main + optional: false +- name: smmap + version: 5.0.3 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.3-pyhcf101f3_1.conda + hash: + md5: b899f1195be56d8215ed1973a8f409c3 + sha256: bc86861086db65c9b56dd6a1605755f41a9875b94fc3b69e137f686700d91aa1 + category: main + optional: false +- name: snowballstemmer + version: 3.1.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.1.1-pyhd8ed1ab_0.conda + hash: + md5: 46b6abe31482f6bca064b965696ae807 + sha256: ad89284ea94821c20ff87e64b948e4afc690cf5202d14c009355b0594cf23aea + category: main + optional: false +- name: spdlog + version: 1.17.0 + manager: conda + platform: linux-aarch64 + dependencies: + fmt: '>=12.1.0,<12.2.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/spdlog-1.17.0-hb3fff47_2.conda + hash: + md5: 0ae158a495544229d7d28a242131a03a + sha256: 56a009d553dd669850e61608d71d584172d0ccd4f5c48efe73563c93845a74f3 + category: main + optional: false +- name: sphinx + version: 7.3.7 + manager: conda + platform: linux-aarch64 + dependencies: + alabaster: '>=0.7.14,<0.8.dev0' + babel: '>=2.9' + colorama: '>=0.4.5' + docutils: '>=0.18.1,<0.22' + imagesize: '>=1.3' + importlib-metadata: '>=4.8' + jinja2: '>=3.0' + packaging: '>=21.0' + pygments: '>=2.14' + python: '>=3.9' + requests: '>=2.25.0' + snowballstemmer: '>=2.0' + sphinxcontrib-applehelp: '' + sphinxcontrib-devhelp: '' + sphinxcontrib-htmlhelp: '>=2.0.0' + sphinxcontrib-jsmath: '' + sphinxcontrib-qthelp: '' + sphinxcontrib-serializinghtml: '>=1.1.9' + tomli: '>=2.0' + url: https://conda.anaconda.org/conda-forge/noarch/sphinx-7.3.7-pyhd8ed1ab_0.conda + hash: + md5: 7b1465205e28d75d2c0e1a868ee00a67 + sha256: 41101e2b0b8722087f06bd73251ba95ef89db515982b6a89aeebfa98ebcb65a1 + category: main + optional: false +- name: sphinx-autobuild + version: 2024.10.3 + manager: conda + platform: linux-aarch64 + dependencies: + colorama: '>=0.4.6' + python: '>=3.9' + sphinx: '' + starlette: '>=0.35' + uvicorn: '>=0.25' + watchfiles: '>=0.20' + websockets: '>=11' + url: https://conda.anaconda.org/conda-forge/noarch/sphinx-autobuild-2024.10.3-pyhd8ed1ab_1.conda + hash: + md5: cd457248c6185c0e3ba2137500fcbc0c + sha256: 8efa48241f074da54552409d25359a1abfdc08e94e12ecbe6f90d9d3eba9ac21 + category: main + optional: false +- name: sphinx_rtd_theme + version: 3.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + docutils: '>0.18,<0.23' + python: '>=3.10' + sphinx: '>=6,<10' + sphinxcontrib-jquery: '>=4,<5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda + hash: + md5: 787507b1d0f5c00c186b2f66adacc3ab + sha256: 3581a8335a0da4de41f4344c4f1113a11fcbbb7933577ace813602e263842b02 + category: main + optional: false +- name: sphinxcontrib-applehelp + version: 2.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda + hash: + md5: 16e3f039c0aa6446513e94ab18a8784b + sha256: d7433a344a9ad32a680b881c81b0034bc61618d12c39dd6e3309abeffa9577ba + category: main + optional: false +- name: sphinxcontrib-devhelp + version: 2.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-2.0.0-pyhd8ed1ab_1.conda + hash: + md5: 910f28a05c178feba832f842155cbfff + sha256: 55d5076005d20b84b20bee7844e686b7e60eb9f683af04492e598a622b12d53d + category: main + optional: false +- name: sphinxcontrib-htmlhelp + version: 2.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_1.conda + hash: + md5: e9fb3fe8a5b758b4aff187d434f94f03 + sha256: c1492c0262ccf16694bdcd3bb62aa4627878ea8782d5cd3876614ffeb62b3996 + category: main + optional: false +- name: sphinxcontrib-jquery + version: '4.1' + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=1.8' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jquery-4.1-pyhd8ed1ab_1.conda + hash: + md5: 403185829255321ea427333f7773dd1f + sha256: 69c08d18663b57ebc8e4187c64c8d29b10996bb465a515cd288d87b6f2f52a5e + category: main + optional: false +- name: sphinxcontrib-jsmath + version: 1.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda + hash: + md5: fa839b5ff59e192f411ccc7dae6588bb + sha256: 578bef5ec630e5b2b8810d898bbbf79b9ae66d49b7938bcc3efc364e679f2a62 + category: main + optional: false +- name: sphinxcontrib-qthelp + version: 2.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda + hash: + md5: 00534ebcc0375929b45c3039b5ba7636 + sha256: c664fefae4acdb5fae973bdde25836faf451f41d04342b64a358f9a7753c92ca + category: main + optional: false +- name: sphinxcontrib-serializinghtml + version: 2.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + sphinx: '>=5' + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-2.0.0-pyhd8ed1ab_0.conda + hash: + md5: f77df1fcf9af03b7287342638befca77 + sha256: 20b49741065fd7d3fabf98caf6d19b6436badb06b6d41f66b58f1fc2b52f37a1 + category: main + optional: false +- name: starlette + version: 1.6.0 + manager: conda + platform: linux-aarch64 + dependencies: + anyio: '>=3.6.2,<5' + python: '>=3.10' + typing_extensions: '>=4.10.0' + url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda + hash: + md5: 7b7d3f2bcca2be53635bd4f1166b04a7 + sha256: 6074c6d74e86b156a61ff37f2c3f7a29bd188f05d5f490d88db96131eb945e95 + category: main + optional: false +- name: sty + version: 1.0.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/sty-1.0.0-pyhd8ed1ab_1.conda + hash: + md5: 8e1ade1e3e6897842e49a5ad5f3fb778 + sha256: ced237065c6a5bde6eff4ec9ec0006c6c1b4797e616c70c3397eb1b1a0564713 + category: main + optional: false +- name: sysroot_linux-64 + version: '2.39' + manager: conda + platform: linux-aarch64 + dependencies: + kernel-headers_linux-64: 6.12.0 + tzdata: '' + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.39-he3f20f0_6.conda + hash: + md5: f466e0c4e02d2faf778aaa2f24085934 + sha256: bcbe694a9660abbe76ba25fa1fca3127b8752fc29b733de72a904c21d144ace1 + category: main + optional: false +- name: sysroot_linux-aarch64 + version: '2.28' + manager: conda + platform: linux-aarch64 + dependencies: + __glibc: '>=2.28' + kernel-headers_linux-aarch64: 4.18.0 + tzdata: '' + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-aarch64-2.28-h585391f_9.conda + hash: + md5: fdf07ab944a222ff28c754914fdb0740 + sha256: 1bd2db6b2e451247bab103e4a0128cf6c7595dd72cb26d70f7fadd9edd1d1bc3 + category: main + optional: false +- name: tar + version: '1.35' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libiconv: '>=1.18,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/tar-1.35-h90929bb_0.conda + hash: + md5: ca0432a439c1719f32c5ff443889bd13 + sha256: 48ff9ff6cde5bcb1d74f77036fb66606c7e94a52c75978c65330bbd86741f8a4 + category: main + optional: false +- name: tk + version: 8.6.13 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-noxft_hf03c496_4.conda + hash: + md5: ebaded4b4b74c2cc43a754ded4eed76f + sha256: a1aa0d0f0b3d539644ff992e6dd0facf950c79df58fc37590ce5be84ff5e3f22 + category: main + optional: false +- name: tomli + version: 2.4.1 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda + hash: + md5: b5325cf06a000c5b14970462ff5e4d58 + sha256: 91cafdb64268e43e0e10d30bd1bef5af392e69f00edd34dfaf909f69ab2da6bd + category: main + optional: false +- name: tomli-w + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.2.0-pyhd8ed1ab_0.conda + hash: + md5: 32e37e8fe9ef45c637ee38ad51377769 + sha256: 304834f2438017921d69f05b3f5a6394b42dc89a90a6128a46acbf8160d377f6 + category: main + optional: false +- name: tqdm + version: 4.70.0 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.70.0-pyh8f84b5b_0.conda + hash: + md5: 00953c3b729e03b0ae21f49fdf3441bb + sha256: a4d9e9da15b13f1ab047e7db412e2ed564bc615832e80213cf129b973c3abf4a + category: main + optional: false +- name: truststore + version: 0.10.4 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10,<4' + url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.4-pyhcf101f3_0.conda + hash: + md5: c2db35b004913ec69bcac64fb0783de0 + sha256: eece5be81588c39a855a0b70da84e0febb878a6d91dd27d6d21370ce9e5c5a46 + category: main + optional: false +- name: types-awscrt + version: 0.36.2 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10,<4.0' + url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.36.2-pyhd8ed1ab_1.conda + hash: + md5: ea653022b4e54625d3415a7c813b6b10 + sha256: 3bb8501a9b606b8678a89805ed7cf7e49be1e06ba9a13e5e7462f9a96d02c924 + category: main + optional: false +- name: types-pytz + version: 2026.3.1.20260727 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.3.1.20260727-pyhcf101f3_0.conda + hash: + md5: b27fc3df415ba0196e462700ef487e5e + sha256: 8174977249085904a62a0e00f29faceed6d81ba7bef33ceb5ff8b0c5896f1e58 + category: main + optional: false +- name: types-pyyaml + version: 6.0.12.20260815 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20260815-pyhcf101f3_0.conda + hash: + md5: cd5c2725760ce602617c80a2b4c26d6d + sha256: 9790e34c023c33e3cebf9c9eeed411d468803eb6edbab3bc61116522fdaa32aa + category: main + optional: false +- name: types-requests + version: 2.33.0.20260712 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + urllib3: '>=2' + url: https://conda.anaconda.org/conda-forge/noarch/types-requests-2.33.0.20260712-pyhcf101f3_0.conda + hash: + md5: c28c52d66c18b1682c34ee5c10655224 + sha256: d2a2266cf955f3b976cda6e95202d73be7cd72dabc4f901082922b8763c0e7a6 + category: main + optional: false +- name: types-s3transfer + version: 0.16.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + types-awscrt: '' + url: https://conda.anaconda.org/conda-forge/noarch/types-s3transfer-0.16.0-pyhcf101f3_0.conda + hash: + md5: 4428d402e618bc8ee26daea43dc8bd19 + sha256: ed7016a46b53af35d02bdcb9ed63a7c9b44445208a22bca344549bed0db275ba + category: main + optional: false +- name: typing-extensions + version: 4.16.0 + manager: conda + platform: linux-aarch64 + dependencies: + typing_extensions: ==4.16.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + hash: + md5: c680b5747e8c4c8f23dca0bb7042a8fc + sha256: b141933ece3518f6d7b75dfb59451e2f26b405a44c18e2518a83e9a02e09315c + category: main + optional: false +- name: typing_extensions + version: 4.16.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + hash: + md5: c70ad746c22219b9700931707482992c + sha256: 2d888f90af0686044882c74193ec80a90ec1943145d94a7b1b048958acda1848 + category: main + optional: false +- name: tzdata + version: 2026c + manager: conda + platform: linux-aarch64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda + hash: + md5: fcb489df604d100968b737f2cb6076c6 + sha256: b928c30ddcb0e3f544c6eade8352737e6e610e263276b90232db6a578ef899d8 + category: main + optional: false +- name: tzlocal + version: 5.4.4 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/tzlocal-5.4.4-pyh8f84b5b_0.conda + hash: + md5: cbd15812c946aecc2d9479318aca450f + sha256: 5d693f6f22b584fb69bac52e716872a1432c50527ced54d66064cc27e5946c0b + category: main + optional: false +- name: unicodedata2 + version: 17.0.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/unicodedata2-17.0.1-py310h5b55623_0.conda + hash: + md5: 45dc3d0e49a9d54c2955494c6ae1aaf5 + sha256: f49f8ef6bc2f23a0a0d186fd82ab44005fcf8ecf10556d77836bfbc61fefc431 + category: main + optional: false +- name: universal-ctags + version: 6.2.20260830.0 + manager: conda + platform: linux-aarch64 + dependencies: + jansson: '>=2.15.1,<3.0a0' + libgcc: '>=15' + libiconv: '>=1.18,<2.0a0' + libseccomp: '>=2.6.1,<3.0a0' + libstdcxx: '>=15' + libxml2: '' + libxml2-16: '>=2.15.3' + pcre2: '>=10.47,<10.48.0a0' + yaml: '>=0.2.5,<0.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/universal-ctags-6.2.20260830.0-h45ce067_0.conda + hash: + md5: 5ca1f477babb586727122207229d2e8b + sha256: ff8fe0e8fa761a4cce49897def2d438c0001f8c41631b7a8ea48151ccb1c5cc9 + category: main + optional: false +- name: unzip + version: '6.0' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/unzip-6.0-he30d5cf_4.conda + hash: + md5: 8b8239bcb89e6710d7c3ef9d9398216f + sha256: 49f58bfa1b1ec914a827a238c84cc1929af30b83e3ee0875bdc6402295a324e2 + category: main + optional: false +- name: urllib3 + version: 2.6.3 + manager: conda + platform: linux-aarch64 + dependencies: + backports.zstd: '>=1.0.0' + brotli-python: '>=1.2.0' + h2: '>=4,<5' + pysocks: '>=1.5.6,<2.0,!=1.5.7' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda + hash: + md5: 9272daa869e03efe68833e3dc7a02130 + sha256: af641ca7ab0c64525a96fd9ad3081b0f5bcf5d1cbb091afb3f6ed5a9eee6111a + category: main + optional: false +- name: uvicorn + version: 0.52.4 + manager: conda + platform: linux-aarch64 + dependencies: + __unix: '' + click: '>=7.0' + h11: '>=0.8' + python: '>=3.10' + typing_extensions: '>=4.0' + url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda + hash: + md5: 2bf4d228f4df09d3e2ebee46f3a9129e + sha256: b74765ebebe0da43b9e0ec1d9bedc881125304ffbebd86018dcb6d7a4e2d2ee4 + category: main + optional: false +- name: verilator + version: '5.022' + manager: conda + platform: linux-aarch64 + dependencies: + flex: '>=2.6.4,<3.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + make: '' + perl: '' + python: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/verilator-5.022-h6921256_1.conda + hash: + md5: f35f7ea0e1c22e3cf66559e91bed15a5 + sha256: a3c8602e50e48a7fd55f7f84fdf9cb359439663f1cf1c3e13c6257d9334ee782 + category: main + optional: false +- name: vim + version: 9.2.0785 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + ncurses: '>=6.6,<7.0a0' + perl: '>=5.32.1,<5.33.0a0' + python: '' + python_abi: 3.10.* + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxt: '>=1.3.1,<2.0a0' + xorg-xorgproto: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/vim-9.2.0785-py310pl5321hdae108c_0.conda + hash: + md5: fc24b532e6c66238185cbc2b3caa5507 + sha256: 5b6eb0ddc0701a1c2781fed115a2e3cd788101eda14b33e64170a3b86f5a49ad + category: main + optional: false +- name: vine + version: 5.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/vine-5.1.0-pyhd8ed1ab_1.conda + hash: + md5: e827a22b019357c90c58d6b7c7c4eb7c + sha256: a29620ff2ea4c003b5ba040eb2f3f6183cabfc1c74b03c9feadf89fa79718a03 + category: main + optional: false +- name: watchfiles + version: 1.2.0 + manager: conda + platform: linux-aarch64 + dependencies: + anyio: '>=3.0.0' + libgcc: '>=14' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/watchfiles-1.2.0-py310h1ee47ac_1.conda + hash: + md5: eb5751c551ea7bca1af1eb225848714e + sha256: 7a9094602e1f413bf861a0804066b743a76c5b4be5ffa05e2d8c3718f49d4946 + category: main + optional: false +- name: wayland + version: 1.26.0 + manager: conda + platform: linux-aarch64 + dependencies: + libexpat: '>=2.8.1,<3.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/wayland-1.26.0-h637a836_2.conda + hash: + md5: cee65dc8a90933553988b50f5a03079a + sha256: 0692327145e39b3484382c2b069003b08398e961575bb6d35d3246f1cafa5d58 + category: main + optional: false +- name: wcwidth + version: 0.2.14 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda + hash: + md5: 7e1e5ff31239f9cd5855714df8a3783d + sha256: e311b64e46c6739e2a35ab8582c20fa30eb608da130625ed379f4467219d4813 + category: main + optional: false +- name: websockets + version: 16.1.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/websockets-16.1.1-py310hec1369a_0.conda + hash: + md5: 9828d3d484885fc715dcf310f5ece17f + sha256: f44a4795e5f26041321a050a4b1c8df82e9d9acd41587de9339d8fdbc5b63668 + category: main + optional: false +- name: werkzeug + version: 3.1.8 + manager: conda + platform: linux-aarch64 + dependencies: + markupsafe: '>=2.1.1' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.1.8-pyhcf101f3_0.conda + hash: + md5: 3eeca039e7316268627f4116da9df64c + sha256: 5108c1bf2f0512e5c9dc8191e31b144c23b7cf0e73423a246173006002368d79 + category: main + optional: false +- name: west + version: 1.5.0 + manager: conda + platform: linux-aarch64 + dependencies: + colorama: '' + packaging: '' + pykwalify: '' + python: '>=3.10' + pyyaml: '>=5.1' + url: https://conda.anaconda.org/conda-forge/noarch/west-1.5.0-pyhd8ed1ab_0.conda + hash: + md5: f9018e3ef84df903213432d887b60ab5 + sha256: 3aca1b6fb67108e030c49f249a4350de55dee79d8999026c357ea542c7ccda7c + category: main + optional: false +- name: wget + version: 1.25.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libidn2: '>=2,<3.0a0' + libunistring: '>=0,<1.0a0' + libzlib: '>=1.3.1,<2.0a0' + openssl: '>=3.5.5,<4.0a0' + pcre2: '>=10.47,<10.48.0a0' + zlib: '' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/wget-1.25.0-h4f42960_1.conda + hash: + md5: 4e6bb4b78d687478c5f22770aa555162 + sha256: 8fbf0209ec0ec6d1bd4412dc624f5c74c4d3e9b9a4d54995956fa1a6dfb6ad7d + category: main + optional: false +- name: wheel + version: 0.48.0 + manager: conda + platform: linux-aarch64 + dependencies: + packaging: '>=24.0' + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.48.0-pyhd8ed1ab_0.conda + hash: + md5: 9a2124517bfd5d792e0f7b86eefdfeb8 + sha256: ba64b29b6d418024cb565081a1799262cb2780d2534ff4c14f76aa858c4286cd + category: main + optional: false +- name: which + version: '2.25' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/which-2.25-hdc560ac_0.conda + hash: + md5: 6dc4b55fc391a3d51ff12a6fed979562 + sha256: 720691eb59b86f11ceb21b236b9402d59c47d156183375d2b24c53a201dd874b + category: main + optional: false +- name: wrapt + version: 2.4.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + python: '' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/wrapt-2.4.0-py310hc1e03d5_0.conda + hash: + md5: 7c1cb09d40ca9df7ddc5e74059118b10 + sha256: a59975e6de143ae2d1ef88d27f3727444ce49dcba20049c1445fb3c3ce481d1d + category: main + optional: false +- name: xkeyboard-config + version: '2.48' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xkeyboard-config-2.48-h80f16a2_0.conda + hash: + md5: 3dbc6d9e1f8a8768e7ef9f57585a43ca + sha256: 96078068df25ddccc60958be740e6fa99efb1e0fa2dae2f84e775201bf84d70c + category: main + optional: false +- name: xmltodict + version: 1.0.4 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/xmltodict-1.0.4-pyhcf101f3_0.conda + hash: + md5: 0f02dbcae61967ced21fea829a8ee927 + sha256: 7588e77a5d3885145e693d8b98493952f6efac8f3fabb1c218cd0cbd1a739fad + category: main + optional: false +- name: xorg-libice + version: 1.1.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libice-1.1.2-h80f16a2_0.conda + hash: + md5: 0566e37830f85911b141524635939941 + sha256: e56bb636aefe3503a53520a0b7f3737f3a26fe0accf0befffc24d1c0ddd27008 + category: main + optional: false +- name: xorg-libsm + version: 1.2.6 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libuuid: '>=2.42.2,<3.0a0' + xorg-libice: '>=1.1.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libsm-1.2.6-hf23e593_1.conda + hash: + md5: f5f4a1233da463827499fb4e5e1f0172 + sha256: 4978f89a764b54dc8be7a115b2d57f570f793243f3227653232742ce0946101b + category: main + optional: false +- name: xorg-libx11 + version: 1.8.13 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libxcb: '>=1.17.0,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libx11-1.8.13-h63a1b12_1.conda + hash: + md5: 8e873e9efc395329b914ee44e305b624 + sha256: 9ff59d55cbf85561833be3604a8c0a5497b0f13cdf122e8bb490e9cf3138d116 + category: main + optional: false +- name: xorg-libxau + version: 1.0.12 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxau-1.0.12-he30d5cf_2.conda + hash: + md5: b03af9d9dfe7aec9e27db74fc41a4ba9 + sha256: 0822f3a8eb2a54bb41e1133f010e09d4a3242f8f12a372dfff7ad7248c5dbd29 + category: main + optional: false +- name: xorg-libxcomposite + version: 0.4.7 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + xorg-libx11: '>=1.8.12,<2.0a0' + xorg-libxfixes: '>=6.0.2,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxcomposite-0.4.7-he30d5cf_0.conda + hash: + md5: 9c639c1abdbfe6759c5beb2c1db4bc13 + sha256: 554f986ffa781d3393079926931465e61291d1eb8a56a03ad4a8e54b1ae233f4 + category: main + optional: false +- name: xorg-libxcursor + version: 1.2.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + xorg-libx11: '>=1.8.9,<2.0a0' + xorg-libxfixes: '>=6.0.1,<7.0a0' + xorg-libxrender: '>=0.9.11,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxcursor-1.2.3-h86ecc28_0.conda + hash: + md5: f2054759c2203d12d0007005e1f1296d + sha256: c5d3692520762322a9598e7448492309f5ee9d8f3aff72d787cf06e77c42507f + category: main + optional: false +- name: xorg-libxdamage + version: 1.1.6 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=13' + xorg-libx11: '>=1.8.9,<2.0a0' + xorg-libxext: '>=1.3.6,<2.0a0' + xorg-libxfixes: '>=6.0.1,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxdamage-1.1.6-h86ecc28_0.conda + hash: + md5: d5773c4e4d64428d7ddaa01f6f845dc7 + sha256: 3afaa2f43eb4cb679fc0c3d9d7c50f0f2c80cc5d3df01d5d5fd60655d0bfa9be + category: main + optional: false +- name: xorg-libxdmcp + version: 1.1.5 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxdmcp-1.1.5-he30d5cf_2.conda + hash: + md5: 044c398bf4b3b9c01741d8afe4ce1c3e + sha256: 681465a02be4ac256c05cd5b32ce9812da1563b75be1bfc8884d991454194df3 + category: main + optional: false +- name: xorg-libxext + version: 1.3.7 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxext-1.3.7-h5bc82ec_1.conda + hash: + md5: 32734d534d08a853f22bdef1d43223b7 + sha256: e2cc4ba2b5291710f9ae3e88d917d778ce7911262450e673ba8a597a5d43490a + category: main + optional: false +- name: xorg-libxfixes + version: 6.0.2 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxfixes-6.0.2-h5bc82ec_1.conda + hash: + md5: 3364fc126aef75debcc1d291e0e463c8 + sha256: fc432dbef14598e2fd283760c2a14536472c2441986264308b4cc1877a263e00 + category: main + optional: false +- name: xorg-libxi + version: 1.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxfixes: '>=6.0.2,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxi-1.8.3-h5bc82ec_1.conda + hash: + md5: 3008fa4872fd265945da6a35f684addb + sha256: 3759f62da8f9e093dc94e8fb87a30b99b4a2414e0c197810126e5c2c25a6d63a + category: main + optional: false +- name: xorg-libxinerama + version: 1.1.6 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + xorg-libx11: '>=1.8.12,<2.0a0' + xorg-libxext: '>=1.3.6,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxinerama-1.1.6-hfae3067_0.conda + hash: + md5: a488ab283de297dc0de69796f7467a71 + sha256: 2039990aa8454f19e8f890ff1e8582f12fa475af7e836b184adc17b88a22c9b8 + category: main + optional: false +- name: xorg-libxrandr + version: 1.5.5 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxrender: '>=0.9.12,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxrandr-1.5.5-h5bc82ec_1.conda + hash: + md5: 2d0c7631c23e56dbb66f4fe711c6ab63 + sha256: f2461efa138a03d25c4cff337e9db52c762ae93ab426f578234a2ea1cac50eb5 + category: main + optional: false +- name: xorg-libxrender + version: 0.9.12 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxrender-0.9.12-he30d5cf_1.conda + hash: + md5: 1bcdaa1fc263291e6f42ff061666f3ae + sha256: 3cbac6f69e4a8634ba6b60cf283cba92606c8c74caa1369b799325f96b2f0cbf + category: main + optional: false +- name: xorg-libxt + version: 1.3.1 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libice: '>=1.1.2,<2.0a0' + xorg-libsm: '>=1.2.6,<2.0a0' + xorg-libx11: '>=1.8.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxt-1.3.1-h5bc82ec_1.conda + hash: + md5: 06a15405538666fbdc272718ff4e0fe4 + sha256: 90cde7ffd12c2f02ec4a6b893dfa0c1fcb8f7b23b468ff575d3222df2cd187c6 + category: main + optional: false +- name: xorg-libxtst + version: 1.2.5 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + xorg-libx11: '>=1.8.13,<2.0a0' + xorg-libxext: '>=1.3.7,<2.0a0' + xorg-libxi: '>=1.8.3,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxtst-1.2.5-h5bc82ec_4.conda + hash: + md5: ba6d0e75e2fc9d9b81a9f59694970d60 + sha256: 075b22e79db93db685281cda76b6250c71ac6b454ca64eafd20710cde25ef949 + category: main + optional: false +- name: xorg-libxxf86vm + version: 1.1.7 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + xorg-libx11: '>=1.8.12,<2.0a0' + xorg-libxext: '>=1.3.6,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxxf86vm-1.1.7-he30d5cf_0.conda + hash: + md5: b15ca02584678f38df6e114c32f93959 + sha256: 6f6f2b32754e09c2334e067ba5d2d38715f2432cd9fb41d6f66de0591f8f4f94 + category: main + optional: false +- name: xorg-xorgproto + version: '2025.1' + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-xorgproto-2025.1-h29ee22c_2.conda + hash: + md5: 21f045a1238b059c7b670544a8c19d6b + sha256: af4fb5c073c9eda3f9105101c89ee90934ac2777f294a09f729500d825e8f2e4 + category: main + optional: false +- name: xxhash + version: 0.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xxhash-0.8.3-hdc50dc5_1.conda + hash: + md5: c9a7150a0b9cc78359ebaf3e3b4ea8d8 + sha256: 08ccc93d723e21f8be38fd02ab0eaf1d25cf6056f6291c11a1cb7ab5ab1716e4 + category: main + optional: false +- name: xz + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + liblzma: 5.8.3 + liblzma-devel: 5.8.3 + xz-gpl-tools: 5.8.3 + xz-tools: 5.8.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.8.3-hd704e39_1.conda + hash: + md5: 96a51f4137a543fd14fe96e1e560a5ac + sha256: 4e9b4a2eabf215c052d57a54c279a1d79343ae3b961d3f81f834e0bf76e5c7d4 + category: main + optional: false +- name: xz-gpl-tools + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + liblzma: 5.8.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-gpl-tools-5.8.3-hd704e39_1.conda + hash: + md5: 6543af33661ff21061b6db52c84a86fa + sha256: 3f0b45a1039c86265f41f3bb5f248cd4d901acff49164f86122fab7cc4efc049 + category: main + optional: false +- name: xz-tools + version: 5.8.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + liblzma: 5.8.3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-tools-5.8.3-he30d5cf_1.conda + hash: + md5: 7c211f37ed725871ce3043090d5addd8 + sha256: 1619ea83757336aaaac4cde221e4cd0982551c82def3276c91d0d53b0b7159db + category: main + optional: false +- name: yaml + version: 0.2.5 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-0.2.5-h29ee22c_3.conda + hash: + md5: 6c97c1f44a81be1b4d5ba15a06153256 + sha256: 97e0fbe447c8f8bb1789047f37448062ebecda29bd264fcdf6129b8d08f174c9 + category: main + optional: false +- name: yaml-cpp + version: 0.8.0 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=14' + libstdcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-cpp-0.8.0-h7ac5ae9_1.conda + hash: + md5: 1e61fa792e6cc3f0aec45ba3054db647 + sha256: 0ea50b4f031e9da009e0537a1f29f5192941439c07bd07c98d69661c6f2aae9e + category: main + optional: false +- name: yarl + version: 1.24.5 + manager: conda + platform: linux-aarch64 + dependencies: + idna: '>=2.0' + libgcc: '>=14' + multidict: '>=4.0' + propcache: '>=0.2.1' + python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-aarch64/yarl-1.24.5-py310h2d8da20_0.conda + hash: + md5: bb2f4d52158f913418a88bf3cfc0acdb + sha256: 68734f7ac886c48b2c561b4110d8e14cbc3c7d67b91f880609f936fd45dacb3c + category: main + optional: false +- name: zipp + version: 4.1.0 + manager: conda + platform: linux-aarch64 + dependencies: + python: '>=3.10' + url: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.0-pyhcf101f3_0.conda + hash: + md5: ba3dcdc8584155c97c648ae9c044b7a3 + sha256: 210bd31c22bb88f5e2a167df24c95bb5f152b2ada7502f9b8c49d1f5366db423 + category: main + optional: false +- name: zlib + version: 1.3.2 + manager: conda + platform: linux-aarch64 + dependencies: + libzlib: 1.3.2 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.2-hdc9db2a_3.conda + hash: + md5: 254c54ac18eca7bf4f865e661306dc43 + sha256: 3f3c296477cf26474660942f4d8ec104a8eee2cb1abc7c5bfec9ac1102c66451 + category: main + optional: false +- name: zlib-ng + version: 2.3.3 + manager: conda + platform: linux-aarch64 + dependencies: + libgcc: '>=15' + libstdcxx: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-ng-2.3.3-h1024f78_1.conda + hash: + md5: 09f81cb51dfb56946193f30225976b70 + sha256: a37f07056ac10c7e901cb54241e67af93205c25b84566ad1bce3b19a8088fd69 + category: main + optional: false +- name: zstandard + version: 0.25.0 + manager: conda + platform: linux-aarch64 + dependencies: + cffi: '>=1.11' + libgcc: '>=15' + python: '' + python_abi: 3.10.* + zstd: '>=1.5.7,<1.5.8.0a0,>=1.5.7,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.25.0-py310hc1e03d5_3.conda + hash: + md5: cd665552d655d9ce4add9bb7a3e92f5e + sha256: eaf20a0a780dc831eb7d8bfe8e4ce533151f627089fae9f03115e98c166cfddc + category: main + optional: false +- name: zstd + version: 1.5.7 + manager: conda + platform: linux-aarch64 + dependencies: + libzlib: '>=1.3.2,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.7-h9d15635_7.conda + hash: + md5: d942e34ac3920ba83f8b2d0169570187 + sha256: 427fd14bcb3b8659796fecc682716617409350fb5a98e5b7b47558a10d1a2fc7 + category: main + optional: false +- name: asttokens + version: 2.4.1 + manager: pip + platform: linux-aarch64 + dependencies: + six: '>=1.12.0' + url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + hash: + sha256: 051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 + category: main + optional: false +- name: bcrypt + version: 3.2.2 + manager: pip + platform: linux-aarch64 + dependencies: + cffi: '>=1.1' + url: https://files.pythonhosted.org/packages/8c/b3/1257f7d64ee0aa0eb4fb1de5da8c2647a57db7b737da1f2342ac1889d3b8/bcrypt-3.2.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl + hash: + sha256: 61bae49580dce88095d669226d5076d0b9d927754cedbdf76c6c9f5099ad6f26 + category: main + optional: false +- name: fab-classic + version: 1.21.0 + manager: pip + platform: linux-aarch64 + dependencies: + paramiko: '>=2.0' + url: https://files.pythonhosted.org/packages/90/5c/46f6f5a75207ea93e923c79a6acabb611e88409f2452ce2433fba680864a/fab_classic-1.21.0-py3-none-any.whl + hash: + sha256: 070fa7b5c01d243d464e8dd4e7ba32b0478f0e7f74b4a9b048b58ec93d37375a + category: main + optional: false +- name: gdspy + version: '1.4' + manager: pip + platform: linux-aarch64 + dependencies: + numpy: '*' + url: https://files.pythonhosted.org/packages/1d/e4/97b8add92fbec2a9890ad4777272e9a9e4d7a0ceeac42b7e1febe94f0e86/gdspy-1.4.zip + hash: + sha256: 0ce8a159d253399ba5092692548b5b6990cbf3d1febd9117f79400cb7a5426df + category: main + optional: false +- name: hammer-vlsi + version: 1.2.0 + manager: pip + platform: linux-aarch64 + dependencies: + gdspy: '1.4' + numpy: '>=1.23.0,<2.0.0' + pydantic: '>=1.9.2,<2.0.0' + pyyaml: '>=6.0,<7.0' + ruamel-yaml: '>=0.17.21,<0.18.0' + url: https://files.pythonhosted.org/packages/dd/85/8a7ffd385db1dc84295ef3101559fe7ae0f8fa39942253ca270728642dc5/hammer_vlsi-1.2.0-py3-none-any.whl + hash: + sha256: 7c237557d2a7c5f403474e54f9e5498758c71c24844e524a02656ac16369196d + category: main + optional: false +- name: icontract + version: 2.7.3 + manager: pip + platform: linux-aarch64 + dependencies: + asttokens: '>=2,<3' + typing-extensions: '*' + url: https://files.pythonhosted.org/packages/ee/aa/ffc16b7ed17e052e7d2140e66336f829e9383f61f31249c4d181e12fcdea/icontract-2.7.3-py3-none-any.whl + hash: + sha256: 8fb0f93f71211416f214f37c01b8017fdc8c079d70159f49f0ddcc10918c14d0 + category: main + optional: false +- name: invoke + version: 3.0.3 + manager: pip + platform: linux-aarch64 + dependencies: {} + url: https://files.pythonhosted.org/packages/5a/de/bbc12563bbf979618d17625a4e753ff7a078523e28d870d3626daa97261a/invoke-3.0.3-py3-none-any.whl + hash: + sha256: f11327165e5cbb89b2ad1d88d3292b5113332c43b8553b494da435d6ec6f5053 + category: main + optional: false +- name: mock + version: 5.2.0 + manager: pip + platform: linux-aarch64 + dependencies: {} + url: https://files.pythonhosted.org/packages/bd/d9/617e6af809bf3a1d468e0d58c3997b1dc219a9a9202e650d30c2fc85d481/mock-5.2.0-py3-none-any.whl + hash: + sha256: 7ba87f72ca0e915175596069dbbcc7c75af7b5e9b9bc107ad6349ede0819982f + category: main + optional: false +- name: numpy + version: 1.26.4 + manager: pip + platform: linux-aarch64 + dependencies: {} + url: https://files.pythonhosted.org/packages/fc/a5/4beee6488160798683eed5bdb7eead455892c3b4e1f78d79d8d3f3b084ac/numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + hash: + sha256: d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4 + category: main + optional: false +- name: paramiko + version: 5.0.0 + manager: pip + platform: linux-aarch64 + dependencies: + bcrypt: '>=3.2' + cryptography: '>=3.3' + invoke: '>=2.0' + pynacl: '>=1.5' + url: https://files.pythonhosted.org/packages/82/5b/eadf6d45de38d30ab603f49393b6cd2cbe7e233af8cf90197e32782b68a9/paramiko-5.0.0-py3-none-any.whl + hash: + sha256: b7044611c30140d9a75261653210e2002977b71a0497ff3ba0d98d7edbf62f7c + category: main + optional: false +- name: pylddwrap + version: 1.2.2 + manager: pip + platform: linux-aarch64 + dependencies: + icontract: '>=2.0.1,<3' + typing-extensions: '>=3.6.6' + url: https://files.pythonhosted.org/packages/c9/12/4afd6542c43cd20271f0e53bf0211decc10079a76a41e53c0288025a7b85/pylddwrap-1.2.2.tar.gz + hash: + sha256: a70437fea7bca647c0e98161e1006ef49970267999c571b499760f1c43c6ba10 + category: main + optional: false +- name: pynacl + version: 1.6.2 + manager: pip + platform: linux-aarch64 + dependencies: + cffi: '>=2.0.0' + url: https://files.pythonhosted.org/packages/68/f7/322f2f9915c4ef27d140101dd0ed26b479f7e6f5f183590fd32dfc48c4d3/pynacl-1.6.2-cp38-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl + hash: + sha256: 46065496ab748469cdd999246d17e301b2c24ae2fdf739132e580a0e94c94a87 + category: main + optional: false +- name: ruamel-yaml + version: 0.17.40 + manager: pip + platform: linux-aarch64 + dependencies: + ruamel-yaml-clib: '>=0.2.7' + url: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + hash: + sha256: b16b6c3816dff0a93dca12acf5e70afd089fa5acb80604afd1ffa8b465b7722c + category: main + optional: false +- name: sure + version: 2.0.1 + manager: pip + platform: linux-aarch64 + dependencies: + mock: '*' + six: '*' + url: https://files.pythonhosted.org/packages/dd/ae/eb28ee3b6768e51cb938abcf521cb678217203f33385a2df54d3f23331c5/sure-2.0.1.tar.gz + hash: + sha256: c8fc6fabc0e7f6984eeabb942540e45646e5bef0bb99fe59e02da634e4d4b9ca + category: main + optional: false diff --git a/conda-reqs/docs.yaml b/conda-reqs/docs.yaml index 995864a6a4..79e22efc0a 100644 --- a/conda-reqs/docs.yaml +++ b/conda-reqs/docs.yaml @@ -3,6 +3,7 @@ channels: - conda-forge - litex-hub - nodefaults + - jimfangx platforms: - linux-64 diff --git a/conda-reqs/riscv-tools.yaml b/conda-reqs/riscv-tools.yaml index 7427f6a8f9..f5e777cda9 100644 --- a/conda-reqs/riscv-tools.yaml +++ b/conda-reqs/riscv-tools.yaml @@ -3,6 +3,7 @@ channels: - conda-forge - litex-hub - nodefaults + - jimfangx platforms: - linux-64 diff --git a/scripts/build-circt-from-source.sh b/scripts/build-circt-from-source.sh index a8d5d47c15..66853d281d 100755 --- a/scripts/build-circt-from-source.sh +++ b/scripts/build-circt-from-source.sh @@ -22,12 +22,27 @@ usage() { echo " --prefix -p PREFIX : Install destination." echo " --help -h : Display this message" echo " --no-conda : Do not link CIRCT with conda libraries" + echo "" + echo "Environment" + echo " CC / CXX : C/C++ compilers to build CIRCT with (default: gcc/g++)" exit "$1" } PREFIX="" CONDA=1 +# Build with GCC by default +CC=${CC:-$(command -v gcc)} +CXX=${CXX:-$(command -v g++)} +if [ -z "$CC" ] || [ -z "$CXX" ]; then + error "ERROR: no gcc/g++ found on PATH. Activate the Chipyard conda environment, or set CC/CXX." + exit 1 +fi +export CC CXX + +# flags for GCC >= 15 +CIRCT_CXX_FLAGS="${CXXFLAGS:-} -include cstdint" + # getopts does not support long options, and is inflexible while [ "$1" != "" ]; do @@ -80,6 +95,9 @@ echo "Building CIRCT's LLVM/MLIR" -DLLVM_ENABLE_ASSERTIONS=ON \ -DCMAKE_BUILD_TYPE=RELEASE \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_C_COMPILER="$CC" \ + -DCMAKE_CXX_COMPILER="$CXX" \ + -DCMAKE_CXX_FLAGS="$CIRCT_CXX_FLAGS" \ ${CONDA:+-DCMAKE_EXE_LINKER_FLAGS="-L$RDIR/.conda-env/lib"} ninja ) @@ -96,6 +114,9 @@ echo "Building CIRCT" -DLLVM_ENABLE_ASSERTIONS=ON \ -DCMAKE_BUILD_TYPE=RELEASE \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_C_COMPILER="$CC" \ + -DCMAKE_CXX_COMPILER="$CXX" \ + -DCMAKE_CXX_FLAGS="$CIRCT_CXX_FLAGS" \ ${CONDA:+-DCMAKE_EXE_LINKER_FLAGS="-L$RDIR/.conda-env/lib"} ninja ) diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index 7d7b92346a..c67feb6d05 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -39,6 +39,7 @@ usage() { echo " --use-unpinned-deps -ud : Use unpinned conda environment" echo " --use-lean-conda : Install a leaner version of the repository (smaller conda env, no FireSim, no FireMarshal)" echo " --build-circt : Builds CIRCT from source, instead of downloading the precompiled binary" + echo " (uses gcc/g++ by default; set CC/CXX to override)" echo " --conda-env-name NAME : Optionally use a global conda env name instead of storing env in Chipyard directory" echo " --github-token TOKEN : Optionally use a Github token to download CIRCT" @@ -156,11 +157,25 @@ if run_step "1"; then # note: lock file must end in .conda-lock.yml - see https://github.com/conda-incubator/conda-lock/issues/154 CONDA_REQS=$CYDIR/conda-reqs CONDA_LOCK_REQS=$CONDA_REQS/conda-lock-reqs - # must match with the file generated by generate-conda-lockfile.sh + + case "$(uname -m)" in + x86_64) + CONDA_PLATFORM=linux-64 + ;; + aarch64|arm64) + CONDA_PLATFORM=linux-aarch64 + ;; + *) + echo "Unsupported Linux architecture: $(uname -m)" + exit 1 + ;; + esac + + # must match with the file generated by generate-conda-lockfiles.sh if [ "$USE_LEAN_CONDA" = false ]; then - LOCKFILE=$CONDA_LOCK_REQS/conda-requirements-$TOOLCHAIN_TYPE-linux-64.conda-lock.yml + LOCKFILE=$CONDA_LOCK_REQS/conda-requirements-$TOOLCHAIN_TYPE-$CONDA_PLATFORM.conda-lock.yml else - LOCKFILE=$CONDA_LOCK_REQS/conda-requirements-$TOOLCHAIN_TYPE-linux-64-lean.conda-lock.yml + LOCKFILE=$CONDA_LOCK_REQS/conda-requirements-$TOOLCHAIN_TYPE-$CONDA_PLATFORM-lean.conda-lock.yml fi # create conda-lock only environment to be used in this section. @@ -334,6 +349,26 @@ if run_step "10"; then PREFIX=$RISCV fi + # Select the prebuilt CIRCT tarball for the host architecture. CIRCT only + # publishes prebuilt *Linux* binaries for x86_64, so on other architectures + # (e.g. aarch64) there is nothing to download and we must build from source. + case "$(uname -m)" in + x86_64) + CIRCT_ARCH=linux-x64 + ;; + aarch64|arm64) + CIRCT_ARCH=linux-arm64 + if [ "$BUILD_CIRCT" = false ] ; then + echo "No prebuilt CIRCT binary is published for $(uname -m); building from source instead." + BUILD_CIRCT=true + fi + ;; + *) + error "Unsupported architecture for CIRCT: $(uname -m)" + exit 1 + ;; + esac + if [ "$BUILD_CIRCT" = true ] ; then echo "Building CIRCT from source, and installing to $PREFIX" $CYDIR/scripts/build-circt-from-source.sh --prefix $PREFIX @@ -342,7 +377,7 @@ if run_step "10"; then git submodule update --init $CYDIR/tools/install-circt && $CYDIR/tools/install-circt/bin/download-release-or-nightly-circt.sh \ - -f circt-full-static-linux-x64.tar.gz \ + -f circt-full-static-$CIRCT_ARCH.tar.gz \ -i $PREFIX \ -v version-file \ -x $CYDIR/conda-reqs/circt.json \ diff --git a/scripts/generate-conda-lockfiles.sh b/scripts/generate-conda-lockfiles.sh index 3ba5b3ce89..46ccbc5a36 100755 --- a/scripts/generate-conda-lockfiles.sh +++ b/scripts/generate-conda-lockfiles.sh @@ -2,58 +2,55 @@ set -ex -CUR_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - +CUR_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) CY_DIR=$(cd "$CUR_DIR/.." && pwd) -REQS_DIR="$CUR_DIR/../conda-reqs" +REQS_DIR="$CY_DIR/conda-reqs" CONDA_LOCK_ENV_PATH="$CY_DIR/.conda-lock-env" -if [ ! -d "$REQS_DIR" ]; then - echo "$REQS_DIR does not exist, make sure you're calling this script from chipyard/" +if [[ ! -d "$REQS_DIR" ]]; then + echo "$REQS_DIR does not exist" exit 1 fi -if [[ ! -x "$CONDA_LOCK_ENV_PATH/bin/conda-lock" ]]; then - echo "conda-lock environment not found; run build-setup.sh Step 1 first." +CONDA_EXE="${CONDA_EXE:-$(command -v conda || true)}" +if [[ -z "$CONDA_EXE" || ! -x "$CONDA_EXE" ]]; then + echo "No conda executable found; initialize Miniforge or set CONDA_EXE." exit 1 fi -# We never authenticate to a private index, so disable the keyring outright. Otherwise sometimes this hangs -export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring - -CONDA_EXE="${CONDA_EXE:-$(command -v conda)}" -if [[ ! -x "$CONDA_EXE" ]]; then - echo "no conda executable found; set CONDA_EXE or put conda on PATH." - exit 1 +# isolated conda-lock environment if build-setup hasn't ran yet +if [[ ! -x "$CONDA_LOCK_ENV_PATH/bin/conda-lock" ]]; then + echo "Creating conda-lock environment at $CONDA_LOCK_ENV_PATH" + "$CONDA_EXE" create -y -p "$CONDA_LOCK_ENV_PATH" -c conda-forge conda-lock fi +# We never authenticate to a private index, so disable the keyring to avoid weird errs +export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring + for TOOLCHAIN_TYPE in riscv-tools; do - # note: lock file must end in .conda-lock.yml - see https://github.com/conda-incubator/conda-lock/issues/154 - LOCKFILE=$REQS_DIR/conda-lock-reqs/conda-requirements-$TOOLCHAIN_TYPE-linux-64.conda-lock.yml - rm -rf $LOCKFILE + for PLATFORM in linux-64 linux-aarch64; do + LOCKFILE="$REQS_DIR/conda-lock-reqs/conda-requirements-$TOOLCHAIN_TYPE-$PLATFORM.conda-lock.yml" + rm -f "$LOCKFILE" "$CONDA_LOCK_ENV_PATH/bin/conda-lock" \ --conda "$CONDA_EXE" \ - --no-mamba \ - --no-micromamba \ -f "$REQS_DIR/chipyard-base.yaml" \ -f "$REQS_DIR/chipyard-extended.yaml" \ -f "$REQS_DIR/docs.yaml" \ -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" \ - -p linux-64 \ - --lockfile $LOCKFILE + -p "$PLATFORM" \ + --lockfile "$LOCKFILE" - LOCKFILE=$REQS_DIR/conda-lock-reqs/conda-requirements-$TOOLCHAIN_TYPE-linux-64-lean.conda-lock.yml - rm -rf $LOCKFILE + LOCKFILE="$REQS_DIR/conda-lock-reqs/conda-requirements-$TOOLCHAIN_TYPE-$PLATFORM-lean.conda-lock.yml" + rm -f "$LOCKFILE" "$CONDA_LOCK_ENV_PATH/bin/conda-lock" \ --conda "$CONDA_EXE" \ - --no-mamba \ - --no-micromamba \ -f "$REQS_DIR/chipyard-base.yaml" \ -f "$REQS_DIR/docs.yaml" \ -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" \ - -p linux-64 \ - --lockfile $LOCKFILE + -p "$PLATFORM" \ + --lockfile "$LOCKFILE" + done done diff --git a/software/firemarshal b/software/firemarshal index cc1a9d8cf6..423ccbb323 160000 --- a/software/firemarshal +++ b/software/firemarshal @@ -1 +1 @@ -Subproject commit cc1a9d8cf69da8176f95943b70dcd5c0f80940b9 +Subproject commit 423ccbb323a87d3e0652c6e4f7388623ff6df1ef diff --git a/toolchains/libgloss b/toolchains/libgloss index 39234a1624..f9feb2f3ca 160000 --- a/toolchains/libgloss +++ b/toolchains/libgloss @@ -1 +1 @@ -Subproject commit 39234a16247ab1fa234821b251f1f1870c3de343 +Subproject commit f9feb2f3ca986885f905ab1b106cbc782cfbbc7e From c0cf6ee103651c8ae7d2f27052ef47984c573ca7 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Tue, 8 Sep 2026 12:27:55 +0000 Subject: [PATCH 67/69] fix tracerv after conda dependency bumps --- .../src/main/cc/bridges/tracerv/test/dwarftest.cc | 2 +- .../src/main/cc/bridges/tracerv/tracerv_dwarf.cc | 14 +++++++------- .../src/main/cc/bridges/tracerv/tracerv_dwarf.h | 4 ++-- .../src/main/cc/bridges/tracerv/tracerv_elf.cc | 4 ++-- .../src/main/cc/bridges/tracerv/tracerv_elf.h | 1 + 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/test/dwarftest.cc b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/test/dwarftest.cc index e19c8e5cfb..1b642ce02a 100644 --- a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/test/dwarftest.cc +++ b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/test/dwarftest.cc @@ -30,7 +30,7 @@ int main(int argc, char *argv[]) { subroutine_map funcs; { - dwarf_t dwarf = dwarf_t(elf); + dwarf_t dwarf = dwarf_t(fd); dwarf.subroutines(funcs); } diff --git a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_dwarf.cc b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_dwarf.cc index 8665643f54..84c76eac96 100644 --- a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_dwarf.cc +++ b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_dwarf.cc @@ -41,10 +41,9 @@ class dwarf_t::dwarf_deleter { Dwarf_Debug dbg; }; -dwarf_t::dwarf_t(Elf *elf) { +dwarf_t::dwarf_t(int fd) { Dwarf_Error err; - if (dwarf_elf_init( - elf, DW_DLC_READ, &dwarf_runtime_error, nullptr, &this->dbg, &err) != + if (dwarf_init_b(fd, DW_GROUPNUMBER_ANY, &dwarf_runtime_error, nullptr, &this->dbg, &err) != DW_DLV_OK) { this->dbg = nullptr; } @@ -55,7 +54,7 @@ void dwarf_t::subroutines(subroutine_map &table) { return; } Dwarf_Unsigned next_cu_offset; - while (dwarf_next_cu_header_c(this->dbg, + while (dwarf_next_cu_header_d(this->dbg, 1, // is_info nullptr, // cu_header_length nullptr, // version_stamp @@ -65,12 +64,13 @@ void dwarf_t::subroutines(subroutine_map &table) { nullptr, // extension_size nullptr, // signature nullptr, // typeoffset - &next_cu_offset, + &next_cu_offset, // next hdr offset + nullptr, // header_type nullptr) == DW_DLV_OK) { // Expect CU to have an initial DIE Dwarf_Die die; - if (dwarf_siblingof(this->dbg, nullptr, &die, nullptr) != DW_DLV_OK) { + if (dwarf_siblingof_b(this->dbg, nullptr, 1, &die, nullptr) != DW_DLV_OK) { continue; } die_ptr die_wrap(die, dwarf_deleter(dbg)); @@ -92,7 +92,7 @@ void dwarf_t::siblings(die_ptr die, Dwarf_Die p = die.get(); (this->*fn)(p, arg); - if (dwarf_siblingof(this->dbg, p, &p, nullptr) != DW_DLV_OK) { + if (dwarf_siblingof_b(this->dbg, p, 1, &p, nullptr) != DW_DLV_OK) { return; } die = die_ptr(p, dwarf_deleter(dbg)); diff --git a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_dwarf.h b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_dwarf.h index 34ea4d87c6..f9259c5c3e 100644 --- a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_dwarf.h +++ b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_dwarf.h @@ -34,10 +34,10 @@ const subroutine_t *subroutine_find(const subroutine_map &, uint64_t); class dwarf_t { public: - dwarf_t(Elf *); + dwarf_t(int); virtual ~dwarf_t(void) { if (this->dbg) { - dwarf_finish(this->dbg, nullptr); + dwarf_finish(this->dbg); } } diff --git a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_elf.cc b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_elf.cc index 1f03202edb..21a1597d86 100644 --- a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_elf.cc +++ b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_elf.cc @@ -29,7 +29,7 @@ inline void elf_version_init(void) { } } // namespace -elf_t::elf_t(int fd) { +elf_t::elf_t(int fd) : fd(fd) { elf_version_init(); this->elf = elf_begin(fd, ELF_C_READ, nullptr); if (this->elf == nullptr) { @@ -75,7 +75,7 @@ void *elf_t::section_data(const char *name, size_t *size) { std::pair elf_t::subroutines(subroutine_map &table) { { - dwarf_t dwarf(this->elf); + dwarf_t dwarf(this->fd); dwarf.subroutines(table); } diff --git a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_elf.h b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_elf.h index 9eb3abdabe..fa27831a6d 100644 --- a/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_elf.h +++ b/generators/firechip/bridgestubs/src/main/cc/bridges/tracerv/tracerv_elf.h @@ -16,6 +16,7 @@ class elf_t { void *section_data(const char *, size_t *); private: + int fd; Elf *elf; }; From 88065d251327f9ec94b1e54334aaec9ffa609b09 Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Wed, 9 Sep 2026 13:50:11 +0000 Subject: [PATCH 68/69] bump firemarshal --- software/firemarshal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/firemarshal b/software/firemarshal index 423ccbb323..4ad270d6ed 160000 --- a/software/firemarshal +++ b/software/firemarshal @@ -1 +1 @@ -Subproject commit 423ccbb323a87d3e0652c6e4f7388623ff6df1ef +Subproject commit 4ad270d6ed2bbd6efbd0ca1a12ace0525dc8570c From b2e693fc80e3b2a62dc2ab0d7dab997a7b1948ef Mon Sep 17 00:00:00 2001 From: Jim Fang Date: Wed, 9 Sep 2026 07:25:54 -0700 Subject: [PATCH 69/69] resolve lock with everything in ucb-bar channel now + ubuntu LTS build-setup workflow --- .../workflows/build-setup-ubuntu-26.04.yml | 72 ++ .github/workflows/pr-ci.yml | 8 + conda-reqs/chipyard-base.yaml | 1 - conda-reqs/chipyard-extended.yaml | 1 - ...s-riscv-tools-linux-64-lean.conda-lock.yml | 118 ++- ...ements-riscv-tools-linux-64.conda-lock.yml | 875 ++++++++++-------- ...cv-tools-linux-aarch64-lean.conda-lock.yml | 78 +- ...s-riscv-tools-linux-aarch64.conda-lock.yml | 656 ++++++------- conda-reqs/docs.yaml | 1 - conda-reqs/riscv-tools.yaml | 1 - 10 files changed, 1018 insertions(+), 793 deletions(-) create mode 100644 .github/workflows/build-setup-ubuntu-26.04.yml diff --git a/.github/workflows/build-setup-ubuntu-26.04.yml b/.github/workflows/build-setup-ubuntu-26.04.yml new file mode 100644 index 0000000000..117a286603 --- /dev/null +++ b/.github/workflows/build-setup-ubuntu-26.04.yml @@ -0,0 +1,72 @@ +name: build-setup ubuntu 26.04 + +on: + workflow_call: + inputs: + pr_number: + required: true + type: number + +permissions: + contents: read + +defaults: + run: + shell: bash -leo pipefail {0} + +jobs: + build-setup-ubuntu-2604: + name: build-setup ubuntu 26.04 + runs-on: ubuntu-26.04 + timeout-minutes: 180 + env: + CONDA_INSTALL_DIR: ${{ github.workspace }}/.ci/conda + FORCE_NON_EC2: 1 + JVM_OPTS: -Xmx3200m + steps: + - name: Maximize build space + uses: jimfangx/maximize-build-space@master + with: + root-reserve-mb: 4096 + swap-size-mb: 10240 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + + - name: Check out main + uses: actions/checkout@v4 + with: + ref: main + + - name: Refresh pull request merge ref + run: | + git fetch --no-tags origin "pull/${{ inputs.pr_number }}/merge" + git checkout --detach FETCH_HEAD + git rev-parse --short HEAD + + - name: Install conda + run: | + mkdir -p "$(dirname "${CONDA_INSTALL_DIR}")" + wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" + bash Miniforge3.sh -b -p "${CONDA_INSTALL_DIR}" + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" + if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then + source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" + fi + conda activate + + - name: Exclude CI-managed directories from ctags + run: | + grep -qxF ".ci" .ctagsignore || printf "\n.ci\n" >> .ctagsignore + + - name: Run build setup + run: | + git config --global --add safe.directory "*" + source "${CONDA_INSTALL_DIR}/etc/profile.d/conda.sh" + if [ -f "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" ]; then + source "${CONDA_INSTALL_DIR}/etc/profile.d/mamba.sh" + fi + conda activate + ./build-setup.sh riscv-tools + grep -F "Setup complete!" build-setup.log diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 2407b605db..eb748cd6ef 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -39,6 +39,14 @@ jobs: with: pr_number: ${{ github.event.pull_request.number }} + build-setup-ubuntu-2604: + name: build-setup ubuntu 26.04 + needs: check-ci-disable + if: ${{ needs.check-ci-disable.outputs.ci_disabled != 'true' }} + uses: ./.github/workflows/build-setup-ubuntu-26.04.yml + with: + pr_number: ${{ github.event.pull_request.number }} + build-setup-rhel: name: build-setup rhel needs: check-ci-disable diff --git a/conda-reqs/chipyard-base.yaml b/conda-reqs/chipyard-base.yaml index 294a700135..a0deeefc80 100644 --- a/conda-reqs/chipyard-base.yaml +++ b/conda-reqs/chipyard-base.yaml @@ -3,7 +3,6 @@ channels: - conda-forge - litex-hub - nodefaults - - jimfangx platforms: - linux-64 diff --git a/conda-reqs/chipyard-extended.yaml b/conda-reqs/chipyard-extended.yaml index a9f33809ae..1c608edbb2 100644 --- a/conda-reqs/chipyard-extended.yaml +++ b/conda-reqs/chipyard-extended.yaml @@ -3,7 +3,6 @@ channels: - conda-forge - litex-hub - nodefaults - - jimfangx platforms: - linux-64 diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml index ec52c2fe70..a66d419a1e 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-64: e9f0997234420055b5af57e5a5485434ebab88e954bc2ff9353ce35e8483dbb7 + linux-64: cea1142926815b3479a31fa52dbfcb4f5baaeb4a4f244cb4ee0f44be73d43730 channels: - url: ucb-bar used_env_vars: [] @@ -21,8 +21,6 @@ metadata: used_env_vars: [] - url: litex-hub used_env_vars: [] - - url: jimfangx - used_env_vars: [] platforms: - linux-64 sources: @@ -75,7 +73,7 @@ package: dependencies: exceptiongroup: '>=1.0.2' idna: '>=2.8' - python: '>=3.10' + python: '' typing_extensions: '>=4.5' url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda hash: @@ -102,7 +100,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda hash: md5: f1976ce927373500cc19d3c0b2c85177 @@ -114,11 +112,11 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - python: '' - python_abi: 3.10.* zstd: '>=1.5.7,<1.6.0a0' + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.7.0-py310hff74037_0.conda hash: md5: 3a5e1bf41b700d667440ae26654dd70a @@ -185,8 +183,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.8-hebe6cf0_2.conda hash: md5: 3ad2b403be8fc5612b9159e2ce621f69 @@ -301,8 +299,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.11-h280c20c_0.conda hash: md5: c63e2851f3d99a32f4b6991d0460dd25 @@ -326,9 +324,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libfdt: '>=1.7.2,<1.8.0a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.7.2-h280c20c_6.conda hash: @@ -469,10 +467,10 @@ package: manager: conda platform: linux-64 dependencies: - font-ttf-dejavu-sans-mono: '' + font-ttf-ubuntu: '' font-ttf-inconsolata: '' + font-ttf-dejavu-sans-mono: '' font-ttf-source-code-pro: '' - font-ttf-ubuntu: '' url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda hash: md5: a7970cd949a077b7cb9696379d338681 @@ -577,8 +575,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-h54a6638_1.conda hash: md5: f9fe2984587fa8235a6af6004760cd18 @@ -619,7 +617,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' typing_extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda hash: @@ -632,9 +630,9 @@ package: manager: conda platform: linux-64 dependencies: - hpack: '>=4.2,<5' + python: '' hyperframe: '>=6.1,<7' - python: '>=3.10' + hpack: '>=4.2,<5' url: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda hash: md5: e652ac7756069c456d0da2a922cd7df5 @@ -683,8 +681,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-py310h44b86e0_2.conda hash: md5: 72a381cbad04f24b1c2a43ef707f45b4 @@ -696,7 +694,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda hash: md5: a39ae05027e9b707742e41b30d296b75 @@ -721,7 +719,7 @@ package: platform: linux-64 dependencies: markupsafe: '>=2.0' - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda hash: md5: 04558c96691bed63104678757beb4f8d @@ -733,9 +731,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' + oniguruma: '>=6.9.10,<6.10.0a0' libgcc: '>=14' - oniguruma: 6.9.*,>=6.9.10,<6.10.0a0 + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_1.conda hash: md5: 6ec056e539486e84f0c7acef6b5863f9 @@ -773,7 +771,7 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' keyutils: '>=1.6.3,<2.0a0' - libedit: '>=3.1.20250104,<3.2.0a0,>=3.1.20250104,<4.0a0' + libedit: '>=3.1.20250104,<4.0a0' libgcc: '>=15' libstdcxx: '>=15' openssl: '>=3.5.7,<4.0a0' @@ -879,9 +877,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' ncurses: '>=6.6,<7.0a0' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h373387f_1.conda hash: md5: 50708d3b951d0f8e2d7f2df5b5edc040 @@ -893,8 +891,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h280c20c_3.conda hash: md5: 7bc31538d6e3fb349e897353969237ec @@ -919,8 +917,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.7.2-h280c20c_6.conda hash: @@ -1010,12 +1008,12 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libffi: '>=3.7.0,<3.8.0a0' libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' libiconv: '>=1.18,<2.0a0' - libzlib: '>=1.3.2,<2.0a0' pcre2: '>=10.47,<10.48.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_3.conda hash: md5: d216efacca3f34f2b13ddd1632f53833 @@ -1140,7 +1138,7 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' c-ares: '>=1.34.8,<2.0a0' - libev: '>=4.33,<4.34.0a0,>=4.33,<5.0a0' + libev: '>=4.33,<5.0a0' libgcc: '>=15' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' @@ -1196,10 +1194,10 @@ package: manager: conda platform: linux-64 dependencies: + libstdcxx: '>=15' + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' icu: '>=78.3,<79.0a0' - libgcc: '>=15' - libstdcxx: '>=15' url: https://conda.anaconda.org/conda-forge/linux-64/libpsl-0.23.1-hd9e3e90_1.conda hash: md5: 77be60417aa572afcb48cbe0f967401d @@ -1355,8 +1353,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.38-h280c20c_0.conda hash: md5: f7a7ff5a6ab331e037abd34f379a631d @@ -1464,8 +1462,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_1.conda hash: md5: 2db7a395d7dc2b6ed5effaf68fb99443 @@ -1492,11 +1490,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.10-h280c20c_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.10-hebe6cf0_1.conda hash: - md5: 16c8e401c682f9961676c201c888b1d9 - sha256: 22ba0c20d810f4e27092931191a08331b3bff1b7feeead5de7d8514cfd9230ad + md5: d0d628a0259bb9cbcd73f792b0b61387 + sha256: 098de630b10d3276d52b075360fa8492574ac3f60ff098a8f32cc1738274f1dd category: main optional: false - name: openjdk @@ -1548,7 +1546,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.9' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda hash: md5: 936687ed80f295a1f5dbcf8bd34c252c @@ -1602,9 +1600,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_3.conda hash: md5: 0ee5bb30034b081a1386c1e2c98ab0a7 @@ -1629,7 +1627,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda hash: md5: 2882dee445dfa45b0c5afce3ffb7730a @@ -1705,10 +1703,10 @@ package: manager: conda platform: linux-64 dependencies: + python: '' certifi: '>=2023.5.7' charset-normalizer: '>=2,<4' idna: '>=2.5,<4' - python: '>=3.10' urllib3: '>=1.26,<3' url: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda hash: @@ -1826,9 +1824,9 @@ package: manager: conda platform: linux-64 dependencies: - docutils: '>0.18,<0.23' - python: '>=3.10' + python: '' sphinx: '>=6,<10' + docutils: '>0.18,<0.23' sphinxcontrib-jquery: '>=4,<5' url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda hash: @@ -1932,7 +1930,7 @@ package: platform: linux-64 dependencies: anyio: '>=3.6.2,<5' - python: '>=3.10' + python: '' typing_extensions: '>=4.10.0' url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda hash: @@ -1958,8 +1956,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda hash: @@ -1972,7 +1970,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda hash: md5: b5325cf06a000c5b14970462ff5e4d58 @@ -1984,7 +1982,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda hash: md5: c70ad746c22219b9700931707482992c @@ -2026,7 +2024,7 @@ package: __unix: '' click: '>=7.0' h11: '>=0.8' - python: '>=3.10' + python: '' typing_extensions: '>=4.0' url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda hash: @@ -2058,10 +2056,10 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' + python: '' anyio: '>=3.0.0' libgcc: '>=14' - python: '' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/watchfiles-1.2.0-py310hf7b62b8_1.conda hash: @@ -2074,9 +2072,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' python: '' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/websockets-16.1.1-py310h99dffb4_0.conda hash: @@ -2102,8 +2100,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-h280c20c_0.conda hash: md5: 85c9442aec283b4e464fa9ecc484a2f3 @@ -2117,8 +2115,8 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - libuuid: '>=2.42.2,<3.0a0' xorg-libice: '>=1.1.2,<2.0a0' + libuuid: '>=2.42.2,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-h0d788c3_1.conda hash: md5: aa7459ed9ad086ba11dda843d764b33d @@ -2145,11 +2143,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb03c661_2.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-h7cc23a3_2.conda hash: - md5: f06ef439c280a5f90b8bf62355008dbc - sha256: cbf891f6cc1a859347680af1c8562bc6b033bf182a2a3bb536016932be3206de + md5: da33efee1a93603d92e06d4a2b68def6 + sha256: 3ec065b94554dc48a4ca582a960a5484bc166b26e83ce0954653e08d17e8bd53 category: main optional: false - name: xorg-libxdmcp diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index ea812e73cc..9161992cde 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-64: fe51b197596af192bd1225315fbf9e182d49f2327c377cccee84e54b27e33e8e + linux-64: ea92441292896c203c06241a997c4578f0f6b15c7ffb3b7b5d5a3f554ff4e09b channels: - url: ucb-bar used_env_vars: [] @@ -21,8 +21,6 @@ metadata: used_env_vars: [] - url: litex-hub used_env_vars: [] - - url: jimfangx - used_env_vars: [] platforms: - linux-64 sources: @@ -146,6 +144,19 @@ package: sha256: a35bddac04be093769e81814465a537961c6ed0f8d3cc23d6dce6ecdfaf71821 category: main optional: false +- name: amqp + version: 5.3.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.10' + vine: '>=5.0.0,<6.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/amqp-5.3.1-pyhd8ed1ab_0.conda + hash: + md5: 7b12e35821f20400ac419b830efb03d9 + sha256: f0e7009b24894845cb48b1e6902f8c64e61b4a27ff5df4c0438ce83472c288de + category: main + optional: false - name: anyio version: 4.14.2 manager: conda @@ -153,7 +164,7 @@ package: dependencies: exceptiongroup: '>=1.0.2' idna: '>=2.8' - python: '>=3.10' + python: '' typing_extensions: '>=4.5' url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda hash: @@ -178,7 +189,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.7.2-pyhcf101f3_0.conda hash: md5: 5185c9f9742daeffae5daae93c802bf7 @@ -190,11 +201,11 @@ package: manager: conda platform: linux-64 dependencies: + python: '>=3.10' + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' _python_abi3_support: 1.* cpython: '>=3.10' - libgcc: '>=15' - python: '>=3.10' url: https://conda.anaconda.org/conda-forge/linux-64/ast-serialize-0.8.0-py310ha6597b5_1.conda hash: md5: caf081b80ddd3672a79b36c34b702737 @@ -206,7 +217,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/async-timeout-5.0.1-pyhcf101f3_2.conda hash: md5: 0d0ef7e4a0996b2c4ac2175a12b3bf69 @@ -265,7 +276,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/attrs-26.1.0-pyhcf101f3_0.conda hash: md5: c6b0543676ecb1fb2d7643941fe375f2 @@ -291,13 +302,13 @@ package: manager: conda platform: linux-64 dependencies: + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' - aws-c-cal: '>=0.9.15,<0.9.16.0a0' - aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-c-sdkutils: '>=0.2.7,<0.2.8.0a0' - libgcc: '>=14' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.4-h4610da3_2.conda hash: md5: cefa84dbf94066e7a6902af288a2fedd @@ -337,9 +348,9 @@ package: manager: conda platform: linux-64 dependencies: + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' - libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h01ee8f8_5.conda hash: md5: ae862abdbb3160f97478d3d4749164c0 @@ -351,12 +362,12 @@ package: manager: conda platform: linux-64 dependencies: + libgcc: '>=14' + libstdcxx: '>=14' __glibc: '>=2.17,<3.0.a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-checksums: '>=0.2.10,<0.2.11.0a0' - libgcc: '>=14' - libstdcxx: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.7.1-h1d67b22_5.conda hash: md5: a2dd9d6d6bfe33c44de552b792328a67 @@ -369,11 +380,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-c-cal: '>=0.9.15,<0.9.16.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-compression: '>=0.3.2,<0.3.3.0a0' - aws-c-io: '>=0.27.5,<0.27.6.0a0' - libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.11.0-hbe094ff_5.conda hash: md5: c09f7ec7327b8bd52fc2d6eacaa18d3b @@ -386,9 +397,9 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - aws-c-cal: '>=0.9.15,<0.9.16.0a0' - aws-c-common: '>=0.14.3,<0.14.4.0a0' libgcc: '>=14' + aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' s2n: '>=1.7.6,<1.7.7.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.27.5-h4f381ba_1.conda hash: @@ -402,10 +413,10 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' aws-c-http: '>=0.11.0,<0.11.1.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' - libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.16.0-h94f2f89_3.conda hash: md5: 9da082aef418fe3d001af9574f5d277d @@ -417,15 +428,15 @@ package: manager: conda platform: linux-64 dependencies: + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-auth: '>=0.10.4,<0.10.5.0a0' - aws-c-cal: '>=0.9.15,<0.9.16.0a0' + openssl: '>=3.5.7,<4.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' - aws-c-http: '>=0.11.0,<0.11.1.0a0' - aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-checksums: '>=0.2.10,<0.2.11.0a0' - libgcc: '>=14' - openssl: '>=3.5.7,<4.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.13.1-h7508075_1.conda hash: md5: 2daf54d3eef87b757f68d7597534dd2f @@ -438,8 +449,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - aws-c-common: '>=0.14.3,<0.14.4.0a0' libgcc: '>=14' + aws-c-common: '>=0.14.3,<0.14.4.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.7-h01ee8f8_3.conda hash: md5: 412f0cf18cc4c4945655dba954ca2d76 @@ -451,9 +462,9 @@ package: manager: conda platform: linux-64 dependencies: + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' - libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h01ee8f8_5.conda hash: md5: 4d70caf5260e0787675c3bf61ae5b64c @@ -479,19 +490,19 @@ package: manager: conda platform: linux-64 dependencies: - awscrt: 0.36.2 + python: '' colorama: '>=0.2.5,<0.4.7' - distro: '>=1.5.0,<1.9.0' docutils: '>=0.10,<0.20' - jmespath: '>=0.7.1,<1.1.0' - prompt-toolkit: '>=3.0.24,<3.0.52' - python: '' - python-dateutil: '>=2.1,<=2.9.0' - python_abi: 3.10.* ruamel.yaml: '>=0.15.0,<=0.19.1' ruamel.yaml.clib: '>=0.2.0,<=0.2.15' + prompt-toolkit: '>=3.0.24,<3.0.52' + distro: '>=1.5.0,<1.9.0' + awscrt: 0.36.2 + python-dateutil: '>=2.1,<=2.9.0' + jmespath: '>=0.7.1,<1.1.0' urllib3: '>=1.25.4,<=2.6.3' wcwidth: <0.3.0 + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.36.35-py310hd3bfc61_0.conda hash: md5: d41161242569559450b4840d8291c406 @@ -503,19 +514,19 @@ package: manager: conda platform: linux-64 dependencies: + python: '' + libgcc: '>=14' __glibc: '>=2.17,<3.0.a0' aws-c-auth: '>=0.10.4,<0.10.5.0a0' - aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-event-stream: '>=0.7.1,<0.7.2.0a0' - aws-c-http: '>=0.11.0,<0.11.1.0a0' - aws-c-io: '>=0.27.5,<0.27.6.0a0' - aws-c-mqtt: '>=0.16.0,<0.16.1.0a0' + python_abi: 3.10.* aws-c-s3: '>=0.13.1,<0.13.2.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-checksums: '>=0.2.10,<0.2.11.0a0' - libgcc: '>=14' - python: '' - python_abi: 3.10.* + aws-c-mqtt: '>=0.16.0,<0.16.1.0a0' s2n: '>=1.7.6,<1.7.7.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.36.2-py310h01eb2e4_0.conda hash: @@ -524,18 +535,19 @@ package: category: main optional: false - name: azure-core - version: 1.38.2 + version: 1.41.0 manager: conda platform: linux-64 dependencies: + flask: 2.2.5 python: '>=3.10' requests: '>=2.21.0' six: '>=1.11.0' typing_extensions: '>=4.6.0' - url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.38.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.41.0-pyhd8ed1ab_0.conda hash: - md5: 743136e218757845f4737a104cd6643c - sha256: 4d57a96231eb98675833bcd845b6c8474c829f4761d1d4de6b04f78d9df362d1 + md5: 3d743fce13d22b101bfd733e29469628 + sha256: fc46c9078396a558e42871e111c1bf88d3bb16afd4cf8f9887125f83b647cea9 category: main optional: false - name: azure-identity @@ -560,7 +572,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda hash: md5: f1976ce927373500cc19d3c0b2c85177 @@ -572,11 +584,11 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - python: '' - python_abi: 3.10.* zstd: '>=1.5.7,<1.6.0a0' + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.7.0-py310hff74037_0.conda hash: md5: 3a5e1bf41b700d667440ae26654dd70a @@ -588,9 +600,9 @@ package: manager: conda platform: linux-64 dependencies: + readline: '>=8.2,<9.0a0' __glibc: '>=2.17,<3.0.a0' libgcc: '>=13' - readline: '>=8.2,<9.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/bash-5.2.37-h4be8908_0.conda hash: md5: c918f7141733d412f5c579d07f437690 @@ -620,6 +632,21 @@ package: sha256: c5e04d9408a0047bd87156b1853a4ac31cb3a5ccdc52374d89c72cbdabe95002 category: main optional: false +- name: billiard + version: 4.2.4 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + url: https://conda.anaconda.org/conda-forge/linux-64/billiard-4.2.4-py310h7c4b9e2_0.conda + hash: + md5: 36adaa154a184a872bd8165ae132a19e + sha256: 6db2e9b6b1e491556b6ecb982de41c172fcfd9402dc18edc2401dad366319490 + category: main + optional: false - name: binutils version: 2.46.1 manager: conda @@ -660,18 +687,6 @@ package: sha256: d45803ee7834f71eb0656d74a58644390ef13365ff67f7716cc660309e46cfbd category: main optional: false -- name: blinker - version: 1.9.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - hash: - md5: 42834439227a4551b939beeeb8a4b085 - sha256: f7efd22b5c15b400ed84a996d777b6327e5c402e79e3c534a7e086236f1eb2dc - category: main - optional: false - name: boltons version: 26.1.0 manager: conda @@ -715,7 +730,7 @@ package: category: main optional: false - name: botocore - version: 1.43.88 + version: 1.43.90 manager: conda platform: linux-64 dependencies: @@ -723,10 +738,10 @@ package: python: '>=3.10' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,!=2.2.0,<3' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.88-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.90-pyhd8ed1ab_0.conda hash: - md5: 1aa61f8701378688b720c3fba469cb6e - sha256: 6e438c78936a1ea4436f4005ab259f43dc89c03bf2276a0dde9a5d50e7a37afd + md5: 3968dc5ee8c18d480b44442b7460154d + sha256: e9a70a3d0f12115ded6a5752d9ffbbf05a710315b5ae97fe1d4f7ee448df5dc4 category: main optional: false - name: botocore-stubs @@ -734,7 +749,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' types-awscrt: '' typing_extensions: '>=4.1.0' url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.43.67-pyhcf101f3_0.conda @@ -808,8 +823,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.8-hebe6cf0_2.conda hash: md5: 3ad2b403be8fc5612b9159e2ce621f69 @@ -864,10 +879,10 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' - libhiredis: '>=1.3.0,<1.4.0a0' libstdcxx: '>=15' + libgcc: '>=15' xxhash: '>=0.8.3,<0.8.4.0a0' + libhiredis: '>=1.3.0,<1.4.0a0' zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/ccache-4.14-h420ae53_0.conda hash: @@ -875,6 +890,28 @@ package: sha256: adace394e3f21541d1740b64f8f683cb6f6b9693fe419f49d4460a076090675d category: main optional: false +- name: celery + version: 5.6.3 + manager: conda + platform: linux-64 + dependencies: + python: '' + billiard: '>=4.2.1,<5.0' + kombu: '>=5.6.0' + vine: '>=5.1.0,<6.0' + click: '>=8.1.2,<9.0' + click-didyoumean: '>=0.3.0' + click-repl: '>=0.2.0' + click-plugins: '>=1.1.1' + python-dateutil: '>=2.8.2' + tzlocal: '' + exceptiongroup: '>=1.3.0' + url: https://conda.anaconda.org/conda-forge/noarch/celery-5.6.3-pyhc364b38_0.conda + hash: + md5: 5faafe2ad8db9e411630f52cf36b4aaa + sha256: 48a6a8b27fcaed2596a424010a22284d9a9205db698f083e0936692a9de9e661 + category: main + optional: false - name: certifi version: 2026.7.22 manager: conda @@ -921,15 +958,15 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - clang-format-23: ==23.1.0 libclang-cpp23.1: '>=23.1.0,<23.2.0a0' - libgcc: '>=15' + clang-format-23: ==23.1.0 + __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=15' + libgcc: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-23.1.0-default_hcd25269_1.conda hash: md5: baeb4900f00a7470ed297e0cd5cfd62c @@ -941,15 +978,15 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libclang-cpp23.1: '>=23.1.0,<23.2.0a0' - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' + __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=15' + libgcc: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-23-23.1.0-default_h0acdd01_1.conda hash: md5: ce1c496a9732c0382c24e01e054372a4 @@ -961,16 +998,16 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libclang-cpp23.1: '>=23.1.0,<23.2.0a0' libclang13: '>=23.1.0' - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' + __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=15' + libgcc: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/clang-scan-deps-23.1.0-default_h0acdd01_1.conda hash: md5: c9fe508027f299bd61b24175013da9b9 @@ -982,18 +1019,18 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' clang-format: ==23.1.0 + libclang13: '>=23.1.0' clang-scan-deps: ==23.1.0 libclang-cpp23.1: '>=23.1.0,<23.2.0a0' - libclang13: '>=23.1.0' - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' + __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=15' + libgcc: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/clang-tools-23.1.0-default_h9d70225_1.conda hash: md5: 66f754e44ffe2fddbd767a54e3016839 @@ -1013,22 +1050,63 @@ package: sha256: ccc4787f511964f9a1f2d2d2859c91c5d571fb60f7f09d4c4e092c9b7a94e671 category: main optional: false +- name: click-didyoumean + version: 0.3.1 + manager: conda + platform: linux-64 + dependencies: + click: '>=7' + python: '>=3.9,<4.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/click-didyoumean-0.3.1-pyhd8ed1ab_1.conda + hash: + md5: dd87c399586cac9f8bdd8c644b2592a6 + sha256: f3e6540088db593707766aa30abe184463e4842182012ffb81e1cc784dbdc436 + category: main + optional: false +- name: click-plugins + version: 1.1.1.2 + manager: conda + platform: linux-64 + dependencies: + click: '>=4.0' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda + hash: + md5: e9b05deb91c013e5224672a4ba9cf8d1 + sha256: ba1ee6e2b2be3da41d70d0d51d1159010de900aa3f33fceaea8c52e9bd30a26e + category: main + optional: false +- name: click-repl + version: 0.3.0 + manager: conda + platform: linux-64 + dependencies: + click: '' + prompt_toolkit: '' + python: '>=3.6' + six: '' + url: https://conda.anaconda.org/conda-forge/noarch/click-repl-0.3.0-pyhd8ed1ab_0.conda + hash: + md5: 27eb8f68250666c1a19d1b6ec9d12c4e + sha256: 69c16e0b89e1fb4fc444af4798ef1222b3075d074cbcbe70b9af793668200a14 + category: main + optional: false - name: cmake version: 4.4.3 manager: conda platform: linux-64 dependencies: + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' + ncurses: '>=6.6,<7.0a0' bzip2: '>=1.0.8,<2.0a0' - libcurl: '>=8.21.0,<9.0a0' libexpat: '>=2.8.1,<3.0a0' - libgcc: '>=15' liblzma: '>=5.8.3,<6.0a0' - libstdcxx: '>=15' + libcurl: '>=8.21.0,<9.0a0' + rhash: '>=1.4.6,<2.0a0' libuv: '>=1.52.1,<2.0a0' libzlib: '>=1.3.2,<2.0a0' - ncurses: '>=6.6,<7.0a0' - rhash: '>=1.4.6,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/cmake-4.4.3-hff7ac6b_0.conda hash: @@ -1097,10 +1175,10 @@ package: manager: conda platform: linux-64 dependencies: - boltons: '>=23.0.0' + python: '' libmambapy: '>=2.0.0' + boltons: '>=23.0.0' msgpack-python: '>=1.1.1' - python: '>=3.10' requests: '>=2.28.0,<3' zstandard: '>=0.15' url: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-26.4.2-pyhcf101f3_1.conda @@ -1114,8 +1192,8 @@ package: manager: conda platform: linux-64 dependencies: + python: '' conda-package-streaming: '>=0.12.0' - python: '>=3.10' requests: '' zstandard: '>=0.15' url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.5.0-pyhcf101f3_0.conda @@ -1153,10 +1231,10 @@ package: manager: conda platform: linux-64 dependencies: - colorama: '' + python: '' conda: '>=25.0' networkx: '>=2.0' - python: '>=3.10' + colorama: '' url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.2.0-pyhcf101f3_0.conda hash: md5: d50ead4984f21edfb9ceeca13e62440a @@ -1202,8 +1280,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.11-h280c20c_0.conda hash: md5: c63e2851f3d99a32f4b6991d0460dd25 @@ -1215,9 +1293,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/cpp-expected-1.3.1-h171cf75_1.conda hash: md5: 451367db888b29ad0db6b298669fbe77 @@ -1258,7 +1336,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda hash: md5: 4c2a8fef270f6c69591889b93f9f55c1 @@ -1271,11 +1349,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libexpat: '>=2.8.1,<3.0a0' libgcc: '>=15' - libglib: '>=2.88.3,<3.0a0' libstdcxx: '>=15' + libexpat: '>=2.8.1,<3.0a0' libzlib: '>=1.3.2,<2.0a0' + libglib: '>=2.88.3,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-he8c428d_2.conda hash: md5: a6eb37b51be1a9a654dc3a8aca039b1a @@ -1337,7 +1415,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/doit-0.37.0-pyhcf101f3_0.conda hash: md5: 37b3d4c558f2bb2b5378c43f4d6f1fb5 @@ -1349,9 +1427,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libfdt: '>=1.7.2,<1.8.0a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.7.2-h280c20c_6.conda hash: @@ -1364,14 +1442,14 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - bzip2: '>=1.0.8,<2.0a0' - libarchive: '>=3.8.9,<3.9.0a0' libgcc: '>=15' - liblzma: '>=5.8.3,<6.0a0' + __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=15' - libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libarchive: '>=3.8.9,<3.9.0a0' + bzip2: '>=1.0.8,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' + liblzma: '>=5.8.3,<6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.196-h03e2bf6_0.conda hash: md5: 24717939d024efa3e042e52e8c279328 @@ -1435,12 +1513,13 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=7.5.0' - tk: '>=8.6.10,<8.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/expect-5.45.4-h555a92e_0.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=13' + tk: '>=8.6.13,<8.7.0a0' + url: https://conda.anaconda.org/ucb-bar/linux-64/expect-5.45.4-h38f74ec_0.conda hash: - md5: c9f6a4d589ac81b3867b95d6ba290829 - sha256: 0fa59f12836faefbef1426dc16cbba68a25a4ba48807213848115fd5cfb51a06 + md5: 4c4000be2656f7a582dce19c5b60eab4 + sha256: 716297799fbb0f5b8b99035e35759f7a539dacdf097c8eef1aa069a80f8aac9e category: main optional: false - name: file @@ -1448,9 +1527,9 @@ package: manager: conda platform: linux-64 dependencies: + libmagic: ==5.48 __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - libmagic: ==5.48 libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/file-5.48-hd479b6e_1.conda hash: @@ -1472,21 +1551,21 @@ package: category: main optional: false - name: flask - version: 3.1.3 + version: 2.2.5 manager: conda platform: linux-64 dependencies: - blinker: '>=1.9.0' - click: '>=8.1.3' - itsdangerous: '>=2.2.0' - jinja2: '>=3.1.2' - markupsafe: '>=2.1.1' - python: '>=3.10' - werkzeug: '>=3.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/flask-3.1.3-pyhcf101f3_1.conda + celery: '>=5.2.7' + click: '>=8.0' + importlib-metadata: '>=3.6.0' + itsdangerous: '>=2.0' + jinja2: '>=3.0' + python: '>=3.7' + werkzeug: '>=2.2.2' + url: https://conda.anaconda.org/conda-forge/noarch/flask-2.2.5-pyhd8ed1ab_0.conda hash: - md5: 156398929bf849da6df8f89a2c390185 - sha256: 3980dfba1e3900106cc3e6210294e73f50d02a67fdfe7b3bb36b2721ba9379cb + md5: 66c558a28b9b47c1e2aa8e8cb80b9037 + sha256: 9356ae47278788439770eb9d05bfeb72c39a53a8b10a0e534b612f99b9c18e9b category: main optional: false - name: flask-cors @@ -1495,7 +1574,7 @@ package: platform: linux-64 dependencies: flask: '>=0.9' - python: '>=3.10' + python: '' typing_extensions: '>=4.6.0' werkzeug: '>=0.7' url: https://conda.anaconda.org/conda-forge/noarch/flask-cors-6.0.5-pyhcf101f3_0.conda @@ -1624,10 +1703,10 @@ package: manager: conda platform: linux-64 dependencies: - font-ttf-dejavu-sans-mono: '' + font-ttf-ubuntu: '' font-ttf-inconsolata: '' + font-ttf-dejavu-sans-mono: '' font-ttf-source-code-pro: '' - font-ttf-ubuntu: '' url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda hash: md5: a7970cd949a077b7cb9696379d338681 @@ -1683,9 +1762,9 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/frozendict-2.4.7-py310h99dffb4_2.conda hash: @@ -1835,8 +1914,8 @@ package: manager: conda platform: linux-64 dependencies: + python: '' gitdb: '>=4.0.1,<5' - python: '>=3.10' typing_extensions: '>=3.10.0.2' url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.61-pyhcf101f3_0.conda hash: @@ -1849,10 +1928,10 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' + libglib: ==2.88.3 libffi: '' + __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - libglib: ==2.88.3 url: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.88.3-h0804268_3.conda hash: md5: 164d7e0bcf4552bba8d4a8efbe36c990 @@ -1893,8 +1972,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-h54a6638_1.conda hash: md5: f9fe2984587fa8235a6af6004760cd18 @@ -1945,7 +2024,7 @@ package: glib-tools: '' harfbuzz: '>=13.2.1' hicolor-icon-theme: '' - libcups: '>=2.3.3,<2.4.0a0,>=2.3.3,<3.0a0' + libcups: '>=2.3.3,<3.0a0' libexpat: '>=2.7.4,<3.0a0' libfreetype: '>=2.14.2' libfreetype6: '>=2.14.2' @@ -2033,7 +2112,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' typing_extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda hash: @@ -2046,9 +2125,9 @@ package: manager: conda platform: linux-64 dependencies: - hpack: '>=4.2,<5' + python: '' hyperframe: '>=6.1,<7' - python: '>=3.10' + hpack: '>=4.2,<5' url: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda hash: md5: e652ac7756069c456d0da2a922cd7df5 @@ -2121,8 +2200,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-py310h44b86e0_2.conda hash: md5: 72a381cbad04f24b1c2a43ef707f45b4 @@ -2134,7 +2213,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda hash: md5: a39ae05027e9b707742e41b30d296b75 @@ -2158,7 +2237,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' zipp: '>=3.20' url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.1-pyhcf101f3_0.conda hash: @@ -2209,7 +2288,7 @@ package: platform: linux-64 dependencies: markupsafe: '>=2.0' - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda hash: md5: 04558c96691bed63104678757beb4f8d @@ -2246,9 +2325,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' + oniguruma: '>=6.9.10,<6.10.0a0' libgcc: '>=14' - oniguruma: 6.9.*,>=6.9.10,<6.10.0a0 + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.8.2-h280c20c_1.conda hash: md5: 6ec056e539486e84f0c7acef6b5863f9 @@ -2286,7 +2365,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.1.1-pyhcf101f3_0.conda hash: md5: 89bf346df77603055d3c8fe5811691e6 @@ -2300,7 +2379,7 @@ package: dependencies: attrs: '>=22.2.0' jsonschema-specifications: '>=2023.3.6' - python: '>=3.9' + python: '' referencing: '>=0.28.4' rpds-py: '>=0.7.1' url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.24.1-pyhe01879c_0.conda @@ -2315,7 +2394,7 @@ package: platform: linux-64 dependencies: pathable: '>=0.5.0,<0.6.0' - python: '>=3.10' + python: '' pyyaml: '>=5.1' referencing: <0.38.0 requests: '>=2.31.0,<3.0.0' @@ -2330,7 +2409,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' referencing: '>=0.31.0' url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda hash: @@ -2367,10 +2446,10 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' libstdcxx: '>=15' - python: '' + libgcc: '>=15' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.1-py310he417ec5_0.conda hash: @@ -2378,6 +2457,23 @@ package: sha256: b40a191ac761b629805db4ff9d6ac5bdaeaebfb9eb38af7329f8b449d7c6d8c9 category: main optional: false +- name: kombu + version: 5.6.2 + manager: conda + platform: linux-64 + dependencies: + amqp: '>=5.1.1,<6.0.0' + boto3: '>=1.26.143' + packaging: '' + python: '>=3.10' + python-tzdata: '>=2025.2' + vine: 5.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/kombu-5.6.2-pyha770c72_0.conda + hash: + md5: 2835b89f91d340c6aecf900779721540 + sha256: 03c6aef64ff9ffb06592de7a99e19922649ca193b7f6b3beadedbd8dc058a38b + category: main + optional: false - name: krb5 version: 1.22.2 manager: conda @@ -2385,7 +2481,7 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' keyutils: '>=1.6.3,<2.0a0' - libedit: '>=3.1.20250104,<3.2.0a0,>=3.1.20250104,<4.0a0' + libedit: '>=3.1.20250104,<4.0a0' libgcc: '>=15' libstdcxx: '>=15' openssl: '>=3.5.7,<4.0a0' @@ -2400,9 +2496,9 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/lazy-object-proxy-1.12.0-py310h83e8816_4.conda hash: @@ -2493,7 +2589,7 @@ package: manager: conda platform: linux-64 dependencies: - libopenblas: '>=0.3.34,<0.3.35.0a0,>=0.3.34,<1.0a0' + libopenblas: '>=0.3.34,<1.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-10_h4a7cf45_openblas.conda hash: md5: e2ca3eadd889d39b4e4b6b1ecc671816 @@ -2559,13 +2655,13 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' libstdcxx: '>=15' + libgcc: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp23.1-23.1.0-default_h0acdd01_1.conda hash: md5: d3ba2947f7d7cdd7c4eb73b206de330b @@ -2577,15 +2673,15 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libclang-cpp23.1: ==23.1.0 - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' + __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=15' + libgcc: '>=15' libxml2: '' libxml2-16: '>=2.15.3' - libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-23.1.0-default_h7855034_1.conda hash: md5: 6afb92887568acc8f18281c57c92c28b @@ -2691,9 +2787,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' ncurses: '>=6.6,<7.0a0' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h373387f_1.conda hash: md5: 50708d3b951d0f8e2d7f2df5b5edc040 @@ -2733,8 +2829,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h280c20c_3.conda hash: md5: 7bc31538d6e3fb349e897353969237ec @@ -2759,8 +2855,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' yaml: '>=0.2.5,<0.3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.7.2-h280c20c_6.conda hash: @@ -2918,10 +3014,10 @@ package: libffi: '>=3.7.0,<3.8.0a0' libgcc: '>=15' libglib: '>=2.88.3,<3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgirepository-1.86.0-h6d5faa7_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgirepository-1.86.0-h6d5faa7_3.conda hash: - md5: d5653bb7e56164853b626ff90f85eb3d - sha256: d1be4b13fcf50e76bcefa80030c2f93319fc1d78d9083c319d30797a9c3857ea + md5: 93a877119cbec0794cc4e24a8e367b70 + sha256: b68d9a3e0b6671e519f324dbb8e48fd74d3b312c1fe96ac91ad629f9c075853b category: main optional: false - name: libgl @@ -2957,12 +3053,12 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libffi: '>=3.7.0,<3.8.0a0' libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' libiconv: '>=1.18,<2.0a0' - libzlib: '>=1.3.2,<2.0a0' pcre2: '>=10.47,<10.48.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.88.3-he503a2a_3.conda hash: md5: d216efacca3f34f2b13ddd1632f53833 @@ -3027,9 +3123,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.61-h54a6638_2.conda hash: md5: d42eda95b8dfc91f3cc48d950efec715 @@ -3149,7 +3245,7 @@ package: category: main optional: false - name: libllvm23 - version: 23.1.0 + version: 23.1.1 manager: conda platform: linux-64 dependencies: @@ -3157,13 +3253,13 @@ package: libgcc: '>=15' libstdcxx: '>=15' libxml2: '' - libxml2-16: '>=2.15.3' + libxml2-16: '>=2.15.4' libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libllvm23-23.1.0-h474f4eb_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm23-23.1.1-h474f4eb_0.conda hash: - md5: 3b8c8325547a4fd8c51649ef7dfab688 - sha256: 50b31f6c51afe7df0639acf5dde8acf3f4f0dc9f644ab9842b717ae798507d68 + md5: d96e790721dd4e9af624acbf46cdd818 + sha256: 5c716beeb80cd420c37cb811102a9e76c66072f47ed319de1a931ecdd98c9e6b category: main optional: false - name: liblzma @@ -3212,23 +3308,23 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' cpp-expected: '>=1.3.1,<1.3.2.0a0' - fmt: '>=12.1.0,<12.2.0a0' - libarchive: '>=3.8.9,<3.9.0a0' - libcurl: '>=8.21.0,<9.0a0' + __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' libgcc: '>=15' libmsgpack-c: '>=6.1.0,<7.0a0' + libarchive: '>=3.8.9,<3.9.0a0' + zstd: '>=1.5.7,<1.6.0a0' libsolv: '>=0.7.39,<0.8.0a0' - libstdcxx: '>=15' - nlohmann_json-abi: 3.12.0 openssl: '>=3.5.8,<4.0a0' - reproc: '>=14.2.8.post0,<14.3.0a0' + libcurl: '>=8.21.0,<9.0a0' reproc-cpp: '>=14.2.8.post0,<14.3.0a0' + fmt: '>=12.1.0,<12.2.0a0' + reproc: '>=14.2.8.post0,<14.3.0a0' simdjson: '>=4.6.9,<4.7.0a0' spdlog: '>=1.17.0,<1.18.0a0' yaml-cpp: '>=0.8.0,<0.9.0a0' - zstd: '>=1.5.7,<1.6.0a0' + nlohmann_json-abi: 3.12.0 url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-2.9.0-py314h6ba947b_0.conda hash: md5: 6dd4342973ab963fe98e1fcd3df5d9e2 @@ -3241,9 +3337,9 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' + libstdcxx: '>=15' libgcc: '>=15' libmamba: '>=2.9.0,<2.10.0a0' - libstdcxx: '>=15' url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-spdlog-2.9.0-h5efa3ab_0.conda hash: md5: ebe4fe5bfcc3e9217c94fe8926696952 @@ -3255,20 +3351,20 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - fmt: '>=12.1.0,<12.2.0a0' - libgcc: '>=15' - libmamba: ==2.9.0,>=2.9.0,<2.10.0a0 + python: '' + libmamba: '>=2.9.0,<2.10.0a0' libmamba-spdlog: ==2.9.0 libstdcxx: '>=15' + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' + python_abi: 3.10.* + zstd: '>=1.5.7,<1.6.0a0' nlohmann_json-abi: 3.12.0 - openssl: '>=3.5.8,<4.0a0' pybind11-abi: '11' - python: '' - python_abi: 3.10.* - spdlog: '>=1.17.0,<1.18.0a0' yaml-cpp: '>=0.8.0,<0.9.0a0' - zstd: '>=1.5.7,<1.6.0a0' + fmt: '>=12.1.0,<12.2.0a0' + spdlog: '>=1.17.0,<1.18.0a0' + openssl: '>=3.5.8,<4.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-2.9.0-py310h1531c95_0.conda hash: md5: 7b794d59b4df28ec5af5fdc9fe0c243c @@ -3281,8 +3377,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/libmsgpack-c-6.1.0-h54a6638_7.conda hash: md5: 9ab61308317dbf6609e2142b16b792a5 @@ -3296,7 +3392,7 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' c-ares: '>=1.34.8,<2.0a0' - libev: '>=4.33,<4.34.0a0,>=4.33,<5.0a0' + libev: '>=4.33,<5.0a0' libgcc: '>=15' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' @@ -3381,7 +3477,7 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libabseil: '*,>=20260526.0,<20260527.0a0' + libabseil: '>=20260526.0,<20260527.0a0' libgcc: '>=15' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' @@ -3396,10 +3492,10 @@ package: manager: conda platform: linux-64 dependencies: + libstdcxx: '>=15' + libgcc: '>=15' __glibc: '>=2.17,<3.0.a0' icu: '>=78.3,<79.0a0' - libgcc: '>=15' - libstdcxx: '>=15' url: https://conda.anaconda.org/conda-forge/linux-64/libpsl-0.23.1-hd9e3e90_1.conda hash: md5: 77be60417aa572afcb48cbe0f967401d @@ -3615,8 +3711,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.52.1-h280c20c_1.conda hash: md5: 01c4ed87826af55996768af6dbc936b4 @@ -3657,8 +3753,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.38-h280c20c_0.conda hash: md5: f7a7ff5a6ab331e037abd34f379a631d @@ -3670,14 +3766,14 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' + xkeyboard-config: '' libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' libxcb: '>=1.17.0,<2.0a0' + xorg-libxau: '>=1.0.12,<2.0a0' libxml2: '' libxml2-16: '>=2.14.6' - xkeyboard-config: '' - xorg-libxau: '>=1.0.12,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.13.2-h51789e4_1.conda hash: md5: f888787e0eab7a8076a67d197e155ffc @@ -3685,38 +3781,38 @@ package: category: main optional: false - name: libxml2 - version: 2.15.3 + version: 2.15.4 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' icu: '>=78.3,<79.0a0' - libgcc: '>=14' + libgcc: '>=15' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.3,<6.0a0' - libxml2-16: 2.15.3 + libxml2-16: 2.15.4 libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.3-h49c6c72_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.4-h7df9aa5_0.conda hash: - md5: 2d34cdb31014cbc8f1e9384c89ede0a5 - sha256: a16a576a5844a3a0e1cdfc5e162b9fe9c64dccf6a93f44c293bb42851aebe2b4 + md5: ea192d1ef556bf1d55de4acb8c0f5b65 + sha256: 053d85821ce5e36b7ce03faea5930382f6af695df9e2cd68e5d8d273072d1551 category: main optional: false - name: libxml2-16 - version: 2.15.3 + version: 2.15.4 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' icu: '>=78.3,<79.0a0' - libgcc: '>=14' + libgcc: '>=15' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.3,<6.0a0' libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.3-hca6bf5a_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.4-hf3af7cc_0.conda hash: - md5: 20e4d67ec908f0405124f11612c48305 - sha256: 087d4de023f22d6a28b9e1b818961dd41e9bda6e9793590600ff16ca150bf9cb + md5: b7545c57a73a51d72aa6eee5695cf051 + sha256: 9a1685c8d8b8488cd7882a9cd6e673e687211ca763ebbcd1e91b6f594eeadc45 category: main optional: false - name: libzlib @@ -3736,9 +3832,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' libstdcxx: '>=15' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-hee9eb32_2.conda hash: md5: e38a3253d72ab07d471483f24947e2a2 @@ -3763,9 +3859,9 @@ package: manager: conda platform: linux-64 dependencies: + lzo: '>=2.10,<3.0a0' __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - lzo: '>=2.10,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/lzop-1.04-h5a41ae2_4.conda hash: md5: d4f3ef1d032b2269c1105fdda4723261 @@ -3828,7 +3924,7 @@ package: libfreetype6: '>=2.14.3' libgcc: '>=14' libstdcxx: '>=14' - numpy: '>=1.21,<3,>=1.23' + numpy: '>=1.23' packaging: '>=20.0' pillow: '>=8' pyparsing: '>=2.3.1' @@ -3849,9 +3945,9 @@ package: platform: linux-64 dependencies: python: '' - python_abi: 3.10.* tomli: '' tomli-w: '' + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.5.2-py310hd3bfc61_2.conda hash: md5: 0ab5853637af6e4d52222559d1b45a43 @@ -3863,15 +3959,15 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libabseil: '*,>=20260526.0,<20260527.0a0' + perl: '>=5.32.1,<5.33.0a0' libgcc: '>=14' - libprotobuf: '>=7.35.1,<7.35.2.0a0' libstdcxx: '>=14' + __glibc: '>=2.17,<3.0.a0' + openssl: '>=3.5.7,<4.0a0' + libabseil: '*' libzlib: '>=1.3.2,<2.0a0' ncurses: '>=6.6,<7.0a0' - openssl: '>=3.5.7,<4.0a0' - perl: '>=5.32.1,<5.33.0a0' + libprotobuf: '>=7.35.1,<7.35.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/mosh-1.4.0-pl5321h73eb06c_15.conda hash: md5: fe46482e897cc8795af53f75b7cd85c3 @@ -3883,23 +3979,23 @@ package: manager: conda platform: linux-64 dependencies: - aws-xray-sdk: '!=0.96,>=0.93' + python: '' boto3: '>=1.9.201' botocore: '>=1.14.0,!=1.35.45,!=1.35.46' cryptography: '>=3.3.1' - flask: '!=2.2.0,!=2.2.1' - flask-cors: '' + requests: '>=2.5' + xmltodict: '' + werkzeug: '>=0.5,!=2.2.0,!=2.2.1' + python-dateutil: <3.0.0,>=2.1 + responses: '>=0.15.0' jinja2: '>=2.10.1' - joserfc: '' - jsondiff: '>=1.1.2' openapi-spec-validator: '>=0.6.0' + joserfc: '' pyparsing: '>=3.0.7' - python: '>=3.10' - python-dateutil: <3.0.0,>=2.1 - requests: '>=2.5' - responses: '>=0.15.0' - werkzeug: '>=0.5,!=2.2.0,!=2.2.1' - xmltodict: '' + jsondiff: '>=1.1.2' + aws-xray-sdk: '!=0.96,>=0.93' + flask: '!=2.2.0,!=2.2.1' + flask-cors: '' url: https://conda.anaconda.org/conda-forge/noarch/moto-5.2.3-pyhcf101f3_0.conda hash: md5: 9f1405219205a926b6855a4f39408f1b @@ -3972,10 +4068,10 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' libstdcxx: '>=15' - python: '' + libgcc: '>=15' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.2-py310he417ec5_1.conda hash: @@ -4016,17 +4112,17 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' ast-serialize: '>=0.6.0,<1.0.0' - libgcc: '>=15' mypy_extensions: '>=1.0.0' pathspec: '>=1.0.0' - psutil: '>=4.0' python: '' python-librt: '>=0.13.0' - python_abi: 3.10.* - tomli: '>=1.1.0' typing_extensions: '>=4.6.0' + psutil: '>=4.0' + tomli: '>=1.1.0' + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/mypy-2.3.1-py310hcd47339_0.conda hash: md5: 027edcb972512913f9c02aaf2ee430e5 @@ -4039,7 +4135,7 @@ package: platform: linux-64 dependencies: boto3: '' - python: '>=3.10' + python: '' typing-extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.43.66-pyhcf101f3_0.conda hash: @@ -4053,7 +4149,7 @@ package: platform: linux-64 dependencies: boto3: '' - python: '>=3.10' + python: '' typing-extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.43.82-pyhcf101f3_0.conda hash: @@ -4091,7 +4187,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyh267e887_2.conda hash: md5: fd40bf7f7f4bc4b647dc8512053d9873 @@ -4104,8 +4200,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_1.conda hash: md5: 2db7a395d7dc2b6ed5effaf68fb99443 @@ -4162,11 +4258,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.10-h280c20c_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.10-hebe6cf0_1.conda hash: - md5: 16c8e401c682f9961676c201c888b1d9 - sha256: 22ba0c20d810f4e27092931191a08331b3bff1b7feeead5de7d8514cfd9230ad + md5: d0d628a0259bb9cbcd73f792b0b61387 + sha256: 098de630b10d3276d52b075360fa8492574ac3f60ff098a8f32cc1738274f1dd category: main optional: false - name: openapi-schema-validator @@ -4176,7 +4272,7 @@ package: dependencies: jsonschema: '>=4.19.1,<5.0.0' jsonschema-specifications: '>=2024.10.1' - python: '>=3.10' + python: '' referencing: '>=0.37.0,<0.38.0' rfc3339-validator: '' url: https://conda.anaconda.org/conda-forge/noarch/openapi-schema-validator-0.8.0-pyhcf101f3_0.conda @@ -4236,12 +4332,12 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - libpng: '>=1.6.58,<1.7.0a0' + __glibc: '>=2.17,<3.0.a0' libstdcxx: '>=15' libtiff: '>=4.7.2,<4.8.0a0' libzlib: '>=1.3.2,<2.0a0' + libpng: '>=1.6.58,<1.7.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-heb1ab33_2.conda hash: md5: a3f3ac7a68d01c198e276dbb99e62032 @@ -4267,7 +4363,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.9' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda hash: md5: 936687ed80f295a1f5dbcf8bd34c252c @@ -4282,7 +4378,7 @@ package: __glibc: '>=2.17,<3.0.a0' libgcc: '>=13' libstdcxx: '>=13' - numpy: '>=1.19,<3,>=1.22.4' + numpy: '>=1.22.4' python: '>=3.10,<3.11.0a0' python-dateutil: '>=2.8.1' python-tzdata: '>=2022a' @@ -4336,7 +4432,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pathable-0.5.0-pyhcf101f3_0.conda hash: md5: 21b330e89f7363ed6c4989a94ff20dea @@ -4388,20 +4484,20 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' + libgcc: '>=14' + tk: '>=8.6.13,<8.7.0a0' + python_abi: 3.10.* + libwebp-base: '>=1.6.0,<2.0a0' lcms2: '>=2.19.1,<3.0a0' + openjpeg: '>=2.5.4,<3.0a0' libfreetype: '>=2.14.3' libfreetype6: '>=2.14.3' - libgcc: '>=14' libjpeg-turbo: '>=3.1.4.1,<4.0a0' - libtiff: '>=4.7.1,<4.8.0a0' - libwebp-base: '>=1.6.0,<2.0a0' - libxcb: '>=1.17.0,<2.0a0' - openjpeg: '>=2.5.4,<3.0a0' - python: '' - python_abi: 3.10.* - tk: '>=8.6.13,<8.7.0a0' zlib-ng: '>=2.3.3,<2.4.0a0' + libxcb: '>=1.17.0,<2.0a0' + libtiff: '>=4.7.1,<4.8.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.3.0-py310h5a73078_0.conda hash: md5: fb6f1c4063f0df1df2e7f6853bd22f8d @@ -4427,9 +4523,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_3.conda hash: md5: 0ee5bb30034b081a1386c1e2c98ab0a7 @@ -4441,7 +4537,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.11.5-pyhcf101f3_0.conda hash: md5: 152ec36401f710145a7db03475594410 @@ -4453,7 +4549,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.9' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda hash: md5: d7585b6550ad04c8c5e21097ada2888e @@ -4465,8 +4561,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' libiconv: '>=1.18,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/popt-1.19-hcfc3c73_2.conda hash: @@ -4500,6 +4596,18 @@ package: sha256: ebc1bb62ac612af6d40667da266ff723662394c0ca78935340a5b5c14831227b category: main optional: false +- name: prompt_toolkit + version: 3.0.51 + manager: conda + platform: linux-64 + dependencies: + prompt-toolkit: '>=3.0.51,<3.0.52.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.51-hd8ed1ab_0.conda + hash: + md5: 1e61ab85dd7c60e5e73d853ea035dc29 + sha256: 936189f0373836c1c77cd2d6e71ba1e583e2d3920bf6d015e96ee2d729b5e543 + category: main + optional: false - name: propcache version: 0.5.2 manager: conda @@ -4520,9 +4628,9 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py310h83e8816_2.conda hash: @@ -4594,7 +4702,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pycparser-3.0-pyhcf101f3_0.conda hash: md5: 9c5491066224083c41b6d5635ed7107b @@ -4619,8 +4727,8 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __unix: '' - python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/pyelftools-0.33-pyh8f84b5b_0.conda hash: md5: b0e199724ac880c3593df23944b53e93 @@ -4632,7 +4740,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda hash: md5: 2882dee445dfa45b0c5afce3ffb7730a @@ -4669,7 +4777,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' typing_extensions: '>=4.0' url: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.13.0-pyhcf101f3_0.conda hash: @@ -4697,7 +4805,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda hash: md5: 3687cc0b82a8b4c17e1f0eb7e47163d5 @@ -4723,13 +4831,13 @@ package: platform: linux-64 dependencies: colorama: '' - exceptiongroup: '>=1' + pygments: '>=2.7.2' + python: '' iniconfig: '>=1.0.1' packaging: '>=22' pluggy: '>=1.5,<2' - pygments: '>=2.7.2' - python: '>=3.10' tomli: '>=1' + exceptiongroup: '>=1' url: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda hash: md5: 64c98a12c4e23eb238bf66bbecafdf3c @@ -4832,9 +4940,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' python: '' + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.15.0-py310h83e8816_1.conda hash: @@ -4946,7 +5054,7 @@ package: platform: linux-64 dependencies: attrs: '>=22.2.0' - python: '>=3.10' + python: '' rpds-py: '>=0.7.0' typing_extensions: '>=4.4.0' url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda @@ -4973,10 +5081,10 @@ package: manager: conda platform: linux-64 dependencies: + reproc: '>=14.2.8.post0,<14.3.0a0' __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' libstdcxx: '>=15' - reproc: ==14.2.8.post0,>=14.2.8.post0,<14.3.0a0 + libgcc: '>=15' url: https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.8.post0-h1c70be6_0.conda hash: md5: 04afaf7b13f8ac3c947230a24d835c94 @@ -4988,10 +5096,10 @@ package: manager: conda platform: linux-64 dependencies: + python: '' certifi: '>=2023.5.7' charset-normalizer: '>=2,<4' idna: '>=2.5,<4' - python: '>=3.10' urllib3: '>=1.26,<3' url: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda hash: @@ -5004,8 +5112,8 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' pyyaml: '' + python: '' requests: '>=2.30.0,<3.0' urllib3: '>=1.25.10,<3.0' url: https://conda.anaconda.org/conda-forge/noarch/responses-0.26.3-pyhcf101f3_0.conda @@ -5067,9 +5175,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' python: '' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py310hd8f68c5_0.conda hash: @@ -5082,15 +5190,15 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.28,<3.0.a0' libgcc: '>=15' + __glibc: '>=2.28,<3.0.a0' + openssl: '>=3.5.8,<4.0a0' libiconv: '>=1.18,<2.0a0' - libzlib: '>=1.3.2,<2.0a0' lz4-c: '>=1.10.0,<1.11.0a0' - openssl: '>=3.5.8,<4.0a0' - popt: '>=1.19,<2.0a0' xxhash: '>=0.8.3,<0.8.4.0a0' zstd: '>=1.5.7,<1.6.0a0' + popt: '>=1.19,<2.0a0' + libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/rsync-3.4.4-hffd6c76_1.conda hash: md5: 859411ed56b9498eb6a888b86be0e968 @@ -5102,11 +5210,11 @@ package: manager: conda platform: linux-64 dependencies: + python: '' + ruamel.yaml.clib: '>=0.2.15' __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - python: '' python_abi: 3.10.* - ruamel.yaml.clib: '>=0.2.15' url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.17-py310h139afa4_2.conda hash: md5: 26ad912afb7835e474284d61f482905d @@ -5118,9 +5226,9 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.15-py310h83e8816_3.conda hash: @@ -5182,16 +5290,18 @@ package: category: main optional: false - name: screen - version: 4.8.0 + version: 5.0.2 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=7.5.0' - ncurses: '>=6.2,<7.0.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/screen-4.8.0-he28a2e2_0.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=15' + libxcrypt: '>=4.4.38' + ncurses: '>=6.6,<7.0a0' + url: https://conda.anaconda.org/ucb-bar/linux-64/screen-5.0.2-hf3456be_0.conda hash: - md5: 3b67f325fac07461f193e27a9d9c5a65 - sha256: 3c7020802fb52b946fe37a2180a6cad298f65b7a3e861c2616b6ffd4165ec22f + md5: 58c59fdf569a34e8cd1306d6079484c0 + sha256: 959dd76f0151b5eac87457370b0e6387f6c12c7d218824f0c72c75b5f4a93fe5 category: main optional: false - name: sed @@ -5220,17 +5330,17 @@ package: category: main optional: false - name: simdjson - version: 4.6.10 + version: 4.6.11 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' libstdcxx: '>=15' - url: https://conda.anaconda.org/conda-forge/linux-64/simdjson-4.6.10-h4dbf13b_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/simdjson-4.6.11-h4dbf13b_0.conda hash: - md5: 53ba5412feec78cdf289bcdc660bf071 - sha256: ae6b7ec328ddb270d055835b62fe2e563251d71fb2fbae0d46e1721385649453 + md5: a65fbdd7742df8c2e87304a988889e4f + sha256: e313740ff17c7912994225ad62c795ef0fdc19d7e6a08a4e6bff3e597205f79c category: main optional: false - name: six @@ -5238,7 +5348,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.9' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda hash: md5: 3339e3b65d58accf4ca4fb8748ab16b3 @@ -5250,7 +5360,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.3-pyhcf101f3_1.conda hash: md5: b899f1195be56d8215ed1973a8f409c3 @@ -5337,9 +5447,9 @@ package: manager: conda platform: linux-64 dependencies: - docutils: '>0.18,<0.23' - python: '>=3.10' + python: '' sphinx: '>=6,<10' + docutils: '>0.18,<0.23' sphinxcontrib-jquery: '>=4,<5' url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda hash: @@ -5443,7 +5553,7 @@ package: platform: linux-64 dependencies: anyio: '>=3.6.2,<5' - python: '>=3.10' + python: '' typing_extensions: '>=4.10.0' url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda hash: @@ -5495,8 +5605,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda hash: @@ -5509,7 +5619,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda hash: md5: b5325cf06a000c5b14970462ff5e4d58 @@ -5533,8 +5643,8 @@ package: manager: conda platform: linux-64 dependencies: + python: '' __unix: '' - python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.70.0-pyh8f84b5b_0.conda hash: md5: 00953c3b729e03b0ae21f49fdf3441bb @@ -5546,7 +5656,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10,<4' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.4-pyhcf101f3_0.conda hash: md5: c2db35b004913ec69bcac64fb0783de0 @@ -5570,7 +5680,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.3.1.20260727-pyhcf101f3_0.conda hash: md5: b27fc3df415ba0196e462700ef487e5e @@ -5582,7 +5692,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20260815-pyhcf101f3_0.conda hash: md5: cd5c2725760ce602617c80a2b4c26d6d @@ -5594,7 +5704,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' urllib3: '>=2' url: https://conda.anaconda.org/conda-forge/noarch/types-requests-2.33.0.20260712-pyhcf101f3_0.conda hash: @@ -5607,7 +5717,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' types-awscrt: '' url: https://conda.anaconda.org/conda-forge/noarch/types-s3transfer-0.16.0-pyhcf101f3_0.conda hash: @@ -5632,7 +5742,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda hash: md5: c70ad746c22219b9700931707482992c @@ -5650,6 +5760,19 @@ package: sha256: b928c30ddcb0e3f544c6eade8352737e6e610e263276b90232db6a578ef899d8 category: main optional: false +- name: tzlocal + version: 5.4.4 + manager: conda + platform: linux-64 + dependencies: + python: '' + __unix: '' + url: https://conda.anaconda.org/conda-forge/noarch/tzlocal-5.4.4-pyh8f84b5b_0.conda + hash: + md5: cbd15812c946aecc2d9479318aca450f + sha256: 5d693f6f22b584fb69bac52e716872a1432c50527ced54d66064cc27e5946c0b + category: main + optional: false - name: unicodedata2 version: 17.0.1 manager: conda @@ -5666,7 +5789,7 @@ package: category: main optional: false - name: universal-ctags - version: 6.2.20260830.0 + version: 6.2.20260906.0 manager: conda platform: linux-64 dependencies: @@ -5677,13 +5800,13 @@ package: libseccomp: '>=2.6.1,<3.0a0' libstdcxx: '>=15' libxml2: '' - libxml2-16: '>=2.15.3' + libxml2-16: '>=2.15.4' pcre2: '>=10.47,<10.48.0a0' yaml: '>=0.2.5,<0.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/universal-ctags-6.2.20260830.0-hf32d8a9_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/universal-ctags-6.2.20260906.0-hf32d8a9_0.conda hash: - md5: bce4d8caa0cf2a26d672e52d986aec93 - sha256: dcf67bc1a008b6c38b22d018af9b40405e2f7ce48e62e8c80e4df06b8626ebc5 + md5: 807b84dd1801be3d5b609c3153bf16f8 + sha256: 2a0a2fdda0a277f78f2f6ed19a4043f4648df524635d3068f281260c2f9c7213 category: main optional: false - name: unzip @@ -5723,7 +5846,7 @@ package: __unix: '' click: '>=7.0' h11: '>=0.8' - python: '>=3.10' + python: '' typing_extensions: '>=4.0' url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda hash: @@ -5755,31 +5878,43 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - libstdcxx: '>=14' - ncurses: '>=6.6,<7.0a0' - perl: '>=5.32.1,<5.33.0a0' python: '' - python_abi: 3.10.* + perl: '>=5.32.1,<5.33.0a0' + ncurses: '>=6.6,<7.0a0' xorg-libx11: '>=1.8.13,<2.0a0' xorg-libxt: '>=1.3.1,<2.0a0' xorg-xorgproto: '' + libstdcxx: '>=14' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.2.0785-py310pl5321h784d2b7_0.conda hash: md5: 919dce8f866aef2ccfe25b9373252b93 sha256: 5b07da655155d5377eb0440aa3ff17ecb07f2969eb1c6c4b41cd657d990075fa category: main optional: false +- name: vine + version: 5.1.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/vine-5.1.0-pyhd8ed1ab_1.conda + hash: + md5: e827a22b019357c90c58d6b7c7c4eb7c + sha256: a29620ff2ea4c003b5ba040eb2f3f6183cabfc1c74b03c9feadf89fa79718a03 + category: main + optional: false - name: watchfiles version: 1.2.0 manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' + python: '' anyio: '>=3.0.0' libgcc: '>=14' - python: '' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/watchfiles-1.2.0-py310hf7b62b8_1.conda hash: @@ -5820,9 +5955,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' python: '' + libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/websockets-16.1.1-py310h99dffb4_0.conda hash: @@ -5836,7 +5971,7 @@ package: platform: linux-64 dependencies: markupsafe: '>=2.1.1' - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.1.8-pyhcf101f3_0.conda hash: md5: 3eeca039e7316268627f4116da9df64c @@ -5897,8 +6032,8 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-64/which-2.25-h171cf75_0.conda hash: md5: f16d4aec5e8135e8e7bba02ef600149e @@ -5910,9 +6045,9 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc: '>=15' python: '' + libgcc: '>=15' + __glibc: '>=2.17,<3.0.a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-2.4.0-py310h83e8816_0.conda hash: @@ -5925,8 +6060,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' xorg-libx11: '>=1.8.13,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.48-h280c20c_0.conda hash: @@ -5939,7 +6074,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/xmltodict-1.0.4-pyhcf101f3_0.conda hash: md5: 0f02dbcae61967ced21fea829a8ee927 @@ -5951,8 +6086,8 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' + __glibc: '>=2.17,<3.0.a0' url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-h280c20c_0.conda hash: md5: 85c9442aec283b4e464fa9ecc484a2f3 @@ -5966,8 +6101,8 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libgcc: '>=14' - libuuid: '>=2.42.2,<3.0a0' xorg-libice: '>=1.1.2,<2.0a0' + libuuid: '>=2.42.2,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-h0d788c3_1.conda hash: md5: aa7459ed9ad086ba11dda843d764b33d @@ -5994,11 +6129,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb03c661_2.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-h7cc23a3_2.conda hash: - md5: f06ef439c280a5f90b8bf62355008dbc - sha256: cbf891f6cc1a859347680af1c8562bc6b033bf182a2a3bb536016932be3206de + md5: da33efee1a93603d92e06d4a2b68def6 + sha256: 3ec065b94554dc48a4ca582a960a5484bc166b26e83ce0954653e08d17e8bd53 category: main optional: false - name: xorg-libxcomposite @@ -6203,12 +6338,12 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2025.1-hebe6cf0_2.conda + __glibc: '>=2.17,<3.0.a0' + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2025.1-hebe6cf0_3.conda hash: - md5: 7386d38083163c5b5c4a92a1582daaef - sha256: 28be920cbb36bb674f66a23f368b67733dbbb89b2321e5ed7266d9b415156795 + md5: c3d0a6f03ba3aa312777b41b20a71ec0 + sha256: 8e9c7ca4fcfe9f0c300e4aa853b79c25411fc4e470decfe8f909b74f60dfb6dd category: main optional: false - name: xxhash @@ -6319,7 +6454,7 @@ package: manager: conda platform: linux-64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.0-pyhcf101f3_0.conda hash: md5: ba3dcdc8584155c97c648ae9c044b7a3 @@ -6358,12 +6493,12 @@ package: manager: conda platform: linux-64 dependencies: - __glibc: '>=2.17,<3.0.a0' + python: '' cffi: '>=1.11' + zstd: '>=1.5.7,<1.6.0a0' + __glibc: '>=2.17,<3.0.a0' libgcc: '>=15' - python: '' python_abi: 3.10.* - zstd: '>=1.5.7,<1.5.8.0a0,>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py310h83e8816_3.conda hash: md5: 15b4db9e2c72cb4ac4f7646f52df1bc1 @@ -6432,11 +6567,11 @@ package: manager: pip platform: linux-64 dependencies: - gdspy: '1.4' - numpy: '>=1.23.0,<2.0.0' pydantic: '>=1.9.2,<2.0.0' pyyaml: '>=6.0,<7.0' - ruamel-yaml: '>=0.17.21,<0.18.0' + ruamel.yaml: '>=0.17.21,<0.18.0' + numpy: '>=1.23.0,<2.0.0' + gdspy: '1.4' url: https://files.pythonhosted.org/packages/dd/85/8a7ffd385db1dc84295ef3101559fe7ae0f8fa39942253ca270728642dc5/hammer_vlsi-1.2.0-py3-none-any.whl hash: sha256: 7c237557d2a7c5f403474e54f9e5498758c71c24844e524a02656ac16369196d @@ -6503,8 +6638,8 @@ package: manager: pip platform: linux-64 dependencies: - icontract: '>=2.0.1,<3' typing-extensions: '>=3.6.6' + icontract: '>=2.0.1,<3' url: https://files.pythonhosted.org/packages/c9/12/4afd6542c43cd20271f0e53bf0211decc10079a76a41e53c0288025a7b85/pylddwrap-1.2.2.tar.gz hash: sha256: a70437fea7bca647c0e98161e1006ef49970267999c571b499760f1c43c6ba10 @@ -6521,17 +6656,27 @@ package: sha256: 8a66d6fb6ae7661c58995f9c6435bda2b1e68b54b598a6a10247bfcdadac996c category: main optional: false -- name: ruamel-yaml +- name: ruamel.yaml version: 0.17.40 manager: pip platform: linux-64 dependencies: - ruamel-yaml-clib: '>=0.2.7' + ruamel.yaml.clib: '>=0.2.7' url: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl hash: sha256: b16b6c3816dff0a93dca12acf5e70afd089fa5acb80604afd1ffa8b465b7722c category: main optional: false +- name: ruamel.yaml.clib + version: 0.2.15 + manager: pip + platform: linux-64 + dependencies: {} + url: https://files.pythonhosted.org/packages/d9/79/0e8ef51df1f0950300541222e3332f20707a9c210b98f981422937d1278c/ruamel_yaml_clib-0.2.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + hash: + sha256: da3d6adadcf55a93c214d23941aef4abfd45652110aed6580e814152f385b862 + category: main + optional: false - name: sure version: 2.0.1 manager: pip diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml index 121f04cc44..7ca1a0f3a0 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64-lean.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-aarch64: 52b5694ef3bfea1cf84703b3f42741421ca46e97d816878749135eb449467036 + linux-aarch64: 2fbb241221875257e4f628b5b05ae0f03eba7af3e9a40ee714a31a6d4686cb52 channels: - url: ucb-bar used_env_vars: [] @@ -21,8 +21,6 @@ metadata: used_env_vars: [] - url: litex-hub used_env_vars: [] - - url: jimfangx - used_env_vars: [] platforms: - linux-aarch64 sources: @@ -73,7 +71,7 @@ package: dependencies: exceptiongroup: '>=1.0.2' idna: '>=2.8' - python: '>=3.10' + python: '' typing_extensions: '>=4.5' url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda hash: @@ -99,7 +97,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda hash: md5: f1976ce927373500cc19d3c0b2c85177 @@ -111,8 +109,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' python: '' + libgcc: '>=15' python_abi: 3.10.* zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/backports.zstd-1.7.0-py310h5585d39_0.conda @@ -456,10 +454,10 @@ package: manager: conda platform: linux-aarch64 dependencies: - font-ttf-dejavu-sans-mono: '' + font-ttf-ubuntu: '' font-ttf-inconsolata: '' + font-ttf-dejavu-sans-mono: '' font-ttf-source-code-pro: '' - font-ttf-ubuntu: '' url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda hash: md5: a7970cd949a077b7cb9696379d338681 @@ -547,8 +545,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/gmp-6.3.0-h4d6b352_3.conda hash: md5: ce2326e31df1913341036653e1c07baa @@ -560,8 +558,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/graphite2-1.3.15-h7ac5ae9_1.conda hash: md5: c5835ff5788e0d772d67a97bd5fe001b @@ -602,7 +600,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' typing_extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda hash: @@ -615,9 +613,9 @@ package: manager: conda platform: linux-aarch64 dependencies: - hpack: '>=4.2,<5' + python: '' hyperframe: '>=6.1,<7' - python: '>=3.10' + hpack: '>=4.2,<5' url: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda hash: md5: e652ac7756069c456d0da2a922cd7df5 @@ -678,7 +676,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda hash: md5: a39ae05027e9b707742e41b30d296b75 @@ -703,7 +701,7 @@ package: platform: linux-aarch64 dependencies: markupsafe: '>=2.0' - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda hash: md5: 04558c96691bed63104678757beb4f8d @@ -715,8 +713,8 @@ package: manager: conda platform: linux-aarch64 dependencies: + oniguruma: '>=6.9.10,<6.10.0a0' libgcc: '>=14' - oniguruma: 6.9.*,>=6.9.10,<6.10.0a0 url: https://conda.anaconda.org/conda-forge/linux-aarch64/jq-1.8.2-h80f16a2_1.conda hash: md5: 266917520745dc1ca3da3dfb71365d9c @@ -763,7 +761,7 @@ package: platform: linux-aarch64 dependencies: keyutils: '>=1.6.3,<2.0a0' - libedit: '>=3.1.20250104,<3.2.0a0,>=3.1.20250104,<4.0a0' + libedit: '>=3.1.20250104,<4.0a0' libgcc: '>=15' libstdcxx: '>=15' openssl: '>=3.5.7,<4.0a0' @@ -863,8 +861,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' ncurses: '>=6.6,<7.0a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20250104-pl5321hc48eb74_1.conda hash: md5: 6e06eb2c9fda76721699bcdd759b9c60 @@ -987,10 +985,10 @@ package: manager: conda platform: linux-aarch64 dependencies: - libffi: '>=3.7.0,<3.8.0a0' libgcc: '>=15' - libiconv: '>=1.18,<2.0a0' libzlib: '>=1.3.2,<2.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libiconv: '>=1.18,<2.0a0' pcre2: '>=10.47,<10.48.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.88.3-hb514e8e_3.conda hash: @@ -1108,7 +1106,7 @@ package: platform: linux-aarch64 dependencies: c-ares: '>=1.34.8,<2.0a0' - libev: '>=4.33,<4.34.0a0,>=4.33,<5.0a0' + libev: '>=4.33,<5.0a0' libgcc: '>=15' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' @@ -1161,9 +1159,9 @@ package: manager: conda platform: linux-aarch64 dependencies: - icu: '>=78.3,<79.0a0' libgcc: '>=15' libstdcxx: '>=15' + icu: '>=78.3,<79.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libpsl-0.23.1-hb8431ed_1.conda hash: md5: 5ab41e5e70b78eb00ef62cdaa35cd86f @@ -1411,8 +1409,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/ninja-1.13.2-hdc560ac_1.conda hash: md5: dc59c099f43cdffa2b92e5f6248be5b3 @@ -1437,11 +1435,11 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.10-h80f16a2_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.10-h29ee22c_1.conda hash: - md5: e8c22ebf0586bc54534856b7cc054200 - sha256: 2de125162dc348c282e807c099226357f3c620e8f707d35a40d52fb5c0014495 + md5: 1c17c98ab86e8eef8bee114680a7abab + sha256: f1d29e8b76a612b3b5c11a8c90199fa7045ad16802a7a9f3e2d4a229a5ccae20 category: main optional: false - name: openjdk @@ -1492,7 +1490,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.9' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda hash: md5: 936687ed80f295a1f5dbcf8bd34c252c @@ -1545,8 +1543,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/pixman-0.46.4-h7ac5ae9_3.conda hash: md5: c5f34596fc05afb9ccc2782c42bcfcc5 @@ -1570,7 +1568,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda hash: md5: 2882dee445dfa45b0c5afce3ffb7730a @@ -1645,10 +1643,10 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' certifi: '>=2023.5.7' charset-normalizer: '>=2,<4' idna: '>=2.5,<4' - python: '>=3.10' urllib3: '>=1.26,<3' url: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda hash: @@ -1765,9 +1763,9 @@ package: manager: conda platform: linux-aarch64 dependencies: - docutils: '>0.18,<0.23' - python: '>=3.10' + python: '' sphinx: '>=6,<10' + docutils: '>0.18,<0.23' sphinxcontrib-jquery: '>=4,<5' url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda hash: @@ -1871,7 +1869,7 @@ package: platform: linux-aarch64 dependencies: anyio: '>=3.6.2,<5' - python: '>=3.10' + python: '' typing_extensions: '>=4.10.0' url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda hash: @@ -1924,7 +1922,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda hash: md5: b5325cf06a000c5b14970462ff5e4d58 @@ -1936,7 +1934,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda hash: md5: c70ad746c22219b9700931707482992c @@ -1978,7 +1976,7 @@ package: __unix: '' click: '>=7.0' h11: '>=0.8' - python: '>=3.10' + python: '' typing_extensions: '>=4.0' url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda hash: @@ -2009,9 +2007,9 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' anyio: '>=3.0.0' libgcc: '>=14' - python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/watchfiles-1.2.0-py310h1ee47ac_1.conda hash: @@ -2024,8 +2022,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' python: '' + libgcc: '>=14' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/websockets-16.1.1-py310hec1369a_0.conda hash: @@ -2064,8 +2062,8 @@ package: platform: linux-aarch64 dependencies: libgcc: '>=14' - libuuid: '>=2.42.2,<3.0a0' xorg-libice: '>=1.1.2,<2.0a0' + libuuid: '>=2.42.2,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libsm-1.2.6-hf23e593_1.conda hash: md5: f5f4a1233da463827499fb4e5e1f0172 diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml index 9ef6145f77..08274c0e56 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-aarch64.conda-lock.yml @@ -13,7 +13,7 @@ version: 1 metadata: content_hash: - linux-aarch64: dff6f72c2e7dfa8c2079ddefbe329ea704d84b05a894e55b1c947c2916c6c8b6 + linux-aarch64: 31ca38397fc4bda379c4a7464925b2238855fec0cc32f296609f9593cc0d5a22 channels: - url: ucb-bar used_env_vars: [] @@ -21,8 +21,6 @@ metadata: used_env_vars: [] - url: litex-hub used_env_vars: [] - - url: jimfangx - used_env_vars: [] platforms: - linux-aarch64 sources: @@ -95,7 +93,7 @@ package: libgcc: '>=14' multidict: '>=4.5,<7.0' propcache: '>=0.2.0' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* typing_extensions: '>=4.4' yarl: '>=1.17.0,<2.0' @@ -163,7 +161,7 @@ package: dependencies: exceptiongroup: '>=1.0.2' idna: '>=2.8' - python: '>=3.10' + python: '' typing_extensions: '>=4.5' url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.14.2-pyhcf101f3_0.conda hash: @@ -188,7 +186,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.7.2-pyhcf101f3_0.conda hash: md5: 5185c9f9742daeffae5daae93c802bf7 @@ -200,10 +198,10 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '>=3.10' + libgcc: '>=15' _python_abi3_support: 1.* cpython: '>=3.10' - libgcc: '>=15' - python: '>=3.10' url: https://conda.anaconda.org/conda-forge/linux-aarch64/ast-serialize-0.8.0-py310he485581_1.conda hash: md5: 81bd5eb7f50dc080be259ba4b8fb31c7 @@ -215,7 +213,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/async-timeout-5.0.1-pyhcf101f3_2.conda hash: md5: 0d0ef7e4a0996b2c4ac2175a12b3bf69 @@ -274,7 +272,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/attrs-26.1.0-pyhcf101f3_0.conda hash: md5: c6b0543676ecb1fb2d7643941fe375f2 @@ -299,12 +297,12 @@ package: manager: conda platform: linux-aarch64 dependencies: + libgcc: '>=14' aws-c-cal: '>=0.9.15,<0.9.16.0a0' - aws-c-common: '>=0.14.3,<0.14.4.0a0' - aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-sdkutils: '>=0.2.7,<0.2.8.0a0' - libgcc: '>=14' + aws-c-http: '>=0.11.0,<0.11.1.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-auth-0.10.4-h31aafc4_2.conda hash: md5: 026b88ebd1c322724ad2e7624df616c5 @@ -342,8 +340,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - aws-c-common: '>=0.14.3,<0.14.4.0a0' libgcc: '>=14' + aws-c-common: '>=0.14.3,<0.14.4.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-compression-0.3.2-hbc11874_5.conda hash: md5: cc1d538269bbd5e5379e417a07e673af @@ -355,11 +353,11 @@ package: manager: conda platform: linux-aarch64 dependencies: - aws-c-common: '>=0.14.3,<0.14.4.0a0' - aws-c-io: '>=0.27.5,<0.27.6.0a0' - aws-checksums: '>=0.2.10,<0.2.11.0a0' libgcc: '>=14' libstdcxx: '>=14' + aws-c-io: '>=0.27.5,<0.27.6.0a0' + aws-checksums: '>=0.2.10,<0.2.11.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-event-stream-0.7.1-h1774bc7_5.conda hash: md5: de5418adce7bbf22df3f2d22e41ce06e @@ -371,11 +369,11 @@ package: manager: conda platform: linux-aarch64 dependencies: + libgcc: '>=14' + aws-c-io: '>=0.27.5,<0.27.6.0a0' aws-c-cal: '>=0.9.15,<0.9.16.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-compression: '>=0.3.2,<0.3.3.0a0' - aws-c-io: '>=0.27.5,<0.27.6.0a0' - libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-http-0.11.0-h299f1a2_5.conda hash: md5: b662a55678d5cb908b64f2dc47518613 @@ -387,10 +385,10 @@ package: manager: conda platform: linux-aarch64 dependencies: - aws-c-cal: '>=0.9.15,<0.9.16.0a0' - aws-c-common: '>=0.14.3,<0.14.4.0a0' libgcc: '>=14' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' s2n: '>=1.7.6,<1.7.7.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-io-0.27.5-hd6bac6b_1.conda hash: md5: d52accd5bce872c54f3604ca4cdc2ef7 @@ -402,10 +400,10 @@ package: manager: conda platform: linux-aarch64 dependencies: - aws-c-common: '>=0.14.3,<0.14.4.0a0' + libgcc: '>=14' aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' - libgcc: '>=14' + aws-c-common: '>=0.14.3,<0.14.4.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-mqtt-0.16.0-h1db445d_3.conda hash: md5: 70f30ea9f33642874a011d3b2c1595b5 @@ -417,14 +415,14 @@ package: manager: conda platform: linux-aarch64 dependencies: + libgcc: '>=14' aws-c-auth: '>=0.10.4,<0.10.5.0a0' - aws-c-cal: '>=0.9.15,<0.9.16.0a0' - aws-c-common: '>=0.14.3,<0.14.4.0a0' aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' - aws-checksums: '>=0.2.10,<0.2.11.0a0' - libgcc: '>=14' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-common: '>=0.14.3,<0.14.4.0a0' openssl: '>=3.5.7,<4.0a0' + aws-checksums: '>=0.2.10,<0.2.11.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-s3-0.13.1-he888730_1.conda hash: md5: 3c6a1426bf37d6576d659b696d23e104 @@ -436,8 +434,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - aws-c-common: '>=0.14.3,<0.14.4.0a0' libgcc: '>=14' + aws-c-common: '>=0.14.3,<0.14.4.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-sdkutils-0.2.7-hbc11874_3.conda hash: md5: 155b22146110ad50c07b5988c9411035 @@ -449,8 +447,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - aws-c-common: '>=0.14.3,<0.14.4.0a0' libgcc: '>=14' + aws-c-common: '>=0.14.3,<0.14.4.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-checksums-0.2.10-hbc11874_5.conda hash: md5: 5d70c0f98a713a576a286b38c0e550d1 @@ -476,19 +474,19 @@ package: manager: conda platform: linux-aarch64 dependencies: - awscrt: 0.36.2 + python: 3.10.* colorama: '>=0.2.5,<0.4.7' - distro: '>=1.5.0,<1.9.0' docutils: '>=0.10,<0.20' - jmespath: '>=0.7.1,<1.1.0' - prompt-toolkit: '>=3.0.24,<3.0.52' - python: 3.10.* - python-dateutil: '>=2.1,<=2.9.0' - python_abi: 3.10.* ruamel.yaml: '>=0.15.0,<=0.19.1' ruamel.yaml.clib: '>=0.2.0,<=0.2.15' + prompt-toolkit: '>=3.0.24,<3.0.52' + distro: '>=1.5.0,<1.9.0' + awscrt: 0.36.2 + python-dateutil: '>=2.1,<=2.9.0' + jmespath: '>=0.7.1,<1.1.0' urllib3: '>=1.25.4,<=2.6.3' wcwidth: <0.3.0 + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/awscli-2.36.35-py310h2f441de_0.conda hash: md5: 578d9bf756bf730672d9099c1bfab8c5 @@ -500,19 +498,19 @@ package: manager: conda platform: linux-aarch64 dependencies: - aws-c-auth: '>=0.10.4,<0.10.5.0a0' - aws-c-cal: '>=0.9.15,<0.9.16.0a0' + python: 3.10.* + libgcc: '>=14' + aws-c-http: '>=0.11.0,<0.11.1.0a0' aws-c-common: '>=0.14.3,<0.14.4.0a0' + aws-c-mqtt: '>=0.16.0,<0.16.1.0a0' aws-c-event-stream: '>=0.7.1,<0.7.2.0a0' - aws-c-http: '>=0.11.0,<0.11.1.0a0' + python_abi: 3.10.* + aws-checksums: '>=0.2.10,<0.2.11.0a0' aws-c-io: '>=0.27.5,<0.27.6.0a0' - aws-c-mqtt: '>=0.16.0,<0.16.1.0a0' aws-c-s3: '>=0.13.1,<0.13.2.0a0' - aws-checksums: '>=0.2.10,<0.2.11.0a0' - libgcc: '>=14' - python: 3.10.* - python_abi: 3.10.* s2n: '>=1.7.6,<1.7.7.0a0' + aws-c-cal: '>=0.9.15,<0.9.16.0a0' + aws-c-auth: '>=0.10.4,<0.10.5.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/awscrt-0.36.2-py310hbe33c7e_0.conda hash: md5: 6bf1ee3a9fd0011e1e5e64343e67effe @@ -557,7 +555,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda hash: md5: f1976ce927373500cc19d3c0b2c85177 @@ -569,8 +567,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' python: '' + libgcc: '>=15' python_abi: 3.10.* zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/backports.zstd-1.7.0-py310h5585d39_0.conda @@ -584,8 +582,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=13' readline: '>=8.2,<9.0a0' + libgcc: '>=13' url: https://conda.anaconda.org/conda-forge/linux-aarch64/bash-5.2.37-ha0fa457_0.conda hash: md5: c68615ecf964c0a5c8b3874cddf009d8 @@ -621,7 +619,7 @@ package: platform: linux-aarch64 dependencies: libgcc: '>=14' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/billiard-4.2.4-py310h5b55623_0.conda hash: @@ -712,7 +710,7 @@ package: category: main optional: false - name: botocore - version: 1.43.88 + version: 1.43.90 manager: conda platform: linux-aarch64 dependencies: @@ -720,10 +718,10 @@ package: python: '>=3.10' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,!=2.2.0,<3' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.88-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.43.90-pyhd8ed1ab_0.conda hash: - md5: 1aa61f8701378688b720c3fba469cb6e - sha256: 6e438c78936a1ea4436f4005ab259f43dc89c03bf2276a0dde9a5d50e7a37afd + md5: 3968dc5ee8c18d480b44442b7460154d + sha256: e9a70a3d0f12115ded6a5752d9ffbbf05a710315b5ae97fe1d4f7ee448df5dc4 category: main optional: false - name: botocore-stubs @@ -731,7 +729,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' types-awscrt: '' typing_extensions: '>=4.1.0' url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.43.67-pyhcf101f3_0.conda @@ -854,11 +852,11 @@ package: manager: conda platform: linux-aarch64 dependencies: + libstdcxx: '>=15' libgcc: '>=15' libhiredis: '>=1.3.0,<1.4.0a0' - libstdcxx: '>=15' - xxhash: '>=0.8.3,<0.8.4.0a0' zstd: '>=1.5.7,<1.6.0a0' + xxhash: '>=0.8.3,<0.8.4.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/ccache-4.14-h2327310_0.conda hash: md5: 59855bc332ee0ed56d2c6faff5cbb09b @@ -870,17 +868,17 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' billiard: '>=4.2.1,<5.0' + kombu: '>=5.6.0' + vine: '>=5.1.0,<6.0' click: '>=8.1.2,<9.0' click-didyoumean: '>=0.3.0' - click-plugins: '>=1.1.1' click-repl: '>=0.2.0' - exceptiongroup: '>=1.3.0' - kombu: '>=5.6.0' - python: '>=3.10' + click-plugins: '>=1.1.1' python-dateutil: '>=2.8.2' tzlocal: '' - vine: '>=5.1.0,<6.0' + exceptiongroup: '>=1.3.0' url: https://conda.anaconda.org/conda-forge/noarch/celery-5.6.3-pyhc364b38_0.conda hash: md5: 5faafe2ad8db9e411630f52cf36b4aaa @@ -932,14 +930,14 @@ package: manager: conda platform: linux-aarch64 dependencies: - clang-format-23: ==23.1.0 libclang-cpp23.1: '>=23.1.0,<23.2.0a0' - libgcc: '>=15' + clang-format-23: ==23.1.0 libstdcxx: '>=15' - libxml2: '' - libxml2-16: '>=2.15.3' + libgcc: '>=15' libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libxml2: '' + libxml2-16: '>=2.15.3' url: https://conda.anaconda.org/conda-forge/linux-aarch64/clang-format-23.1.0-default_h6c96b21_1.conda hash: md5: aca79e268dabdbf77eb42840617166f6 @@ -952,13 +950,13 @@ package: platform: linux-aarch64 dependencies: libclang-cpp23.1: '>=23.1.0,<23.2.0a0' - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' libstdcxx: '>=15' - libxml2: '' - libxml2-16: '>=2.15.3' + libgcc: '>=15' libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libxml2: '' + libxml2-16: '>=2.15.3' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/clang-format-23-23.1.0-default_h01b09c7_1.conda hash: md5: be5ba168c5bfad8a3968cbbb283a805b @@ -970,15 +968,15 @@ package: manager: conda platform: linux-aarch64 dependencies: - libclang-cpp23.1: '>=23.1.0,<23.2.0a0' libclang13: '>=23.1.0' - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' + libclang-cpp23.1: '>=23.1.0,<23.2.0a0' libstdcxx: '>=15' - libxml2: '' - libxml2-16: '>=2.15.3' + libgcc: '>=15' libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libxml2: '' + libxml2-16: '>=2.15.3' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/clang-scan-deps-23.1.0-default_h01b09c7_1.conda hash: md5: c8b4f206772e5974eae3fe6cd2150f1a @@ -991,16 +989,16 @@ package: platform: linux-aarch64 dependencies: clang-format: ==23.1.0 + libclang13: '>=23.1.0' clang-scan-deps: ==23.1.0 libclang-cpp23.1: '>=23.1.0,<23.2.0a0' - libclang13: '>=23.1.0' - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' libstdcxx: '>=15' - libxml2: '' - libxml2-16: '>=2.15.3' + libgcc: '>=15' libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libxml2: '' + libxml2-16: '>=2.15.3' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/clang-tools-23.1.0-default_h7eda04c_1.conda hash: md5: a728c39936cb3340b172b539f4d2e09f @@ -1066,16 +1064,16 @@ package: manager: conda platform: linux-aarch64 dependencies: - bzip2: '>=1.0.8,<2.0a0' - libcurl: '>=8.21.0,<9.0a0' - libexpat: '>=2.8.1,<3.0a0' - libgcc: '>=15' - liblzma: '>=5.8.3,<6.0a0' libstdcxx: '>=15' + libgcc: '>=15' + rhash: '>=1.4.6,<2.0a0' libuv: '>=1.52.1,<2.0a0' libzlib: '>=1.3.2,<2.0a0' + liblzma: '>=5.8.3,<6.0a0' + libexpat: '>=2.8.1,<3.0a0' + libcurl: '>=8.21.0,<9.0a0' + bzip2: '>=1.0.8,<2.0a0' ncurses: '>=6.6,<7.0a0' - rhash: '>=1.4.6,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/cmake-4.4.3-hcbeb305_0.conda hash: @@ -1113,7 +1111,7 @@ package: platformdirs: '>=3.10.0' pluggy: '>=1.0.0' pycosat: '>=0.6.3' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* requests: '>=2.28.0,<3' ruamel.yaml: '>=0.11.14,<0.19' @@ -1144,10 +1142,10 @@ package: manager: conda platform: linux-aarch64 dependencies: - boltons: '>=23.0.0' + python: '' libmambapy: '>=2.0.0' + boltons: '>=23.0.0' msgpack-python: '>=1.1.1' - python: '>=3.10' requests: '>=2.28.0,<3' zstandard: '>=0.15' url: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-26.4.2-pyhcf101f3_1.conda @@ -1161,8 +1159,8 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' conda-package-streaming: '>=0.12.0' - python: '>=3.10' requests: '' zstandard: '>=0.15' url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.5.0-pyhcf101f3_0.conda @@ -1200,10 +1198,10 @@ package: manager: conda platform: linux-aarch64 dependencies: - colorama: '' + python: '' conda: '>=25.0' networkx: '>=2.0' - python: '>=3.10' + colorama: '' url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.2.0-pyhcf101f3_0.conda hash: md5: d50ead4984f21edfb9ceeca13e62440a @@ -1235,7 +1233,7 @@ package: libgcc: '>=13' libstdcxx: '>=13' numpy: '>=1.23' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/contourpy-1.3.2-py310hf54e67a_0.conda hash: @@ -1260,8 +1258,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/cpp-expected-1.3.1-hdc560ac_1.conda hash: md5: 9d634b13d6b78f143345f2932ae80700 @@ -1289,7 +1287,7 @@ package: cffi: '>=1.12' libgcc-ng: '>=12' openssl: '>=3.1.0,<4.0a0' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-40.0.2-py310he4ba0b1_0.conda hash: @@ -1302,7 +1300,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda hash: md5: 4c2a8fef270f6c69591889b93f9f55c1 @@ -1314,11 +1312,11 @@ package: manager: conda platform: linux-aarch64 dependencies: - libexpat: '>=2.8.1,<3.0a0' - libgcc: '>=15' - libglib: '>=2.88.3,<3.0a0' libstdcxx: '>=15' + libgcc: '>=15' + libexpat: '>=2.8.1,<3.0a0' libzlib: '>=1.3.2,<2.0a0' + libglib: '>=2.88.3,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/dbus-1.16.2-h71d469a_2.conda hash: md5: 2d4de8dd159984989d47c03fb5543a9f @@ -1379,7 +1377,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/doit-0.37.0-pyhcf101f3_0.conda hash: md5: 37b3d4c558f2bb2b5378c43f4d6f1fb5 @@ -1405,13 +1403,13 @@ package: manager: conda platform: linux-aarch64 dependencies: - bzip2: '>=1.0.8,<2.0a0' - libarchive: '>=3.8.9,<3.9.0a0' + libstdcxx: '>=15' libgcc: '>=15' liblzma: '>=5.8.3,<6.0a0' - libstdcxx: '>=15' - libzlib: '>=1.3.2,<2.0a0' + libarchive: '>=3.8.9,<3.9.0a0' zstd: '>=1.5.7,<1.6.0a0' + libzlib: '>=1.3.2,<2.0a0' + bzip2: '>=1.0.8,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/elfutils-0.196-h424db8c_0.conda hash: md5: aa22638e529df502fc3f7965df1c5c4e @@ -1475,10 +1473,10 @@ package: dependencies: libgcc: '>=13' tk: '>=8.6.13,<8.7.0a0' - url: https://conda.anaconda.org/jimfangx/linux-aarch64/expect-5.45.4-hdd74a06_0.conda + url: https://conda.anaconda.org/ucb-bar/linux-aarch64/expect-5.45.4-hc710cf7_0.conda hash: - md5: 6f2b167dcf2d6427c8ca688c286f86e7 - sha256: 7005f0829d82d20902aca21b89b19174af4cbdcfd3ea760f911bf263348190cc + md5: 9492dc811dc572bcba1d0d7f5fe10716 + sha256: 7d6d79506b4c73056de603ac4112e38cb12a244930ebd35d7ed35412acf379cc category: main optional: false - name: file @@ -1486,8 +1484,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libmagic: ==5.48 + libgcc: '>=14' libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/file-5.48-h3053828_1.conda hash: @@ -1531,7 +1529,7 @@ package: platform: linux-aarch64 dependencies: flask: '>=0.9' - python: '>=3.10' + python: '' typing_extensions: '>=4.6.0' werkzeug: '>=0.7' url: https://conda.anaconda.org/conda-forge/noarch/flask-cors-6.0.5-pyhcf101f3_0.conda @@ -1657,10 +1655,10 @@ package: manager: conda platform: linux-aarch64 dependencies: - font-ttf-dejavu-sans-mono: '' + font-ttf-ubuntu: '' font-ttf-inconsolata: '' + font-ttf-dejavu-sans-mono: '' font-ttf-source-code-pro: '' - font-ttf-ubuntu: '' url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda hash: md5: a7970cd949a077b7cb9696379d338681 @@ -1675,7 +1673,7 @@ package: brotli: '' libgcc: '>=14' munkres: '' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* unicodedata2: '>=15.1.0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/fonttools-4.63.0-py310h2d8da20_0.conda @@ -1714,7 +1712,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/frozendict-2.4.7-pyh851646a_2.conda hash: md5: 43fdb6bcc1227a22290d0bc02a9484c9 @@ -1728,7 +1726,7 @@ package: dependencies: libgcc: '>=14' libstdcxx: '>=14' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/frozenlist-1.8.0-py310h6b021dd_0.conda hash: @@ -1859,8 +1857,8 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' gitdb: '>=4.0.1,<5' - python: '>=3.10' typing_extensions: '>=3.10.0.2' url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.61-pyhcf101f3_0.conda hash: @@ -1873,9 +1871,9 @@ package: manager: conda platform: linux-aarch64 dependencies: + libglib: ==2.88.3 libffi: '' libgcc: '>=15' - libglib: ==2.88.3 url: https://conda.anaconda.org/conda-forge/linux-aarch64/glib-tools-2.88.3-h8912f12_3.conda hash: md5: 5a45b94a73799b9cb97869cda44f2db7 @@ -1887,8 +1885,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/gmp-6.3.0-h4d6b352_3.conda hash: md5: ce2326e31df1913341036653e1c07baa @@ -1913,8 +1911,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/graphite2-1.3.15-h7ac5ae9_1.conda hash: md5: c5835ff5788e0d772d67a97bd5fe001b @@ -1963,7 +1961,7 @@ package: glib-tools: '' harfbuzz: '>=13.2.1' hicolor-icon-theme: '' - libcups: '>=2.3.3,<2.4.0a0,>=2.3.3,<3.0a0' + libcups: '>=2.3.3,<3.0a0' libexpat: '>=2.7.4,<3.0a0' libfreetype: '>=2.14.2' libfreetype6: '>=2.14.2' @@ -2050,7 +2048,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' typing_extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda hash: @@ -2063,9 +2061,9 @@ package: manager: conda platform: linux-aarch64 dependencies: - hpack: '>=4.2,<5' + python: '' hyperframe: '>=6.1,<7' - python: '>=3.10' + hpack: '>=4.2,<5' url: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda hash: md5: e652ac7756069c456d0da2a922cd7df5 @@ -2150,7 +2148,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/idna-3.19-pyhcf101f3_0.conda hash: md5: a39ae05027e9b707742e41b30d296b75 @@ -2174,7 +2172,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' zipp: '>=3.20' url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.1-pyhcf101f3_0.conda hash: @@ -2224,7 +2222,7 @@ package: platform: linux-aarch64 dependencies: markupsafe: '>=2.0' - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda hash: md5: 04558c96691bed63104678757beb4f8d @@ -2261,8 +2259,8 @@ package: manager: conda platform: linux-aarch64 dependencies: + oniguruma: '>=6.9.10,<6.10.0a0' libgcc: '>=14' - oniguruma: 6.9.*,>=6.9.10,<6.10.0a0 url: https://conda.anaconda.org/conda-forge/linux-aarch64/jq-1.8.2-h80f16a2_1.conda hash: md5: 266917520745dc1ca3da3dfb71365d9c @@ -2300,7 +2298,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.1.1-pyhcf101f3_0.conda hash: md5: 89bf346df77603055d3c8fe5811691e6 @@ -2314,7 +2312,7 @@ package: dependencies: attrs: '>=22.2.0' jsonschema-specifications: '>=2023.3.6' - python: '>=3.9' + python: '' referencing: '>=0.28.4' rpds-py: '>=0.7.1' url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.24.1-pyhe01879c_0.conda @@ -2329,7 +2327,7 @@ package: platform: linux-aarch64 dependencies: pathable: '>=0.5.0,<0.6.0' - python: '>=3.10' + python: '' pyyaml: '>=5.1' referencing: <0.38.0 requests: '>=2.31.0,<3.0.0' @@ -2344,7 +2342,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' referencing: '>=0.31.0' url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda hash: @@ -2391,9 +2389,9 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' - libstdcxx: '>=15' python: '' + libstdcxx: '>=15' + libgcc: '>=15' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/kiwisolver-1.5.1-py310h4bba746_0.conda hash: @@ -2424,7 +2422,7 @@ package: platform: linux-aarch64 dependencies: keyutils: '>=1.6.3,<2.0a0' - libedit: '>=3.1.20250104,<3.2.0a0,>=3.1.20250104,<4.0a0' + libedit: '>=3.1.20250104,<4.0a0' libgcc: '>=15' libstdcxx: '>=15' openssl: '>=3.5.7,<4.0a0' @@ -2439,8 +2437,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' python: '' + libgcc: '>=15' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/lazy-object-proxy-1.12.0-py310hc1e03d5_4.conda hash: @@ -2526,7 +2524,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - libopenblas: '>=0.3.34,<0.3.35.0a0,>=0.3.34,<1.0a0' + libopenblas: '>=0.3.34,<1.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libblas-3.11.0-10_haddc8a3_openblas.conda hash: md5: 0aef6d16472137e6b556ecc2208194f6 @@ -2588,13 +2586,13 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' libstdcxx: '>=15' - libxml2: '' - libxml2-16: '>=2.15.3' + libgcc: '>=15' libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libxml2: '' + libxml2-16: '>=2.15.3' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libclang-cpp23.1-23.1.0-default_h01b09c7_1.conda hash: md5: 56f6878b64c009ce070e3c730b1593ca @@ -2607,13 +2605,13 @@ package: platform: linux-aarch64 dependencies: libclang-cpp23.1: ==23.1.0 - libgcc: '>=15' - libllvm23: '>=23.1.0,<23.2.0a0' libstdcxx: '>=15' - libxml2: '' - libxml2-16: '>=2.15.3' + libgcc: '>=15' libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' + libxml2: '' + libxml2-16: '>=2.15.3' + libllvm23: '>=23.1.0,<23.2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libclang13-23.1.0-default_h2e1c083_1.conda hash: md5: d970e8406218b8aa6b5e356d75a4b177 @@ -2713,8 +2711,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' ncurses: '>=6.6,<7.0a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20250104-pl5321hc48eb74_1.conda hash: md5: 6e06eb2c9fda76721699bcdd759b9c60 @@ -2927,10 +2925,10 @@ package: libffi: '>=3.7.0,<3.8.0a0' libgcc: '>=15' libglib: '>=2.88.3,<3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgirepository-1.86.0-hb5ad8ab_2.conda + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgirepository-1.86.0-hb5ad8ab_3.conda hash: - md5: 46735a45a51e5bb24fde15f4d9274278 - sha256: 48c09c3c1b6239fbf273486497fb12eec0d8e490b5f5c91b1ded996cc751fb01 + md5: 5fcd66e2a82ff97600661fa7d2375fe8 + sha256: 5a5dcbefc3307236cdcb31328dde820f740970705bf7d036f68bae968f4180f7 category: main optional: false - name: libgl @@ -2964,10 +2962,10 @@ package: manager: conda platform: linux-aarch64 dependencies: - libffi: '>=3.7.0,<3.8.0a0' libgcc: '>=15' - libiconv: '>=1.18,<2.0a0' libzlib: '>=1.3.2,<2.0a0' + libffi: '>=3.7.0,<3.8.0a0' + libiconv: '>=1.18,<2.0a0' pcre2: '>=10.47,<10.48.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.88.3-hb514e8e_3.conda hash: @@ -3029,8 +3027,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgpg-error-1.61-h7ac5ae9_2.conda hash: md5: 64310a77aae39edde7f0978fc1b3774e @@ -3144,20 +3142,20 @@ package: category: main optional: false - name: libllvm23 - version: 23.1.0 + version: 23.1.1 manager: conda platform: linux-aarch64 dependencies: libgcc: '>=15' libstdcxx: '>=15' libxml2: '' - libxml2-16: '>=2.15.3' + libxml2-16: '>=2.15.4' libzlib: '>=1.3.2,<2.0a0' zstd: '>=1.5.7,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm23-23.1.0-h680871c_0.conda + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libllvm23-23.1.1-h680871c_0.conda hash: - md5: 0bf6e3da8a7c36f713a762771f56ab6e - sha256: 0565cf53224b6fde27f6ad63d0386f123ad9f4bce8b72ce3fa37bee597163d82 + md5: d9653f37c9c19be9a279890f462c35a2 + sha256: 3da43ac0e2a07d4560b3fd31c5d39c9eb42b4fe6ee39f1d3ee8cbeeb4074c4ed category: main optional: false - name: liblzma @@ -3204,21 +3202,21 @@ package: platform: linux-aarch64 dependencies: cpp-expected: '>=1.3.1,<1.3.2.0a0' - fmt: '>=12.1.0,<12.2.0a0' - libarchive: '>=3.8.9,<3.9.0a0' - libcurl: '>=8.21.0,<9.0a0' - libgcc: '>=15' - libmsgpack-c: '>=6.1.0,<7.0a0' - libsolv: '>=0.7.39,<0.8.0a0' libstdcxx: '>=15' - nlohmann_json-abi: 3.12.0 - openssl: '>=3.5.8,<4.0a0' - reproc: '>=14.2.8.post0,<14.3.0a0' - reproc-cpp: '>=14.2.8.post0,<14.3.0a0' + libgcc: '>=15' simdjson: '>=4.6.9,<4.7.0a0' + reproc-cpp: '>=14.2.8.post0,<14.3.0a0' + zstd: '>=1.5.7,<1.6.0a0' spdlog: '>=1.17.0,<1.18.0a0' + nlohmann_json-abi: 3.12.0 + reproc: '>=14.2.8.post0,<14.3.0a0' + libarchive: '>=3.8.9,<3.9.0a0' yaml-cpp: '>=0.8.0,<0.9.0a0' - zstd: '>=1.5.7,<1.6.0a0' + openssl: '>=3.5.8,<4.0a0' + libmsgpack-c: '>=6.1.0,<7.0a0' + fmt: '>=12.1.0,<12.2.0a0' + libsolv: '>=0.7.39,<0.8.0a0' + libcurl: '>=8.21.0,<9.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-2.9.0-py314hfffb576_0.conda hash: md5: 96e0aa2f5e64aa522fd1c7190fa1d9a3 @@ -3230,9 +3228,9 @@ package: manager: conda platform: linux-aarch64 dependencies: + libstdcxx: '>=15' libgcc: '>=15' libmamba: '>=2.9.0,<2.10.0a0' - libstdcxx: '>=15' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-spdlog-2.9.0-he31237c_0.conda hash: md5: 59b89380e754afee4fd8d654283ba77a @@ -3244,19 +3242,19 @@ package: manager: conda platform: linux-aarch64 dependencies: - fmt: '>=12.1.0,<12.2.0a0' - libgcc: '>=15' - libmamba: ==2.9.0,>=2.9.0,<2.10.0a0 + python: 3.10.* + libmamba: '>=2.9.0,<2.10.0a0' libmamba-spdlog: ==2.9.0 libstdcxx: '>=15' + libgcc: '>=15' + zstd: '>=1.5.7,<1.6.0a0' + fmt: '>=12.1.0,<12.2.0a0' + pybind11-abi: '11' nlohmann_json-abi: 3.12.0 + yaml-cpp: '>=0.8.0,<0.9.0a0' + spdlog: '>=1.17.0,<1.18.0a0' openssl: '>=3.5.8,<4.0a0' - pybind11-abi: '11' - python: 3.10.* python_abi: 3.10.* - spdlog: '>=1.17.0,<1.18.0a0' - yaml-cpp: '>=0.8.0,<0.9.0a0' - zstd: '>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-2.9.0-py310hf44aaeb_0.conda hash: md5: afcaa30aaf5d0ba160d329b60315ad3d @@ -3282,7 +3280,7 @@ package: platform: linux-aarch64 dependencies: c-ares: '>=1.34.8,<2.0a0' - libev: '>=4.33,<4.34.0a0,>=4.33,<5.0a0' + libev: '>=4.33,<5.0a0' libgcc: '>=15' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' @@ -3361,7 +3359,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - libabseil: '*,>=20260526.0,<20260527.0a0' + libabseil: '>=20260526.0,<20260527.0a0' libgcc: '>=15' libstdcxx: '>=15' libzlib: '>=1.3.2,<2.0a0' @@ -3376,9 +3374,9 @@ package: manager: conda platform: linux-aarch64 dependencies: - icu: '>=78.3,<79.0a0' libgcc: '>=15' libstdcxx: '>=15' + icu: '>=78.3,<79.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libpsl-0.23.1-hb8431ed_1.conda hash: md5: 5ab41e5e70b78eb00ef62cdaa35cd86f @@ -3450,8 +3448,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' libstdcxx: '>=15' + libgcc: '>=15' libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsolv-0.7.39-h6e0bd25_1.conda hash: @@ -3635,13 +3633,13 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' + xkeyboard-config: '' libstdcxx: '>=14' + libgcc: '>=14' + xorg-libxau: '>=1.0.12,<2.0a0' libxcb: '>=1.17.0,<2.0a0' libxml2: '' libxml2-16: '>=2.14.6' - xkeyboard-config: '' - xorg-libxau: '>=1.0.12,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxkbcommon-1.13.2-he51e330_1.conda hash: md5: a9abdfd661d3bf523244a5488ca0f6a5 @@ -3649,36 +3647,36 @@ package: category: main optional: false - name: libxml2 - version: 2.15.3 + version: 2.15.4 manager: conda platform: linux-aarch64 dependencies: icu: '>=78.3,<79.0a0' - libgcc: '>=14' + libgcc: '>=15' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.3,<6.0a0' - libxml2-16: 2.15.3 + libxml2-16: 2.15.4 libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.15.3-h869d058_1.conda + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.15.4-h92b9305_0.conda hash: - md5: da311b13a2af5209b926397cd426f27d - sha256: 8d6c8037f5e0b6cb474f98f876c027b4c3c08a002d2639896a2775acb893f729 + md5: 066a1f1d5dc4e9d5c5a52670f8e0fef1 + sha256: 3345c88fa9ebb373bcf4069ede898950005fa2d1707e56a13a1ac6339919492f category: main optional: false - name: libxml2-16 - version: 2.15.3 + version: 2.15.4 manager: conda platform: linux-aarch64 dependencies: icu: '>=78.3,<79.0a0' - libgcc: '>=14' + libgcc: '>=15' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.3,<6.0a0' libzlib: '>=1.3.2,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-16-2.15.3-h79dcc73_1.conda + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-16-2.15.4-h2e5089f_0.conda hash: - md5: 0678aa203ef38d165a611bd81d5ca8f2 - sha256: ddc4e8200b34b6d308f7f7060b326086085ddbc6c003ab8539dd48b3917b1f18 + md5: 01dc16e9c00110df9c4197f8ffbab206 + sha256: 58bf7fcf64bae7f624a5e2aed860ddea614a8ec13c8c43fe150420a275b8bdb5 category: main optional: false - name: libzlib @@ -3722,8 +3720,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' lzo: '>=2.10,<3.0a0' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/lzop-1.04-hc1a2142_4.conda hash: md5: a58c4b1c45b8f0d32702b4b4b4adbdae @@ -3782,11 +3780,11 @@ package: libfreetype6: '>=2.14.3' libgcc: '>=14' libstdcxx: '>=14' - numpy: '>=1.21,<3,>=1.23' + numpy: '>=1.23' packaging: '>=20.0' pillow: '>=8' pyparsing: '>=2.3.1' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python-dateutil: '>=2.7' python_abi: 3.10.* qhull: '>=2020.2,<2020.3.0a0' @@ -3803,9 +3801,9 @@ package: platform: linux-aarch64 dependencies: python: '' - python_abi: 3.10.* tomli: '' tomli-w: '' + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.5.2-py310h4af9ecd_2.conda hash: md5: 7e0c44f7f39ccfed30c69072ef913d0c @@ -3817,14 +3815,14 @@ package: manager: conda platform: linux-aarch64 dependencies: - libabseil: '*,>=20260526.0,<20260527.0a0' + perl: '>=5.32.1,<5.33.0a0' libgcc: '>=14' - libprotobuf: '>=7.35.1,<7.35.2.0a0' libstdcxx: '>=14' libzlib: '>=1.3.2,<2.0a0' - ncurses: '>=6.6,<7.0a0' + libprotobuf: '>=7.35.1,<7.35.2.0a0' openssl: '>=3.5.7,<4.0a0' - perl: '>=5.32.1,<5.33.0a0' + ncurses: '>=6.6,<7.0a0' + libabseil: '*' url: https://conda.anaconda.org/conda-forge/linux-aarch64/mosh-1.4.0-pl5321h6b64c7b_15.conda hash: md5: ae596da9da5b29c42a2dbf431373da8e @@ -3836,23 +3834,23 @@ package: manager: conda platform: linux-aarch64 dependencies: - aws-xray-sdk: '!=0.96,>=0.93' + python: '' boto3: '>=1.9.201' botocore: '>=1.14.0,!=1.35.45,!=1.35.46' cryptography: '>=3.3.1' - flask: '!=2.2.0,!=2.2.1' - flask-cors: '' + requests: '>=2.5' + xmltodict: '' + werkzeug: '>=0.5,!=2.2.0,!=2.2.1' + python-dateutil: <3.0.0,>=2.1 + responses: '>=0.15.0' jinja2: '>=2.10.1' - joserfc: '' - jsondiff: '>=1.1.2' openapi-spec-validator: '>=0.6.0' + joserfc: '' pyparsing: '>=3.0.7' - python: '>=3.10' - python-dateutil: <3.0.0,>=2.1 - requests: '>=2.5' - responses: '>=0.15.0' - werkzeug: '>=0.5,!=2.2.0,!=2.2.1' - xmltodict: '' + jsondiff: '>=1.1.2' + aws-xray-sdk: '!=0.96,>=0.93' + flask: '!=2.2.0,!=2.2.1' + flask-cors: '' url: https://conda.anaconda.org/conda-forge/noarch/moto-5.2.3-pyhcf101f3_0.conda hash: md5: 9f1405219205a926b6855a4f39408f1b @@ -3910,7 +3908,7 @@ package: msal: '>=1.29,<2' portalocker: '>=1.6,<4' pygobject: '>=3,<4' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/msal_extensions-1.3.1-py310h4c7bcd0_1.conda hash: @@ -3923,9 +3921,9 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' - libstdcxx: '>=15' python: '' + libstdcxx: '>=15' + libgcc: '>=15' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/msgpack-python-1.2.2-py310h4bba746_1.conda hash: @@ -3939,7 +3937,7 @@ package: platform: linux-aarch64 dependencies: libgcc: '>=14' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* typing-extensions: '>=4.1.0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/multidict-6.7.1-py310h2d8da20_0.conda @@ -3966,15 +3964,15 @@ package: platform: linux-aarch64 dependencies: ast-serialize: '>=0.6.0,<1.0.0' - libgcc: '>=15' mypy_extensions: '>=1.0.0' pathspec: '>=1.0.0' - psutil: '>=4.0' python: '' python-librt: '>=0.13.0' - python_abi: 3.10.* - tomli: '>=1.1.0' typing_extensions: '>=4.6.0' + psutil: '>=4.0' + tomli: '>=1.1.0' + libgcc: '>=15' + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/mypy-2.3.1-py310h98242dd_0.conda hash: md5: d33f680736108f6e811c561986c10d85 @@ -3987,7 +3985,7 @@ package: platform: linux-aarch64 dependencies: boto3: '' - python: '>=3.10' + python: '' typing-extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.43.66-pyhcf101f3_0.conda hash: @@ -4001,7 +3999,7 @@ package: platform: linux-aarch64 dependencies: boto3: '' - python: '>=3.10' + python: '' typing-extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.43.82-pyhcf101f3_0.conda hash: @@ -4038,7 +4036,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyh267e887_2.conda hash: md5: fd40bf7f7f4bc4b647dc8512053d9873 @@ -4050,8 +4048,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/ninja-1.13.2-hdc560ac_1.conda hash: md5: dc59c099f43cdffa2b92e5f6248be5b3 @@ -4092,7 +4090,7 @@ package: libgcc: '>=13' liblapack: '>=3.9.0,<4.0a0' libstdcxx: '>=13' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/numpy-2.2.6-py310h6e5608f_0.conda hash: @@ -4105,11 +4103,11 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' - url: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.10-h80f16a2_1.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.10-h29ee22c_1.conda hash: - md5: e8c22ebf0586bc54534856b7cc054200 - sha256: 2de125162dc348c282e807c099226357f3c620e8f707d35a40d52fb5c0014495 + md5: 1c17c98ab86e8eef8bee114680a7abab + sha256: f1d29e8b76a612b3b5c11a8c90199fa7045ad16802a7a9f3e2d4a229a5ccae20 category: main optional: false - name: openapi-schema-validator @@ -4119,7 +4117,7 @@ package: dependencies: jsonschema: '>=4.19.1,<5.0.0' jsonschema-specifications: '>=2024.10.1' - python: '>=3.10' + python: '' referencing: '>=0.37.0,<0.38.0' rfc3339-validator: '' url: https://conda.anaconda.org/conda-forge/noarch/openapi-schema-validator-0.8.0-pyhcf101f3_0.conda @@ -4180,9 +4178,9 @@ package: platform: linux-aarch64 dependencies: libgcc: '>=15' - libpng: '>=1.6.58,<1.7.0a0' libstdcxx: '>=15' libtiff: '>=4.7.2,<4.8.0a0' + libpng: '>=1.6.58,<1.7.0a0' libzlib: '>=1.3.2,<2.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/openjpeg-2.5.4-h504851f_2.conda hash: @@ -4208,7 +4206,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.9' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda hash: md5: 936687ed80f295a1f5dbcf8bd34c252c @@ -4222,8 +4220,8 @@ package: dependencies: libgcc: '>=13' libstdcxx: '>=13' - numpy: '>=1.19,<3,>=1.22.4' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + numpy: '>=1.22.4' + python: '>=3.10,<3.11.0a0' python-dateutil: '>=2.8.1' python-tzdata: '>=2022a' python_abi: 3.10.* @@ -4274,7 +4272,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pathable-0.5.0-pyhcf101f3_0.conda hash: md5: 21b330e89f7363ed6c4989a94ff20dea @@ -4325,19 +4323,19 @@ package: manager: conda platform: linux-aarch64 dependencies: - lcms2: '>=2.19.1,<3.0a0' - libfreetype: '>=2.14.3' - libfreetype6: '>=2.14.3' + python: 3.10.* libgcc: '>=14' - libjpeg-turbo: '>=3.1.4.1,<4.0a0' - libtiff: '>=4.7.1,<4.8.0a0' - libwebp-base: '>=1.6.0,<2.0a0' libxcb: '>=1.17.0,<2.0a0' openjpeg: '>=2.5.4,<3.0a0' - python: 3.10.* - python_abi: 3.10.* + libwebp-base: '>=1.6.0,<2.0a0' + libjpeg-turbo: '>=3.1.4.1,<4.0a0' + libfreetype: '>=2.14.3' + libfreetype6: '>=2.14.3' tk: '>=8.6.13,<8.7.0a0' + libtiff: '>=4.7.1,<4.8.0a0' + python_abi: 3.10.* zlib-ng: '>=2.3.3,<2.4.0a0' + lcms2: '>=2.19.1,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/pillow-12.3.0-py310hd8fe58f_0.conda hash: md5: d47dc1d81a467eefe66bee2d4f875e74 @@ -4363,8 +4361,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/pixman-0.46.4-h7ac5ae9_3.conda hash: md5: c5f34596fc05afb9ccc2782c42bcfcc5 @@ -4376,7 +4374,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.11.5-pyhcf101f3_0.conda hash: md5: 152ec36401f710145a7db03475594410 @@ -4388,7 +4386,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.9' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda hash: md5: d7585b6550ad04c8c5e21097ada2888e @@ -4452,7 +4450,7 @@ package: platform: linux-aarch64 dependencies: libgcc: '>=14' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/propcache-0.5.2-py310h2d8da20_0.conda hash: @@ -4465,8 +4463,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' python: '' + libgcc: '>=15' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/psutil-7.2.2-py310hc1e03d5_2.conda hash: @@ -4535,7 +4533,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pycparser-3.0-pyhcf101f3_0.conda hash: md5: 9c5491066224083c41b6d5635ed7107b @@ -4560,8 +4558,8 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' __unix: '' - python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/pyelftools-0.33-pyh8f84b5b_0.conda hash: md5: b0e199724ac880c3593df23944b53e93 @@ -4573,7 +4571,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda hash: md5: 2882dee445dfa45b0c5afce3ffb7730a @@ -4609,7 +4607,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' typing_extensions: '>=4.0' url: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.13.0-pyhcf101f3_0.conda hash: @@ -4637,7 +4635,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda hash: md5: 3687cc0b82a8b4c17e1f0eb7e47163d5 @@ -4663,13 +4661,13 @@ package: platform: linux-aarch64 dependencies: colorama: '' - exceptiongroup: '>=1' + pygments: '>=2.7.2' + python: '' iniconfig: '>=1.0.1' packaging: '>=22' pluggy: '>=1.5,<2' - pygments: '>=2.7.2' - python: '>=3.10' tomli: '>=1' + exceptiongroup: '>=1' url: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda hash: md5: 64c98a12c4e23eb238bf66bbecafdf3c @@ -4772,8 +4770,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' python: 3.10.* + libgcc: '>=15' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/python-librt-0.15.0-py310h864954f_1.conda hash: @@ -4822,7 +4820,7 @@ package: platform: linux-aarch64 dependencies: libgcc: '>=14' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* yaml: '>=0.2.5,<0.3.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.3-py310h2d8da20_1.conda @@ -4881,7 +4879,7 @@ package: platform: linux-aarch64 dependencies: attrs: '>=22.2.0' - python: '>=3.10' + python: '' rpds-py: '>=0.7.0' typing_extensions: '>=4.4.0' url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda @@ -4907,9 +4905,9 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' + reproc: '>=14.2.8.post0,<14.3.0a0' libstdcxx: '>=15' - reproc: ==14.2.8.post0,>=14.2.8.post0,<14.3.0a0 + libgcc: '>=15' url: https://conda.anaconda.org/conda-forge/linux-aarch64/reproc-cpp-14.2.8.post0-h63b641b_0.conda hash: md5: 42fad327a6215d0e2c5cf3acfd831841 @@ -4921,10 +4919,10 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' certifi: '>=2023.5.7' charset-normalizer: '>=2,<4' idna: '>=2.5,<4' - python: '>=3.10' urllib3: '>=1.26,<3' url: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda hash: @@ -4937,8 +4935,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' pyyaml: '' + python: '' requests: '>=2.30.0,<3.0' urllib3: '>=1.25.10,<3.0' url: https://conda.anaconda.org/conda-forge/noarch/responses-0.26.3-pyhcf101f3_0.conda @@ -4998,8 +4996,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' python: '' + libgcc: '>=14' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/rpds-py-0.30.0-py310haddc216_0.conda hash: @@ -5012,15 +5010,15 @@ package: manager: conda platform: linux-aarch64 dependencies: - __glibc: '>=2.28,<3.0.a0' libgcc: '>=15' + __glibc: '>=2.28,<3.0.a0' libiconv: '>=1.18,<2.0a0' - libzlib: '>=1.3.2,<2.0a0' - lz4-c: '>=1.10.0,<1.11.0a0' - openssl: '>=3.5.8,<4.0a0' popt: '>=1.19,<2.0a0' - xxhash: '>=0.8.3,<0.8.4.0a0' zstd: '>=1.5.7,<1.6.0a0' + xxhash: '>=0.8.3,<0.8.4.0a0' + lz4-c: '>=1.10.0,<1.11.0a0' + libzlib: '>=1.3.2,<2.0a0' + openssl: '>=3.5.8,<4.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/rsync-3.4.4-h4873a97_1.conda hash: md5: 91b39d39635445ffca67b9ba82236683 @@ -5032,10 +5030,10 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' python: 3.10.* - python_abi: 3.10.* ruamel.yaml.clib: '>=0.2.15' + libgcc: '>=14' + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.17-py310hef25091_2.conda hash: md5: e867ca69a8d4866b05a363bfddad2250 @@ -5047,8 +5045,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' python: 3.10.* + libgcc: '>=14' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.15-py310hef25091_1.conda hash: @@ -5116,10 +5114,10 @@ package: libgcc: '>=15' libxcrypt: '>=4.4.38' ncurses: '>=6.6,<7.0a0' - url: https://conda.anaconda.org/jimfangx/linux-aarch64/screen-5.0.2-h49fed5f_0.conda + url: https://conda.anaconda.org/ucb-bar/linux-aarch64/screen-5.0.2-h76dae67_0.conda hash: - md5: edeed05bef2b7e3ff63dc218b1caa8da - sha256: 8eed9346535693fdf97a638e5774169c1265cd203a06888d4af6451e8d1f9c18 + md5: add62ad3c3d27215953e621c2d9a53f3 + sha256: 7a30c0ca39954c9b358ad6b3fc145ade2a629ee3f8d57efd38fccd0ffffb13ea category: main optional: false - name: sed @@ -5147,16 +5145,16 @@ package: category: main optional: false - name: simdjson - version: 4.6.10 + version: 4.6.11 manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' libstdcxx: '>=15' - url: https://conda.anaconda.org/conda-forge/linux-aarch64/simdjson-4.6.10-h45ce4d5_0.conda + libgcc: '>=15' + url: https://conda.anaconda.org/conda-forge/linux-aarch64/simdjson-4.6.11-h45ce4d5_0.conda hash: - md5: 28379927576f293409668111acba50f6 - sha256: f47e131a5467c585fbd2278484a5c34a8cbb40b8749ba1588ae6af84626fdd17 + md5: cebdce2b76e45bb3c183b3d5ca1939c8 + sha256: 4d476046276b1c575f4c77acfe7f3fbec5b6ab558925f32f3a9feeb298c208ca category: main optional: false - name: six @@ -5164,7 +5162,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.9' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda hash: md5: 3339e3b65d58accf4ca4fb8748ab16b3 @@ -5176,7 +5174,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.3-pyhcf101f3_1.conda hash: md5: b899f1195be56d8215ed1973a8f409c3 @@ -5262,9 +5260,9 @@ package: manager: conda platform: linux-aarch64 dependencies: - docutils: '>0.18,<0.23' - python: '>=3.10' + python: '' sphinx: '>=6,<10' + docutils: '>0.18,<0.23' sphinxcontrib-jquery: '>=4,<5' url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.1.0-pyhcf101f3_2.conda hash: @@ -5368,7 +5366,7 @@ package: platform: linux-aarch64 dependencies: anyio: '>=3.6.2,<5' - python: '>=3.10' + python: '' typing_extensions: '>=4.10.0' url: https://conda.anaconda.org/conda-forge/noarch/starlette-1.6.0-pyhcf101f3_0.conda hash: @@ -5446,7 +5444,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda hash: md5: b5325cf06a000c5b14970462ff5e4d58 @@ -5470,8 +5468,8 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' __unix: '' - python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.70.0-pyh8f84b5b_0.conda hash: md5: 00953c3b729e03b0ae21f49fdf3441bb @@ -5483,7 +5481,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10,<4' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.4-pyhcf101f3_0.conda hash: md5: c2db35b004913ec69bcac64fb0783de0 @@ -5507,7 +5505,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.3.1.20260727-pyhcf101f3_0.conda hash: md5: b27fc3df415ba0196e462700ef487e5e @@ -5519,7 +5517,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20260815-pyhcf101f3_0.conda hash: md5: cd5c2725760ce602617c80a2b4c26d6d @@ -5531,7 +5529,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' urllib3: '>=2' url: https://conda.anaconda.org/conda-forge/noarch/types-requests-2.33.0.20260712-pyhcf101f3_0.conda hash: @@ -5544,7 +5542,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' types-awscrt: '' url: https://conda.anaconda.org/conda-forge/noarch/types-s3transfer-0.16.0-pyhcf101f3_0.conda hash: @@ -5569,7 +5567,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda hash: md5: c70ad746c22219b9700931707482992c @@ -5592,8 +5590,8 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' __unix: '' - python: '>=3.10' url: https://conda.anaconda.org/conda-forge/noarch/tzlocal-5.4.4-pyh8f84b5b_0.conda hash: md5: cbd15812c946aecc2d9479318aca450f @@ -5606,7 +5604,7 @@ package: platform: linux-aarch64 dependencies: libgcc: '>=14' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/unicodedata2-17.0.1-py310h5b55623_0.conda hash: @@ -5615,7 +5613,7 @@ package: category: main optional: false - name: universal-ctags - version: 6.2.20260830.0 + version: 6.2.20260906.0 manager: conda platform: linux-aarch64 dependencies: @@ -5625,13 +5623,13 @@ package: libseccomp: '>=2.6.1,<3.0a0' libstdcxx: '>=15' libxml2: '' - libxml2-16: '>=2.15.3' + libxml2-16: '>=2.15.4' pcre2: '>=10.47,<10.48.0a0' yaml: '>=0.2.5,<0.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-aarch64/universal-ctags-6.2.20260830.0-h45ce067_0.conda + url: https://conda.anaconda.org/conda-forge/linux-aarch64/universal-ctags-6.2.20260906.0-h45ce067_0.conda hash: - md5: 5ca1f477babb586727122207229d2e8b - sha256: ff8fe0e8fa761a4cce49897def2d438c0001f8c41631b7a8ea48151ccb1c5cc9 + md5: fd827bc7466f4cf8ae25e2b20e7a6771 + sha256: 4721e1e3ecb549ff6d8837d67d2289e96b888cd6b3446d9da4019735aeea7078 category: main optional: false - name: unzip @@ -5670,7 +5668,7 @@ package: __unix: '' click: '>=7.0' h11: '>=0.8' - python: '>=3.10' + python: '' typing_extensions: '>=4.0' url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.52.4-pyhc90fa1f_0.conda hash: @@ -5701,15 +5699,15 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' - libstdcxx: '>=14' - ncurses: '>=6.6,<7.0a0' - perl: '>=5.32.1,<5.33.0a0' python: '' - python_abi: 3.10.* + perl: '>=5.32.1,<5.33.0a0' + ncurses: '>=6.6,<7.0a0' xorg-libx11: '>=1.8.13,<2.0a0' xorg-libxt: '>=1.3.1,<2.0a0' xorg-xorgproto: '' + libgcc: '>=14' + libstdcxx: '>=14' + python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/vim-9.2.0785-py310pl5321hdae108c_0.conda hash: md5: fc24b532e6c66238185cbc2b3caa5507 @@ -5733,9 +5731,9 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' anyio: '>=3.0.0' libgcc: '>=14' - python: '' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/watchfiles-1.2.0-py310h1ee47ac_1.conda hash: @@ -5775,8 +5773,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' python: '' + libgcc: '>=14' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/websockets-16.1.1-py310hec1369a_0.conda hash: @@ -5790,7 +5788,7 @@ package: platform: linux-aarch64 dependencies: markupsafe: '>=2.1.1' - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.1.8-pyhcf101f3_0.conda hash: md5: 3eeca039e7316268627f4116da9df64c @@ -5849,8 +5847,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=14' libstdcxx: '>=14' + libgcc: '>=14' url: https://conda.anaconda.org/conda-forge/linux-aarch64/which-2.25-hdc560ac_0.conda hash: md5: 6dc4b55fc391a3d51ff12a6fed979562 @@ -5862,8 +5860,8 @@ package: manager: conda platform: linux-aarch64 dependencies: - libgcc: '>=15' python: '' + libgcc: '>=15' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/wrapt-2.4.0-py310hc1e03d5_0.conda hash: @@ -5889,7 +5887,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/xmltodict-1.0.4-pyhcf101f3_0.conda hash: md5: 0f02dbcae61967ced21fea829a8ee927 @@ -5914,8 +5912,8 @@ package: platform: linux-aarch64 dependencies: libgcc: '>=14' - libuuid: '>=2.42.2,<3.0a0' xorg-libice: '>=1.1.2,<2.0a0' + libuuid: '>=2.42.2,<3.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libsm-1.2.6-hf23e593_1.conda hash: md5: f5f4a1233da463827499fb4e5e1f0172 @@ -6137,10 +6135,10 @@ package: platform: linux-aarch64 dependencies: libgcc: '>=15' - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-xorgproto-2025.1-h29ee22c_2.conda + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-xorgproto-2025.1-h29ee22c_3.conda hash: - md5: 21f045a1238b059c7b670544a8c19d6b - sha256: af4fb5c073c9eda3f9105101c89ee90934ac2777f294a09f729500d825e8f2e4 + md5: b4fac720de771a0520d897a1c60974ca + sha256: c5b0c6e21dc57ca8b33d8f42328e963ecada4153f7ca2a31d55b50fe8c8a1d21 category: main optional: false - name: xxhash @@ -6231,7 +6229,7 @@ package: libgcc: '>=14' multidict: '>=4.0' propcache: '>=0.2.1' - python: '>=3.10,<3.11.0a0,>=3.10,<3.11.0a0' + python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-aarch64/yarl-1.24.5-py310h2d8da20_0.conda hash: @@ -6244,7 +6242,7 @@ package: manager: conda platform: linux-aarch64 dependencies: - python: '>=3.10' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.0-pyhcf101f3_0.conda hash: md5: ba3dcdc8584155c97c648ae9c044b7a3 @@ -6281,11 +6279,11 @@ package: manager: conda platform: linux-aarch64 dependencies: + python: '' cffi: '>=1.11' + zstd: '>=1.5.7,<1.6.0a0' libgcc: '>=15' - python: '' python_abi: 3.10.* - zstd: '>=1.5.7,<1.5.8.0a0,>=1.5.7,<1.6.0a0' url: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.25.0-py310hc1e03d5_3.conda hash: md5: cd665552d655d9ce4add9bb7a3e92f5e @@ -6353,11 +6351,11 @@ package: manager: pip platform: linux-aarch64 dependencies: - gdspy: '1.4' - numpy: '>=1.23.0,<2.0.0' pydantic: '>=1.9.2,<2.0.0' pyyaml: '>=6.0,<7.0' - ruamel-yaml: '>=0.17.21,<0.18.0' + ruamel.yaml: '>=0.17.21,<0.18.0' + numpy: '>=1.23.0,<2.0.0' + gdspy: '1.4' url: https://files.pythonhosted.org/packages/dd/85/8a7ffd385db1dc84295ef3101559fe7ae0f8fa39942253ca270728642dc5/hammer_vlsi-1.2.0-py3-none-any.whl hash: sha256: 7c237557d2a7c5f403474e54f9e5498758c71c24844e524a02656ac16369196d @@ -6424,8 +6422,8 @@ package: manager: pip platform: linux-aarch64 dependencies: - icontract: '>=2.0.1,<3' typing-extensions: '>=3.6.6' + icontract: '>=2.0.1,<3' url: https://files.pythonhosted.org/packages/c9/12/4afd6542c43cd20271f0e53bf0211decc10079a76a41e53c0288025a7b85/pylddwrap-1.2.2.tar.gz hash: sha256: a70437fea7bca647c0e98161e1006ef49970267999c571b499760f1c43c6ba10 @@ -6442,17 +6440,27 @@ package: sha256: 46065496ab748469cdd999246d17e301b2c24ae2fdf739132e580a0e94c94a87 category: main optional: false -- name: ruamel-yaml +- name: ruamel.yaml version: 0.17.40 manager: pip platform: linux-aarch64 dependencies: - ruamel-yaml-clib: '>=0.2.7' + ruamel.yaml.clib: '>=0.2.7' url: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl hash: sha256: b16b6c3816dff0a93dca12acf5e70afd089fa5acb80604afd1ffa8b465b7722c category: main optional: false +- name: ruamel.yaml.clib + version: 0.2.15 + manager: pip + platform: linux-aarch64 + dependencies: {} + url: https://files.pythonhosted.org/packages/90/16/e708059c4c429ad2e33be65507fc1730641e5f239fb2964efc1ba6edea94/ruamel_yaml_clib-0.2.15-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl + hash: + sha256: 1f66f600833af58bea694d5892453f2270695b92200280ee8c625ec5a477eed3 + category: main + optional: false - name: sure version: 2.0.1 manager: pip diff --git a/conda-reqs/docs.yaml b/conda-reqs/docs.yaml index 79e22efc0a..995864a6a4 100644 --- a/conda-reqs/docs.yaml +++ b/conda-reqs/docs.yaml @@ -3,7 +3,6 @@ channels: - conda-forge - litex-hub - nodefaults - - jimfangx platforms: - linux-64 diff --git a/conda-reqs/riscv-tools.yaml b/conda-reqs/riscv-tools.yaml index f5e777cda9..7427f6a8f9 100644 --- a/conda-reqs/riscv-tools.yaml +++ b/conda-reqs/riscv-tools.yaml @@ -3,7 +3,6 @@ channels: - conda-forge - litex-hub - nodefaults - - jimfangx platforms: - linux-64