My migration of packges out of the Tideland GoLib into individual and thematic better grouped repositories is almoste done, only few ones missing. Here I so far didn’t care much for package versioning and dependencies, only semantic versioned releases with according tags. But now Russ Cox presented his ideas about a new approach called vgo. This idea after some more specification and discussion now also reached the Go Blog as official proposal.
Since I published that I’ll discontinue the good old GoLib I sadly didn’t wrote a lot, sorry. But that doesn’t mean that nothing happened. First due to own needs GoAudit for tests growed to v5.2.1. asserts and generating have been improved, the output of asserts is now more compatible with standard editors. So navigation to failing tests is more simple. And with capture a package to fetch stdout and stderr output has been added.
One of the new projects created based on the GoLib is GoTogether. It is focussed on concurrency by migrating the loop package for backend loops but also with the new actor package for easy actor implementations and the sentinel package for grouping the control of goroutines. Now the v1.0.0 has been released. I hope you like it. More about the project at PROJECTS → GoTogether.
Yes, the Go Library will be discontinued. And there will be several changes more. But hey, don’t panic. 😄 Reason behind it is, that the Go Library has grown too much over time. And sadly all the contained packages cover very different and independent areas. So as a result I already migrated the former Go Library Cells into the GoCells and the Go Library Web into the GoREST project. Additionally GoCouch already directly has been started as own project as well currently the Redis client moves into GoRedis.
Once again a little bugfix for the Go REST Server Library. The last fix also already made a not backward compatible function renaming of jwt.AddTokenToRequest() to jwt.AddToRequest(). Reason has been that the part Token is redundant through the package name. Now both are available but the old one has a comment marking it as deprecated. More about the project at PROJECTS → Go REST Server Library.
It’s only a minor fix regarding status codes. So far calling a handler with an unsupported (unimplemented) the status code 500 (internal server error) has been returned. More correct in the sense of RESTful APIs is instead the status code 405 (method not allowed). This code is now returned. More about the project at PROJECTS → Go REST Server Library.
This bugfix release for the Tideland Go Library affects three packages. The first one is only a small documentation typo in gjp, nothing worth this release. But the second one is in logger. Here I had a test logger as backend in the tests. This now became helpful in other tests too. So I moved it together with helpful methods for testing as TestLogger into the public package itself. The TestLogger embeds the standard Logger interface but also provides
Until version 2.0 the CouchDB used views and here map/reduce to provide access to groups of documents. Today there’s also the find request using Mango Queries to find the decuments of interest. With the latest beta update the Tideland Go CouchDB Client contains the find package to create these queries the Go way and perform flexible parametrized requests to find the documents you want. Imagine a database containing documents with documents describing persons with their age and their activity state.
Sadly needed to release a fix short time after the version 4.24.0 of the Tideland Go Library. We’ve detected troubles of the gjp parsing and processing documents containing empty arrays. Funnily fixing this bug led to a better internal design. 😄 More about the project at PROJECTS → Go Library.
It has been quiet around the Go Cells since some time. But it’s alive and in change. Currently it’s making good progress towards the new major version 6.0.0. One important change here is the introduction of Queues for the transportation of events. Right now there’s only one implementation using channels as before. But the idea is to add other ones for distributed cells later. And to achieve this also the Payload format had to be changed and some other in-memory techniques like Scene had to be removed.