aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.adoc
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2023-03-02 23:53:01 +0700
committerShulhan <ms@kilabit.info>2023-03-03 00:02:28 +0700
commit4e2b41855fb9edece6325cb40ee3daabc9aef9e7 (patch)
treeb9bbb52bc49a0e0431d30b9bf7d9971917dce26f /CHANGELOG.adoc
parentb53231ab30e1ace9792362f61a93e6cea073af73 (diff)
downloadciigo-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.adoc482
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.