Commitd94ae9a4Recorded26 Apr 2026Repositorysigil-args

Add Woodpecker CI + retroactive CHANGELOG

Message

- .woodpecker.yml: minimal pipeline that fetches the pinned sigil release binary, runs sigil deps install, then sigil test on push + PR. Pinned to v0.13.1 for stability; bump via search/replace when a new release is cut. - CHANGELOG.md: replaced the inherited monorepo-wide noise with a clean Keep-a-Changelog file scoped to this repo's tags. Only tag is v0.13.1 (initial extraction from the codeberg:sigil/sigil monorepo).

Changed
 .woodpecker.yml |  30 ++++++++++++++++++++++++++++++
 CHANGELOG.md    | 161 +++++------------------------------------------------------------------------------------------------------------------------------------------------------------
 2 files changed, 35 insertions(+), 156 deletions(-)
Diff
.woodpecker.ymladded
@@ -0,0 +1,30 @@
+1
# Woodpecker CI configuration for Codeberg
+2
# https://docs.codeberg.org/ci/
+3
#
+4
# Library CI: fetch a stable sigil binary, install deps via from-git
+5
# pins, run the test suite. Pinning to a sigil release rather than
+6
# `dev` keeps CI stable when the monorepo is in flight; bump the
+7
# pin via search/replace when a new release is cut.
+8
+9
when:
+10
- event: [push, pull_request, manual]
+11
+12
variables:
+13
- &alpine_image "alpine:3.20"
+14
+15
steps:
+16
bootstrap:
+17
image: *alpine_image
+18
commands:
+19
- apk add --no-cache curl ca-certificates git
+20
- curl -fLo ./sigil https://codeberg.org/sigil/sigil/releases/download/v0.13.1/sigil-linux-amd64-static
+21
- chmod +x ./sigil
+22
- ./sigil --version
+23
- ./sigil deps install
+24
+25
test:
+26
image: *alpine_image
+27
depends_on: [bootstrap]
+28
commands:
+29
- apk add --no-cache git
+30
- ./sigil test
CHANGELOG.mdmodified
@@ -1,166 +1,15 @@
1
# Changelog
2
3
Versions are synced with Sigil releases. A missing entry indicates no changes for that version.
4
3
All notable changes to this project will be documented in this file.
4
5
The format is based on [Keep a Changelog](https://keepachangelog.com/),
6
and this project adheres to [Semantic Versioning](https://semver.org/).
7
10
## [0.7.0] - 2026-03-01
+8
## [0.13.1] - 2026-04-26
9
10
### Added
11
14
- Added procedure specifications with inline (: ...) syntax, optional runtime checking via sigil-checks feature, and predicate combinators (any-of, maybe, list-of, none-of).
15
- Added procedure specs and docstrings to all exported procedures.
16
- Added procedure specs and docstrings to all exported procedures.
17
- Added define-native compiler form for declaring native C bindings in Scheme modules with optional specs and docstrings.
18
- Added VM-level exception handler stack for tail-optimized guard semantics, replacing prompt-based exception handling.
19
- Added multi-VM threading with share-nothing architecture, message passing, and parallel-map for data-parallel workloads.
20
- Added preemptive yield points at loop back-edges to prevent CPU-bound tasks from starving the async scheduler.
21
- Added procedure specifications with inline (: ...) syntax, optional runtime checking via sigil-checks feature, and predicate combinators (any-of, maybe, list-of, none-of).
22
- Added procedure specs and docstrings to all exported procedures.
23
- Added procedure specs and docstrings to all exported procedures.
24
- Added procedure specs and docstrings to all exported procedures.
25
- Added immediate-mode terminal UI toolkit with native C grid, layout system, component rendering, event parsing, text input, and chat demo application.
26
- Added procedure specs and docstrings to all exported procedures.
27
- Added procedure specs and docstrings to all exported procedures.
28
- Added procedure specs and docstrings to all exported procedures.
29
- Added procedure spec display in MCP search and exports tool output.
30
- Added streaming HTTP download support with binary-safe reads and file serving with Range request support.
31
- Added procedure specs and docstrings to all exported procedures.
32
- Added procedure specs and docstrings to all exported procedures.
33
- Added procedure specs and docstrings to all exported procedures.
34
- Added immediate-mode terminal UI toolkit with native C grid, layout system, component rendering, event parsing, text input, and chat demo application.
35
- Added procedure specs and docstrings to all exported procedures.
36
- Added procedure specs and docstrings to all exported procedures.
37
- Add structured logging package with levels, text/JSON output, configurable targets, and lazy macros.
38
- Added procedure specs and docstrings to all exported procedures.
39
- Add JMAP email client library with session discovery, mailbox operations, email query/get/update, and email sending via EmailSubmission.
40
- Added procedure specs and docstrings to all exported procedures.
41
- Added VM-level exception handler stack for tail-optimized guard semantics, replacing prompt-based exception handling.
42
- Added multi-VM threading with share-nothing architecture, message passing, and parallel-map for data-parallel workloads.
43
- Added field type annotations to define-struct for automatic spec generation on constructors, accessors, and mutators.
44
- Added preemptive yield points at loop back-edges to prevent CPU-bound tasks from starving the async scheduler.
45
- Added procedure specifications with inline (: ...) syntax, optional runtime checking via sigil-checks feature, and predicate combinators (any-of, maybe, list-of, none-of).
46
- Added procedure specs and docstrings to all exported procedures.
47
- Added procedure specs and docstrings to all exported procedures.
48
- Added procedure specs and docstrings to all exported procedures.
49
50
### Changed
51
52
- Changed I/O multiplexing to use epoll (Linux) and kqueue (macOS/BSD) instead of select(2) for better scalability.
53
- Changed I/O multiplexing to use epoll (Linux) and kqueue (macOS/BSD) instead of select(2) for better scalability.
54
55
### Fixed
56
57
- Fixed false positive capture corruption check in serializer, Windows build issues with mingw macro collision and unix-connect, closure arity errors now catchable by guard, and exception handler double-pop segfault.
58
- Fixed sigil docs api command and added procedure spec signatures to generated API documentation.
59
60
## [0.6.0] - 2026-02-22
61
62
### Added
63
64
- Added package-provided MCP tools with dynamic discovery and nREPL describe/modules operations.
65
- Added package documentation for web stack (SXML, CSS, and Web routing/UI).
66
- Added higher-level UI components, css-sel compound selectors, Vinyl Vault demo application, and improved web API ergonomics including table actions, form loading, GET request handling, and error overlay fixes.
67
- Add Org Mode parser producing SXML output with support for headlines, metadata, source blocks, inline markup, links, lists, and property drawers.
68
- Added table parsing support to Org Mode parser.
69
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.
70
- Added R7RS compliance features: dynamic-wind, do syntax, datum labels, let-syntax, letrec-syntax, include/include-ci, import set modifiers (only, except, prefix, rename), cond-expand, features, syntax-error, bytevector ports, write-shared with datum labels, char-ready?, u8-ready?, interaction-environment, and (scheme time/process-context/repl) libraries.
71
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
72
- Added package documentation.
73
- Add 7 new MCP tools for live browser control (web-morph, web-error, web-status, web-navigate, web-css-class, web-css-reload, web-exec) with supporting SSE events and dev helpers.
74
- Added package documentation for web stack (SXML, CSS, and Web routing/UI).
75
- Added higher-level UI components, css-sel compound selectors, Vinyl Vault demo application, and improved web API ergonomics including table actions, form loading, GET request handling, and error overlay fixes.
76
- Added live-coding support via nREPL and SSE reload for real-time browser updates.
77
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
78
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
79
- Added package documentation for socket and websocket APIs.
80
- Added package documentation for socket and websocket APIs.
81
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.
82
- Add 7 new MCP tools for live browser control (web-morph, web-error, web-status, web-navigate, web-css-class, web-css-reload, web-exec) with supporting SSE events and dev helpers.
83
- Added live-coding support via nREPL and SSE reload for real-time browser updates.
84
- Added package-provided MCP tools with dynamic discovery and nREPL describe/modules operations.
85
- Add (sigil inspect) module for structured value introspection with nREPL and MCP integration.
86
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
87
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.
88
- Added live-coding support via nREPL and SSE reload for real-time browser updates.
89
- Added package-provided MCP tools with dynamic discovery and nREPL describe/modules operations.
90
- Add (sigil inspect) module for structured value introspection with nREPL and MCP integration.
91
- Added higher-level UI components, css-sel compound selectors, Vinyl Vault demo application, and improved web API ergonomics including table actions, form loading, GET request handling, and error overlay fixes.
92
- Added live-coding support via nREPL and SSE reload for real-time browser updates.
93
- Added package documentation for web stack (SXML, CSS, and Web routing/UI).
94
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
95
- Add PEG (Parsing Expression Grammar) library with S-expression pattern DSL, recursive interpreter with backtracking, and comprehensive capture system.
96
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.
97
- Added watch mode for sigil build and sigil test with --watch flag and --format json support.
98
- Added R7RS compliance features: dynamic-wind, do syntax, datum labels, let-syntax, letrec-syntax, include/include-ci, import set modifiers (only, except, prefix, rename), cond-expand, features, syntax-error, bytevector ports, write-shared with datum labels, char-ready?, u8-ready?, interaction-environment, and (scheme time/process-context/repl) libraries.
99
- Add (sigil inspect) module for structured value introspection with nREPL and MCP integration.
100
- Added watch mode for sigil build and sigil test with --watch flag and --format json support.
101
- Add web-app, api-service, and mcp-tool templates to sigil init.
102
- Added package documentation.
103
- Added package documentation.
104
- Added package documentation.
105
106
### Fixed
107
108
- Fixed SIGIL_NATIVES_MAX limit by increasing to 2048.
109
- Fixed MCP format tool crash with auto-fix support, binary-safe nREPL wire protocol, and SIGPIPE handling.
110
- Fixed MCP format tool crash with auto-fix support, binary-safe nREPL wire protocol, and SIGPIPE handling.
111
112
### Other
113
114
- Cache FNV-1a hash for string dict keys, avoiding repeated hash computation on dict lookups.
115
- Collect docstrings for variable definitions and propagate native doc strings through re-exports.
116
- Handle UTF-16 surrogate pairs in JSON unicode escapes. Reject bare low surrogates per RFC 8259.
117
- Support multi-form eval via eval-string and add runtime doc fallback for undocumented exports.
118
- Resolve re-export descriptions in search index from source module entries.
119
- Show source code snippets with caret indicators in error stack traces for the first 3 frames.
120
- Rewrite inline parser using PEG grammars, reducing code by ~120 lines while maintaining identical behavior.
121
122
## [0.3.0] - 2026-01-12
123
124
### Added
125
126
- Added native test build integration, script/directory bundling, custom runtime builder, and native package detection.
127
- Added sigil publish command with site operators, pipeline:, and watch-patterns: support.
128
- Added json-get-in and comprehensive test suite.
129
- Added new conveniences and predicates from API review.
130
- Added sigil publish command and re-enabled bundle command with updated modes.
131
- Added new features and comprehensive documentation.
132
133
### Fixed
134
135
- Fixed temp file creation on Windows.
136
137
### Other
138
139
- Extracted TLS and crypto support from sigil-lib into separate packages for modular compilation.
140
- Extracted TLS and crypto support from sigil-lib into separate packages for modular compilation.
141
- BREAKING: API review improvements including lazy TLS loading for compile-time independence.
142
- Extracted SQLite support from sigil-lib into separate package for modular compilation.
143
144
## [0.1.0] - 2026-01-09
145
146
### Other
147
148
- Initial release of the test framework with assertions, test discovery, filtering, and formatted output.
149
- Initial release with TCP and UDP socket support for network programming.
150
- Core runtime providing a bytecode VM with incremental mark-sweep garbage collector, S-expression reader with extensible syntax, and hygienic macro system supporting syntax-rules and syntax-case. Native bindings for I/O, filesystem, networking, process management, SQLite, and cryptographic hashing.
151
- Initial release with SXML utilities for XML/HTML document construction and manipulation.
152
- JWT token encoding and verification with HS256 signing support.
153
- Model Context Protocol server implementation for building AI tool integrations with resources, tools, and prompts.
154
- SQLite database bindings with prepared statements, transactions, and result iteration.
155
- Initial release of the WebAssembly runtime for running Sigil applications in the browser via Emscripten.
156
- Initial release of changeset-based release management with version bumping, changelog generation, and git integration.
157
- Initial release of the interactive web playground for trying Sigil in the browser.
158
- Core standard library with (sigil core) providing pattern matching, records, delimited continuations, and utilities for arrays, dicts, strings, and lists. Includes modules for math operations, process spawning, time/date handling, filesystem access, and path manipulation. Nearly complete R7RS (scheme base) compatibility with additional modules for I/O, exceptions, generators, and coroutines.
159
- Static site generation with composable pipeline for Markdown files and module documentation.
160
- Initial release with Markdown parsing and frontmatter extraction.
161
- Initial release with ANSI escape code utilities for terminal colors, bold, dim, and other text formatting.
162
- Initial release with extensible hook system for REPL and application customization.
163
- CSS generation from Sigil code with selectors, properties, and stylesheet composition.
164
- Initial release of the code formatter with automatic indentation and parenthesis inference.
165
- Initial release with declarative command-line argument parsing, supporting options, flags, subcommands, and automatic help generation.
166
+12
- Initial standalone release of `sigil-args`, extracted from the
+13
[`sigil`](https://codeberg.org/sigil/sigil) monorepo as part of the
+14
W17 extraction wave. No functional changes from the in-monorepo
+15
version at the same tag.