From c4d5ec60faaf5c9e8204f53aed987730da4e0db1 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 16 Aug 2024 12:39:29 -0700 Subject: [PATCH] Remove redis dep. JSON is much simpler --- .github/workflows/bundle_cron.yml | 15 +++++++-------- adabot/circuitpython_bundle.py | 30 +++++++++++++++--------------- requirements.txt | 1 - 3 files changed, 22 insertions(+), 24 deletions(-) diff --git a/.github/workflows/bundle_cron.yml b/.github/workflows/bundle_cron.yml index 43a0a2e..9210a31 100644 --- a/.github/workflows/bundle_cron.yml +++ b/.github/workflows/bundle_cron.yml @@ -26,17 +26,16 @@ jobs: # Its necessary to do this here, since 'schedule' events cannot (currently) # be limited (they run on all forks' default branches). if: startswith(github.repository, 'adafruit/') - services: - redis: - image: redis - ports: - - 6379/tcp - options: --entrypoint redis-server steps: - - name: Set up Python 3.9 + - name: Set up Python 3.12 uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: 3.12 + - name: Load contributor cache + uses: actions/cache@v4 + with: + key: "contributor-cache" + path: "contributors.json" - name: Versions run: | python3 --version diff --git a/adabot/circuitpython_bundle.py b/adabot/circuitpython_bundle.py index b1789d2..ed31398 100644 --- a/adabot/circuitpython_bundle.py +++ b/adabot/circuitpython_bundle.py @@ -9,12 +9,12 @@ from datetime import date from io import StringIO +import json import os +import pathlib import shlex import subprocess -import redis as redis_py - import sh from sh.contrib import git @@ -22,11 +22,6 @@ from adabot.lib import common_funcs from adabot import circuitpython_library_download_stats as dl_stats -REDIS = None -if "GITHUB_WORKSPACE" in os.environ: - REDIS = redis_py.StrictRedis(port=os.environ["REDIS_PORT"]) -else: - REDIS = redis_py.StrictRedis() BUNDLES = ["Adafruit_CircuitPython_Bundle", "CircuitPython_Community_Bundle"] @@ -380,20 +375,17 @@ def get_contributors(repo, commit_range): return contributors for log_line in output.split("\n"): sha, author_email, committer_email = log_line.split(",") - author = REDIS.get("github_username:" + author_email) - committer = REDIS.get("github_username:" + committer_email) + author = CONTRIBUTOR_CACHE.get("github_username:" + author_email, None) + committer = CONTRIBUTOR_CACHE.get("github_username:" + committer_email, None) if not author or not committer: github_commit_info = gh_reqs.get("/repos/" + repo + "/commits/" + sha) github_commit_info = github_commit_info.json() if github_commit_info["author"]: author = github_commit_info["author"]["login"] - REDIS.set("github_username:" + author_email, author) + CONTRIBUTOR_CACHE["github_username:" + author_email] = author if github_commit_info["committer"]: committer = github_commit_info["committer"]["login"] - REDIS.set("github_username:" + committer_email, committer) - else: - author = author.decode("utf-8") - committer = committer.decode("utf-8") + CONTRIBUTOR_CACHE["github_username:" + committer_email] = committer if committer_email == "noreply@github.com": committer = None @@ -506,7 +498,7 @@ def new_release(bundle, bundle_path): release_description.append( "The libraries in each release are compiled for all recent major versions of CircuitPython." " Please download the one that matches the major version of your CircuitPython. For example" - ", if you are running 8.2.6 you should download the `8.x` bundle.\n" + ", if you are running 9.1.1 you should download the `9.x` bundle.\n" ) release_description.append( @@ -554,6 +546,12 @@ def new_release(bundle, bundle_path): if __name__ == "__main__": + contributor_cache_fn = pathlib.Path("contributors.json").resolve() + if contributor_cache_fn.exists(): + CONTRIBUTOR_CACHE = json.loads(contributor_cache_fn.read_text()) + else: + CONTRIBUTOR_CACHE = {} + bundles_dir = os.path.abspath(".bundles") if "GITHUB_WORKSPACE" in os.environ: git.config("--global", "user.name", "adabot") @@ -570,3 +568,5 @@ def new_release(bundle, bundle_path): except RuntimeError as e: print("Failed to update and release:", cp_bundle) print(e) + finally: + contributor_cache_fn.write_text(json.dumps(CONTRIBUTOR_CACHE)) diff --git a/requirements.txt b/requirements.txt index 2d25e9b..ee4ca5d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,6 @@ packaging==22.0 pylint==2.11.1 pytest pyyaml>=5.4.1 -redis==4.5.4 requests==2.32.0 sh==1.12.14 requests-cache==0.5.2