Skip to content

Releases: dialectic-playground/sdlc-curriculum

v1.7.0

Choose a tag to compare

@bdperkin bdperkin released this 16 Oct 00:45
3b7290f

Repository tooling and formatting. Specification version unchanged: 1.0.0. No specified behavior, test, or fixture changes; every tool's help text is unchanged.

  • Pre-commit hooks (.pre-commit-config.yaml): formatting and linting (ruff, ruff-format, Prettier, doctoc, markdownlint-cli2, proselint, codespell), type checking (ty), secret and credential scanning (gitleaks, detect-aws-credentials, detect-private-key), EditorConfig enforcement, and file-integrity checks. New configuration files: .markdownlint-cli2.yaml and .proselintrc.json.
  • Formatting: specifications, user manuals, project READMEs, and shared/CLI-CONVENTIONS.md are reformatted (generated tables of contents, aligned tables) with no change in wording; normative help text is preserved verbatim. The reference models and tooling are formatted with ruff.
  • Repository hygiene: an extended .gitignore, EditorConfig and linter settings that keep raw test fixtures untouched, and aligned conditional assignments in the Makefile.

Language repositories should pin their sdlc-curriculum submodule to this tag. Repositories upgrading from v1.5.0 or earlier also need a workspace for each of Projects 11–52 (added in v1.6.0).

v1.6.0

Choose a tag to compare

@bdperkin bdperkin released this 14 Oct 13:36
f04e29a

Adds the applications-programming track: Projects 11–52, adapted from R. Johnsonbaugh and M. Kalin, Applications Programming in ANSI C (3rd ed., 1996). Specification version unchanged: 1.0.0. Nothing changes for Projects 00–10, so existing implementations need no changes.

  • 42 new projects (11-kinder … 52-spacecraft), siblings of Projects 00–10. Each has a URD, SRS, user manual, 10 public and 10 hidden black-box tests, a reference model per tool, and an assignment/ workspace. They add 53 dp- tools (65 in total), and the suites grow to 1060 tests.
  • CLI-CONVENTIONS §10 (CONV-32 … CONV-38), for Projects 11–52: tokens and line numbers, integer/real grammars, located data diagnostics, FIX/GEN number formatting, optional prompts on stderr (--prompt), the Ctrl-Z end-of-file marker, and the ANSI C rand() generator with --seed. Also: CONV-25 names the write error diagnostic, CONV-34 allows continuing diagnostics, and CONV-18 lists dp-chk-sort.
  • Textbook data files (bargraph.in, students.dat, sched.in, films.dat, sales.rpt, names.dat, distance.dat) are included byte-for-byte as fixtures.

Language repositories should pin their sdlc-curriculum submodule to this tag and add a workspace for each new project (their check-repository target requires one for every project in curriculum.toml).

v1.5.0

Choose a tag to compare

@bdperkin bdperkin released this 13 Oct 16:46
d47dd35

Tooling and CI hardening found during the Project 00 implementations. Specification version unchanged: 1.0.0. No specification, test, or fixture changes.

  • CI template (shared/ci/cross-platform-ci.yml): CI result now checks every job of its run attempt through the Actions API (a matrix job's combined result can hide a cancelled leg), and CI runs weekly to catch toolchain drift. Language repositories should apply the same ci-result job and schedule trigger.
  • Language skeleton Makefile: the TEMPLATE: marker check searches only git-tracked files, so dependency folders inside a project are never searched.

Language repositories should pin their sdlc-curriculum submodule to this tag.

v1.4.0

Choose a tag to compare

@bdperkin bdperkin released this 13 Oct 15:51
a4ab24b

Clarifications from the first round of implementations. Specification version unchanged: 1.0.0.

  • CONV-12 (scan order): only option syntax errors compete with --help/--version during the scan; operand and option-value errors are detected after it. Project 00 FR-07/FR-09 updated, and hidden test 10 gains a step (dp-hello extra --help prints the help). Implementations that reported the operand must be updated.
  • CONV-31 (resource limits): NFR memory limits apply to native builds; managed and interpreted runtimes are measured above their runtime baseline.

Language repositories should pin their sdlc-curriculum submodule to this tag.

v1.3.0

Choose a tag to compare

@bdperkin bdperkin released this 13 Oct 15:15
f2a329c

Script launchers on every OS. Specification version unchanged: 1.0.0.

  • The black-box runner runs #! script tools on Windows by starting their interpreter directly (resolved on PATH), never through cmd.exe. Interpreted-language implementations can ship a #! launcher instead of an .exe.
  • New self-test (make launchers, part of make check) verifies this on Linux, macOS, and Windows.
  • BASE-MAKEFILE: BIN_DIR may contain #! scripts; new LIBDIR ($(PREFIX)/lib/dialectic-playground) for script payloads.

Language repositories should pin their sdlc-curriculum submodule to this tag.

v1.2.1

Choose a tag to compare

@bdperkin bdperkin released this 13 Oct 13:50
5156c66

Tooling fixes. Specification version unchanged: 1.0.0.

  • Native macOS CI (curriculum and the language CI template) installs current GNU Make; macOS ships 3.81, below BASE-MAKEFILE's 3.82 minimum.
  • The language skeleton's toolchain example no longer uses tee /dev/stderr (unsupported by some Windows toolchains).

Language repositories should pin their sdlc-curriculum submodule to this tag.

v1.2.0

Choose a tag to compare

@bdperkin bdperkin released this 13 Oct 13:18
2c61455

Language repository skeleton. Specification version unchanged: 1.0.0. No implementation changes are required.

  • shared/templates/language/: the standard root Makefile for language repositories. make check covers the repository, the toolchain versions, and every project listed in IMPLEMENTED; it also provides roundtrip.
  • shared/ci/cross-platform-ci.yml: make-driven CI (container make check; native make check roundtrip on Linux, macOS, and Windows) that needs no edits as projects are implemented.

Language repositories should pin their sdlc-curriculum submodule to this tag.

v1.1.0

Choose a tag to compare

@bdperkin bdperkin released this 13 Oct 12:32
7bace86

Container-first tooling. Specification version unchanged: 1.0.0. No implementation changes are required.

  • BASE-MAKEFILE is container-first: every goal runs in the language repository's toolchain container (Podman, then Docker, then the local system; override with DP_RUNTIME=podman|docker|local). install, uninstall, and help stay on the host.
  • New shared tooling: tools/dp-run and tools/container.mk (byte-identical to the canonical copies in dialectic-playground/.github).
  • Language CI template: a container job per project plus native jobs on Linux, macOS, and Windows, with a shared-tooling drift check.
  • Assignment templates document the Containerfile requirement: the language's official image (pinned by digest) plus make and python3.
  • Versioning policy: release tags are now separate from spec_version.

Language repositories should pin their sdlc-curriculum submodule to this tag.

v1.0.0

Choose a tag to compare

@bdperkin bdperkin released this 13 Oct 02:43
243bd1c

First release of the specification-driven SDLC curriculum.

  • Eleven projects (00-hello-world … 10-sys-monitor): URD, SRS, user manual, and 10 public plus 10 hidden byte-exact black-box tests each.
  • Shared CLI conventions (CONV-01 … CONV-30), the language-neutral BASE-MAKEFILE contract, white-box document templates, and the cross-platform CI template for language repositories.
  • Spec version 1.0.0 (curriculum.toml), matching every tool's --version output.

Language repositories should pin their sdlc-curriculum submodule to this tag.