sigildocs

(sigil changes)

(sigil changes) - Release management with changesets

This module provides the public API for the changes system.

Example usage: (import (sigil changes)) (changes-init-handler '() '()) ; Initialize .changes/ (changes-add-handler '() '()) ; Create changeset interactively (changes-status-handler '() '()) ; Show pending changes (changes-release-handler '() '()) ; Execute release

Exports

changesetprocedure

A parsed changeset file

Re-exported from (sigil changes types)

changeset?procedure

Test if a value is a changeset struct.

Re-exported from (sigil changes types)

changeset-idprocedure

Get the id field of a changeset struct.

Re-exported from (sigil changes types)

Get the path field of a changeset struct.

Re-exported from (sigil changes types)

Get the packages field of a changeset struct.

Re-exported from (sigil changes types)

Get the description field of a changeset struct.

Re-exported from (sigil changes types)

package-bumpprocedure

A package bump within a changeset

Re-exported from (sigil changes types)

package-bump?procedure

Test if a value is a package-bump struct.

Re-exported from (sigil changes types)

Get the name field of a package-bump struct.

Re-exported from (sigil changes types)

Get the bump-type field of a package-bump struct.

Re-exported from (sigil changes types)

release-planprocedure

Release plan computed from pending changesets

Re-exported from (sigil changes types)

release-plan?procedure

Test if a value is a release-plan struct.

Re-exported from (sigil changes types)

Get the packages field of a release-plan struct.

Re-exported from (sigil changes types)

Get the changesets field of a release-plan struct.

Re-exported from (sigil changes types)

A single package's release info

Re-exported from (sigil changes types)

Test if a value is a package-release struct.

Re-exported from (sigil changes types)

Get the name field of a package-release struct.

Re-exported from (sigil changes types)

Get the current-version field of a package-release struct.

Re-exported from (sigil changes types)

Get the next-version field of a package-release struct.

Re-exported from (sigil changes types)

Get the bump-type field of a package-release struct.

Re-exported from (sigil changes types)

Get the changesets field of a package-release struct.

Re-exported from (sigil changes types)

bump-type?procedure

Check if a symbol is a valid bump type

Re-exported from (sigil changes types)

bump-type>?procedure

Compare bump types by precedence (major > minor > patch) Returns #t if a > b

Re-exported from (sigil changes types)

max-bump-typeprocedure

Return the higher of two bump types

Re-exported from (sigil changes types)

Generate a unique changeset ID (adjective-noun format) Checks the changes-dir for existing files to avoid collisions

Re-exported from (sigil changes names)

Parse a changeset file from disk Returns a <changeset> record or #f if parsing fails

Re-exported from (sigil changes parse)

Parse a changeset from a string (for testing)

Re-exported from (sigil changes parse)

Load all changesets from a directory Returns a list of <changeset> records

Re-exported from (sigil changes parse)

Format a changeset as a string for writing to disk

Re-exported from (sigil changes parse)

git-repo?procedure

Check if we're in a git repository

Re-exported from (sigil changes git)

git-root-dirprocedure

Get the root directory of the git repository

Re-exported from (sigil changes git)

Get the current branch name

Re-exported from (sigil changes git)

Get the current commit SHA (short form)

Re-exported from (sigil changes git)

git-addprocedure

Stage a file for commit

Re-exported from (sigil changes git)

git-commitprocedure

Create a commit with the given message Returns #t on success, #f on failure

Re-exported from (sigil changes git)

git-tagprocedure

Create an annotated tag

Re-exported from (sigil changes git)

Get list of files changed between current branch and base

Re-exported from (sigil changes git)

Detect the main branch (main or master)

Re-exported from (sigil changes git)

Generate a changelog entry for a new version Returns a string in Keep a Changelog format

Re-exported from (sigil changes changelog)

Update an existing changelog file, prepending a new entry Returns #t on success, #f on failure

Re-exported from (sigil changes changelog)

Categorize a change description based on its first word Returns one of: Added, Changed, Deprecated, Removed, Fixed, Security, Other

Re-exported from (sigil changes changelog)

Update the version in a package.sgl file Returns #t on success, #f on failure

Re-exported from (sigil changes package-update)

Read the version string from a package.sgl file Returns the version string or #f if not found

Re-exported from (sigil changes package-update)

Find the package.sgl file for a package by name Searches in packages/ directory relative to workspace root

Re-exported from (sigil changes package-update)

Compute a release plan from changesets (lockstep versioning) All packages will be bumped to the same version. Returns a <release-plan> record

Re-exported from (sigil changes planning)

Handle the sigil changes init command

Re-exported from (sigil changes commands init)

Handle the sigil changes add command

Re-exported from (sigil changes commands add)

Handle the sigil changes status command

Re-exported from (sigil changes commands status)

Handle the sigil changes enforce command

Re-exported from (sigil changes commands enforce)

Handle the sigil changes release command

Re-exported from (sigil changes commands release)