packages feed

shikumi-okf 0.2.1.0 → 0.2.1.1

raw patch · 6 files changed

+68/−54 lines, 6 filesdep ~okf-coredep ~shikumi-okfPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: okf-core, shikumi-okf

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -2,6 +2,12 @@  ## Unreleased +## 0.2.1.1 — 2026-10-05++### Changed++- Move the dependency on `mori://shinzui/okf/packages/okf-core` from `^>=0.5.0.0` to `^>=0.9.0.0`. The 0.6–0.9 breaking changes touch profile-schema records this package does not construct, so no source changed; the strict `profile/shikumi.dhall` conformance tests still pass.+ ## 0.2.1.0 — 2026-09-08  ### Changed
example/Main.hs view
@@ -4,7 +4,7 @@ -- fixture. It builds a small two-program manifest — one typed @Predict@ program and -- one opaque @Embed@ program (the shape an agent runtime such as shikigami produces) -- — and writes the bundle to the directory given as the first argument (default--- @./out@, i.e. @shikumi-okf/example/out@ when run from the package directory).+-- @.\/out@, i.e. @shikumi-okf\/example\/out@ when run from the package directory). -- -- Run it with: --
shikumi-okf.cabal view
@@ -1,10 +1,10 @@-cabal-version:   3.4-name:            shikumi-okf-version:         0.2.1.0+cabal-version: 3.4+name: shikumi-okf+version: 0.2.1.1 synopsis:   Generate OKF documentation bundles from shikumi programs (EP-31) -category:        AI+category: AI description:   An opt-in generator that documents shikumi @Program@ values as an Open   Knowledge Format (OKF) bundle: one @Shikumi App@ concept that links to one@@ -18,25 +18,30 @@   @shikumi-trace-otel@ quarantines the OpenTelemetry tree — so shikumi users who   do not care about OKF never depend on it. -license:         BSD-3-Clause-author:          Nadeem Bitar-maintainer:      nadeem@gmail.com-build-type:      Simple+license: BSD-3-Clause+author: Nadeem Bitar+maintainer: nadeem@gmail.com+build-type: Simple extra-doc-files: CHANGELOG.md- -- Shipped so consumers get the profile their bundles are checked against, and so -- the test suite can locate it via Paths_shikumi_okf.getDataFileName regardless -- of the directory cabal was invoked from.-data-files:      profile/shikumi.dhall+data-files: profile/shikumi.dhall  common common-options   ghc-options:-    -Wall -Wcompat -Widentities -Wincomplete-uni-patterns-    -Wincomplete-record-updates -Wredundant-constraints-    -fhide-source-paths -Wmissing-export-lists -Wpartial-fields+    -Wall+    -Wcompat+    -Widentities+    -Wincomplete-uni-patterns+    -Wincomplete-record-updates+    -Wredundant-constraints+    -fhide-source-paths+    -Wmissing-export-lists+    -Wpartial-fields     -Wmissing-deriving-strategies -  default-language:   GHC2024+  default-language: GHC2024   default-extensions:     DeriveAnyClass     DuplicateRecordFields@@ -44,45 +49,48 @@     OverloadedStrings  library-  import:          common-options-  hs-source-dirs:  src+  import: common-options+  hs-source-dirs: src   exposed-modules:     Shikumi.Okf.Generate     Shikumi.Okf.Render     Shikumi.Okf.Types    build-depends:-    , base      >=4.20     && <5-    , okf-core  ^>=0.5.0.0-    , shikumi   ^>=0.4.0.0-    , text      ^>=2.1+    base >=4.20 && <5,+    okf-core ^>=0.9.0.0,+    shikumi ^>=0.4.0.0,+    text ^>=2.1,  executable shikumi-okf-example-  import:         common-options+  import: common-options   hs-source-dirs: example-  main-is:        Main.hs+  main-is: Main.hs   build-depends:-    , base-    , shikumi      ^>=0.4.0.0-    , shikumi-okf  ^>=0.2.1.0-    , text+    base,+    shikumi ^>=0.4.0.0,+    shikumi-okf ^>=0.2.1.1,+    text,  test-suite shikumi-okf-test-  import:          common-options-  type:            exitcode-stdio-1.0-  hs-source-dirs:  test-  main-is:         Main.hs-  other-modules:   Paths_shikumi_okf+  import: common-options+  type: exitcode-stdio-1.0+  hs-source-dirs: test+  main-is: Main.hs+  other-modules: Paths_shikumi_okf   autogen-modules: Paths_shikumi_okf-  ghc-options:     -threaded -with-rtsopts=-N+  ghc-options:+    -threaded+    -with-rtsopts=-N+   build-depends:-    , base-    , directory-    , effectful-    , filepath-    , okf-core     ^>=0.5.0.0-    , shikumi      ^>=0.4.0.0-    , shikumi-okf  ^>=0.2.1.0-    , tasty-    , tasty-hunit-    , text+    base,+    directory,+    effectful,+    filepath,+    okf-core ^>=0.9.0.0,+    shikumi ^>=0.4.0.0,+    shikumi-okf ^>=0.2.1.1,+    tasty,+    tasty-hunit,+    text,
src/Shikumi/Okf/Generate.hs view
@@ -1,4 +1,4 @@--- | Turn a 'ProgramManifest' into OKF concepts and write them to disk.+-- | Turn a t'ProgramManifest' into OKF concepts and write them to disk. -- -- The bundle is one @Shikumi App@ concept that links to one @Shikumi Program@ -- concept per manifest entry. Those Markdown links are the app→program edges the@@ -10,7 +10,7 @@ -- The bundles target __OKF v0.2__: the root @index.md@ declares -- @okf_version: "0.2"@ and every concept records its producer in the v0.2 -- @generated@ family, which is what strict validation now asks for. Both come--- from 'GenerateOptions'; start from 'defaultGenerateOptions' and override,+-- from t'GenerateOptions'; start from 'defaultGenerateOptions' and override, -- rather than building the record literally, so a later field with a default -- leaves your call site working. --@@ -57,7 +57,7 @@ -- | Why bundle generation failed. data GenerateError   = -- | A manifest name did not form a valid OKF concept id (carries the raw-    -- @apps/<app>@ or @programs/<name>@ text and the underlying parse error).+    -- @apps\/\<app\>@ or @programs\/\<name\>@ text and the underlying parse error).     InvalidConceptName Text ConceptIdError   | -- | Writing the bundle's @index.md@ files failed.     IndexWriteError BundleError@@ -111,11 +111,11 @@ okfVersion02 :: OkfVersion okfVersion02 = OkfVersion {okfVersionMajor = 0, okfVersionMinor = 2} --- | The concept id of a program: @programs/<name>@.+-- | The concept id of a program: @programs/\<name\>@. programConceptId :: ProgramDoc -> Either GenerateError ConceptId programConceptId doc = mkConceptId ("programs/" <> name doc) --- | The concept id of the application: @apps/<app>@.+-- | The concept id of the application: @apps/\<app\>@. appConceptId :: AppInfo -> Either GenerateError ConceptId appConceptId app = mkConceptId ("apps/" <> appName app) @@ -176,7 +176,7 @@   pure (appC : programCs)  -- | Generate the bundle and write it to @root@, then write its @index.md@ files--- with the OKF version declaration from 'GenerateOptions'. Returns the first+-- with the OKF version declaration from t'GenerateOptions'. Returns the first -- error encountered (an invalid name before any IO, or an index write failure -- after the concept files are written). writeProgramBundle ::
src/Shikumi/Okf/Types.hs view
@@ -5,9 +5,9 @@ -- -- A shikumi @Program i o@ is a typed value with no name of its own, so the -- generator cannot discover programs by itself. Instead an application supplies a--- 'ProgramManifest': a list of 'ProgramDoc' entries, each naming a program and+-- t'ProgramManifest': a list of t'ProgramDoc' entries, each naming a program and -- carrying the human-authored metadata that documents it. The program itself is--- held behind the constraint-free existential 'SomeProgram' — every function the+-- held behind the constraint-free existential t'SomeProgram' — every function the -- generator runs on it ('Shikumi.Program.programShape', -- 'Shikumi.Program.nodeFieldsIndexed') is fully polymorphic in @i@/@o@, so no -- class dictionaries are needed. That is what lets the manifest hold both a typed@@ -62,7 +62,7 @@   }  -- | The owning application's identity. Used to build the @Shikumi App@ concept and--- the @shikumi://\<namespace\>/\<app\>@ resource URIs that tie every program+-- the @shikumi:\/\/\<namespace\>\/\<app\>@ resource URIs that tie every program -- concept back to its application. data AppInfo = AppInfo   { appNamespace :: !Text,
test/Main.hs view
@@ -257,7 +257,7 @@ -- when the fix is released upstream. -- -- The defect is in the @cmark-gfm@ bindings, not in okf or shikumi. Full--- mechanism: @mori://kivikakk/cmark-gfm-hs@, upstream-issues entry+-- mechanism: @mori:\/\/kivikakk\/cmark-gfm-hs@, upstream-issues entry -- @cmark-gfm-hs-unsafe-concurrent-extension-registration@. warmUpMarkdown :: IO () warmUpMarkdown = do@@ -369,7 +369,7 @@         -- generator actually emits.         --         -- This replaces a former "Conformance" group that re-asserted the-        -- profile's conventions (concept types, `shikumi://` resource scheme)+        -- profile's conventions (concept types, `shikumi:\/\/` resource scheme)         -- in-process against a Haskell copy of them, and so could never notice         -- the descriptor itself going stale. Every convention it checked is now         -- expressed by the descriptor and enforced here against the real file.