Skip to content

MontFerret/contrib

Repository files navigation

MontFerret Contrib

contrib is a workspace for independently versioned Ferret modules. This README acts as the top-level index for the modules currently available in this repository.

Available Modules

Module Description README
csv CSV module and CSV namespace helpers for Ferret. modules/csv/README.md
db/postgres Postgres database handles under DB::POSTGRES for Ferret. modules/db/postgres/README.md
db/sqlite SQLite database handles under DB::SQLITE for Ferret. modules/db/sqlite/README.md
document/pdf Read-only PDF document handles under DOCUMENT::PDF for Ferret. modules/document/pdf/README.md
document/xlsx Excel-compatible .xlsx workbook handles under DOCUMENT::XLSX for Ferret. modules/document/xlsx/README.md
net/rest REST-style HTTP API clients under NET::REST for Ferret. modules/net/rest/README.md
security/jwt JWT token signing, verification, and inspection helpers under SECURITY::JWT for Ferret. modules/security/jwt/README.md
toml TOML module and TOML namespace helpers for Ferret. modules/toml/README.md
web/article Article extraction helpers under WEB::ARTICLE for Ferret. modules/web/article/README.md
web/html HTML module for Ferret. modules/web/html/README.md
web/robots robots.txt parsing and policy helpers under WEB::ROBOTS for Ferret. modules/web/robots/README.md
web/sitemap Sitemap discovery helpers under WEB::SITEMAP for Ferret. modules/web/sitemap/README.md
xml XML module and XML namespace helpers for Ferret. modules/xml/README.md
yaml YAML module and YAML namespace helpers for Ferret. modules/yaml/README.md

Module-specific documentation lives in each module README and will be expanded there later.

Development

Use the repo-level Makefile to run module commands:

make test [module ...]
make lint [module ...]
make fmt [module ...]

If no module names are provided, the commands run against all available modules.

Support packages under pkg/ can be updated across module go.mod and go.sum files with:

make update-package <package> <version> [module ...]

If no module names are provided, only modules that already require the package are updated.

The Ferret runtime dependency can be updated across all workspace go.mod files that require it with:

make update-ferret <version>

Release Procedure

Each module is released by creating and pushing a module-specific git tag in the format:

modules/<module>/v<version>

  1. Validate the target module:
make test <module>
make lint <module>
  1. Create and push an annotated tag using the Makefile release targets:
# Auto-bump from latest module tag
make release-patch <module>
make release-minor <module>
make release-major <module>

# Explicit semantic version (including pre-release)
make release-pre xml 1.0.0-rc.1

# Auto-bump latest matching pre-release
make release-pre xml rc

# Auto-bump latest matching pre-release for all modules.
# Interactive runs prompt once for a base version when modules have no initial tag.
make release-pre-all rc

# Non-interactive bulk prereleases can set the initial base version explicitly.
RELEASE_PRE_BASE_VERSION=1.0.0 make release-pre-all rc

Support packages under pkg/ are released by creating and pushing a package-specific git tag in the format:

pkg/<package>/v<version>

  1. Validate the target package:
make test-packages <package>
make lint-packages <package>
  1. Create and push an annotated tag using the package release targets:
# Auto-bump from latest package tag
make release-package-patch <package>
make release-package-minor <package>
make release-package-major <package>

# Explicit semantic version (including pre-release)
make release-package-pre common 0.1.0-rc.1

# Auto-bump latest matching pre-release
make release-package-pre common rc
  1. Update module requirements and sums that use the released package:
make update-package <package> 0.1.0

About

A curated collection of optional modules for Ferret, with additional functions, types, and integrations.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors