Skip to main content

Rustlings-style C exercises CLI for OpenCamp C 2026 Summer

Project description

Clings — C 语言练习系统 CLI

PyPI Python Downloads License

C 语言版 Rustlings:通过修复编译错误、补全代码来学习 C 语言。 配套 OpenCamp C 2026 Summer 课程 Unit 0–4,共 121 道练习

分支说明

分支 用途
cli (本分支, 默认) CLI 工具源码 + 练习数据,CI 自动发布 pip 包
main 练习仓库 (学生 clone 用,已废弃,改用 clings init)

快速开始

# 1. 安装 (推荐 uvx,不污染系统环境)
uvx clings init unit1              # 一行搞定: 安装+初始化 (需要 uv)

# 或传统方式:
pip install clings                 # 安装到系统/虚拟环境
clings init unit1                  # 初始化 Unit 1 (24课49题)

# 2. 开始做题!
clings                             # 进入交互式 watch 模式 (uvx clings 亦可)

推荐使用 uvuvx clings 会自动下载 clings 到隔离环境运行, 不影响系统 Python。安装 uv: curl -LsSf https://astral.sh/uv/install.sh | sh

命令参考

clings                        # 直接进入 watch 模式 (默认)
clings init [unit0|...|all]   # 初始化练习 (从包内释放到当前目录)
clings watch [selector]       # 交互式 watch (保存即验证)
clings run [exercise]         # 运行练习 (省略=下一道, 'random'=随机)
clings hint [exercise]        # 查看提示 (省略=下一道)
clings list [selector]        # 列出练习 + ✔/• 进度状态
clings check [selector]       # 批量验证
clings reset <exercise>       # 重置练习文件
clings reset progress         # 清除全部进度
clings doctor                 # 检查环境
clings -v                     # 显示版本号

开发

git clone https://cnb.cool/q.qq/opencamp-c-2026-summer/clings.git
cd clings/                     # 默认在 cli 分支
pip install -e .
clings check unit1 --solutions # 验证 49/49

CI/CD

push 到 cli 分支自动触发:

  1. Install & Test: pip install → clings init all → check unit1 --solutions
  2. Build & Publish: python -m build → twine upload 到 PyPI

架构

clings/ (cli 分支)
├── clings.py              # CLI 核心 (单文件, 零依赖, Python 3.11+)
├── pyproject.toml         # pip 打包 (exercises/ 嵌入 wheel)
├── clings.toml            # units 配置
├── .cnb.yml               # CI: cli 分支 push → test → publish
├── Dockerfile.ci          # Ubuntu 24.04 CI 环境
├── exercises/             # 121 道练习 (嵌入 pip 包, clings init 释放)
│   ├── 01_simplest_c_program/
│   │   ├── exercises.toml # 练习元数据 + 测试用例
│   │   ├── *.c            # 学生源码模板
│   │   └── README.md      # 课程参考
│   └── ...
├── solutions/             # Unit 1 参考答案 (CI 测试用, 不打包)
└── tools/                 # 维护脚本

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clings-4.0.0.tar.gz (225.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clings-4.0.0-py3-none-any.whl (421.7 kB view details)

Uploaded Python 3

File details

Details for the file clings-4.0.0.tar.gz.

File metadata

  • Download URL: clings-4.0.0.tar.gz
  • Upload date:
  • Size: 225.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for clings-4.0.0.tar.gz
Algorithm Hash digest
SHA256 6e0782923736e9a5bdd4250e249b7313085983b7508edfc4ff7ff7d87f3507e1
MD5 eb328d26983cf2d01d10515c97032add
BLAKE2b-256 28a43f7376d36ab69f9e9eb5a38ef1d863a0564b8997dab5f5bde9ea0cff7c52

See more details on using hashes here.

File details

Details for the file clings-4.0.0-py3-none-any.whl.

File metadata

  • Download URL: clings-4.0.0-py3-none-any.whl
  • Upload date:
  • Size: 421.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for clings-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc8c58255de466c2d0f41f5cbd862b4d7e40ec53a7382c80387ae7d2549fd150
MD5 0d9ea2c88d162b0eb84dc78467318d3a
BLAKE2b-256 648e27aab1acf9f0b9b8aa2b0c3861fa50b392369bc2df66d2d993be36a8cb08

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page