diff --git a/.circleci/config.yml b/.circleci/config.yml index 269085f..2029eda 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,7 +4,7 @@ jobs: build: working_directory: /go/src/github.com/qri-io/starlib docker: - - image: circleci/golang:1.12 + - image: circleci/golang:latest environment: TEST_RESULTS: /tmp/test-results GO111MODULE: "on" diff --git a/CHANGELOG.md b/CHANGELOG.md index 9474f9d..0ea22fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,67 @@ +v0.4.2 +# [v0.4.2](https://github.com/qri-io/starlib/compare/v0.4.1...v0.4.2) (2020-06-29) + +This release brings a number of enhancements to the `time`, `re`, and golang-side utility packages. It also introduces two new packages: `encoding/yaml` and `hash`. Here's the docs for the two new packages: + +### yaml +yaml provides functions for working with yaml data + +#### Functions + +##### `dumps(obj) string` +serialize obj to a yaml string + +**parameters:** + +| name | type | description | +|------|------|-------------| +| `obj` | `object` | input object | + + +##### `loads(source) object` +read a source yaml string to a starlark object + +**parameters:** + +| name | type | description | +|------|------|-------------| +| `source` | `string` | input string of yaml data | + + +### hash +hash defines hash primitives for starlark. + +#### Functions + +##### `md5(string) string` +returns an md5 hash for a string + +##### `sha1(string) string` +returns an sha1 hash for a string + +##### `sha256(string) string` +returns an sha256 hash for a string + + +### Bug Fixes + +* **time:** unix() and unix_nano() returns 0 for epoch ([c50ebc2](https://github.com/qri-io/starlib/commit/c50ebc2)) + + +### Features + +* **customType:** Added support for custom type and fixed bugs ([#49](https://github.com/qri-io/starlib/issues/49)) ([c32c667](https://github.com/qri-io/starlib/commit/c32c667)), closes [#48](https://github.com/qri-io/starlib/issues/48) +* **encoding/yaml:** encoding yaml package based on gopkg.in/yaml.v2 ([68e22bc](https://github.com/qri-io/starlib/commit/68e22bc)) +* **hash:** add hash module ([686ae7b](https://github.com/qri-io/starlib/commit/686ae7b)) +* **re:** add compile function to regex package ([6fe15cd](https://github.com/qri-io/starlib/commit/6fe15cd)) +* **starlib:** util.Marshal extended compatibility and tests ([a310f83](https://github.com/qri-io/starlib/commit/a310f83)) +* **time:** Add fromtimestamp method ([4e7be49](https://github.com/qri-io/starlib/commit/4e7be49)) +* **time:** Add in_location and format methods ([316e7aa](https://github.com/qri-io/starlib/commit/316e7aa)) +* **time:** Add methods hours(), minutes(), etc to duration ([f374e23](https://github.com/qri-io/starlib/commit/f374e23)) +* **time:** Add unix and unix_nano methods ([7c32cb7](https://github.com/qri-io/starlib/commit/7c32cb7)) + + + # [v0.4.1](https://github.com/qri-io/starlib/compare/v0.4.0...v0.4.1) (2019-06-10) diff --git a/util/util_test.go b/util/util_test.go index 76b8a06..8b99c06 100644 --- a/util/util_test.go +++ b/util/util_test.go @@ -153,13 +153,19 @@ type invalidCustomType struct { type customType invalidCustomType -func (t *customType) UnmarshalStarlark(v starlark.Value) error { +var ( + _ Unmarshaler = (*customType)(nil) + _ Marshaler = (*customType)(nil) + _ starlark.Value = (*customType)(nil) +) + +func (c *customType) UnmarshalStarlark(v starlark.Value) error { // asserts if v.Type() != "struct" { return fmt.Errorf("not expected top level type, want struct, got %q", v.Type()) } if _, ok := v.(*starlarkstruct.Struct).Constructor().(*customType); !ok { - return fmt.Errorf("not expected construct type got %T, want %T", v.(*starlarkstruct.Struct).Constructor(), t) + return fmt.Errorf("not expected construct type got %T, want %T", v.(*starlarkstruct.Struct).Constructor(), c) } // TODO: refactoring transform data @@ -172,15 +178,15 @@ func (t *customType) UnmarshalStarlark(v starlark.Value) error { data := starlark.StringDict{} v.(*starlarkstruct.Struct).ToStringDict(data) - *t = customType{ + *c = customType{ Foo: mustInt64(data["foo"]), } return nil } -func (t *customType) MarshalStarlark() (starlark.Value, error) { +func (c *customType) MarshalStarlark() (starlark.Value, error) { v := starlarkstruct.FromStringDict(&customType{}, starlark.StringDict{ - "foo": starlark.MakeInt64(t.Foo), + "foo": starlark.MakeInt64(c.Foo), }) return v, nil } @@ -200,7 +206,3 @@ func (c customType) Truth() starlark.Bool { func (c customType) Hash() (uint32, error) { return 0, fmt.Errorf("unhashable: %s", c.Type()) } - -var _ Unmarshaler = (*customType)(nil) -var _ Marshaler = (*customType)(nil) -var _ starlark.Value = (*customType)(nil)