Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.
Unreleased¶
v0.7.0 - 2026-10-19¶
Highlights¶
- Likert questions on standard
H5P.MultiChoice: build, validate, and score them by skill, and they play ungraded in any H5P player - MultiChoice behaviour fields that default to true can now be set to false
Added¶
Extension.Scoring(Scoring,NewLikertScoring,WithScoring), with thelikertmethod, a scale, and a reverse flag, validated byExtension.Validate(9367cba)NewLikertParams,QuestionSetBuilder.AddLikertQuestion, andValidateLikertParams;QuestionSet.Validatechecks questions with Likert scoring (22b2ee7)LikertValueandQuestionSet.ScoreLikert, returning aLikertScorewith count, mean, and normalized score per skill (22b2ee7)schemas.Boolfor setting the pointer behaviour fields (9260682)
Changed¶
- BREAKING:
schemas.BehaviourfieldsEnableRetry,EnableSolutionsButton,EnableCheckButton,RandomAnswers, andShowScorePointsare*boolinstead ofbool(9260682)
Fixed¶
- Setting a MultiChoice behaviour field that defaults to true to false is written to JSON; it was dropped, so players used true (
9260682)
Documentation¶
- Likert questions and the
scoringfield in the extensions guide (13dea9d) - The typed-questions guide shows the pointer behaviour fields and lists only fields the type has (
9260682) - INIT-H5PKIT-001 Likert scoring phase and the v0.7.0 release item (
d5a55cb) - v0.7.0 release notes
Tests¶
- Likert scoring, validation, and JSON round trip, and a runnable Likert scoring example (
11c2230)
v0.6.0 - 2026-10-19¶
Highlights¶
- Question bank registry: banks, immutable published versions, licenses, lineage, and a
Storeinterface with an in-memory store and a conformance suite - Question metadata gains relative difficulty, skills, and standards, under the renamed
h5pkitextension key - Export a bank version to an
.h5ppackage and import.h5pquestion sets - Documentation reorganized into guides, design, specifications, and releases, with a question banks guide
Added¶
Extension.DifficultyScore,Skills(SkillRef), andStandards(StandardRef), validated byExtension.ValidateandQuestionSet.Validate(612e5a4)registrytypes:Bank,BankVersion,License,Lineage,Status,Relation, andListFilter(ca82eed)registry.StorewithMemoryStore, and theregistry/registrytestconformance suite for other implementations (1fac3b2)- Publishing with skill and standard unions,
ErrImmutable, new versions from existing ones, forks with lineage, andDescendants(4e343bb) ExportQuestionSet,ExportPackage,WritePackage, andImportPackagefor.h5pinterop, plusUnionsandCompareVersions(bbe2b7a)
Changed¶
- BREAKING: The question metadata block is read and written only under the
h5pkitextension key; theh5pGokey is no longer read (0abbf90) - BREAKING:
H5PGoExtensionis renamedExtensionandNewH5PGoExtensionis renamedNewExtension; the old names are removed (cc1ffe4) - The
godirective is 1.26 (995e6d5)
Fixed¶
QuestionSet.Validatenames the index of a bad feedback range as a number (43b1dcd)
Documentation¶
- Extensions guide covering every field, the relative-difficulty rule, and the
h5pkitkey (27db33f) - Question banks guide and standards reference (
0c33584) - Site reorganized into
docs/guides/,docs/design/,docs/specs/, anddocs/releases/, with index pages and the changelog (ef74eec) - INIT-H5PKIT-001 specifications for the question bank registry and extensions (
c979101) - v0.6.0 release notes
Tests¶
- A runnable registry example (
3503bf2) - Removed a test that read a file outside the repository (
90b5989)
Infrastructure¶
- Shared CI, lint, and CodeQL workflows updated (
a0b8029)
v0.5.0 - 2026-03-22¶
Highlights¶
- Module renamed from
h5p-gotoh5pkit - TypeScript quiz editor (
@grokify/h5p-editor) for browser-based editing
Added¶
- TypeScript quiz editor package in
ts/packages/editor/ - React component
QuizEditorwith ref-based API - Vanilla JS API via
createQuizEditor()for CDN usage - Multiple Choice, True/False, Fill in Blanks question editors
- Undo/redo support for editing operations
- Real-time validation with detailed error messages
- Light and dark theme support
Changed¶
- Renamed module from
github.com/grokify/h5p-gotogithub.com/grokify/h5pkit - Renamed repository from
h5p-gotoh5pkit
Documentation¶
- TypeScript editor documentation in
docs/ts-editor/ - Updated homepage to feature both Go SDK and TypeScript editor
v0.4.0 - 2026-03-15¶
Highlights¶
- Extensions support for vendor-specific question metadata with h5pGo namespace
Added¶
ExtensionsandH5PGoExtensiontypes for question metadata (94ece1e)- Builder pattern methods:
WithTopic(),WithTags(),WithDifficulty(),WithLearningObjective(),WithSource()(94ece1e) Extensionsfield onQuestionandMultiChoiceQuestionstructs (94ece1e)NewMultiChoiceQuestionWithExtensions()andWithExtensions()helper methods (94ece1e)- Comprehensive tests for extensions JSON parsing and round-trip validation (
94ece1e)
Dependencies¶
- 4 dependency updates
Infrastructure¶
v0.3.0 - 2025-09-02¶
Highlights¶
- Semantics package with TrueFalse and Essay question type support
- MkDocs documentation site with comprehensive guides
Security¶
- Add permissions to CI workflow for code scanning compliance (
70b6fec) - Add permissions to lint workflow for code scanning compliance (
44bfab1)
Added¶
semanticspackage with individual semantics for TrueFalse and Essay question types (0a26542)- MkDocs documentation source in
docsrc/directory (67adc57) - Generated documentation site in
docs/directory (66042b4)
Changed¶
- Refactored tests for new filename conventions (
47f7444)
Documentation¶
- API reference for builder, core-types, schemas, and semantics (
67adc57) - Getting started guides: installation, quick-start, concepts (
67adc57) - User guides: H5P packages, question sets, typed questions, validation (
67adc57) - Reference documentation: file structure, H5P spec, standards (
67adc57) - README refactored to use MkDocs structure (
75552d3)
v0.2.0 - 2025-09-01¶
Highlights¶
- Module renamed from
go-h5ptoh5p-gofollowing Go naming conventions
Changed¶
- Renamed module from
github.com/grokify/go-h5ptogithub.com/grokify/h5p-go(b27dd94)
Documentation¶
- Remove redundant shields from README (
6cad7a0)
v0.1.0 - 2025-09-01¶
Highlights¶
- Initial release with H5P QuestionSet parsing and typed question support
- H5P package (zip file) management for creating and extracting H5P content
Added¶
- Core
QuestionSettype with JSON parsing and serialization (6d14533) - H5P package (zip) management: create, extract, and manipulate H5P files (
a47df22) schemaspackage with MultiChoice question type and params (3a7e9f0)MultiChoiceQuestiontyped wrapper withNewMultiChoiceQuestion()factory (3a7e9f0)cmd/h5pparsequestionsetCLI tool for parsing H5P question sets (9c07a4a)- Question builder utilities for programmatic H5P content creation (
6d14533)
Documentation¶
- Comprehensive README with usage examples and API documentation (
d5d99b3) - Badge shields for CI status, Go Reference, and license (
1430281) - "Why H5P for Quizzes?" guide explaining H5P benefits (
6bbf489)