aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2025-02-03 19:08:34 +0700
committerShulhan <ms@kilabit.info>2025-02-03 20:11:07 +0700
commit2e26d5517f8865aea7f6f7f1e3e7e9c6c89f0b4c (patch)
tree8fe637203066399b5014f4f172356d785234a87e
parenta6d3b0944f80f7b84ac91f1904d23a312fbee098 (diff)
downloadgorankusu-2e26d5517f8865aea7f6f7f1e3e7e9c6c89f0b4c.tar.xz
_www/doc: move original CHANGELOG to root of repository
The idea is to allow developer who browse the repository to see the file immediately. The one in the doc/ directory now contains the symlink.
-rw-r--r--CHANGELOG.adoc386
l---------[-rw-r--r--]_www/doc/CHANGELOG.adoc387
2 files changed, 387 insertions, 386 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc
new file mode 100644
index 0000000..0eebde3
--- /dev/null
+++ b/CHANGELOG.adoc
@@ -0,0 +1,386 @@
+= gorankusu CHANGELOG
+:toc:
+:sectanchors:
+:sectlinks:
+
+
+[#v0_7_0]
+== gorankusu v0.7.0 (2024-09-07)
+
+[#v0_7_0__breaking_changes]
+=== Breaking changes
+
+all: refactoring form input for multipart form-data::
++
+This changes replace handling type for storing multipart form-data
+from "map[string][]byte" to [*multipart.Form] based on changes on
+module "pakakeh.go".
+
+[#v0_7_0__enhancements]
+=== Enhancements
+
+all: make HTTP Target Params works along with WithRawBody::
++
+Previously, if WithRawBody is true, the Params will not be rendered
+and parsed during Run.
+This changes makes the Params works along with WithRawBody.
+If Params are set it will be rendered along with text area for raw
+body.
+
+_www: support HTTP target with content type "text/html"::
++
+In the Target form, user can select to send body as "text/html".
+
+all: add git.sr.ht APIs into example::
++
+The APIs is created using https://man.sr.ht/git.sr.ht/api.md as
+reference.
+We also needs the API to create webhook since no other way to create
+it in current sourcehut web.
+
+[#v0_7_0__bug_fixes]
+=== Bug fixes
+
+_www: fix save on null Headers and Vars::
++
+If the user does not define the Headers, clicking Run on any HTTP
+Target will result in error when "save" function executed before it.
+
+_www: fix form input type file where content is binary::
++
+If the file in FormInput is binary, the conversion to
+"FormInput.value" will fail with an error like "invalid characters in
+String".
+
+all: use [route.Path] to generate parameters::
++
+Using [route.String] does not works if the parameter can be empty,
+while [route.Path] replace all keys and return the path as is.
+
+[#v0_7_0__chores]
+=== Chores
+
+all: add task to initialize the repository and tools::
++
+The task "init" include initializing git submodule, installing third
+party tools for linters, and installing node packages.
+
+
+[#v0_6_1]
+== gorankusu v0.6.1 (2024-04-06)
+
+This release replace "share" module with "pakakeh.go".
+The "share" module repository has been moved to SourceHut with new name
+"pakakeh.go".
+For more information about the changes see "pakakeh.go" project page at
+https://sr.ht/~shulhan/pakakeh.go.
+
+
+[#v0_6_0]
+== gorankusu v0.6.0 (2024-03-05)
+
+[#v0_6_0__breaking_changes]
+=== Breaking changes
+
+target: changes Opts to non-pointer::
++
+--
+Previously, we use pointer to indicated that the Target can be attacked
+or not.
+Since HTTPTarget now have AllowAttack, this options can be changes to
+non-pointer.
+--
+
+
+all: change the signature of default request/response dumper::
++
+--
+Instead of function that use the signature of HTTPRequestDumper/
+HTTPResponseDumper; change it to function that _return_ HTTPRequestDumper/
+HTTPResponseDumper.
+In this way, the documentation can show the clear relation between
+function and its type.
+--
+
+
+[#v0_6_0__new_features]
+=== New features
+
+all: add global HTTP headers for Target::
++
+--
+The Headers field on Target define the global headers that will be send
+along with all HTTPTarget or WebSocketTarget.
+The same header can also be defined on HTTPTarget that override the
+value of Target.
+--
+
+
+all: add default HTTPRunHandler::
++
+--
+Previously, the default HTTPRunHandler is hidden, called dynamically
+based on Run is nil or not.
+This changes make it exported as function that return HTTPRunHandler
+to show how define and create a custom HTTPRunHandler.
+--
+
+
+all: add default HTTPParamsConverter for [HTTPTarget.ParamsConverter]::
++
+--
+The DefaultParamsConverter define default function to convert
+[HTTPTarget.Params] to its equivalent parameters in HTTP, either as query
+in URL or as bytes in body.
+
+This changes introduce breaking changes in HTTPTarget where field
+ConvertParams renamed to ParamsConverter.
+--
+
+
+all: set default HTTPTarget Attack if its not set::
++
+--
+Previously, the function for Attack need to be coded manually.
+
+This changes introduce new function DefaultHTTPAttack that generate
+HTTPAttackHandler based on the HTTPTarget method, request type, and
+Params; if AllowAttack is true and Attack is nil.
+--
+
+
+[#v0_6_0__bug_fixes]
+=== Bug fixes
+
+all: fix null navigation links::
++
+--
+If the navLinks fields is empty, the HTTP API will return "null" and cause
+the rendering error.
+This changes fix this issue by allocating the slice navLinks with one
+capabilities to make JSON always return "[]" if its empty.
+--
+
+
+[#v0_5_0]
+== gorankusu v0.5.0 (2024-02-08)
+
+This release rename the project from "trunks" to "gorankusu".
+
+The original idea of "trunks" is because the core library that we
+use for load testing is named
+https://github.com/tsenart/vegeta/["vegeta"]
+(from Dragon Ball), and
+https://en.wikipedia.org/wiki/Vegeta[Vegeta]
+has a son named Trunks.
+In English, trunks also have multiple meanings.
+
+In order to have a unique name, we rename the project to "gorankusu",
+which is a combination of "go" (the main programming language
+that built the application) and "torankusu" the Hepburn of "Trunks".
+
+
+[#v0_5_0__breaking_changes]
+=== Breaking changes
+
+In order for making the code consistent and conform with linters, some
+exported types, fields, methods, and functions has been renamed.
+
+* In AttackResult type, field HttpTargetID renamed to HTTPTargetID
+* HttpConvertParams renamed to HTTPConvertParams
+* HttpRunHandler renamed to HTTPRunHandler
+* HttpAttackHandler renamed to HTTPAttackHandler
+* HttpPreAttackHandler renamed to HTTPPreAttackHandler
+* HttpTarget renamed to HTTPTarget
+
+and many more.
+
+[#v0_5_0__new_features]
+=== New features
+
+all: allow submit free form request body in HTTPTarget::
++
+--
+In HTTPTarget we add fields RawBody and WithRawBody.
+
+The field RawBody can be filled by anything by user.
+Those field can be activated by setting WithRawBody.
+
+Implements: https://todo.sr.ht/~shulhan/gorankusu/3
+--
+
+all: implement form input file::
++
+--
+The FormInput now can be set to FormInputKindFile that will rendered
+as "<input type='file' ...>" on the web user interface.
+
+Once submitted, the file name, type, size, and lastModification will
+be stored under FormInput Filename, Filetype, Filesize, and Filemodms.
+
+Implements: https://todo.sr.ht/~shulhan/trunks/1
+--
+
+
+all: add type to customize how to dump HTTP request and response::
++
+--
+The HTTPRequestDumper define an handler to convert [http.Request] into
+[RunResponse] DumpRequest.
+The HTTPResponseDumper define an handler to convert [http.Response]
+into [RunResponse] DumpResponse.
+
+In HTTPTarget we add fields RequestDumper and ResponseDumper that if its not
+nil it will be used to dump HTTP request and response to raw bytes.
+--
+
+
+all: support parameter binding in HTTP Path::
++
+If HTTP Path contains key, for example "/:book", and the Params contains
+the same key, the Path will be filled with value from Params.
+The same key in Params will be deleted and not send on query parameter
+or body.
+
+
+[#v0_5_0__enhancements]
+=== Enhancements
+
+_www: check HTTP response status greater or equal 400::
++
+Any HTTP status code below 400 are still processable and not an error.
+
+
+[#v0_4_1]
+== gorankusu v0.4.1 (2023-11-11)
+
+This release only have chores, it should not break anything.
+
+go.mod: update all dependencies::
++
+--
+This changes set minimum Go version to version 1.20.
+The vegeta module finally has some update to v12.11.1.
+--
+
+gitmodules: use https instead of git scheme::
++
+Using git scheme require private key to clone the remote repository.
+
+_www: update wui module::
++
+While at it reformat all files using default prettier.
+
+_www: setup eslint for linting TypeScript files::
++
+This changes also apply all eslint recommendations.
+
+Makefile: replace the Go linter and apply all their recommendations::
++
+--
+Previously, we use golangci-lint as linter.
+This linter does not provides any useful recommendation lately and the
+development is quite a mess, sometimes its break when using Go tip.
+
+In this changes we replace it with revive, fieldalignment, and shadow;
+and fix all of their recommendations.
+--
+
+
+[#v0_4_0]
+== gorankusu v0.4.0 (2023-05-16)
+
+[#v0_4_0__bug_fixes]
+=== Bug fixes
+
+all: fix panic when attacking HTTP due to nil Attack handler::
++
+In attack endpoint, check if the Attack is nil before we push the request
+to attack queue.
+
+[#v0_4_0__enhancements]
+=== Enhancements
+
+_www: replace WebSocket handlers with HTTP endpoints::
++
+The Attack and attack Cancel now call the HTTP endpoints.
+
+all: add boolean Kind for FormInput, FormInputKindBoolean::
++
+--
+The FormInputKindBoolean only used for convertion, for example
+ToJsonObject.
+In the WUI, it still rendered as string, not as checkbox.
+
+FormInput with this Kind will be converted to true in ToJsonObject if
+the Value is either "true", "yes", or "1".
+--
+
+all: check and call ConvertParams when running HttpTarget::
++
+If the ConvertParams field is set, use it to convert the parameters into
+desired type.
+
+[#v0_4_0__chores]
+=== Chores
+
+all: move the _doc directory under _www::
+
+all: convert the README from asciidoc to markdown::
+
+all: remove WebSocket server::
++
+Using WebSocket for communication in client require additional
+setup, especially if its behind proxy.
+For example, if we serve the gorankusu server under domain testing.local
+behind proxy, we need to setup route for the WebSocket too.
+
+go.mod: set Go version to 1.19 and update all dependencies::
+
+
+[#v0_3_0]
+== gorankusu v0.3.0 (2022-08-25)
+
+This release set the minimum Go version to 1.18 and update all modules.
+
+[#v0_3_0_chores]
+=== Chores
+
+all: group all documentations under directory _doc::
++
+The _doc directory provides an entry point for all documentation.
+While at it we reformat the README to use AsciiDoc markup.
+
+example: fix the HTTP POST handler::
++
+Remove call to ParseMultipartform since the request type is
+x-www-form-urlencoded not multipart/form-data.
+
+all: remove unused field Locker in RunRequest::
+
+all: fix all linter warnings::
++
+Some linter, govet, warns about possible copied Mutex on HttpRequest.
+To fix this we implement method clone and Stringer on HttpRequest.
+
+
+[#v0_2_0]
+== gorankusu v0.2.0 (2022-03-13)
+
+Release gorankusu under GPL 3.0 or later license.
+
+See https://kilabit.info/journal/2022/gpl for more information.
+
+
+[#v0_1_0]
+== gorankusu v0.1.0 (2022-02-05)
+
+Module gorankusu is a library and HTTP service that provide web user interface
+to test HTTP service, similar to Postman, and for load testing.
+
+For the load testing we use vegeta [1] as the backend.
+
+[1] https://github.com/tsenart/vegeta
+
+// SPDX-FileCopyrightText: 2021 M. Shulhan <ms@kilabit.info>
+// SPDX-License-Identifier: GPL-3.0-or-later
diff --git a/_www/doc/CHANGELOG.adoc b/_www/doc/CHANGELOG.adoc
index 0eebde3..dbe8cbb 100644..120000
--- a/_www/doc/CHANGELOG.adoc
+++ b/_www/doc/CHANGELOG.adoc
@@ -1,386 +1 @@
-= gorankusu CHANGELOG
-:toc:
-:sectanchors:
-:sectlinks:
-
-
-[#v0_7_0]
-== gorankusu v0.7.0 (2024-09-07)
-
-[#v0_7_0__breaking_changes]
-=== Breaking changes
-
-all: refactoring form input for multipart form-data::
-+
-This changes replace handling type for storing multipart form-data
-from "map[string][]byte" to [*multipart.Form] based on changes on
-module "pakakeh.go".
-
-[#v0_7_0__enhancements]
-=== Enhancements
-
-all: make HTTP Target Params works along with WithRawBody::
-+
-Previously, if WithRawBody is true, the Params will not be rendered
-and parsed during Run.
-This changes makes the Params works along with WithRawBody.
-If Params are set it will be rendered along with text area for raw
-body.
-
-_www: support HTTP target with content type "text/html"::
-+
-In the Target form, user can select to send body as "text/html".
-
-all: add git.sr.ht APIs into example::
-+
-The APIs is created using https://man.sr.ht/git.sr.ht/api.md as
-reference.
-We also needs the API to create webhook since no other way to create
-it in current sourcehut web.
-
-[#v0_7_0__bug_fixes]
-=== Bug fixes
-
-_www: fix save on null Headers and Vars::
-+
-If the user does not define the Headers, clicking Run on any HTTP
-Target will result in error when "save" function executed before it.
-
-_www: fix form input type file where content is binary::
-+
-If the file in FormInput is binary, the conversion to
-"FormInput.value" will fail with an error like "invalid characters in
-String".
-
-all: use [route.Path] to generate parameters::
-+
-Using [route.String] does not works if the parameter can be empty,
-while [route.Path] replace all keys and return the path as is.
-
-[#v0_7_0__chores]
-=== Chores
-
-all: add task to initialize the repository and tools::
-+
-The task "init" include initializing git submodule, installing third
-party tools for linters, and installing node packages.
-
-
-[#v0_6_1]
-== gorankusu v0.6.1 (2024-04-06)
-
-This release replace "share" module with "pakakeh.go".
-The "share" module repository has been moved to SourceHut with new name
-"pakakeh.go".
-For more information about the changes see "pakakeh.go" project page at
-https://sr.ht/~shulhan/pakakeh.go.
-
-
-[#v0_6_0]
-== gorankusu v0.6.0 (2024-03-05)
-
-[#v0_6_0__breaking_changes]
-=== Breaking changes
-
-target: changes Opts to non-pointer::
-+
---
-Previously, we use pointer to indicated that the Target can be attacked
-or not.
-Since HTTPTarget now have AllowAttack, this options can be changes to
-non-pointer.
---
-
-
-all: change the signature of default request/response dumper::
-+
---
-Instead of function that use the signature of HTTPRequestDumper/
-HTTPResponseDumper; change it to function that _return_ HTTPRequestDumper/
-HTTPResponseDumper.
-In this way, the documentation can show the clear relation between
-function and its type.
---
-
-
-[#v0_6_0__new_features]
-=== New features
-
-all: add global HTTP headers for Target::
-+
---
-The Headers field on Target define the global headers that will be send
-along with all HTTPTarget or WebSocketTarget.
-The same header can also be defined on HTTPTarget that override the
-value of Target.
---
-
-
-all: add default HTTPRunHandler::
-+
---
-Previously, the default HTTPRunHandler is hidden, called dynamically
-based on Run is nil or not.
-This changes make it exported as function that return HTTPRunHandler
-to show how define and create a custom HTTPRunHandler.
---
-
-
-all: add default HTTPParamsConverter for [HTTPTarget.ParamsConverter]::
-+
---
-The DefaultParamsConverter define default function to convert
-[HTTPTarget.Params] to its equivalent parameters in HTTP, either as query
-in URL or as bytes in body.
-
-This changes introduce breaking changes in HTTPTarget where field
-ConvertParams renamed to ParamsConverter.
---
-
-
-all: set default HTTPTarget Attack if its not set::
-+
---
-Previously, the function for Attack need to be coded manually.
-
-This changes introduce new function DefaultHTTPAttack that generate
-HTTPAttackHandler based on the HTTPTarget method, request type, and
-Params; if AllowAttack is true and Attack is nil.
---
-
-
-[#v0_6_0__bug_fixes]
-=== Bug fixes
-
-all: fix null navigation links::
-+
---
-If the navLinks fields is empty, the HTTP API will return "null" and cause
-the rendering error.
-This changes fix this issue by allocating the slice navLinks with one
-capabilities to make JSON always return "[]" if its empty.
---
-
-
-[#v0_5_0]
-== gorankusu v0.5.0 (2024-02-08)
-
-This release rename the project from "trunks" to "gorankusu".
-
-The original idea of "trunks" is because the core library that we
-use for load testing is named
-https://github.com/tsenart/vegeta/["vegeta"]
-(from Dragon Ball), and
-https://en.wikipedia.org/wiki/Vegeta[Vegeta]
-has a son named Trunks.
-In English, trunks also have multiple meanings.
-
-In order to have a unique name, we rename the project to "gorankusu",
-which is a combination of "go" (the main programming language
-that built the application) and "torankusu" the Hepburn of "Trunks".
-
-
-[#v0_5_0__breaking_changes]
-=== Breaking changes
-
-In order for making the code consistent and conform with linters, some
-exported types, fields, methods, and functions has been renamed.
-
-* In AttackResult type, field HttpTargetID renamed to HTTPTargetID
-* HttpConvertParams renamed to HTTPConvertParams
-* HttpRunHandler renamed to HTTPRunHandler
-* HttpAttackHandler renamed to HTTPAttackHandler
-* HttpPreAttackHandler renamed to HTTPPreAttackHandler
-* HttpTarget renamed to HTTPTarget
-
-and many more.
-
-[#v0_5_0__new_features]
-=== New features
-
-all: allow submit free form request body in HTTPTarget::
-+
---
-In HTTPTarget we add fields RawBody and WithRawBody.
-
-The field RawBody can be filled by anything by user.
-Those field can be activated by setting WithRawBody.
-
-Implements: https://todo.sr.ht/~shulhan/gorankusu/3
---
-
-all: implement form input file::
-+
---
-The FormInput now can be set to FormInputKindFile that will rendered
-as "<input type='file' ...>" on the web user interface.
-
-Once submitted, the file name, type, size, and lastModification will
-be stored under FormInput Filename, Filetype, Filesize, and Filemodms.
-
-Implements: https://todo.sr.ht/~shulhan/trunks/1
---
-
-
-all: add type to customize how to dump HTTP request and response::
-+
---
-The HTTPRequestDumper define an handler to convert [http.Request] into
-[RunResponse] DumpRequest.
-The HTTPResponseDumper define an handler to convert [http.Response]
-into [RunResponse] DumpResponse.
-
-In HTTPTarget we add fields RequestDumper and ResponseDumper that if its not
-nil it will be used to dump HTTP request and response to raw bytes.
---
-
-
-all: support parameter binding in HTTP Path::
-+
-If HTTP Path contains key, for example "/:book", and the Params contains
-the same key, the Path will be filled with value from Params.
-The same key in Params will be deleted and not send on query parameter
-or body.
-
-
-[#v0_5_0__enhancements]
-=== Enhancements
-
-_www: check HTTP response status greater or equal 400::
-+
-Any HTTP status code below 400 are still processable and not an error.
-
-
-[#v0_4_1]
-== gorankusu v0.4.1 (2023-11-11)
-
-This release only have chores, it should not break anything.
-
-go.mod: update all dependencies::
-+
---
-This changes set minimum Go version to version 1.20.
-The vegeta module finally has some update to v12.11.1.
---
-
-gitmodules: use https instead of git scheme::
-+
-Using git scheme require private key to clone the remote repository.
-
-_www: update wui module::
-+
-While at it reformat all files using default prettier.
-
-_www: setup eslint for linting TypeScript files::
-+
-This changes also apply all eslint recommendations.
-
-Makefile: replace the Go linter and apply all their recommendations::
-+
---
-Previously, we use golangci-lint as linter.
-This linter does not provides any useful recommendation lately and the
-development is quite a mess, sometimes its break when using Go tip.
-
-In this changes we replace it with revive, fieldalignment, and shadow;
-and fix all of their recommendations.
---
-
-
-[#v0_4_0]
-== gorankusu v0.4.0 (2023-05-16)
-
-[#v0_4_0__bug_fixes]
-=== Bug fixes
-
-all: fix panic when attacking HTTP due to nil Attack handler::
-+
-In attack endpoint, check if the Attack is nil before we push the request
-to attack queue.
-
-[#v0_4_0__enhancements]
-=== Enhancements
-
-_www: replace WebSocket handlers with HTTP endpoints::
-+
-The Attack and attack Cancel now call the HTTP endpoints.
-
-all: add boolean Kind for FormInput, FormInputKindBoolean::
-+
---
-The FormInputKindBoolean only used for convertion, for example
-ToJsonObject.
-In the WUI, it still rendered as string, not as checkbox.
-
-FormInput with this Kind will be converted to true in ToJsonObject if
-the Value is either "true", "yes", or "1".
---
-
-all: check and call ConvertParams when running HttpTarget::
-+
-If the ConvertParams field is set, use it to convert the parameters into
-desired type.
-
-[#v0_4_0__chores]
-=== Chores
-
-all: move the _doc directory under _www::
-
-all: convert the README from asciidoc to markdown::
-
-all: remove WebSocket server::
-+
-Using WebSocket for communication in client require additional
-setup, especially if its behind proxy.
-For example, if we serve the gorankusu server under domain testing.local
-behind proxy, we need to setup route for the WebSocket too.
-
-go.mod: set Go version to 1.19 and update all dependencies::
-
-
-[#v0_3_0]
-== gorankusu v0.3.0 (2022-08-25)
-
-This release set the minimum Go version to 1.18 and update all modules.
-
-[#v0_3_0_chores]
-=== Chores
-
-all: group all documentations under directory _doc::
-+
-The _doc directory provides an entry point for all documentation.
-While at it we reformat the README to use AsciiDoc markup.
-
-example: fix the HTTP POST handler::
-+
-Remove call to ParseMultipartform since the request type is
-x-www-form-urlencoded not multipart/form-data.
-
-all: remove unused field Locker in RunRequest::
-
-all: fix all linter warnings::
-+
-Some linter, govet, warns about possible copied Mutex on HttpRequest.
-To fix this we implement method clone and Stringer on HttpRequest.
-
-
-[#v0_2_0]
-== gorankusu v0.2.0 (2022-03-13)
-
-Release gorankusu under GPL 3.0 or later license.
-
-See https://kilabit.info/journal/2022/gpl for more information.
-
-
-[#v0_1_0]
-== gorankusu v0.1.0 (2022-02-05)
-
-Module gorankusu is a library and HTTP service that provide web user interface
-to test HTTP service, similar to Postman, and for load testing.
-
-For the load testing we use vegeta [1] as the backend.
-
-[1] https://github.com/tsenart/vegeta
-
-// SPDX-FileCopyrightText: 2021 M. Shulhan <ms@kilabit.info>
-// SPDX-License-Identifier: GPL-3.0-or-later
+../../CHANGELOG.adoc \ No newline at end of file