1.0.0 (2023-03-14)
Breaking Changes
- SortedSetFetch ByIndex and ByScore & response Value methods (#241) (9e14418)
* feat!: SortedSetFetch
* Added ByIndex, ByScore options
* feat!: Add SortedSetFetchHit.ValueStringElements and ValueStringBytes
Make the struct members private.
* feat!: Replace ElemField/ElemValue with Field/Value
This is the last place that prefixes with "Elem" or "Element".
* feat!: Element -> DictionaryElement
To distinguish from all the other elements.
* fix: prepareDictionaryElements typo
Co-authored-by: pgautier404 <pgautier404@users.noreply.github.com>
* doc: Reword the DictionaryElement docs.
---------
Co-authored-by: pgautier404 <pgautier404@users.noreply.github.com>
* SortedSetGetScoresHit
* Make members private
* Add Scores() accessor
* SortedSetScoreElement -> SortedSetGetScore
* They're not elements, and they're not just scores.
* feat!: SortedSetGetRankHit.Rank() and uint64 type conversion.
* feat!: SortedSetGetRank takes Value, SortedSetGetScores takes Values.
* feat!: SortedSetIncrementScoreSuccess is a type conversion. Add Score().
* feat!: SortedSetRemove takes only values.
A sorted set can be deleted with `client.Delete(collectionName)`.
- Rename SortedSetGetScore -> SortedSetGetScores (#227) (5debbbb)
Also fix the sorted set example.
* SortedSetGetScore -> SortedSetGetScores
* SortedSetScoreHit -> SortedSetScore
* Now it can be used by any sorted set score.
* SortedSetScore now a simple float64.
* Makes using it simpler. `SortedSetScore(123)`
- Change SortedSet for the new protocol buffers. (#215) (7d12824)
- Topics use the normal String and Bytes types. (#205) (1a7977c)
Topics needs to be future proofed against taking different types than other methods, but it doesn't need its own bespoke types.
* feat!: Do not expose AsBytes()
* refactor: Make our String or Bytes interface more intuitive to users.
Name it from the POV of the user passing things in, not from what is
received.
Bytes -> StringOrBytes
RawBytes -> Bytes
StringBytes -> String
* feat!: String("string") and Bytes([]bytes("abc"))
* Add a type alias for keys.
* feat!: CreateCache and DeleteCache return a response.
* feat!: ListCaches() returns an interface and has a ListCacheSuccess struct.
There's an argument to be made that it's silly to make the user check the
type of ListCaches() since it's *probably* only going to ever be one type,
but that's the pattern for this interface.
As per the Valentines Day Name Massacre.
* refactor: Extract basic types to their own file.
* refactor: Consolidate requests and responses into one file per method.
* refactor: Move the ScsDataClient into momento, make it private.
* refactor: Move the common request code into scsDataClient
* feat!: Remove the ScsClient interface.
* feat!: Change the return type from NewSimpleCacheClient to a pointer.
* fix: Only convert unknown response type errors to unknown.
* feat!: Rename pubsub methods and repsonses to conform to the TypeAction style.
* feat!: Remove exposing that Subscription is an interface.
* chore: Add a utility for converting the collectionTtl to GRPC args.
* refactor: Change the control receivers to a value.
* test: Remove the local server pubsub test, avoids a duplicate client.
* chore: Add a template file for making more requesters.
* retain the list example, even if lists aren't implemented yet
Feature
- release 1.0 (#284) (10d1166)
- Split sortedSetFetch up into ByRank and ByScore functions (#280) (cd60db3)
- implement
sortedSetRemoveElement
(#267) (01c9adf)
- add logrus logging example (#265) (ec8b864)
- implement
sortedSetPutElement
(#266) (9227dd7)
- More tweaks to logging API (#264) (47cebfe)
- tweaks to how we configure logging (#257) (7849dea)
- use "rank" terminology consistently for sorted sets (#252) (d622189)
- add
UpdateTtl
(#250) (aa5c628)
- add ping (#249) (2121789)
- SortedSetGetRank Order argument. (#246) (650a65e)
- add key exists (#243) (098f4ae)
- add set contains elements (#240) (a2a51d3)
- adds retry interceptor (#223) (847f4dd)
- removes maxIdle and maxSessionMem from client config for now (#216) (f315d6b)
- breaks topic client into standalone client (#213) (078ccc4)
- handle h2 go-away from server for topic stream (#151) (b9bf2dc)
- Recognize pubsub heartbeat (#141) (7464588)
- throw invalid argument err if score increment amount is not passed or 0 (#142) (dc684bc)
- Improve the "unexpected GRPC response error" (#131) (abd4c59)
- update sorted set increment name (#138) (337c90f)
- adds interface for SimpleCacheClient (#125) (e003656)
- Change back to returning responses as pointers (#121) (f5489e9)
- adds sorted set initial impl in incubating (#90) (f41ec5b)
- add simple logger (#67) (fc11cbb)
- updates examples with new response types (#80) (87784ad)
- adds types for keys and values (#78) (20d4d47)
- rework response types to use interface and allow user to pass []byte or string messages to a topic (#72) (896ef56)
- makes clientside timeout setting name consistent w/ type (#65) (03fc249)
- get sdk response types up to standards (#63) (3b183c8)
- adds standard momento client configuration (#58) (b299589)
- makes incubating package inherit cache functionality (#57) (f8b2270)
- add credential provider (#55) (9155ba3)
- break out incubating package and adds basic pubsub support (#42) (063229f)
- adds New Cache Delete Item API (#27) (cb56f3f)
- add support for signing keys APIs (#25) (1556f83)
- usability improvements and testing updates (#15) (8ecd287)
- adds customer facing MomentoError wrapper (#14) (3b37174)
- initial impl of customer golang SDK for simple cache (a333c8a)
- pass struct to functions instead of indivisual values; chore: update test; chore: separate external and internal responses and requests; (f697f89)
Bug Fixes
- use Noop logger for testing (#274) (573acd4)
- simplify abstractions involved in sorted set get score (#276) (e1728ee)
- add
SortedSetRemoveElement
to cache interface (#271) (ea0fc3c)
- default logger wasn't spreading varargs properly (#268) (128f884)
- fixes to some minor misc issues (#263) (339ef14)
- export LogLevel (#253) (9da6827)
- All values can be blank. (#247) (de28bcd)
- fix version requirements in docs and go.mod (#244) (cc999de)
- fix misleading info in example (#230) (d00828e)
- use alternative data structure for dict ops (#224) (021ef38)
- missed refactoring get responses somehow (#228) (a22ee39)
- navigable auth and config packages (#217) (d10fa12)
- Examples for recent changes. (#211) (904574a)
- Topic name and cache validation (#201) (a223cc5)
- add validation to 'prepare' methods in requestor (#200) (cc0ced3)
- Remove references to TEST_CACHE_NAME (#199) (b882550)
- inspect single field response to determine hit or miss (#164) (bfb768b)
- fix return type for TopicPublish (#163) (e46370e)
- update usage examples to remove obsolete error check (#162) (f9ac0e5)
- add missing error codes and fix mappings (#160) (38d78c3)
- add testing for sets and some type fixes (#159) (a8d215f)
- Rewrite the tests using Ginkgo and Gomega, fix some bugs. (#147) (4e5b6df)
- Update golang.org/x/net for minor security vulnerability. (#149) (7fe35b6)
- Make sure the pubsub tests clean up after themselves even if they fail. (#139) (ba50db9)
- return value not being sent back for sorted set increment (#134) (b38b95b)
- sorted set remove request (#133) (8370836)
- Ensure tests clean up their caches. (#120) (226deee)
- make sure context is the first argumnet when it's passed (#123) (a9b6a5b)
- refactor list operations (#122) (5238a47)
- Set the output when generating the contributing file. (#118) (8e49f48)
- No need for a token when checking out. (#108) (514ec89)
- Manual release passing wrong args to shared test action. (#107) (b250004)
- Marked the wrong PHONY in the Makefile. (#96) (f715ae5)
- Push to main. (#93) (3f00f80)
- ignore discontinuity messages for now (#69) (1e94541)
- proto generate command in readme (#28) (721c064)
- update manual release workflow to make sure to wait for release job (#18) (d1e430b)
- remove unnecessary setUp function call from the test; fix: rename to err (1589712)
- update if statement to determine cache already exists in test; chore: remove unused structs from external responses (5e6a882)
- cyclic import issue (f3d4739)
- use TestMain to handle setup and teardown (3bd8740)
- collaps var and const in () (53d01df)
- update SimpleCacheClient to take a struct pointer (96c213f)
- remove verbose variables; fix: pass struct pointer to functions (6274d0c)
- remove tests package and move the test to the relevant package (5fe74f5)
- rename TEST_CACHE_NAME (fbb8eb6)
- only err for any errors returned; fix: use error constant; fix: rename git action (d5bfcc2)
- restructure repo to only expose momento package (0c771e3)
- use testing Error method instead of log Fatal method; fix: remove redundant Sprint (6c45f04)
- update GrpcErrorConverter; chore: update happy path test to include TestCacheName (1e44e5b)
- add grpc error handling to provide more descriptive errors; fix: make CacheInfo public and modify a few methods; fix: remove import aliases; fix: make Close function return one error; (9e2347e)
- update lint_format_pr.yml (f0be5f1)
- add gofmt command (da3316a)
- defer cancel for context (9c94d89)
- make ScsControlClient and ScsDataClient fields private (cdb2f60)
- pull out context timeout into constants (9f37829)
- pull out addHeadersInterceptor (a644e4d)
- rename control/data clients methods to use the same method names as simple cache client; fix: add a new line at the end of the files (2dfe1cc)
- stop parsing ECacheResult OK (0e383a8)
- make import alias more meaningful (11e97d5)
Documentation
- macos contributing note about go path (#255) (ef6d66c)
- Correct min Go version. Provide a more realistic error handling example. (#154) (d3b6bcb)
- Update the README about how to run the examples. (#132) (798a2e9)
- Add a CONTRIBUTING template. (#112) (0f385fe)
Tests
Code Refactoring
- rename
SortedSetPut
to SortedSetPutElements
(#258) (02d9460)
- rename
SortedSetRemove
to SortedSetRemoveElements
(#259) (ba57054)
- Extract test shared context (#166) (fd16489)
- Remove now unused list requests and responses in models. (#145) (7c64f93)
- common.go -> requester.co (#128) (69b2ffb)
- Remove old pubsub and sorted set requests and responses. (#117) (82fdf46)
Chores
wip
- try to separate internal and external responses and requests (a907881)