diff options
| author | Shulhan <ms@kilabit.info> | 2023-03-02 23:53:01 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2023-03-03 00:02:28 +0700 |
| commit | 4e2b41855fb9edece6325cb40ee3daabc9aef9e7 (patch) | |
| tree | b9bbb52bc49a0e0431d30b9bf7d9971917dce26f /CHANGELOG.adoc | |
| parent | b53231ab30e1ace9792362f61a93e6cea073af73 (diff) | |
| download | ciigo-4e2b41855fb9edece6325cb40ee3daabc9aef9e7.tar.xz | |
all: move CHANGELOG file from _doc to root directory back
This is to allow repository viewer to view CHANGELOG without changing to
directory _doc first.
Diffstat (limited to 'CHANGELOG.adoc')
| -rw-r--r-- | CHANGELOG.adoc | 482 |
1 files changed, 482 insertions, 0 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc new file mode 100644 index 0000000..614dc1f --- /dev/null +++ b/CHANGELOG.adoc @@ -0,0 +1,482 @@ +// SPDX-FileCopyrightText: 2020 Shulhan <ms@kilabit.info> +// SPDX-License-Identifier: GPL-3.0-or-later += Changelog for ciigo +Shulhan <ms@kilabit.info> +:toc: +:sectanchors: +:sectlinks: + + +[#v0_9_2] +== ciigo v0.9.2 (2022-09-06) + +[#v0_9_2_bug_fix] +=== Bug fix + +all: check for symlink and re-fetch file info using os.Stat:: ++ +Since Readdir return list of FileInfo using Lstat, any node that is +symlink may return false file size and mod time. + +[#v0_9_2_chores] +=== Chores + +all: update all dependencies:: ++ +The latest asciidoctor-go module fix parsing list description inside +include directive. + +all: group all documents under directory _doc:: + +all: try to fix test that sometimes fail inside container:: ++ +-- +When the test running we create directory testdata/watcher, create +a new file testdata/watcher/index.adoc and expect that the modify time +for testdata/watcher is changes. + +Except that sometimes it is not. The modification time of directory +watcher before and after the file created most of times equal and this +cause the test wait indifinitely and fail. + +This changes add 1 second delay before creating file inside directory +to make sure that the modification time changes. +-- + +all: add tasks to setup test inside systemd container:: ++ +When running test inside container, sometimes its success, most of the +time its fail. +In order to replicate it we need to setup the same container environment +and inspect it. + + +[#v0_9_1] +== ciigo v0.9.1 (2022-08-07) + +[#v0_9_1_bug_fixes] +=== Bug fixes + +all: remove delay for testing Watch:: +The delay sometimes cause the test locked and hung. + +all: fix HTML template loaded during Serve on non-development:: ++ +-- +The HTML template in the ServeOptions should not read when ciigo.Serve +running on non-development environment. +-- + + +[#v0_9_0] +== ciigo v0.9.0 (2022-08-06) + +[#v0_9_0_new_features] +=== New features + +all: export internal htmlGenerator as Converter:: ++ +-- +The purpose of Converter is to provide a single, reusable converter +for AsciiDoc file or content. +-- + +[#v0_9_0_chores] +=== Chores + +all: add package build for Arch Linux:: + + +all: set the Version automatically set during build:: ++ +-- +This require that the command build or install using "make build/install". +-- + +all: convert the README using AsciiDoc:: ++ +-- +While at it, create symlink README so the git.sr.ht site can display it. +-- + +all: merge internal/cmd/goembed to cmd/ciigo-example:: ++ +-- +The internal/cmd/goembed is replaced as command "embed" of +cmd/ciigo-example. +-- + + +[#v0_8_2] +== ciigo v0.8.2 (2022-07-24) + +The latest update on asciidoctor-go refactor the generated ref ID where +ref ID is no longer prefixed with "\_" if start with ASCII letter. + +[#v0_8_2_ehancements] +=== Enhancements + +all: generate HTML meta data and replace the top header title:: ++ +-- +The following metadata are rendered based on the same asciidoc +attributes: author, description, generator, and keywords. + +This changes also replace the topbar title with the document title, +cleanup the HTML header syntax by replacing "/>" with ">", trim leading +and trailing spaces on Body and embedded CSS. +-- + +all: add CSS for admonition block:: ++ +-- +The style only applicable for non-icon admonition. +-- + +all: update CSS for description list:: ++ +-- +Set the list title font weight to be bold and remove the font-size for +list description to make the font-size consistent. +-- + + +[#v0_8_1] +== ciigo v0.8.1 (2022-05-19) + +[#v0_8_1_bug_fixes] +=== Bug fixes + +* all: check for excluded file before processing sub directory ++ +-- +Previously, if the file path match with one of the excluded pattern, +we keep processing the sub directory to find the markup files. +This may cause an error "too many open files" if excluded directory +contains many sub directory and/or files. + +This changes fix this issue by checking the path with excluded pattern +first before diving into sub directory. +-- + +[#v0_8_1_enhancements] +=== Enhancements + +* cmd/ciigo: simplify and cleaning up the code ++ +This changes move the flag "help" to command. + +* cmd/ciigo: add command to print to current version + +* all: include the path that cause an error on newHTMLGenerator ++ +-- +In case the newHTMLGenerator return an error, it's hard to track which +part of code that cause the error because there are three files being +processed (the index HTML, HTML template, or internal template). + +This changes include the file that cause an error inside the error +message. +-- + +[#v0_8_1_chores] +=== Chores + +* all: reformat all files using latest goimports ++ +While at it, replace any use of ioutil with os/io package. + +* all: update the watcher affected by changes on share module ++ +In the share module, the DirWatcher and Watcher has been moved to package +memfs and the way to consumed the changes is not through callback +again but through channel. + + +[#v0_8_0] +== ciigo v0.8.0 (2022-03-04) + +This release changes the license of this software to GPL-3.0 or later. + +[#v0_8_0_bug_fixes] +=== Bug fixes + +* all: fix adoc files not re-converted when template file changes ++ +In commit 06d03f6afe37 we skip converting files if the generated HTML +is newer than adoc file. ++ +This cause an issue where the template file changes during Watch or +Serve, but the HTML files is not regenerated. + +* go.mod: update module asciidoctor-go to the tip ++ +The latest tip fix rendering list check box text that get cut one +character in the beginning. + +[#v0_8_0_enhancements] +=== Enhancements + +* all: re-convert markup files if HTML template is newer on GoEmbed ++ +Calling GoEmbed with updated HTML template will reconvert all markup +files automatically, as long as the generated Go file is older than +the HTML template file. + +* all: add 1em to the bottom margin of paragraph under list ++ +This is to make the list content readable and indistinguishable, +especially when we have many list items with paragraphs. + +* all: add option IsDevelopment to ServeOptions ++ +If the IsDevelopment option set to true, the serve function will serve +the root directory directly and watch all asciidoc files for changes +and convert it. ++ +This is like running Watch, Convert and Serve at the same time. + + +[#v0_7_1] +== ciigo v0.7.1 (2022-01-10) + +This release update all dependencies and codes affected by updated. + +[#v0_7_0] +== ciigo v0.7.0 (2021-12-06) + +Changes on asciidoctor-go, + +* all: fix parsing and rendering cross reference +* all: allow colon ':' and period '.' on the ID + +[#v0_7_0_breaking_changes] +=== Breaking changes + +* all: refactoring with latest share module ++ +-- +The latest share module use the term GoEmbed to generate Go source file. +In order for this repo in sync with upstream terminology and to minimize +confusion, we changes the exported function and command name from +"generate" to "embed", this includes + +* Command "ciigo generate" become "ciigo embed" +* Exported function to generate Go renamed from "Generate" to "GoEmbed". + This include the parameter GenerateOptions which renamed to + EmbedOptions. +* The internal command to generate example renamed from "generate" to + "goembed" +-- + +[#v0_7_0_bug_fixes] +=== Bug fixes + +* all: add missing new line when printing file to be converted + +* all: fix empty fileMarkups on watcher ++ +-- +Previously, when user call ciigo.Watch(), and the markup file changes, +the onChangeFileMarkup method will print an error "xyz not found" which +cause the markup file not converted. + +This is caused by watcher.fileMarkups is empty. + +This changes fix this issue by initializing the fileMarkups field using +listFileMarkups, so the next callback to onChangeFileMarkup can detect +the changed file and convert it. +-- + +* This update fix HTTP server caching using ETag. + +[#v0_7_0_enhancements] +=== Enhancements + +* all: check markup modification time before converting to HTML ++ +-- +Previously, when the Convert, Watch or Serve running it will convert +all markup files into HTML without checking if the adoc has been modified +or newer than HTML file. + +This changes check the modification time of markup file first before +converting them, to minimize unnecessary operation. +-- + + +[#v0_6_0] +== ciigo v0.6.0 (2021-04-07) + +[#v0_6_0_breaking_changes] +=== Breaking changes + +* all: change the Convert function to use type ConvertOptions ++ +-- +Previously, we pass the directory to be scanned for asciidoc markup files +and path to HTML template on Convert function. Adding new option to +Convert will cause changes on the Convert signature. + +To prevent this, we changes the Convert signature from multiple parameters +into single parameter ConvertOptions. + +While at it, change the variable name HTMLTemplate to HtmlTemplate. +-- + +* all: change the Serve signature to ServeOptions ++ +-- +Previously, we pass four parameters to Serve function: the instance +to memfs.MemFS, the root directory, the address to listen, and +path to HTML template. + +In case we need to add new parameter in the future, the Serve function +signature will changes and this is not good for consumer of API. + +This commit changes the Serve function parameters to ServeOptions +so we can add optional parameter in the future without changes to its +signature. +-- + +* all: changes the Watch signature to use ConvertOptions ++ +Just like changes on Convert function, this is to prevent additional +parameter added on Watch function affect the consumer of API in the +future. + +[#v0_6_0_new_features] +=== New features + +* all: add option to exclude certain paths using regular expression ++ +The ConvertOptions now has the Exclude field that can contains regular +expression. If the Exclude is not empty, it will be compiled and use +in Convert, Generate, Watch, and Serve; to ignore specific paths +being scanned. + +[#v0_6_0_enhancements] +=== Enhancements + +* all: exclude common file and directories names for being watched ++ +By default, any hidden files on Unix like system, which start with dot '.' +should not be watched for any changes. So does "node_modules" from npm +and "vendor" directory which may contains many unrelated files. + + +[#v0_5_0] +== ciigo v0.5.0 (2021-02-21) + +[#v0_5_0_new_features] +=== New features + +* all: implement Watch functionality ++ +-- +The Watch function, watch any changes on asciidoc files on directory +"dir" recursively and changes on the HTML template file. +If there is new or modified asciidoc files it will convert them into HTML +files using HTML template automatically. + +If the HTML template file modified, it will re-convert all asciidoc files. +If the HTML template file deleted, it will replace them with internal, +default HTML template. +-- + +[#v0_5_0_breaking_changes] +=== Breaking changes + +* all: return error instead of call log.Fatal on non main packages ++ +-- +The library, non-main packages, should never call Fatal or panic, +its up to the main package or the caller on how to handle it. + +While at it, fix the returned error to use log prefix and the error +value, remove the "ciigo: " prefix. +-- + +[#v0_5_0_chores] +=== Chores + +* all: rewrite to use the watcher ++ +-- +Now that we have the watcher which task are to watch the asciidoc +files and template files, we can use it in server to minimize duplicate +code. + +This changes refactoring the htmlGenerator to initialize the HTML +template from internal or memfs, so the caller did not need to check by +itself. +-- + + +[#v0_4_1] +== ciigo v0.4.1 (2021-01-21) + +Update to latest share module. + +Fix the HTTP server not auto-reload the new changes if DEBUG value is +non-zero. + + +[#v0_4_0] +== ciigo v0.4.0 (2021-01-21) + +Refactoring due to change on memfs package. + +This changes affect the exported functions Generate() and Serve(). + +Previously, the Generate() function accept three options: dir, out, +and htmlTemplate; this release changes the parameter into single struct +Options with two additional options: GenPackageName and GenVarName. +The GenPackageName allow to set the package name in Go generate source +code, default to "main" if not set. +The GenVarName set the instance of memfs.MemFS where the embedded +files will be stored. + +On the Serve() function, we add parameter to pass the instance of +memfs.MemFS (the one that passed on GenVarName). + + +[#v0_3_0] +== ciigo v0.3.0 (2020-12-06) + +This release replace the asciidoc parsing from libasciidoc-go to +https://sr.ht/~shulhan/asciidoctor-go[asciidoctor-go], which provide more +control and stable APIs. + +We also remove support form markdown markup language and focus only to support +asciidoctor format from now on. + +The Go module path and repository is also moved from github to +git.sr.ht/~shulhan/ciigo. + + +[#v0_2_0] +== ciigo v0.2.0 (2020-07-05) + +* all: simplify serving content using function Serve ++ +Previously to serve the generated content we call two fucntions: +NewServer() and Server.Start(). +This changes unexported the internal server, and expose only the Serve() +function with the same parameter as NewServer(). + +* all: embed the HTML template and the stylesheet ++ +The parameter for template either in Convert or Generate functions or +in CLI now become pure optional, not default to "templates/html.tmpl" +anymore. +This will minimize steps for user to setup or run the library or program. + + +[#v0_1_1] +== ciigo v0.1.1 (2020-03-24) + +The first release support asciidoc and markdown markup language. + +The v0.1.0 release has been deleted because it contains error in the +dependencies and the Go module cache make it even harder to invalidate it. |
