<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gorankusu/_www/doc/CHANGELOG.adoc, branch main</title>
<subtitle>The Go library for load testing HTTP and WebSocket endpoints.</subtitle>
<id>http://git.kilabit.info/gorankusu/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/gorankusu/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/'/>
<updated>2025-02-03T13:11:07Z</updated>
<entry>
<title>_www/doc: move original CHANGELOG to root of repository</title>
<updated>2025-02-03T13:11:07Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-02-03T12:08:34Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=2e26d5517f8865aea7f6f7f1e3e7e9c6c89f0b4c'/>
<id>urn:sha1:2e26d5517f8865aea7f6f7f1e3e7e9c6c89f0b4c</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Release gorankusu v0.7.0 (2024-09-07)</title>
<updated>2024-09-07T11:38:11Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-09-07T11:38:11Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=15b2c9ae3921c73ba5d605b6318a600675a02e9e'/>
<id>urn:sha1:15b2c9ae3921c73ba5d605b6318a600675a02e9e</id>
<content type='text'>
=== 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".

=== 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.

=== 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.

=== 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.
</content>
</entry>
<entry>
<title>Release gorankusu v0.6.1 (2024-04-06)</title>
<updated>2024-04-05T19:52:36Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-04-05T19:51:32Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=084bc28cf0a781d171bb2cb17f939e2384c120b0'/>
<id>urn:sha1:084bc28cf0a781d171bb2cb17f939e2384c120b0</id>
<content type='text'>
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 at https://sr.ht/~shulhan/pakakeh.go.
</content>
</entry>
<entry>
<title>Release gorankusu v0.6.0 (2024-03-05)</title>
<updated>2024-03-05T09:14:11Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-03-05T09:10:31Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=20e45fe125803bc7fd0fd079f30bf4c099c8320a'/>
<id>urn:sha1:20e45fe125803bc7fd0fd079f30bf4c099c8320a</id>
<content type='text'>
=== 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.

=== 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.

=== 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.
</content>
</entry>
<entry>
<title>Release gorankusu v0.5.0</title>
<updated>2024-02-08T10:01:25Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-08T10:01:25Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=bc00c07248b1097f6e8f9281edc659cbd4bdd4ff'/>
<id>urn:sha1:bc00c07248b1097f6e8f9281edc659cbd4bdd4ff</id>
<content type='text'>
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 vegeta (from Dragon Ball), and 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".

=== New features

* all: allow submit free form request body in HTTPTarget
* all: implement form input file
* all: add type to customize how to dump HTTP request and response
* all: support parameter binding in HTTP Path

=== Enhancements

* _www: check HTTP response status greater or equal 400
</content>
</entry>
<entry>
<title>all: rename the project to gorankusu</title>
<updated>2024-02-06T17:33:19Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-04T22:26:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=a390baed9f16c61c9c431691be7bb10151fcde10'/>
<id>urn:sha1:a390baed9f16c61c9c431691be7bb10151fcde10</id>
<content type='text'>
The original idea of "trunks" is because the core library that we
use for load testing is named "vegeta" (from Dragon Ball) [1][2], and
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".

[1]: https://github.com/tsenart/vegeta/
[2]: https://en.wikipedia.org/wiki/Vegeta

Implements: https://todo.sr.ht/~shulhan/gorankusu/2
</content>
</entry>
<entry>
<title>Release trunks v0.4.1 (2023-11-11)</title>
<updated>2023-11-11T06:45:05Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-11T06:45:05Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=07eb5a430d2b03f84949836e535c85bfcaeec01d'/>
<id>urn:sha1:07eb5a430d2b03f84949836e535c85bfcaeec01d</id>
<content type='text'>
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

* _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.
</content>
</entry>
<entry>
<title>Release trunks v0.4.0 (2023-05-16)</title>
<updated>2023-05-16T07:48:20Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-16T07:48:01Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=a5d8e64356f4879b8e96e5e4bb63a4c051fb34fa'/>
<id>urn:sha1:a5d8e64356f4879b8e96e5e4bb63a4c051fb34fa</id>
<content type='text'>
=== Bug fixes

* all: fix panic when attacking HTTP due to nil Attack handler

=== Enhancements

* _www: replace WebSocket handlers with HTTP endpoints
* all: add boolean Kind for FormInput, FormInputKindBoolean
* all: check and call ConvertParams when running HttpTarget

=== Chores

* all: move the _doc directory under _www
* all: convert the README from asciidoc to markdown
* all: remove WebSocket server
* go.mod: set Go version to 1.19 and update all dependencies
</content>
</entry>
<entry>
<title>all: move the _doc directory under _www</title>
<updated>2023-05-16T07:33:58Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-16T07:33:58Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=b0027e9487b6eb30c002c766f4f3effded48b488'/>
<id>urn:sha1:b0027e9487b6eb30c002c766f4f3effded48b488</id>
<content type='text'>
This is to minimize symlinks in the repository.
</content>
</entry>
</feed>
