From 14123a00efb9f3c5a18d8d7c73803f296f52825e Mon Sep 17 00:00:00 2001 From: Christopher Patti Date: Tue, 6 Oct 2026 15:02:28 -0400 Subject: [PATCH 1/4] chore: drop micromasters from Doof --- repos_info.json | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/repos_info.json b/repos_info.json index 03238f3..b93c7d1 100644 --- a/repos_info.json +++ b/repos_info.json @@ -1,16 +1,5 @@ { "repos": [ - { - "name": "micromasters", - "repo_url": "https://github.com/mitodl/micromasters.git", - "ci_hash_url": "https://micromasters-ci.odl.mit.edu/static/hash.txt", - "rc_hash_url": "https://micromasters-rc.odl.mit.edu/static/hash.txt", - "prod_hash_url": "https://micromasters.mit.edu/static/hash.txt", - "channel_name": "product-micromasters", - "project_type": "web_application", - "web_application_type": "django", - "versioning_strategy": "file" - }, { "name": "bootcamp-ecommerce", "repo_url": "https://github.com/mitodl/bootcamp-ecommerce.git", From 4681d74065dbd63a0feffb22b0a63d69a0a2d4ac Mon Sep 17 00:00:00 2001 From: Christopher Patti Date: Wed, 7 Oct 2026 17:13:59 -0400 Subject: [PATCH 2/4] chore: drop bootcamp-ecommerce from Doof mitodl/bootcamp-ecommerce is archived, so there is nothing left for Doof to release. --- repos_info.json | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/repos_info.json b/repos_info.json index b93c7d1..1ab2a8c 100644 --- a/repos_info.json +++ b/repos_info.json @@ -1,16 +1,5 @@ { "repos": [ - { - "name": "bootcamp-ecommerce", - "repo_url": "https://github.com/mitodl/bootcamp-ecommerce.git", - "ci_hash_url": "https://bootcamp-ci.odl.mit.edu/static/hash.txt", - "rc_hash_url": "https://bootcamp-rc.odl.mit.edu/static/hash.txt", - "prod_hash_url": "https://bootcamp.odl.mit.edu/static/hash.txt", - "channel_name": "product-bootcamps", - "project_type": "web_application", - "web_application_type": "django", - "versioning_strategy": "python" - }, { "name": "open-discussions", "repo_url": "https://github.com/mitodl/open-discussions.git", From dbe8b28ce04124883d2fa79b7781c3c42f104870 Mon Sep 17 00:00:00 2001 From: Christopher Patti Date: Wed, 7 Oct 2026 17:11:54 -0400 Subject: [PATCH 3/4] test: disable git auto-maintenance in test repos git commit spawns a detached `git maintenance run --auto` that can still be writing .git/objects/info/commit-graphs when the TemporaryDirectory in make_test_repo is removed, failing teardown with ENOTEMPTY. This made release_test.py::test_verify_new_commits error on every full-suite run locally (git 2.56). --- test_util.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test_util.py b/test_util.py index fc1eaca..eefc577 100644 --- a/test_util.py +++ b/test_util.py @@ -36,6 +36,9 @@ def make_test_repo(): """ with TemporaryDirectory() as directory: sync_check_call(["git", "init", "--quiet"], cwd=directory) + # git commit spawns a detached `git maintenance run --auto` which can still be + # writing to .git when TemporaryDirectory cleans up, failing teardown + sync_check_call(["git", "config", "maintenance.auto", "false"], cwd=directory) with gzip.open( os.path.join(SCRIPT_DIR, "test-repo.gz"), "rb" ) as test_repo_file: From b5f0f49ffeb6b7fada209d058aa1e2b6bd61e59d Mon Sep 17 00:00:00 2001 From: Christopher Patti Date: Wed, 7 Oct 2026 17:12:57 -0400 Subject: [PATCH 4/4] docs: use mitxonline's channel in Doof examples The examples used micromasters-eng, which never matched the configured channel (product-micromasters) and no longer maps to a Doof project. --- AGENTS.md | 2 +- README.md | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 959082b..31c35dd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -25,7 +25,7 @@ uv run pytest . # full suite; coverage is auto-applied via pytest.ini uv run ruff format # format (not gated by CI) uv run pytest bot_test.py::test_release -x # single test -uv run python3 bot_local.py micromasters-eng release 4.5.6 # drive Doof from a shell +uv run python3 bot_local.py product-mitx-online release 4.5.6 # drive Doof from a shell ``` Never use `pip`, `poetry`, or a hand-rolled venv - always `uv`. Run everything through diff --git a/README.md b/README.md index 6acad9b..4039a3a 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,8 @@ Our bot Doof helps manage the release process by automating most parts of it and knows when a release is happening and what state it's in. Some Doof commands need to be run in a specific Slack channel. Doof ties each Slack channel to a project -(see `repos_info.json`). If you type `@doof release 1.2.3` in the `#micromasters-eng` channel it will do a release -for the micromasters project. +(see `repos_info.json`). If you type `@doof release 1.2.3` in the `#product-mitx-online` channel it will do a release +for the mitxonline project. Other Doof commands can be run in any channel. If you want to run a command but don't want to clutter the channel chat, you can communicate directly with Doof with a direct message. @@ -86,8 +86,8 @@ If Slack is down you may need to run releases from a shell using `bot_local.py`. - Install dependencies with `uv sync` (see [Dependencies](#dependencies) below). - Set environment variables listed above. Until we make environment variable checks more fine grained it is probably easiest to fill in fake values for the values you don't need. - - Start a release: `uv run python3 bot_local.py micromasters-eng release 4.5.6` for example. - - Merge the release: `uv run python3 bot_local.py micromasters-eng finish release`. + - Start a release: `uv run python3 bot_local.py product-mitx-online release 4.5.6` for example. + - Merge the release: `uv run python3 bot_local.py product-mitx-online finish release`. Note that Doof and `bot_local.py` use temporary directories for all releases so none of your work in progress will be affected or will affect the release. @@ -117,7 +117,7 @@ that environment, for example: uv run pytest . uv run ruff check - uv run python3 bot_local.py micromasters-eng release 4.5.6 + uv run python3 bot_local.py product-mitx-online release 4.5.6 #### Javascript libraries Make sure you have `npm` installed, then install any dependencies: