diff --git a/CHANGES.md b/CHANGES.md index 19f1020..551742c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,7 @@ ## Table of Contents +- [0.6.1 - 21st September 2026](#061---21st-september-2026) - [0.6.0 - 18th September 2026](#060---18th-september-2026) - [0.5.1 - 14th September 2026](#051---14th-september-2026) - [0.5.0 - 1st September 2026](#050---1st-september-2026) @@ -14,6 +15,14 @@ - [0.1.1 - 11th August 2026](#011---11th-august-2026) +## 0.6.1 - 21st September 2026 + +* Promoted the Synesis Linguist language-bar into **templates/gitattributes/{c,cxx,c_cxx}/** (public C API headers as C; `*.cmake` as CMake; helpers / IDE / **CMakeLists.txt** / `makefile` `-linguist-detectable`); +* Updated **templates/gitattributes/README.md** (language-bar is house policy, not an omitted remap); +* Expanded **templates/gitignore/c#/** from the lean consensus to the SDK-era Visual Studio / NuGet / Coverlet / BenchmarkDotNet ignore union (gold section layout; unrooted IDE and artefact dirs; omits **`.vscode/`** so tracked settings survive); +* Updated **templates/gitignore/README.md** (C# gold is the SDK-era union); + + ## 0.6.0 - 18th September 2026 * Expanded **templates/gitignore/{c,cxx,c_cxx}/** from the lean consensus to the historical Synesis C/C++ ignore union (gold section layout; MSVC, logs, IDE, artefact dirs; omits `.vscode/` and owning-library `/include/` `/src/` trees); diff --git a/NEWS.md b/NEWS.md index 7cf11ea..d65089d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,7 @@ | Date | News Item | Details | | -------------------- | --------- | ------- | +| 21st September 2026 | [**misc-dev-scripts** 0.6.1](https://github.com/synesissoftware/misc-dev-scripts/releases/tag/0.6.1) released | C/C++ **.gitattributes** Linguist language-bar; C# **.gitignore** SDK-era union | | 18th September 2026 | [**misc-dev-scripts** 0.6.0](https://github.com/synesissoftware/misc-dev-scripts/releases/tag/0.6.0) released | Phase 0–4: templates catalogue + self align | | 14th September 2026 | [**misc-dev-scripts** 0.5.1](https://github.com/synesissoftware/misc-dev-scripts/releases/tag/0.5.1) released | Python `.sis` help + prefer project `.venv` | | 1st September 2026 | [**misc-dev-scripts** 0.5.0](https://github.com/synesissoftware/misc-dev-scripts/releases/tag/0.5.0) released | JavaScript `run_all_unit_tests` runner | diff --git a/README.md b/README.md index 5ca40bc..5d55357 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Miscellaneous Development Scripts ![Language](https://img.shields.io/badge/language-Bash-blue.svg) [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) -[![Version](https://img.shields.io/badge/version-0.6.0-blue.svg)](https://github.com/synesissoftware/misc-dev-scripts/blob/master/CHANGES.md) +[![Version](https://img.shields.io/badge/version-0.6.1-blue.svg)](https://github.com/synesissoftware/misc-dev-scripts/blob/master/CHANGES.md) [![Last Commit](https://img.shields.io/github/last-commit/synesissoftware/misc-dev-scripts)](https://github.com/synesissoftware/misc-dev-scripts/commits/master) [![CI](https://github.com/synesissoftware/misc-dev-scripts/actions/workflows/ci.yml/badge.svg)](https://github.com/synesissoftware/misc-dev-scripts/actions/workflows/ci.yml) diff --git a/VERSION b/VERSION index a918a2a..ee6cdce 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.6.0 +0.6.1 diff --git a/templates/gitattributes/README.md b/templates/gitattributes/README.md index 3dbf192..2b3d5ed 100644 --- a/templates/gitattributes/README.md +++ b/templates/gitattributes/README.md @@ -6,7 +6,7 @@ Drop-in root **`.gitattributes`** files for GitHub-hosted repositories, organised by primary language. -These templates were written from first principles using public documentation and community templates — **not** from local Synesis / related repositories. +These templates were written from first principles using public documentation and community templates. The **c** / **cxx** / **c_cxx** Linguist language-bar (header classification and `-linguist-detectable` helpers) is the Synesis C/C++ house policy, lifted from **xTests** / **CLASP**. ## Table of Contents @@ -74,7 +74,7 @@ Folders: **`c/`**, **`cxx/`**. * **Source**: C/C++ extensions as `text diff=cpp` (Git’s `cpp` driver covers both languages). * **Build**: Makefiles, Autotools, CMake as text; `configure` forced `eol=lf`. * **Binary**: objects, static/shared libraries, executables, precompiled headers. -* **Linguist**: `build/` / `cmake-build-*/` as `linguist-generated` if ever committed (prefer `.gitignore`). +* **Linguist**: `build/` / `cmake-build-*/` as `linguist-generated` if ever committed (prefer `.gitignore`); Synesis language-bar — `*.h` / `*.c` as C, `*.hpp` / `*.hxx` / `*.cpp` / `*.cxx` as C++, `*.cmake` as CMake; helpers / IDE / **CMakeLists.txt** / `makefile` are `-linguist-detectable` (leave `*.cmake` on the bar). ### csharp @@ -155,7 +155,7 @@ Every template includes: ## What is intentionally omitted -* Project-specific `linguist-language=` remaps (e.g. forcing headers to C vs C++); +* Project-specific `linguist-language=` remaps outside the Synesis C/C++ language-bar on **c** / **cxx** / **c_cxx**; * Absolute paths or machine-local patterns; * Treating SVG as binary (left as text, matching Common/Web templates); * Relying on Linguist alone for build dirs that should be **gitignored** instead; diff --git a/templates/gitattributes/c/.gitattributes b/templates/gitattributes/c/.gitattributes index d58dcc9..698b4ea 100644 --- a/templates/gitattributes/c/.gitattributes +++ b/templates/gitattributes/c/.gitattributes @@ -3,6 +3,11 @@ # Sources: GitHub Docs (line endings), git-scm gitattributes (diff=cpp), # gitattributes/gitattributes C++.gitattributes + Common.gitattributes, # github-linguist overrides. +# +# Linguist language-bar policy (Synesis): classify public C API headers as C +# and *.cmake as CMake scripts; keep helper scripts, IDE project files, and +# CMakeLists.txt config out of the advertised language mix. Prefer +# -linguist-detectable over linguist-detectable=false. # Default: detect text, normalize to LF in the repository * text=auto @@ -83,3 +88,25 @@ TODO text # Object / build trees if committed (prefer .gitignore; mark if present) **/build/** linguist-generated **/cmake-build-*/** linguist-generated + +# Classification (C-primary / C API with C++ tests; *.cmake as CMake scripts) +*.c linguist-language=C +*.cmake linguist-language=CMake +*.cpp linguist-language=C++ +*.cxx linguist-language=C++ +*.h linguist-language=C +*.hpp linguist-language=C++ +*.hxx linguist-language=C++ + +# Keep the bar on library languages (helpers / legacy IDE / docs / +# CMakeLists.txt config; leave *.cmake detectable as CMake) +*.cmd -linguist-detectable +*.dsp -linguist-detectable +*.dsw -linguist-detectable +*.html -linguist-detectable +*.sh -linguist-detectable +*.sln -linguist-detectable +*.vcxproj -linguist-detectable +*.vimrc -linguist-detectable +CMakeLists.txt -linguist-detectable +makefile -linguist-detectable diff --git a/templates/gitattributes/c_cxx/.gitattributes b/templates/gitattributes/c_cxx/.gitattributes index 76a2f86..1ad0590 100644 --- a/templates/gitattributes/c_cxx/.gitattributes +++ b/templates/gitattributes/c_cxx/.gitattributes @@ -3,6 +3,11 @@ # Sources: GitHub Docs (line endings), git-scm gitattributes (diff=cpp), # gitattributes/gitattributes C++.gitattributes + Common.gitattributes, # github-linguist overrides. +# +# Linguist language-bar policy (Synesis): classify public C API headers as C +# and *.cmake as CMake scripts; keep helper scripts, IDE project files, and +# CMakeLists.txt config out of the advertised language mix. Prefer +# -linguist-detectable over linguist-detectable=false. # Default: detect text, normalize to LF in the repository * text=auto @@ -97,3 +102,25 @@ TODO text # --- GitHub Linguist --- **/build/** linguist-generated **/cmake-build-*/** linguist-generated + +# Classification (C-primary / C API with C++ tests; *.cmake as CMake scripts) +*.c linguist-language=C +*.cmake linguist-language=CMake +*.cpp linguist-language=C++ +*.cxx linguist-language=C++ +*.h linguist-language=C +*.hpp linguist-language=C++ +*.hxx linguist-language=C++ + +# Keep the bar on library languages (helpers / legacy IDE / docs / +# CMakeLists.txt config; leave *.cmake detectable as CMake) +*.cmd -linguist-detectable +*.dsp -linguist-detectable +*.dsw -linguist-detectable +*.html -linguist-detectable +*.sh -linguist-detectable +*.sln -linguist-detectable +*.vcxproj -linguist-detectable +*.vimrc -linguist-detectable +CMakeLists.txt -linguist-detectable +makefile -linguist-detectable diff --git a/templates/gitattributes/cxx/.gitattributes b/templates/gitattributes/cxx/.gitattributes index 66f0c82..03c489a 100644 --- a/templates/gitattributes/cxx/.gitattributes +++ b/templates/gitattributes/cxx/.gitattributes @@ -3,6 +3,11 @@ # Sources: GitHub Docs (line endings), git-scm gitattributes (diff=cpp), # gitattributes/gitattributes C++.gitattributes + Common.gitattributes, # github-linguist overrides. +# +# Linguist language-bar policy (Synesis): classify public C API headers as C +# and *.cmake as CMake scripts; keep helper scripts, IDE project files, and +# CMakeLists.txt config out of the advertised language mix. Prefer +# -linguist-detectable over linguist-detectable=false. # Default: detect text, normalize to LF in the repository * text=auto @@ -97,3 +102,25 @@ TODO text # --- GitHub Linguist --- **/build/** linguist-generated **/cmake-build-*/** linguist-generated + +# Classification (C-primary / C API with C++ tests; *.cmake as CMake scripts) +*.c linguist-language=C +*.cmake linguist-language=CMake +*.cpp linguist-language=C++ +*.cxx linguist-language=C++ +*.h linguist-language=C +*.hpp linguist-language=C++ +*.hxx linguist-language=C++ + +# Keep the bar on library languages (helpers / legacy IDE / docs / +# CMakeLists.txt config; leave *.cmake detectable as CMake) +*.cmd -linguist-detectable +*.dsp -linguist-detectable +*.dsw -linguist-detectable +*.html -linguist-detectable +*.sh -linguist-detectable +*.sln -linguist-detectable +*.vcxproj -linguist-detectable +*.vimrc -linguist-detectable +CMakeLists.txt -linguist-detectable +makefile -linguist-detectable diff --git a/templates/gitignore/README.md b/templates/gitignore/README.md index d58debd..a0b7b36 100644 --- a/templates/gitignore/README.md +++ b/templates/gitignore/README.md @@ -4,9 +4,12 @@ Drop-in root **`.gitignore`** files, organised by primary language. **Status:** Phase 2 — populated. **c** / **cxx** / **c_cxx** are the historical -Synesis C/C++ ignore union (gold section layout: directories by name, directories -by pattern, files by name, files by pattern). Other language keys remain lean -house consensus. Projects may still add local paths after copying. +Synesis C/C++ ignore union (gold section layout: `"directories (by name)"`, `"directories +(by pattern)"`, `"files (by name)"`, `"files (by pattern)"`). **c#** is the SDK-era Visual +Studio / NuGet / Coverlet / BenchmarkDotNet union in that same layout (unrooted +IDE and artefact dirs; omits **`.vscode/`** so tracked settings survive). Other +language keys remain lean house consensus. Projects may still add local paths +after copying. ## Table of Contents diff --git a/templates/gitignore/c#/.gitignore b/templates/gitignore/c#/.gitignore index 2ef429f..e0f707b 100644 --- a/templates/gitignore/c#/.gitignore +++ b/templates/gitignore/c#/.gitignore @@ -3,38 +3,69 @@ # directories (by name) -/.idea/ -/.vs/ -/TestResults/ -/artifacts/ -/bin/ -/obj/ +.idea/ +.vs/ /scratch/ -[Bb]in/ -[Oo]bj/ +BenchmarkDotNet.Artifacts/ +TestResults/ +artifacts/ +bld/ +x64/ +x86/ # directories (by pattern) **/[Pp]ackages/* +!**/[Pp]ackages/build/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +[Bb]in/ +[Dd]ebug/ +[Dd]ebugPublic/ +[Ll]og/ +[Ll]ogs/ +[Oo]bj/ +[Rr]elease/ +[Rr]eleases/ +[Tt]est[Rr]esult*/ +[Ww][Ii][Nn]32/ # files (by name) .DS_Store +.env +Thumbs.db +project.fragment.lock.json +project.lock.json # files (by pattern) -*~ +*.cache *.coverage *.coveragexml +*.log +*.nuget.props +*.nuget.targets *.nupkg +*.rsuser +*.sln.docstates +*.sln.iml *.snupkg *.suo *.sw[pon] +*.temp *.tmp *.trx *.user +*.userosscache +*.userprefs *.zip -project.lock.json +*~ +.env.* +[Bb]uild[Ll]og.* +coverage*.info +coverage*.json +coverage*.xml