Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

## Table of Contents <!-- omit in toc -->

- [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)
Expand All @@ -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);
Expand Down
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.6.0
0.6.1
6 changes: 3 additions & 3 deletions templates/gitattributes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <!-- omit in toc -->
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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;
Expand Down
27 changes: 27 additions & 0 deletions templates/gitattributes/c/.gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
27 changes: 27 additions & 0 deletions templates/gitattributes/c_cxx/.gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
27 changes: 27 additions & 0 deletions templates/gitattributes/cxx/.gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
9 changes: 6 additions & 3 deletions templates/gitignore/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <!-- omit in toc -->
Expand Down
51 changes: 41 additions & 10 deletions templates/gitignore/c#/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading