Commit876b00a2Recorded26 Apr 2026Repositorysigil-git
Add Woodpecker CI; drop CHANGELOG.md
Message
- .woodpecker.yml: minimal pipeline that fetches the pinned sigil v0.14.0 release binary, runs sigil deps install, then sigil test on push + PR + manual triggers. Bump the pin via search/replace when a new release is cut. - Drop the inherited CHANGELOG.md per the no-CHANGELOG policy: release narrative now lives in annotated git tags. See procedures/library-release-conventions.
Changed
.woodpecker.yml | 29 +++++++++++++++++++++++++++++
CHANGELOG.md | 138 ------------------------------------------------------------------------------------------------------------------------------------------
sigil.lock | 9 +++++++++
3 files changed, 38 insertions(+), 138 deletions(-)Diff
.woodpecker.ymladded
@@ -0,0 +1,29 @@
+1
# Woodpecker CI configuration for Codeberg+2
# https://docs.codeberg.org/ci/+3
#+4
# Library CI: fetch the pinned sigil release binary, install deps via+5
# from-git pins, run the test suite. Pinned to a specific monorepo+6
# release (rather than the rolling `dev`) so a flaky monorepo doesn't+7
# cascade across all extracted-repo CIs. Bump via search/replace when+8
# a new release is cut.+9
#+10
# Single-step on purpose: $HOME-rooted state from `sigil deps install`+11
# does not survive a Woodpecker step boundary, so fetch + deps + test+12
# must all run in the same container.+13
+14
when:+15
- event: [push, pull_request, manual]+16
+17
variables:+18
- &alpine_image "alpine:3.20"+19
+20
steps:+21
test:+22
image: *alpine_image+23
commands:+24
- apk add --no-cache curl ca-certificates git+25
- curl -fLo ./sigil https://codeberg.org/sigil/sigil/releases/download/v0.14.0/sigil-linux-amd64-static+26
- chmod +x ./sigil+27
- ./sigil --version+28
- ./sigil deps install+29
- ./sigil testCHANGELOG.mddeleted
@@ -1,138 +0,0 @@
−1
# Changelog−2
−3
Versions are synced with Sigil releases. A missing entry indicates no changes for that version.−4
−5
All notable changes to this project will be documented in this file.−6
−7
The format is based on [Keep a Changelog](https://keepachangelog.com/),−8
and this project adheres to [Semantic Versioning](https://semver.org/).−9
−10
## [0.6.0] - 2026-02-22−11
−12
### Added−13
−14
- Added package-provided MCP tools with dynamic discovery and nREPL describe/modules operations.−15
- Added package documentation for web stack (SXML, CSS, and Web routing/UI).−16
- 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.−17
- Add Org Mode parser producing SXML output with support for headlines, metadata, source blocks, inline markup, links, lists, and property drawers.−18
- Added table parsing support to Org Mode parser.−19
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.−20
- 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.−21
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.−22
- Added package documentation.−23
- 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.−24
- Added package documentation for web stack (SXML, CSS, and Web routing/UI).−25
- 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.−26
- Added live-coding support via nREPL and SSE reload for real-time browser updates.−27
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.−28
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.−29
- Added package documentation for socket and websocket APIs.−30
- Added package documentation for socket and websocket APIs.−31
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.−32
- 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.−33
- Added live-coding support via nREPL and SSE reload for real-time browser updates.−34
- Added package-provided MCP tools with dynamic discovery and nREPL describe/modules operations.−35
- Add (sigil inspect) module for structured value introspection with nREPL and MCP integration.−36
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.−37
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.−38
- Added live-coding support via nREPL and SSE reload for real-time browser updates.−39
- Added package-provided MCP tools with dynamic discovery and nREPL describe/modules operations.−40
- Add (sigil inspect) module for structured value introspection with nREPL and MCP integration.−41
- 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.−42
- Added live-coding support via nREPL and SSE reload for real-time browser updates.−43
- Added package documentation for web stack (SXML, CSS, and Web routing/UI).−44
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.−45
- Add PEG (Parsing Expression Grammar) library with S-expression pattern DSL, recursive interpreter with backtracking, and comprehensive capture system.−46
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.−47
- Added watch mode for sigil build and sigil test with --watch flag and --format json support.−48
- 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.−49
- Add (sigil inspect) module for structured value introspection with nREPL and MCP integration.−50
- Added watch mode for sigil build and sigil test with --watch flag and --format json support.−51
- Add web-app, api-service, and mcp-tool templates to sigil init.−52
- Added package documentation.−53
- Added package documentation.−54
- Added package documentation.−55
−56
### Fixed−57
−58
- Fixed SIGIL_NATIVES_MAX limit by increasing to 2048.−59
- Fixed MCP format tool crash with auto-fix support, binary-safe nREPL wire protocol, and SIGPIPE handling.−60
- Fixed MCP format tool crash with auto-fix support, binary-safe nREPL wire protocol, and SIGPIPE handling.−61
- Fix git-fetch to include tags when updating cached bare repos.−62
−63
### Other−64
−65
- Cache FNV-1a hash for string dict keys, avoiding repeated hash computation on dict lookups.−66
- Collect docstrings for variable definitions and propagate native doc strings through re-exports.−67
- Handle UTF-16 surrogate pairs in JSON unicode escapes. Reject bare low surrogates per RFC 8259.−68
- Support multi-form eval via eval-string and add runtime doc fallback for undocumented exports.−69
- Resolve re-export descriptions in search index from source module entries.−70
- Show source code snippets with caret indicators in error stack traces for the first 3 frames.−71
- Rewrite inline parser using PEG grammars, reducing code by ~120 lines while maintaining identical behavior.−72
−73
## [0.5.0] - 2026-02-17−74
−75
### Added−76
−77
- Added test harness generation and build support for packages with native dependencies. Improved native package handling, added c-flags field to library struct. Fixed stdlib inclusion in bundles with custom native runtimes, directory structure preservation in compile-c-sources, and absolute sigil-lib include path resolution.−78
- Added test coverage.−79
- Added test coverage.−80
- Added test coverage for TCP/UDP/address operations and crypto primitives.−81
- Added test coverage for TCP/UDP/address operations and crypto primitives.−82
- Added test coverage.−83
- Added test coverage.−84
- Added test coverage.−85
- Added test coverage.−86
- Added test coverage.−87
- Added test coverage.−88
- Added opcode-level profiling with --profile flag. Added test harness support for packages with native dependencies. Build safety: warn when replacing the running binary, error on 0-byte output or missing target package. Fixed module cache clearing before running entry points, handling of missing sigil-lib in user-created packages.−89
- Added test coverage.−90
- Added test coverage.−91
- Added test coverage.−92
−93
### Fixed−94
−95
- Fixed random seed initialization crash caused by flonum-to-bignum promotion in modulo. Fixed status command crash when displaying projected versions for packages without changes.−96
- Fixed SSE and remove-after initialization on child elements. Added comprehensive test coverage for routing, middleware, cookies, security, SSE, and response helpers.−97
- Fixed assq-ref to return values instead of aliasing assq, added assv-ref. Added async-aware process pipe I/O. Fixed REPL string-length error after exception recovery. Added comprehensive error path tests and GC stress tests for dicts.−98
- Fixed Scheme module compilation in build task.−99
- Fixed re-import of (sigil core) before calling entry main in bundled applications.−100
−101
### Other−102
−103
- New packages split from sigil-studio. Font and image modules moved to (sigil graphics *) namespace.−104
- GC correctness: added write barriers to all heap mutation sites, enabled GC during compilation with full compiler rooting, and added GC stress testing infrastructure. Completed HAMT dict implementation (printing, equality, collision handling, structural removal). Added arbitrary-precision bignum type with full reader/VM/native/serializer integration. Performance: inline caching for module binding lookups, peephole optimizer with 8 superinstruction patterns. Improved error handling: replaced exit(1) with recoverable errors, fixed error propagation in vm_error_abort and OP_ABORT_TO_PROMPT. Added definition location tracking in stack traces. Implemented VFS/bundle directory listing. Fixed number->string precision for exact IEEE 754 roundtrip. Removed dead opcodes.−105
- Configured custom mbedTLS for TLS 1.2 only. Added test coverage for connection predicates, failure paths, and error handling.−106
- New packages split from sigil-studio. Font and image modules moved to (sigil graphics *) namespace.−107
- New package split from sigil-studio. Added playlist support with wait-music-end and play-playlist. Fixed native exports in Scheme module.−108
−109
## [0.1.0] - 2026-01-09−110
−111
### Other−112
−113
- Initial release of the test framework with assertions, test discovery, filtering, and formatted output.−114
- Initial release with TCP and UDP socket support for network programming.−115
- 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.−116
- Initial release with SXML utilities for XML/HTML document construction and manipulation.−117
- JWT token encoding and verification with HS256 signing support.−118
- Model Context Protocol server implementation for building AI tool integrations with resources, tools, and prompts.−119
- SQLite database bindings with prepared statements, transactions, and result iteration.−120
- Initial release of the WebAssembly runtime for running Sigil applications in the browser via Emscripten.−121
- Initial release of changeset-based release management with version bumping, changelog generation, and git integration.−122
- Initial release of the interactive web playground for trying Sigil in the browser.−123
- 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.−124
- Static site generation with composable pipeline for Markdown files and module documentation.−125
- Initial release with Markdown parsing and frontmatter extraction.−126
- Initial release with ANSI escape code utilities for terminal colors, bold, dim, and other text formatting.−127
- Initial release with extensible hook system for REPL and application customization.−128
- CSS generation from Sigil code with selectors, properties, and stylesheet composition.−129
- Initial release of the code formatter with automatic indentation and parenthesis inference.−130
- Initial release with declarative command-line argument parsing, supporting options, flags, subcommands, and automatic help generation.−131
- Initial release of the build system with package management, dependency resolution, task execution, and executable bundling.−132
- Initial release of the network REPL server for editor integration and remote evaluation.−133
- Command-line interface with commands for building packages, creating standalone executables, running tests, code formatting, project initialization, documentation generation, and release management. Interactive REPL for development.−134
- HTTP/1.1 server with routing, request/response handling, and server-sent events for streaming responses. HTTP client with TLS support for making outbound requests.−135
- Web application framework with routing, middleware, and template rendering.−136
- WebSocket client and server implementation with support for text and binary messages.−137
- Git repository operations including status, staging, commits, branches, and diff inspection.−138
sigil.lockadded
@@ -0,0 +1,9 @@
+1
;; Auto-generated by sigil deps install. Do not edit.+2
(lock+3
(package name: "sigil-stdlib"+4
url: "codeberg:sigil/sigil-lang"+5
ref: "^0.14"+6
sha: "dba24e3fe531bc150bcf93444e764f87fb321850"+7
package-selector: "sigil-stdlib"+8
version: "0.14.1")+9
)