From 0d0722b0a7c60e29920a6d18f745c8272b28f9e9 Mon Sep 17 00:00:00 2001 From: Tim Dennis Date: Mon, 12 Oct 2026 18:21:30 -0700 Subject: [PATCH 1/6] Credit the student authors in pyproject and README; add version to CITATION.cff --- CITATION.cff | 2 ++ README.md | 7 +++++++ pyproject.toml | 6 +++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CITATION.cff b/CITATION.cff index 32acf24..7add84e 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -3,6 +3,8 @@ cff-version: 1.2.0 title: Carpentries Workbench Checker +version: 0.3.0 +date-released: 2026-09-30 message: >- If you use this software, please cite it using the metadata from this file. diff --git a/README.md b/README.md index 338d5c9..da7794e 100644 --- a/README.md +++ b/README.md @@ -496,6 +496,13 @@ reference. See [CONTRIBUTING.md](CONTRIBUTING.md). Everyone participating is expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md). +## Credits + +wbcheck began in 2023 as a project of UCLA DataSquad students Lawrence Lee and +Eric Huang. They designed the checker and wrote down what it should check. In +2026 Tim Dennis filled in the implementation with AI assistance. See +[CITATION.cff](CITATION.cff) for how to cite it. + ## License [BSD 3-Clause](LICENSE) diff --git a/pyproject.toml b/pyproject.toml index 3e53665..faaab43 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,11 @@ description = "Fast local checks for Carpentries Workbench lessons, with an opti readme = "README.md" license = "BSD-3-Clause" requires-python = ">=3.11" -authors = [{ name = "Tim Dennis", email = "tdennis@library.ucla.edu" }] +authors = [ + { name = "Lawrence Lee" }, + { name = "Eric Huang" }, + { name = "Tim Dennis", email = "tdennis@library.ucla.edu" }, +] dynamic = ["version"] dependencies = [ "pyyaml>=6", From aa326bac2d829db9bdb722ed6dc3e4ac8b28c760 Mon Sep 17 00:00:00 2001 From: Tim Dennis Date: Mon, 12 Oct 2026 18:28:40 -0700 Subject: [PATCH 2/6] Refresh pixi.lock after author metadata change --- pixi.lock | 74 +++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/pixi.lock b/pixi.lock index 36d7d3c..d624511 100644 --- a/pixi.lock +++ b/pixi.lock @@ -68,11 +68,11 @@ environments: - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/58/a2/bb081bab032533a855d44de1d56f8e8426114ff1ba5d1f07a438a0a654f8/idna-3.20-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/56/43/4ca9e49d27a1fcf6bece6f6aec0ea46bb9112489b93d4b688fb415457bdb/iniconfig-2.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/52/f8/b6e513ecbdf3b3cebe587c2279281ecf775b729a58cf4cc7bdf898ded029/jiter-0.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/4d/64/87505d9e006461233c21c8e66dc1ecee49c996090584b216abd0dd4a8322/ollama-0.6.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c0/a4/eb9409ec0736e50aa70a412f16c204ed149516846912f7e6724d4c73ee53/pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/35/ea/a56b9fe5066f3537b7882f77e9c5dfb26d8c2eefdaed9b5fc73d57b4dc22/pydantic-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/90/24/48cd98388e4ac2c08d0800af36d15413db15e20387f1038123a2c86cb2f6/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl @@ -129,11 +129,11 @@ environments: - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/58/a2/bb081bab032533a855d44de1d56f8e8426114ff1ba5d1f07a438a0a654f8/idna-3.20-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/56/43/4ca9e49d27a1fcf6bece6f6aec0ea46bb9112489b93d4b688fb415457bdb/iniconfig-2.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/aa/f8/07bd8c3a23f7a8a6875e6a820bbffe1483a18f18f9398a91b5495123176e/jiter-0.17.0-cp312-cp312-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/4d/64/87505d9e006461233c21c8e66dc1ecee49c996090584b216abd0dd4a8322/ollama-0.6.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/82/3f/76358795aa7a8c6d4f36e2cb828ad1c90ee118e1393a9281664f5aade9d4/pydantic_core-2.46.5-cp312-cp312-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/35/ea/a56b9fe5066f3537b7882f77e9c5dfb26d8c2eefdaed9b5fc73d57b4dc22/pydantic-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/94/101b49a6c63f99586755690696eae14532772587d9e39e93f7b8d28a49da/pydantic_core-2.50.1-cp312-cp312-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl @@ -191,11 +191,11 @@ environments: - pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/58/a2/bb081bab032533a855d44de1d56f8e8426114ff1ba5d1f07a438a0a654f8/idna-3.20-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/56/43/4ca9e49d27a1fcf6bece6f6aec0ea46bb9112489b93d4b688fb415457bdb/iniconfig-2.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0e/5e/0de4c6f84ffefa6809ffc2d550b9a314365acf7e7ec9b6c7375d49047900/jiter-0.17.0-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4d/64/87505d9e006461233c21c8e66dc1ecee49c996090584b216abd0dd4a8322/ollama-0.6.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/db/50/26b091836076ce4cb2fac264186936acc069e0595772cfd02a563bc4761a/pydantic_core-2.46.5-cp312-cp312-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/35/ea/a56b9fe5066f3537b7882f77e9c5dfb26d8c2eefdaed9b5fc73d57b4dc22/pydantic-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/db/a3/f8b1b39349c33037c73d7a1b794c9c29d8f07d5bd2b74399c1375a529cc6/pydantic_core-2.50.1-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl @@ -322,8 +322,8 @@ packages: timestamp: 1784754889428 - pypi: ./ name: carpentries-workbench-checker - version: 0.2.0 - sha256: 151ab3f77eedfb94912bb70a1b0d4f1d6aca42788d5c98fd4888889da770c646 + version: 0.3.0 + sha256: e490022938e35edeab7dac8d04cf3c3e118ac79358e6938c985abc91c6252659 requires_dist: - pyyaml>=6 - rich>=14 @@ -465,10 +465,10 @@ packages: - hypothesis>=6.141.1 ; extra == 'all' - coverage>=7.10.0 ; extra == 'all' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/56/43/4ca9e49d27a1fcf6bece6f6aec0ea46bb9112489b93d4b688fb415457bdb/iniconfig-2.3.1-py3-none-any.whl name: iniconfig - version: 2.3.0 - sha256: f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12 + version: 2.3.1 + sha256: 9121e2c1fdb355232495be3194c8dfe87ccc2d5dee45947b78e68f499790d7a7 requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/0e/5e/0de4c6f84ffefa6809ffc2d550b9a314365acf7e7ec9b6c7375d49047900/jiter-0.17.0-cp312-cp312-macosx_11_0_arm64.whl name: jiter @@ -960,39 +960,39 @@ packages: - pkg:pypi/pluggy?source=hash-mapping size: 25877 timestamp: 1764896838868 -- pypi: https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/35/ea/a56b9fe5066f3537b7882f77e9c5dfb26d8c2eefdaed9b5fc73d57b4dc22/pydantic-2.14.1-py3-none-any.whl name: pydantic - version: 2.13.5 - sha256: 346a034f080da3755d8e9cb5e00e8b07de1d39e4f6e2c87d8ab7cafa0b269a73 + version: 2.14.1 + sha256: 9195d967ec791692a04438115466764fb8b9a27b31f14a760437694f40d6b454 requires_dist: - annotated-types>=0.6.0 - - pydantic-core==2.46.5 - - typing-extensions>=4.14.1 - - typing-inspection>=0.4.2 + - pydantic-core==2.50.1 + - typing-extensions>=4.16.0 + - typing-inspection>=0.4.4 - email-validator>=2.0.0 ; extra == 'email' - - tzdata ; python_full_version >= '3.9' and sys_platform == 'win32' and extra == 'timezone' - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/82/3f/76358795aa7a8c6d4f36e2cb828ad1c90ee118e1393a9281664f5aade9d4/pydantic_core-2.46.5-cp312-cp312-macosx_10_12_x86_64.whl + - tzdata ; sys_platform == 'win32' and extra == 'timezone' + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/90/24/48cd98388e4ac2c08d0800af36d15413db15e20387f1038123a2c86cb2f6/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl name: pydantic-core - version: 2.46.5 - sha256: b9fe6fb92520e3fd61f2e49000b6911b188824f089b75973ea06d6267f0b476d + version: 2.50.1 + sha256: 93ba4e9d8210d941c200431a56b2c0400b131865947903937ed3ec5404307d2e requires_dist: - - typing-extensions>=4.14.1 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/c0/a4/eb9409ec0736e50aa70a412f16c204ed149516846912f7e6724d4c73ee53/pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - typing-extensions>=4.16.0 + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/db/a3/f8b1b39349c33037c73d7a1b794c9c29d8f07d5bd2b74399c1375a529cc6/pydantic_core-2.50.1-cp312-cp312-macosx_11_0_arm64.whl name: pydantic-core - version: 2.46.5 - sha256: 0fc5be0abd4a407e200d844b404e33639a554e7bd0d448e7b9ae181be4789ac2 + version: 2.50.1 + sha256: e8e1d6ce820aa23317e8209a86bd65a540973c12dc7552b48a4f6c8e9926815e requires_dist: - - typing-extensions>=4.14.1 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/db/50/26b091836076ce4cb2fac264186936acc069e0595772cfd02a563bc4761a/pydantic_core-2.46.5-cp312-cp312-macosx_11_0_arm64.whl + - typing-extensions>=4.16.0 + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/ee/94/101b49a6c63f99586755690696eae14532772587d9e39e93f7b8d28a49da/pydantic_core-2.50.1-cp312-cp312-macosx_10_12_x86_64.whl name: pydantic-core - version: 2.46.5 - sha256: a39ac25a9a2fa4072efdb429833c4a4c8009a51ff9eea3eeae131713cd27991e + version: 2.50.1 + sha256: 704075d10b74f2f3c6e15407c696d88701df35fc8953f434a431add0d0074db0 requires_dist: - - typing-extensions>=4.14.1 - requires_python: '>=3.9' + - typing-extensions>=4.16.0 + requires_python: '>=3.10' - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda sha256: f5f015ff1bc3e1b7fc08eee096b1865234189ae0b82bebdb86a5369116e42fa0 md5: 2882dee445dfa45b0c5afce3ffb7730a From 7c3d1a7b0541cf4ad6e001256cfce60eabf6deb9 Mon Sep 17 00:00:00 2001 From: Tim Dennis Date: Mon, 12 Oct 2026 18:34:47 -0700 Subject: [PATCH 3/6] Acknowledge the UCLA-IMLS program team in the README --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index da7794e..8eab05e 100644 --- a/README.md +++ b/README.md @@ -503,6 +503,10 @@ Eric Huang. They designed the checker and wrote down what it should check. In 2026 Tim Dennis filled in the implementation with AI assistance. See [CITATION.cff](CITATION.cff) for how to cite it. +wbcheck grew out of the UCLA-IMLS Lessons for Librarians in Open Science +program. Zhiyuan Yao coordinated the program. Loretta Hu, Hyerin Lee, Emily +Gong, and Madeline Kim contributed to its website, documentation, and lessons. + ## License [BSD 3-Clause](LICENSE) From b10505bfa8be4be67c2bc3a8d94d1e41882c5521 Mon Sep 17 00:00:00 2001 From: Tim Dennis Date: Mon, 12 Oct 2026 18:35:44 -0700 Subject: [PATCH 4/6] README credits: describe wbcheck as evolving with the program --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8eab05e..8d0e537 100644 --- a/README.md +++ b/README.md @@ -499,13 +499,13 @@ follow the [Code of Conduct](CODE_OF_CONDUCT.md). ## Credits wbcheck began in 2023 as a project of UCLA DataSquad students Lawrence Lee and -Eric Huang. They designed the checker and wrote down what it should check. In -2026 Tim Dennis filled in the implementation with AI assistance. See +Eric Huang, and it evolved over time as the UCLA-IMLS Lessons for Librarians in +Open Science program learned what collaborative lesson development involves. +In 2026 Tim Dennis filled in the implementation with AI assistance. See [CITATION.cff](CITATION.cff) for how to cite it. -wbcheck grew out of the UCLA-IMLS Lessons for Librarians in Open Science -program. Zhiyuan Yao coordinated the program. Loretta Hu, Hyerin Lee, Emily -Gong, and Madeline Kim contributed to its website, documentation, and lessons. +Zhiyuan Yao coordinated the program. Loretta Hu, Hyerin Lee, Emily Gong, and +Madeline Kim contributed to its website, documentation, and lessons. ## License From 8729d592f7af85068009e6bcc7ca8a3a5ff092f6 Mon Sep 17 00:00:00 2001 From: Tim Dennis Date: Mon, 12 Oct 2026 18:36:47 -0700 Subject: [PATCH 5/6] Add CREDITS.md with CRediT roles (draft) --- CREDITS.md | 18 ++++++++++++++++++ README.md | 1 + 2 files changed, 19 insertions(+) create mode 100644 CREDITS.md diff --git a/CREDITS.md b/CREDITS.md new file mode 100644 index 0000000..96b0731 --- /dev/null +++ b/CREDITS.md @@ -0,0 +1,18 @@ +# Credits + +Contributor roles use the [CRediT taxonomy](https://credit.niso.org/) (Contributor Roles Taxonomy, ANSI/NISO Z39.104-2022). Authors for citation are in [CITATION.cff](CITATION.cff). CFF has no role field, so roles live here. + +wbcheck began in 2023 and evolved as the UCLA-IMLS Lessons for Librarians in Open Science program learned what collaborative lesson development involves. + +| Person | Role in the project | CRediT roles | +|---|---|---| +| Lawrence Lee | UCLA DataSquad student, 2023 onward | Conceptualization, Methodology, Software | +| Eric Huang | UCLA DataSquad student | Conceptualization, Methodology | +| Tim Dennis | Program Director, UCLA Library | Project administration, Supervision, Software (2026 implementation, AI-assisted) | +| Zhiyuan Yao | Program Coordinator | Project administration | +| Loretta Hu | Lesson Infrastructure Developer | Software (program infrastructure), Writing - original draft (documentation) | +| Hyerin Lee | UCLA-IMLS program team | Software (program website) | +| Emily Gong | UCLA-IMLS program team | Software (program website) | +| Madeline Kim | UCLA-IMLS program team | Writing - original draft (lesson content) | + +Draft: roles are inferred from commit history and program records. Each person should confirm their own roles before a release is cited. diff --git a/README.md b/README.md index 8d0e537..3d52030 100644 --- a/README.md +++ b/README.md @@ -506,6 +506,7 @@ In 2026 Tim Dennis filled in the implementation with AI assistance. See Zhiyuan Yao coordinated the program. Loretta Hu, Hyerin Lee, Emily Gong, and Madeline Kim contributed to its website, documentation, and lessons. +Roles follow the CRediT taxonomy in [CREDITS.md](CREDITS.md). ## License From 412b7b102be8e810d3c20369ac1d25798795e8a9 Mon Sep 17 00:00:00 2001 From: Tim Dennis Date: Mon, 12 Oct 2026 18:37:27 -0700 Subject: [PATCH 6/6] List the program team as authors in CITATION.cff --- CITATION.cff | 15 +++++++++++++++ README.md | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 7add84e..6d82254 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -21,6 +21,21 @@ authors: family-names: Dennis affiliation: UCLA Library Data Science Center orcid: 'https://orcid.org/0000-0001-6632-3812' + - given-names: Zhiyuan + family-names: Yao + affiliation: UCLA Library + - given-names: Loretta + family-names: Hu + affiliation: UCLA Library + - given-names: Hyerin + family-names: Lee + affiliation: UCLA Library + - given-names: Emily + family-names: Gong + affiliation: UCLA Library + - given-names: Madeline + family-names: Kim + affiliation: UCLA Library repository-code: 'https://github.com/ucla-imls-open-sci/carpentries-workbench-checker' abstract: |2 A pixi-managed lesson checker for Carpentries Workbench lessons: deterministic diff --git a/README.md b/README.md index 3d52030..5d123f3 100644 --- a/README.md +++ b/README.md @@ -505,8 +505,8 @@ In 2026 Tim Dennis filled in the implementation with AI assistance. See [CITATION.cff](CITATION.cff) for how to cite it. Zhiyuan Yao coordinated the program. Loretta Hu, Hyerin Lee, Emily Gong, and -Madeline Kim contributed to its website, documentation, and lessons. -Roles follow the CRediT taxonomy in [CREDITS.md](CREDITS.md). +Madeline Kim contributed to its website, documentation, and lessons. All are +authors in CITATION.cff. Roles follow the CRediT taxonomy in [CREDITS.md](CREDITS.md). ## License