<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pakakeh.go, branch v0.34.0</title>
<subtitle>Collections of packages and tools for working with Go programming language.</subtitle>
<id>http://git.kilabit.info/pakakeh.go/atom?h=v0.34.0</id>
<link rel='self' href='http://git.kilabit.info/pakakeh.go/atom?h=v0.34.0'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/'/>
<updated>2022-02-05T06:36:00Z</updated>
<entry>
<title>Release share v0.34.0 (2022-02-05)</title>
<updated>2022-02-05T06:36:00Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-02-05T06:36:00Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=da62a60826dd3058f01c9e738d22621d79e8b626'/>
<id>urn:sha1:da62a60826dd3058f01c9e738d22621d79e8b626</id>
<content type='text'>
===  Breaking changes

*  lib/sql: make the table migration customizable
+
--
In the method Migrate() we add parameter "tableMigration" which define
the name of table where the state of migration will be saved.

If its empty default to "_migration".
--

===  New features

*  lib/os: implement function to Extract compressed and/or archived file
+
--
The Extract function uncompress and/or unarchive file from fileInput
into directory defined by dirOutput.
This is the high level API that combine standard archive/zip, archive/tar,
compress/bzip2, and/or compress/gzip.

The compression and archive format is detected automatically based on
the following fileInput extension:

* .bz2: decompress using compress/bzip2.
* .gz: decompress using compress/gzip.
* .tar: unarchive using archive/tar.
* .zip: unarchive using archive/zip.
* .tar.bz2: decompress using compress/bzip2 and unarchive using
  archive/tar.
* .tar.gz: decompress using compress/gzip and unarchive using
  archive/tar.

The output directory, dirOutput, where the decompressed and/or unarchived
file stored. will be created if not exist.
If its empty, it will set to current directory.

On success, the compressed and/or archived file will be removed from the
file system.
--

*  lib/http: implement method Download() on Client
+
The Download method get a resource from remote server and write it into
DownloadRequest.Output (a io.Writer).

===  Enhancements

*  lib/websocket: return error if parameter is empty on RegisterTextHandler
+
Previously, the RegisterTextHandler method return nil if method, target,
or handler parameter is not set.
This may cause confusion and hard to debug handler when no connection receive
but the RegisterTextHandler does not have any error.

===  Chores

*  lib/http: change the test port for testing HTTP server
+
Previously, the test port for HTTP server is set to 8080 and may conflict
with any service that running on the local (due to common use of 8080).
+
This changes it to 14832 and we make the full server address stored
as global variable so any tests can references it.
</content>
</entry>
<entry>
<title>lib/http: use io.Copy instead of TeeReader for Download() method</title>
<updated>2022-02-05T06:29:24Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-02-05T06:29:24Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=a9d21372371a06d989992f1a22f9d287b1e53497'/>
<id>urn:sha1:a9d21372371a06d989992f1a22f9d287b1e53497</id>
<content type='text'>
The io.Copy method is more simple and has the same behaviour as the
TeeReader.
</content>
</entry>
<entry>
<title>lib/os: implement function to Extract compressed and/or archived file</title>
<updated>2022-02-01T19:05:08Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-02-01T18:43:11Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=0df1b84e96a1020158a1636ac1695b5ba16cb2ac'/>
<id>urn:sha1:0df1b84e96a1020158a1636ac1695b5ba16cb2ac</id>
<content type='text'>
The Extract function uncompress and/or unarchive file from fileInput
into directory defined by dirOutput.
This is the high level API that combine standard archive/zip, archive/tar,
compress/bzip2, and/or compress/gzip.

The compression and archive format is detected automatically based on
the following fileInput extension:

	* .bz2: decompress using compress/bzip2.
	* .gz: decompress using compress/gzip.
	* .tar: unarchive using archive/tar.
	* .zip: unarchive using archive/zip.
	* .tar.bz2: decompress using compress/bzip2 and unarchive using
	archive/tar.
	* .tar.gz: decompress using compress/gzip and unarchive using
	archive/tar.

The output directory, dirOutput, where the decompressed and/or unarchived
file stored. will be created if not exist.
If its empty, it will set to current directory.

On success, the compressed and/or archived file will be removed from the
file system.
</content>
</entry>
<entry>
<title>lib/http: implement method Download() on Client</title>
<updated>2022-01-30T10:17:58Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-01-30T10:17:58Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=d5c58233592b7642980790754fba015fe3fb04dc'/>
<id>urn:sha1:d5c58233592b7642980790754fba015fe3fb04dc</id>
<content type='text'>
The Download method get a resource from remote server and write it into
DownloadRequest.Output (a io.Writer).
</content>
</entry>
<entry>
<title>lib/http: detach method setHeaders from Client</title>
<updated>2022-01-30T09:56:50Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-01-30T09:56:50Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=d60135a97783a59dce0a4552ceded1f53172f25c'/>
<id>urn:sha1:d60135a97783a59dce0a4552ceded1f53172f25c</id>
<content type='text'>
This will allow calling setHeaders without instance of Client.
</content>
</entry>
<entry>
<title>lib/http: change the test port for testing HTTP server</title>
<updated>2022-01-30T09:55:52Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-01-30T09:55:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=0497a16f2eb545351ad9ce57ebc572588a109ff0'/>
<id>urn:sha1:0497a16f2eb545351ad9ce57ebc572588a109ff0</id>
<content type='text'>
Previously, the test port for HTTP server is set to 8080 and may conflict
with any service that running on the local (due to common use of 8080).

This changes it to 14832 and we make the full server address stored
as global variable so any tests can references it.
</content>
</entry>
<entry>
<title>lib/websocket: return error if parameter is empty on RegisterTextHandler</title>
<updated>2022-01-20T09:43:30Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-01-20T09:43:30Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=041316330c9bf6c0da07d7670e7634dfcf9813d5'/>
<id>urn:sha1:041316330c9bf6c0da07d7670e7634dfcf9813d5</id>
<content type='text'>
Previously, the RegisterTextHandler method return nil if method, target,
or handler parameter is not set.  This may cause confusion and hard to
debug handler when no connection receive but the RegisterTextHandler
does not have any error.
</content>
</entry>
<entry>
<title>lib/sql: make the table migration customizable</title>
<updated>2022-01-19T08:58:46Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-01-19T08:58:46Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=d305d1baaff3b1800be6e592de710b824ae06bc1'/>
<id>urn:sha1:d305d1baaff3b1800be6e592de710b824ae06bc1</id>
<content type='text'>
In the method Migrate() we add parameter "tableMigration" which define
the name of table where the state of migration will be saved.

If its empty default to "_migration".
</content>
</entry>
<entry>
<title>Release share v0.33.0 (2022-01-09)</title>
<updated>2022-01-09T17:02:29Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-01-09T17:02:29Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=1e73389d6444fe5216f06cfdfb3b5b614add3481'/>
<id>urn:sha1:1e73389d6444fe5216f06cfdfb3b5b614add3481</id>
<content type='text'>
Happy New Year!

Three years has passed since the first release of this multi-libraries (or Go
module), and we have released at least 33 new features with several bugs here
and there.

For anyone who use this module, I hope it help you, as the module name
intended "share", and sorry if its too many breaking changes.

Live long and prosper!
See you again next year.
</content>
</entry>
<entry>
<title>github/workflows: remove step to get dependencies</title>
<updated>2022-01-09T15:46:17Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2022-01-09T15:46:17Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=351589137091f5831034ccecd2f6772ff3b78cf8'/>
<id>urn:sha1:351589137091f5831034ccecd2f6772ff3b78cf8</id>
<content type='text'>
The Go module should handle the dependencies automatically.
</content>
</entry>
</feed>
