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
44 changes: 44 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
root = true

# Self boilerplate for this shell / docs catalog.
# Language indent/EOL/charset overlap with .vscode/settings.json.
# Rulers, renderWhitespace, detectIndentation, and mergeEditor cannot be
# expressed here — they stay in settings.json.

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true

# [bat]
[*.{bat,cmd}]
end_of_line = crlf
indent_size = 4
indent_style = space

# [json]
[*.json]
indent_size = 2
indent_style = space

# [markdown]
[*.md]
indent_size = 2
indent_style = space

# [shellscript] (and extensionless shell rc drop-ins)
[*.{bash,sh,zsh}]
indent_size = 2
indent_style = space

[{.bashrc,.commonrc,.zshrc}]
indent_size = 2
indent_style = space

# [yaml]
[*.{yaml,yml}]
indent_size = 2
indent_style = space
10 changes: 4 additions & 6 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# .gitattributes — misc-dev-scripts (Bash helper catalog)
# .gitattributes — misc-dev-scripts (shell / docs catalog self)
#
# Aligned with misc-config-scripts shell / shared baseline patterns.
# Prefer a language-specific template from that sibling when copying into
# a primary-language library.
# Self boilerplate for this repository. Project drop-in templates live under
# templates/gitattributes/.

# Default: detect text, normalize to LF in the repository
* text=auto
Expand All @@ -29,10 +28,9 @@ TODO text
VERSION text

# --- Config ---
**/.gitattributes -linguist-vendored linguist-language=Git-Attributes linguist-detectable
**/settings.json linguist-language=JSON-with-Comments linguist-detectable
*.json text
*.yaml text
*.yml text
.gitattributes -linguist-vendored linguist-language=Git-Attributes linguist-detectable
settings.json linguist-language=JSON-with-Comments linguist-detectable
**/settings.json linguist-language=JSON-with-Comments linguist-detectable
19 changes: 18 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,24 @@
# Synesis Information Systems .gitignore for mixed-language / generic trees


# directories (by name)

/.idea/
/.venv/
/.vs/
/build/
/coverage/
/dist/
/node_modules/
/scratch/
/target/
/tmp/


# directories (by pattern)

**/__pycache__/


# files (by name)

Expand All @@ -15,7 +28,11 @@
# files (by pattern)

*~
*.dll
*.dylib
*.exe
*.o
*.so
*.sw[ponm]
*.tmp
*.zip

39 changes: 12 additions & 27 deletions .vimrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
" Synesis C/C++ project .vimrc — aligned with .sis/.vscode/c_cxx/settings.json
" Synesis shell / docs project .vimrc — self boilerplate for
" misc-config-scripts / misc-dev-scripts (aligned with .vscode/settings.json)

set nocompatible
filetype indent plugin on
Expand All @@ -17,12 +18,12 @@ set fixeol
set list
set listchars=tab:->,trail:-,extends:>,precedes:<,nbsp:+

" editor.detectIndentation: false — global defaults (editor.tabSize: 4, insertSpaces: true)
" editor.detectIndentation: false — global defaults (editor.tabSize: 2, insertSpaces: false)
set colorcolumn=76
set expandtab
set shiftwidth=4
set softtabstop=4
set tabstop=4
set noexpandtab
set shiftwidth=2
set softtabstop=2
set tabstop=2

" colorcolumn draws a full-column tint in Vim (not a VS Code-style 1px line).
" Keep it subtle via the ColorColumn highlight group; reapply after colorscheme changes.
Expand All @@ -40,31 +41,15 @@ autocmd ColorScheme * call s:ConfigureColorColumn()
" files.trimTrailingWhitespace
autocmd BufWritePre * %s/\s\+$//e

augroup sis_c_cxx
augroup sis_shell_docs
autocmd!

" [c] / [cpp]
autocmd FileType c,cpp setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,64,68,72,76

" [rust]
autocmd FileType rs setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=76

" [cmake]
autocmd FileType cmake setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4

" [shellscript]
autocmd FileType sh,bash,zsh setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 colorcolumn=60,76

" [bat]
autocmd FileType bat,dosbatch setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76

" [json] / [markdown] / [yaml] / [ruby]
autocmd FileType json,markdown,yaml,ruby setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2

" [python]
autocmd FileType python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76
" [json] / [markdown] / [yaml]
autocmd FileType json,markdown,yaml setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2

" [toml]
autocmd FileType toml setlocal noexpandtab tabstop=2 shiftwidth=2 softtabstop=2
" [shellscript]
autocmd FileType sh,bash,zsh setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 colorcolumn=60,76
augroup END

2 changes: 2 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,8 @@
"random": "cpp",
"ranges": "cpp",
"ratio": "cpp",
"rc.h": "c",
"result_codes_.h": "c",
"semaphore": "cpp",
"set": "cpp",
"setenv.h": "c",
Expand Down
32 changes: 32 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.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)
- [0.4.2 - 25th August 2026](#042---25th-august-2026)
Expand All @@ -13,6 +14,37 @@
- [0.1.1 - 11th August 2026](#011---11th-august-2026)


## 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);
* Phase 4: align self boilerplate with **templates/** gold:
* confirmed **`.vscode/settings.json`** byte-identical to **templates/vscode/generic/settings.json**;
* refreshed **`.gitignore`** from **templates/gitignore/generic/**;
* normalised self **`.gitattributes`** to shell / docs catalog form (templates remain under **templates/gitattributes/**);
* retained shell / docs **`.editorconfig`** and **`.vimrc`** (not replaced by language-generic consumer templates);
* Phase 3 companion: **misc-config-scripts** **0.8.2** removed legacy catalogs; this repo remains sole project-drop-in home;
* Updated **README.md** / **templates/** READMEs for post-cutover ownership (m-c-s **`.commonrc`** / **`.gitconfig`** only);
* Phase 2: populate **templates/** as the canonical project drop-in catalogue:
* **templates/vscode/** — migrated from **misc-config-scripts** `settings.json/` (plus **c_cxx** alias of **cxx**);
* **templates/gitattributes/** — migrated from **misc-config-scripts** `gitattributes/`;
* **templates/vimrc/** — freelibs language gold plus synthesized **javascript** / **generic**;
* **templates/editorconfig/** — freelibs **python** / **ruby** plus synthesized house rules for other languages;
* **templates/gitignore/** — lean Synesis-header consensus per language;
* **templates/vimrc/**: lexicographically ordered language sections and combined `[label]` / `FileType` lists (revisibility);
* Updated **templates/** READMEs (status, copy commands, layout);
* Updated **README.md** (Phase 2–4 canonical; prefer **templates/** over legacy m-c-s catalogs);
* Phase 1 self boilerplate:
* added **`.editorconfig`** (shell / docs catalog: UTF-8, LF, shell 2-space, markdown/json/yaml);
* replaced root **`.vimrc`** C/C++ consumer gold with shell / docs **self** **`.vimrc`** (aligned with **`.vscode/settings.json`**);
* preserved former C/C++ gold as **templates/vimrc/c_cxx/.vimrc** for Phase 2;
* confirmed **`.gitattributes`**, **`.gitignore`**, and **`.vscode/settings.json`** remain present as self files;
* Updated **templates/README.md** and **templates/vimrc/README.md** (c_cxx seed note);
* Declared Phase 0 ownership with **misc-config-scripts**: this repo owns language-specific project drop-ins and **`run_all_unit_tests`**; sibling keeps **`.commonrc`** / **`.gitconfig`** only after cutover;
* Scaffolded **templates/** catalogue layout (`editorconfig`, `gitattributes`, `gitignore`, `vimrc`, `vscode` × language keys; **`.gitkeep`** placeholders);
* Added **templates/README.md** and per-family READMEs (status, copy destinations, migration notes);
* Updated **README.md** (ownership table; catalogue layout; templates section);


## 0.5.1 - 14th September 2026

* **shell-scripts/run_all_unit_tests/python/run_all_unit_tests.sh**:
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 |
| -------------------- | --------- | ------- |
| 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 |
| 25th August 2026 | [**misc-dev-scripts** 0.4.2](https://github.com/synesissoftware/misc-dev-scripts/releases/tag/0.4.2) released | Ruby `tput` TERM/TTY guard |
Expand Down
61 changes: 57 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,68 @@
# misc-dev-scripts <!-- omit in toc -->


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)
[![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)


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

- [Introduction](#introduction)
- [Ownership and migration](#ownership-and-migration)
- [Catalogue layout](#catalogue-layout)
- [Shell Scripts](#shell-scripts)
- [run\_all\_unit\_tests.sh](#run_all_unit_testssh)
- [Project drop-in templates](#project-drop-in-templates)
- [Related projects](#related-projects)
- [Project Information](#project-information)


## Introduction

**misc-dev-scripts** is a small catalog of shell helpers intended to be **copied** into Synesis (and related) language libraries — principally **run_all_unit_tests.sh** variants for **JavaScript**, **Python**, and **Ruby** today, with further languages planned.
**misc-dev-scripts** is a catalog of resources intended to be **copied** into Synesis (and related) **project** trees: shell helpers (under **shell-scripts/**) and language-specific project drop-in templates (under **templates/**).

Today the shipped helpers are principally **run_all_unit_tests.sh** variants for **JavaScript**, **Python**, and **Ruby**, with further languages and template families planned. When updating a consumer, cite this repository’s **VERSION** in that project’s **CHANGES.md**.

Sibling project: [**misc-config-scripts**](https://github.com/synesissoftware/misc-config-scripts) (**`.commonrc`** and **`.gitconfig`** only).


## Ownership and migration

**Status: Phase 4 complete — self boilerplate aligned with `templates/` gold where applicable.** **misc-config-scripts** **0.8.2+** ships **`.commonrc`** / **`.gitconfig`** only.

Distinguish **self** boilerplate (this repository’s own root editor/Git files) from **templates** (copied into other projects).

| Kind | **misc-config-scripts** | This repo |
| --- | --- | --- |
| **Self** **`.editorconfig`**, **`.gitattributes`**, **`.gitignore`**, **`.vimrc`**, **`.vscode/settings.json`** | ✅ | ✅ |
| **Templates:** **`.gitconfig`**, **`.commonrc`** | ✅ only | ❌ |
| **Templates:** language-specific **`run_all_unit_tests.sh`**, **`.editorconfig`**, **`.gitattributes`**, **`.gitignore`**, **`.vimrc`**, **`.vscode/settings.json`** | ❌ | ✅ only |


Canonical copies live under **shell-scripts/**; consuming projects keep a root-level **run_all_unit_tests.sh**. When updating a consumer, cite this repository’s **VERSION** in that project’s **CHANGES.md**.
## Catalogue layout

Sibling project: [**misc-config-scripts**](https://github.com/synesissoftware/misc-config-scripts) (shell rc, Git, and editor/attribute templates).
Agreed paths (Phase 0):

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you need 'Agreed' here ? This appears to be agent/prompt relic


```text
misc-dev-scripts/
shell-scripts/
run_all_unit_tests/<lang>/run_all_unit_tests.sh
templates/
editorconfig/<lang>/.editorconfig
gitattributes/<lang>/.gitattributes
gitignore/<lang>/.gitignore
vimrc/<lang>/.vimrc
vscode/<lang>/settings.json
```

Language keys (lexicographic): **c**, **c#**, **c_cxx**, **cxx**, **generic**, **go**, **javascript**, **python**, **ruby**, **rust**, **zig**.

See [**templates/README.md**](./templates/README.md) for status, ownership detail, and copy destinations.


## Shell Scripts
Expand All @@ -42,9 +81,22 @@ Language variants:
Use `--help` on any variant for the authoritative flag list.


## Project drop-in templates

See [**templates/README.md**](./templates/README.md). Families:

* [**.editorconfig**](./templates/editorconfig/README.md);
* [**.gitattributes**](./templates/gitattributes/README.md);
* [**.gitignore**](./templates/gitignore/README.md);
* [**.vimrc**](./templates/vimrc/README.md);
* [**.vscode/**](./templates/vscode/README.md);

**Phase 2:** all families populated for every language key — ready to copy. **misc-config-scripts** **0.8.2+** no longer ships legacy catalogs.


## Related projects

A peer-project that provides configuration resources is [**misc-config-scripts**](https://github.com/synesissoftware/misc-config-scripts).
A peer project that provides **`.commonrc`** and **`.gitconfig`** is [**misc-config-scripts**](https://github.com/synesissoftware/misc-config-scripts) (**0.8.2+**).

Resources from this project are used in the following projects (case-insensitive lexicographic order):

Expand All @@ -70,6 +122,7 @@ Resources from this project are used in the following projects (case-insensitive

* **VERSION** — see [**VERSION**](./VERSION);
* **CHANGES** — see [**CHANGES.md**](./CHANGES.md);
* **NEWS** — see [**NEWS.md**](./NEWS.md);
* **TODO** — see [**TODO.md**](./TODO.md);
* **License** — BSD-3-Clause; see [**LICENSE**](./LICENSE);

Expand Down
6 changes: 6 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,12 @@
* [x] Replace **.vscode/settings.json** with **misc-config-scripts** `settings.json/generic/settings.json` (multi-language union; not a hand-slimmed subset);
* [x] Align **LICENSE** year range with current year;
* [x] Add nested **shell-scripts/run_all_unit_tests/README.md** (copy command, per-lang paths, layout contracts, flag table);
* [x] ~~~Phase 0: declare ownership; scaffold **templates/** catalogue layout + READMEs~~~ - ✅;
* [x] ~~~Phase 1: complete **self** boilerplate (**`.editorconfig`**; retarget root **`.vimrc`** as self for this Bash catalog, not C/C++ consumer gold; seed **templates/vimrc/c_cxx/.vimrc**)~~~ - ✅;
* [x] ~~~Phase 2: populate **templates/** from freelibs exemplars and migrate **misc-config-scripts** `settings.json/` + `gitattributes/` content~~~ - ✅;
* [x] ~~~Phase 3 companion: **misc-config-scripts** **0.8.2** removed legacy catalogs; this repo remains sole project-drop-in home~~~ - ✅;
* [x] ~~~Phase 4: align self **`.vscode/settings.json`**, **`.gitignore`**, and **`.gitattributes`** with **templates/** gold (keep shell/docs **`.editorconfig`** / **`.vimrc`**)~~~ - ✅;
* [ ] Later: hoist **build_dist.sh** / **build_dist_uv.sh** (Python), **build_gem.sh** (Ruby), **rustfmt.toml** / **scripts/fmt** (Rust), Go **build.sh** / runners, and further common helpers under **shell-scripts/** or **templates/** as appropriate;
* [ ] Optional: sample bootstrap notes for copy-vs-sync adoption;
* [ ] Distribution / drift control: `SCRIPT_VERSION` header matching **VERSION**; document consumer CHANGES citation convention; optional sync helper; optional `testdata/` CI fixtures;

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.5.1
0.6.0
Loading
Loading