<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pakakeh.go, branch v0.58.1</title>
<subtitle>Collections of packages and tools for working with Go programming language.</subtitle>
<id>http://git.kilabit.info/pakakeh.go/atom?h=v0.58.1</id>
<link rel='self' href='http://git.kilabit.info/pakakeh.go/atom?h=v0.58.1'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/'/>
<updated>2024-12-07T06:58:11Z</updated>
<entry>
<title>Release pakakeh.go v0.58.1 (2024-12-07)</title>
<updated>2024-12-07T06:58:11Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-12-07T06:58:11Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=632c367b5ad48df8d223bab64daf2e23ceaccabb'/>
<id>urn:sha1:632c367b5ad48df8d223bab64daf2e23ceaccabb</id>
<content type='text'>
=== Enhancements

* lib/play: add custom request to run unsafe directory directly

  As exceptional, the Run and HTTPHandleRun accept the following
  request for running program inside custom "go.mod",

    {
      "unsafe_run": &lt;path&gt;
    }

  The "unsafe_run" define the path to directory relative to HTTP
  server working directory. Once request accepted it will change the
  directory into "unsafe_run" first and then run "go run ." directly.
  Go code that executed inside "unsafe_run" should be not modifiable and
  safe from mallicious execution.

* lib/play: add option to Run with specific Go version and without race

  The idea is to allow testing Go code on specific Go version.
  For example, before Go 1.22, the for loop with variable is shared
  among block statements, which cause every use of that variable is run
  with the last value.

* lib/play: expose the Timeout variable

  By exposing the Timeout, user can set their maximum time the program
  can run in their playground.
</content>
</entry>
<entry>
<title>go.mod: update all dependencies</title>
<updated>2024-12-06T18:14:57Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-12-06T18:14:57Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=bf84dfaca99f0b9c15afb705ab8bb6b92867818f'/>
<id>urn:sha1:bf84dfaca99f0b9c15afb705ab8bb6b92867818f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lib/play: add custom request to run unsafe directory directly</title>
<updated>2024-12-05T18:32:03Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-12-05T17:27:35Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=ecd9b25e75f2a5fa53af8ea0111549119858bc70'/>
<id>urn:sha1:ecd9b25e75f2a5fa53af8ea0111549119858bc70</id>
<content type='text'>
As exceptional, the Run and HTTPHandleRun accept the following
request for running program inside custom "go.mod",

{
	"unsafe_run": &lt;path&gt;
}

The "unsafe_run" define the path to directory relative to HTTP
server working directory.
Once request accepted it will change the directory into
"unsafe_run" first and then run "go run ." directly.
Go code that executed inside "unsafe_run" should be not
modifiable and safe from mallicious execution.
</content>
</entry>
<entry>
<title>lib/memfs: move compiled regex to their options</title>
<updated>2024-12-02T17:19:34Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-12-02T17:17:34Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=904296da2f93b1376d7e2f5395ad11053ec7ab59'/>
<id>urn:sha1:904296da2f93b1376d7e2f5395ad11053ec7ab59</id>
<content type='text'>
This changes move the following fields and methods from MemFS,

* incRE and excRE fields to Options,
* isIncluded and isExclude methods to Options,
* watchRE field to WatchOptions,
* isWatched method to WatchOptions.

The reason is to allow other type that use Options or WatchOptions to use
isIncluded, isExclude, or isWatched methods.
</content>
</entry>
<entry>
<title>lib/play: add option to Run with specific Go version and without race</title>
<updated>2024-11-16T09:50:51Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-11-16T08:12:48Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=a465d718b8ab7d8530e59586a60b11349f1ccc04'/>
<id>urn:sha1:a465d718b8ab7d8530e59586a60b11349f1ccc04</id>
<content type='text'>
The idea is to allow testing Go code on specific Go version.
For example, before Go 1.22, the for loop with variable is shared
among block statements, which cause every use of that variable is run
with the last value.
</content>
</entry>
<entry>
<title>lib/play: expose the Timeout variable</title>
<updated>2024-10-30T16:24:07Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-10-30T16:24:07Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=20fdd17d5202a356f1581345e73c15eb8ce1a42a'/>
<id>urn:sha1:20fdd17d5202a356f1581345e73c15eb8ce1a42a</id>
<content type='text'>
By exposing the Timeout, user can set their maximum time the program
can run in their playground.
</content>
</entry>
<entry>
<title>.github/workflows: update Go to v1.23.2</title>
<updated>2024-10-06T14:17:53Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-10-06T14:17:53Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=522a6765c9c3768e199344d2a26efe6f7e7db33e'/>
<id>urn:sha1:522a6765c9c3768e199344d2a26efe6f7e7db33e</id>
<content type='text'>
Eventhough the go.mod define go version 1.22.0, the [lib/play] use Go
version 1.23.2 for running testing.
</content>
</entry>
<entry>
<title>Release pakakeh.go v0.58.0 (2024-10-06)</title>
<updated>2024-10-06T11:42:16Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-10-06T11:42:16Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=45b111af175b39a428fd33f277b83ca8284fcf2d'/>
<id>urn:sha1:45b111af175b39a428fd33f277b83ca8284fcf2d</id>
<content type='text'>
This release update the minimum Go module to 1.22.0, the last version
supported by Go tools.

=== Breaking changes

*  lib/http: remove writing StatusNoContent on ResponseTypeNode

   To make it consistent with RequestTypeNone, the ResponseTypeNone
   should not write any response header or HTTP status code. It will be
   handled manually by [Endpoint.Call].

=== New features

*  lib/play: new package for formatting and running Go code

   Package play provides callable APIs and HTTP handlers to format and
   run Go code, similar to Go playground, but using HTTP instead of
   WebSocket.

*  lib/http: add Server method to register handler by function

   The RegisterHandleFunc register a pattern with a handler, similar to
   [http.ServeMux.HandleFunc]. The pattern follow the Go 1.22 format:

   	[METHOD] PATH

   The METHOD is optional, default to GET. The PATH must not contains
   the domain name and space. Unlike standard library, variable in PATH
   is read using ":var" not "{var}". This endpoint will accept any
   content type and return the body as is; it is up to the handler to
   read and set the content type and the response headers.

   If the METHOD and/or PATH is already registered it will panic.

*  lib/bytes: add function AppendInt64 and AppendUint64

   The AppendInt64 append an int64 value into slice of byte. The
   AppendUint64 append an uint64 value into slice of byte.
</content>
</entry>
<entry>
<title>go.mod: update all dependencies</title>
<updated>2024-10-06T11:41:42Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-10-06T11:41:42Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=f2343c644b0cc8c239991709261f46ca194c6ba0'/>
<id>urn:sha1:f2343c644b0cc8c239991709261f46ca194c6ba0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lib/play: new package for formatting and running Go code</title>
<updated>2024-10-04T10:58:49Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-09-15T17:18:39Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=483594273683e1734bdab7e20086c4c66bcc5b44'/>
<id>urn:sha1:483594273683e1734bdab7e20086c4c66bcc5b44</id>
<content type='text'>
Package play provides callable APIs and HTTP handlers to format and run
Go code, similar to Go playground, but using HTTP instead of WebSocket.
</content>
</entry>
</feed>
