Conversation
Break the circular include between XElementIterator.h and XElementIterImpl.h by forward-declaring XElementIterImpl in the iterator header and defining the destructor/move ops out-of-line. Add missing Converter.h include to LineFunctions.h. Fix run_bin to run the binary from the repo root rather than cd'ing into the build directory. Fix tests that wrote output files to cwd instead of Resources/testOutput/. Gitignore compile_commands.json.
Add GitHub Actions CI (ci.yaml) with four jobs: - linux and macos as required quality gates - windows and xcode as advisory Archive the old ccpp.yml workflow. Add Xcode generate, build, and test targets to the Makefile.
Move fmt/check/lint into a pinned Docker toolchain (Ubuntu 24.04 + clang-18 + libc++). Rework Makefile and ci.yaml per build-and-ci-design.md. WIP; fixed up into the original commits later.
Remove clang-tidy from Makefile/Dockerfile/.clang-tidy and the design doc; make check is now fmt-check + warning-free build. Add <cstdint> to Decimals.h (GCC 14 / libc++). Reformat the two clang-format-18 stragglers. WIP; fixed up later.
Switch the Docker gate from clang/libc++ to pinned g++-14 so make check matches the required Linux CI compiler. Add <cstdint> to ColorData.h. Fix missing break; in DocumentSpec toStream (emitted "timewiseerror" etc.). Drop ignored const cast in Decimals.cpp. test/test-all now run examples; drop the macOS-only examples CI step. WIP; fixed up later.
The gen/ directory will also hold gen/version-a (DevScripts) once that rename follows. Update AGENTS.md and .dockerignore.
Update all references in AGENTS.md, Dockerfile, Makefile, CHANGELOG.md, and DevScripts/parseXsd.rb.
Update all references in AGENTS.md, CHANGELOG.md, and DevScripts/smuflHeader.rb. Fix smuflHeader.rb path from stale S-M-U-F-L to actual smufl subdirectory name.
Update all references: CMakeLists.txt, Makefile, Dockerfile, .dockerignore, .gitignore, ci.yaml, README.md, CHANGELOG.md, AGENTS.md, docs/ai/project/*.md, DevScripts/*.rb, and Xcode/Mx.xcodeproj/project.pbxproj.
Update path references in DevScripts/build-for-apple.sh, mxdeploy.rb, mxdeploy-v01.rb, mxdeploy-v02.rb, and mxdeploy.
Update AGENTS.md. Adjust all relative paths in scripts from one level up (../X) to two levels up (../../X) now that they live inside gen/version-a/ rather than at the repo root.
- AGENTS.md: fix Xcode/ -> xcode/ in project index - src/private/mxtest/file/Path.h: update Resources -> data - gen/version-b/src/generate/paths.rs: update Sourcecode -> src, Documents -> docs; add second p.pop() since the crate is now two levels deep under gen/version-b/ instead of one level under CodeGen/ - gen/version-a/mxdeploy: update hardcoded absolute path Sourcecode -> src - .github/workflows/ccpp.yml.archived: update old paths
- Remove CircleCI badge (project uses GitHub Actions) - Correct make target: test-core -> test-all - Correct LICENSE filename (no .txt extension) - Fix linux-core CI description: both jobs use GCC; difference is test scope, not compiler - Correct element file count: ~590 .cpp (not ~1131)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Prepares the
mxrepository for AI-assisted development and replaces the ad hoc build/CI setupwith a portable, reproducible toolchain. Most of the diff is a one-time clang-format pass over the
whole
Sourcecode/tree; the rest is build/CI infrastructure and a small set of real build fixes.What this PR does
AI agent onboarding
AGENTS.md: project overview, repository index, and the quality-gate workflow..claude/(settings and aCLAUDE.mdthat points toAGENTS.md).Documents/ai/project/: project plan (agenda.md), agent guide (AGENTS.md), and thebuild-and-ci-design.mddesign document.Build system
build.shwith a portableMakefilewrapping CMake: build modes (lib,dev,core), run targets (test,test-all,examples-run,all), and knobs (JOBS,BUILD_TYPE,GENERATOR,ARGS,DOCKER).make testandmake test-allalso run the example programs, so the examples are exercised onevery platform that runs tests.
README.md; add.gitattributesfor consistent line endings.Formatting
.clang-format(Microsoft base: 4-space indent, Allman braces, no spaces insideparentheses).
Sourcecode/tree to that style (the large file count in this PR).make fmtformats in place using the pinned toolchain.Deterministic quality gate
Dockerfile(Ubuntu 24.04 with pinnedg++-14andclang-format-18) and.dockerignore.make checkruns a format check plus a warning-free build inside that container, so formattingand compiler-warning enforcement are reproducible and do not drift with the floating CI runner
images. It compiles with GCC, so a local pass matches the Linux CI compiler.
CMakeLists.txtenables-Wall -Wextra(/W4on MSVC) on themxtarget.CI
.github/workflows/ccpp.yml.archived) with.github/workflows/ci.yaml: five jobs -linux-gate(Docker quality gate + tests),linux-core(full GCC suite including the slowmx::coretests),macos,windows, and anadvisory
xcodejob.Build and portability fixes
<cstdint>includes (ColorData.h,Decimals.h).break;inDocumentSpec::toStreamthat produced incorrect output for severalenum values (e.g.
timewiserendered astimewiseerror).Decimals.cpp; clean up assorted compiler warnings inimpl/,ezxml/, and test code surfaced by the formatting pass and the warning gate.Notes
Documents/ai/project/build-and-ci-design.mdfor the full design.