Skip to content

Rename sync.sh to sync.py to reflect actual Python implementation #122

Description

@sebastientaggart

Problem to Fix

The main sync engine is a Python 3 script distributed as sync.sh. This causes editors, linters, and GitHub's language detection to misidentify it as a shell script, and confuses contributors who open the file expecting Bash.

Why it Matters

The misleading extension undermines tooling (syntax highlighting, type checking, formatters, test discovery) and contributor experience. It also prevents GitHub from accurately reflecting the project's tech stack in the repository language bar.

General Approach

Rename sync.sh to sync.py and update every reference across the project: internal marker strings, documentation, CI workflows, pre-commit hooks, the CONTRIBUTING guide, adapter templates, and installation instructions. Add a note that Python 3.8+ is required (stdlib only, no pip install needed). This is a breaking change — all consumer projects using CodeCannon as a submodule will need to update their references from sync.sh to sync.py.

Complexity

Verification / QA effort: significant
The rename touches documentation, CI, generated marker lines, and the sync script itself. Every reference must be found and updated, and at least one consumer project should be tested end-to-end to confirm the submodule workflow still works after the rename.

Acceptance Criteria

  • sync.sh is renamed to sync.py and is executable
  • All internal references updated: marker strings, docstring, error messages
  • All documentation updated: README, docs/, CONTRIBUTING guide
  • CI workflows updated to reference sync.py
  • Pre-commit hook (if applicable) updated to reference sync.py
  • Installation and quick-start instructions note the Python 3.8+ requirement (stdlib only)
  • Running CodeCannon/sync.py works identically to the old CodeCannon/sync.sh

Metadata

Metadata

Labels

choreRoutine maintenanceqa-passedQA completed, passes

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions