Skip to content

chore: consolidate root-level files into .github/ and docs/ - #591

Merged
tschm merged 11 commits into
mainfrom
copilot/consolidate-repo-root-files
Mar 29, 2026
Merged

tschm merged 11 commits into
mainfrom
copilot/consolidate-repo-root-files

Conversation

Copilot AI commented Mar 29, 2026 •

Copy link
Copy Markdown
Contributor

Reduces root directory from 27 → ~19 items by relocating files that are equally functional from subdirectories.

Moves

From To
cliff.toml .github/cliff.toml
CODE_OF_CONDUCT.md .github/CODE_OF_CONDUCT.md
CONTRIBUTING.md .github/CONTRIBUTING.md
SECURITY.md .github/SECURITY.md
ROADMAP.md .github/ROADMAP.md
CITATIONS.bib .github/CITATIONS.bib
book/** docs/book/**
paper/** docs/paper/**
assets/*.svg docs/assets/

Reference updates

  • Makefile / rhiza_release.yml: add --config .github/cliff.toml to git-cliff invocations
  • paper.yml: working-directory, artifact path, cp command, and path triggers updated to docs/paper/
  • rhiza_quality.yml: comment updated to docs/book/marimo
  • .rhiza/make.d/book.mk: notebook discovery path updated to docs/book/marimo/notebooks
  • .rhiza/.env: MARIMO_FOLDER updated to docs/book/marimo/notebooks
  • README.md: CITATIONS.bib link updated to .github/CITATIONS.bib

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • astral.sh
    • Triggering command: /usr/bin/curl curl -LsSf REDACTED (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Goal

Reduce the number of files and folders at the repository root by implementing four consolidation moves. Do not touch pyproject.toml, pytest.ini, ruff.toml, .semgrep.yml, or any other file not listed below.


Changes to make

2 — Move cliff.toml → .github/cliff.toml

  • Move cliff.toml to .github/cliff.toml (content unchanged).
  • Update every reference to cliff.toml so tools still find it:
    • In Makefile: the changelog target calls ${UVX_BIN} git-cliff --output CHANGELOG.md — add --config .github/cliff.toml to the invocation.
    • In .github/workflows/rhiza_release.yml: the draft-release job runs uvx git-cliff --latest --output RELEASE_NOTES.md — add --config .github/cliff.toml.

3 — Move community health files → .github/

GitHub recognises CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md, and ROADMAP.md from .github/ just as well as from the root.

  • Move CODE_OF_CONDUCT.md → .github/CODE_OF_CONDUCT.md
  • Move CONTRIBUTING.md → .github/CONTRIBUTING.md
  • Move SECURITY.md → .github/SECURITY.md
  • Move ROADMAP.md → .github/ROADMAP.md
  • Move CITATIONS.bib → .github/CITATIONS.bib
  • Delete the originals from the root.
  • Update the link in README.md (line 287): [CITATIONS.bib](https://github.com/jebel-quant/jquantstats/blob/main/CITATIONS.bib) → [CITATIONS.bib](https://github.com/jebel-quant/jquantstats/blob/main/.github/CITATIONS.bib)

4 — Move book/ and paper/ under docs/

  • Move book/ → docs/book/ (recursively, preserving all content including book/marimo/notebooks/).
  • Move paper/ → docs/paper/ (recursively; contains paper/jquantstats.bib and paper/jquantstats.tex).
  • Delete the root book/ and paper/ directories.
  • Update path references:
    • .github/workflows/paper.yml:
      • working-directory: paper → working-directory: docs/paper
      • path: paper/jquantstats.pdf → path: docs/paper/jquantstats.pdf
      • cp paper/jquantstats.pdf /tmp/jquantstats.pdf → cp docs/paper/jquantstats.pdf /tmp/jquantstats.pdf
      • Update the path trigger 'paper/**' → 'docs/paper/**'
    • .github/workflows/rhiza_quality.yml: the deptry job comment mentions book/marimo as a folder checked — update the comment to docs/book/marimo.
    • Any Makefile targets that reference book/ should be updated to docs/book/.

5 — Move assets/ → docs/assets/

The assets/ directory contains only SVG files (snapshot_1n.svg, snapshot_all.svg) used by the documentation.

  • Move assets/ → docs/assets/ (all files).
  • Delete the root assets/ directory.
  • Update mkdocs.yml if it references the assets/ path (currently it does not explicitly reference it, but check for any assets paths in the config).
  • Check README.md for any image links pointing to assets/ and update them. Currently README.md line 62 references https://raw.githubusercontent.com/jebel-quant/jquantstats/main/docs/assets/dashboard.png — this already points to docs/assets/ so it is fine. Check for any references to the root assets/ path and update them.

Summary of files affected

Action From To
Move cliff.toml .github/cliff.toml
Move CODE_OF_CONDUCT.md .github/CODE_OF_CONDUCT.md
Move CONTRIBUTING.md .github/CONTRIBUTING.md
Move SECURITY.md .github/SECURITY.md
Move ROADMAP.md .github/ROADMAP.md
Move CITATIONS.bib .github/CITATIONS.bib
Move book/** docs/book/**
Move paper/** docs/paper/**
Move assets/** docs/assets/**
Update Makefile add --config .github/cliff.toml to git-cliff call
Update .github/workflows/rhiza_release.yml add --config .github/cliff.toml to git-cliff call
Update .github/workflows/paper.yml update paper/ → docs/paper/ paths and trigger
Update README.md update CITATIONS.bib link

Do not modify any other files. Keep all file contents identical apart from the path updates listed above.

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: .semgrep.yml should be in .github?

Assistant: Short answer: it depends on how you're using it.

The file currently lives at .semgrep.yml in the repo root. Here's the breakdown of both options:


Option A: Keep it at .semgrep.yml (repo root) ✅ — current location, and the Semgrep default

Semgrep's CLI automatically discovers rule files named .semgrep.yml (or .semgrep/) in the repo root. This is the convention Semgrep itself documents and expects. No additional configuration needed for local runs or pre-commit hooks.

Option B: Move to .github/semgrep.yml

This is not a Semgrep convention. Semgrep will not auto-discover rules there unless you explicitly point to it (e.g., `semgrep ...

This pull request was created from Copilot chat.


💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

Copilot AI changed the title [WIP] Consolidate repository root files by moving files to .github chore: consolidate root-level files into .github/ and docs/ Mar 29, 2026
Copilot AI requested a review from tschm March 29, 2026 03:06
@tschm
tschm marked this pull request as ready for review March 29, 2026 03:18
Copilot AI review requested due to automatic review settings March 29, 2026 03:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Consolidates several root-level configuration, community, and documentation assets under .github/ and docs/ to reduce repository root clutter while keeping workflows and tooling functional.

Changes:

  • Move git-cliff config and community health files into .github/, updating git-cliff invocations accordingly.
  • Relocate the companion paper and book assets under docs/, updating the paper workflow and Rhiza notebook export paths.
  • Update README citation link to the new .github/CITATIONS.bib location.

Reviewed changes

Copilot reviewed 7 out of 21 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Makefile Updates git-cliff invocation to use .github/cliff.toml.
.github/workflows/rhiza_release.yml Updates release-notes generation to use .github/cliff.toml.
.github/cliff.toml Adds git-cliff config at the new location.
.github/workflows/paper.yml Updates CI build paths/working directory for docs/paper/.
docs/paper/jquantstats.tex Companion paper content now under docs/paper/.
docs/paper/jquantstats.bib Paper bibliography now under docs/paper/.
.rhiza/make.d/book.mk Updates Marimo notebook discovery/export path to docs/book/....
.rhiza/.env Updates MARIMO_FOLDER to docs/book/marimo/notebooks.
.github/workflows/rhiza_quality.yml Updates comment to reflect docs/book/marimo path.
docs/book/marimo/notebooks/rhiza.py Marimo notebook now under docs/book/....
docs/book/marimo/notebooks/analytics_demo.py Analytics demo notebook now under docs/book/....
README.md Updates CITATIONS.bib link to .github/CITATIONS.bib.
.github/CODE_OF_CONDUCT.md Community health file moved under .github/.
.github/CONTRIBUTING.md Community health file moved under .github/.
.github/SECURITY.md Community health file moved under .github/.
.github/ROADMAP.md Community health file moved under .github/.
.github/CITATIONS.bib Citation file moved under .github/.
Comments suppressed due to low confidence (1)

.rhiza/make.d/book.mk:52

  • _book-notebooks uses for nb in docs/book/marimo/notebooks/*.py; do ... which will iterate once with the literal *.py if the directory exists but contains no notebooks, causing the export command to fail. Consider guarding the loop with an ls .../*.py >/dev/null 2>&1 check (or find), or skipping entries when the glob doesn’t match.
	@if [ -d "docs/book/marimo/notebooks" ]; then \
	  rm -rf docs/notebooks && mkdir -p docs/notebooks; \
	  for nb in docs/book/marimo/notebooks/*.py; do \
	    name=$$(basename "$$nb" .py); \
	    printf "${BLUE}[INFO] Exporting $$nb${RESET}\n"; \
	    abs_output="$$(pwd)/docs/notebooks/$$name.html"; \
	    (cd "$$(dirname "$$nb")" && uv run marimo export html --sandbox "$$(basename "$$nb")" -o "$$abs_output"); \
	  done; \

Comment thread .rhiza/.env Outdated
@@ -1,4 +1,4 @@
MARIMO_FOLDER=book/marimo/notebooks
MARIMO_FOLDER=docs/book/marimo/notebooks

Copilot AI Mar 29, 2026

Copy link

Choose a reason for hiding this comment

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

MARIMO_FOLDER is now docs/book/marimo/notebooks, but there are still repo references to the old book/ location (e.g. .pre-commit-config.yaml has exclude: ^book/ for interrogate, and .github/secret_scanning.yml ignores book/**). To keep tooling behavior consistent after the move, those references should be updated to docs/book/... (and any user docs like docs/MARIMO.md that still instruct uv run book/marimo/...).

Copilot uses AI. Check for mistakes.
tschm and others added 8 commits March 29, 2026 07:29
The book/ directory was moved to docs/book/ in the consolidation
commit, but the interrogate exclude paths were not updated, causing
docstring coverage to drop to 99.8%.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ocs/notebooks/

Update all references in .env, Makefile targets, docs, workflows,
and linter configs (ruff, interrogate) to point to the new location.
Remove the now-empty docs/book/ directory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update Makefile and template.lock references accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@tschm
tschm merged commit 8a2e56b into main Mar 29, 2026
30 of 31 checks passed
@tschm
tschm deleted the copilot/consolidate-repo-root-files branch March 29, 2026 03:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants