{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":242828875,"defaultBranch":"main","name":"nats.rs","ownerLogin":"nats-io","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-02-24T19:51:25.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/10203055?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1722851591.0","currentOid":""},"activityList":{"items":[{"before":"e9919a0d465b3939bbb5276bcd7987db6c0785a9","after":"17e5d65fb55260d1ef50d2e190acae6138a78059","ref":"refs/heads/main","pushedAt":"2024-08-15T10:12:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Fix KV create race after delete/purge\n\nThis change fixes an issue when using a JetStream K/V store where a user\nis creating, deleting, and re-creating keys. If the last entry for a key\nis a `Operation::Delete` or `Operation::Purge`, the initial\n`self.update()` returns an error, causing the second part of the method\nto be exercised.\n\nPrior to this change, if the entry was deleted or purged a `kv.put()`\ncall is used which ignores the revision of that last entry. A single\nwriter to the K/V store would succeed (as no other writers would write\nfirst) so no problem. However, if 2 writers attempt to create a key,\nthen a second writer *could* call the `kv.put()` before the first writer\ncalls `kv.put()`. This means that *both* writers get an `Ok(revision)`\nand can assume that they won the creation of the key.\n\nWhen using a \"distributed lock\" pattern (that is many writers race to\ncreate a key and the first successful writer wins), this above scenario\nresults in potentially more than one writer who believes they have\nuniquely acquired the distributed lock.\n\nThis change replaces the `kv.put()` call to a `kv.update()` call and\nprovides the `revision` from the deleted/purged entry to ensure that no\nother writer has beaten the caller to this update. This change closes\nthe race period between concurrent writers to between the first update\nand the second update call with some optimistic write concurrency to\ndetect another writer.\n\nIt appears as though this strategy is in effect in the Go client code\n[kv.Create] implementation.\n\n[kv.Create]: https://github.com/nats-io/nats.go/blob/278f9f188bca4d7bdee283a0e98ab66b82530c60/jetstream/kv.go#L944-L963\n\nCo-authored-by: John Keiser \nSigned-off-by: Fletcher Nichol \nSigned-off-by: Fletcher Nichol ","shortMessageHtmlLink":"Fix KV create race after delete/purge"}},{"before":"f35f44ef8c693c2b7e2f2df0dd21a94b1f4bc0d3","after":"fcd87c0757ebdfa11b113319b977d7b95af877a8","ref":"refs/heads/add-stream-message","pushedAt":"2024-08-05T09:53:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Rework get_raw_message to return `StreamMessage`\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Rework get_raw_message to return StreamMessage"}},{"before":"29f76e8bf9aff8e16b88834cabb162a4185eaafe","after":null,"ref":"refs/heads/fix-stream-serde-roundtrip","pushedAt":"2024-08-05T09:53:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"}},{"before":"966df7c09be088db02a23ad7e570022d6e1becf6","after":"e9919a0d465b3939bbb5276bcd7987db6c0785a9","ref":"refs/heads/main","pushedAt":"2024-08-05T09:53:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Fix serde Stream roundtrip\n\nIf someone does a serde serialize/deserialize roundtrip with\r\njetstream::stream::Stream, it will result in error, as then\r\n`ConsumerLimits` will be `null`.\r\nThis should not happen in real-world scenarios, as server does not send\r\nnulls for those values, however its good to protect against those\r\nscenarios in case Go/nats-server changes its behaviour as some point in time.\r\n\r\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Fix serde Stream roundtrip"}},{"before":"5c26287f74b79eb6eca1b2471ce546e785ae8533","after":"29f76e8bf9aff8e16b88834cabb162a4185eaafe","ref":"refs/heads/fix-stream-serde-roundtrip","pushedAt":"2024-08-05T03:28:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Fix lint\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Fix lint"}},{"before":"bfaaf5d658a3546ef5e6a5479b66e223968d5162","after":"966df7c09be088db02a23ad7e570022d6e1becf6","ref":"refs/heads/main","pushedAt":"2024-08-05T03:27:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Create header name/value from String without reallocating","shortMessageHtmlLink":"Create header name/value from String without reallocating"}},{"before":null,"after":"5c26287f74b79eb6eca1b2471ce546e785ae8533","ref":"refs/heads/fix-stream-serde-roundtrip","pushedAt":"2024-08-02T13:35:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Fix serde Stream roundtrip\n\nIf someone does a serde serialize/deserialize roundtrip with\njetstream::stream::Stream, it will result in error, as then\n`ConsumerLimits` will be `null`.\nThis should not happen in real-world scenarios, as server does not send\nnulls for those values, however its good to protect against those\nscenarios in case Go/nats-server changes its behaviour as some point in time.\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Fix serde Stream roundtrip"}},{"before":"3b944253066dac64d6b65c7bcbf460521f6c8dd4","after":"f35f44ef8c693c2b7e2f2df0dd21a94b1f4bc0d3","ref":"refs/heads/add-stream-message","pushedAt":"2024-08-02T07:58:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Rework get_raw_message to return `StreamMessage`\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Rework get_raw_message to return StreamMessage"}},{"before":null,"after":"b95911ec574122a11057bc59e4ac451bf83db919","ref":"refs/heads/batch-get","pushedAt":"2024-08-02T05:49:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Add get batch\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Add get batch"}},{"before":"2685f9079fbbd7bcafc44bb35957ebc39b9bb69a","after":null,"ref":"refs/heads/bump-go","pushedAt":"2024-07-30T12:33:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"}},{"before":"65efcc2bc4f1c50489d85fcd49b4c84277198834","after":"bfaaf5d658a3546ef5e6a5479b66e223968d5162","ref":"refs/heads/main","pushedAt":"2024-07-30T12:33:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Bump go version in benchmarks\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Bump go version in benchmarks"}},{"before":"e6ccc7391e06f0139e09d2fe261d33126c81e548","after":"2685f9079fbbd7bcafc44bb35957ebc39b9bb69a","ref":"refs/heads/bump-go","pushedAt":"2024-07-30T09:09:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Bump go version in benchmarks\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Bump go version in benchmarks"}},{"before":null,"after":"e6ccc7391e06f0139e09d2fe261d33126c81e548","ref":"refs/heads/bump-go","pushedAt":"2024-07-30T09:09:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Bump go version in benchmarks\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Bump go version in benchmarks"}},{"before":"d66da262684cd0a5396fb46a6973497c6e3c93d0","after":null,"ref":"refs/heads/add-bsd-2","pushedAt":"2024-07-30T08:06:28.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"}},{"before":"36ae95facc5fc63a7acad2d3af2d988c5d6ded92","after":"65efcc2bc4f1c50489d85fcd49b4c84277198834","ref":"refs/heads/main","pushedAt":"2024-07-30T08:06:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Add BSD-2-Clause to allowed licenses\n\nAs we allow BSD-3-Clause, there is no point in denying BSD-2-Clause\nin our dependencies, as it less restrictive.\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Add BSD-2-Clause to allowed licenses"}},{"before":null,"after":"d66da262684cd0a5396fb46a6973497c6e3c93d0","ref":"refs/heads/add-bsd-2","pushedAt":"2024-07-30T06:05:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Add BSD-2-Clause to allowed licenses\n\nAs we allow BSD-3-Clause, there is no point in denying BSD-2-Clause\nin our dependencies, as it less restrictive.\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Add BSD-2-Clause to allowed licenses"}},{"before":"5a712b1c19c327045767ae34e03f52ae6a7fb24a","after":null,"ref":"refs/heads/add-stream-by-name","pushedAt":"2024-07-26T15:46:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"}},{"before":"ee03622019d0a89681788a7a9c4fc907475823cc","after":"36ae95facc5fc63a7acad2d3af2d988c5d6ded92","ref":"refs/heads/main","pushedAt":"2024-07-26T15:46:06.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Bump time crate version\n\nVersion 0.3.24 was causing error on minimal versions check:\n\n```\n --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/time-0.3.24/src/format_description/parse/mod.rs:83:9\n |\n83 | let items = format_items\n | ^^^^^\n...\n86 | Ok(items.into())\n | ---- type must be known at this point\n |\nhelp: consider giving `items` an explicit type, where the placeholders `_` are specified\n |\n83 | let items: Box<_> = format_items\n | ++++++++\n```\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Bump time crate version"}},{"before":"9ee8cd9d641380670b49d4bc792ed2da0ef59b68","after":"5a712b1c19c327045767ae34e03f52ae6a7fb24a","ref":"refs/heads/add-stream-by-name","pushedAt":"2024-07-26T15:19:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Bump time crate version\n\nVersion 0.3.24 was causing error on minimal versions check:\n\n```\n --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/time-0.3.24/src/format_description/parse/mod.rs:83:9\n |\n83 | let items = format_items\n | ^^^^^\n...\n86 | Ok(items.into())\n | ---- type must be known at this point\n |\nhelp: consider giving `items` an explicit type, where the placeholders `_` are specified\n |\n83 | let items: Box<_> = format_items\n | ++++++++\n```\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Bump time crate version"}},{"before":"139749d7a64fef66058e9794c8f0c1763372a0ab","after":"9ee8cd9d641380670b49d4bc792ed2da0ef59b68","ref":"refs/heads/add-stream-by-name","pushedAt":"2024-07-26T12:32:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Bump time crate version\n\nVersion 0.3.24 was causing error on minimal versions check:\n\n```\n --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/time-0.3.24/src/format_description/parse/mod.rs:83:9\n |\n83 | let items = format_items\n | ^^^^^\n...\n86 | Ok(items.into())\n | ---- type must be known at this point\n |\nhelp: consider giving `items` an explicit type, where the placeholders `_` are specified\n |\n83 | let items: Box<_> = format_items\n | ++++++++\n```\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Bump time crate version"}},{"before":"7d06700a083325d07b7c817eda0685fc5ad1d323","after":"139749d7a64fef66058e9794c8f0c1763372a0ab","ref":"refs/heads/add-stream-by-name","pushedAt":"2024-07-25T19:50:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Bump msrv\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Bump msrv"}},{"before":"be30b3e3a4274d9d9df8f8178bdda5af4312b3a2","after":"7d06700a083325d07b7c817eda0685fc5ad1d323","ref":"refs/heads/add-stream-by-name","pushedAt":"2024-07-25T10:08:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Bump msrv\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Bump msrv"}},{"before":"9be082a98a451a5b1f1b701c709a1752df8f56de","after":"be30b3e3a4274d9d9df8f8178bdda5af4312b3a2","ref":"refs/heads/add-stream-by-name","pushedAt":"2024-07-25T09:33:49.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Validate Subject in stream_by_subject\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Validate Subject in stream_by_subject"}},{"before":null,"after":"9be082a98a451a5b1f1b701c709a1752df8f56de","ref":"refs/heads/add-stream-by-name","pushedAt":"2024-07-25T08:49:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Add stream_by_subject\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Add stream_by_subject"}},{"before":"9038c77c1fb3a9ad0db3db7b674e2836bf7390e4","after":"2c4242c7e261e31650ef4f5baffc76395e4f3968","ref":"refs/heads/add-backpressure-to-publish","pushedAt":"2024-07-24T18:55:00.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Fix test\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Fix test"}},{"before":"1e4bbe7d6e906e23c4021d8aa9d8dc6db85ba8f5","after":"9038c77c1fb3a9ad0db3db7b674e2836bf7390e4","ref":"refs/heads/add-backpressure-to-publish","pushedAt":"2024-07-24T14:36:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Add docs and more builder options\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Add docs and more builder options"}},{"before":"7c99d7f6f2b2bd30b44b151697ae79ae1c5e5b6e","after":"1e4bbe7d6e906e23c4021d8aa9d8dc6db85ba8f5","ref":"refs/heads/add-backpressure-to-publish","pushedAt":"2024-07-24T13:38:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Add context builder\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Add context builder"}},{"before":"4985a53c2d0fe6e23523c7af8d5d30e21946b068","after":"7c99d7f6f2b2bd30b44b151697ae79ae1c5e5b6e","ref":"refs/heads/add-backpressure-to-publish","pushedAt":"2024-07-23T13:13:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Properly await for_each_concurrent\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Properly await for_each_concurrent"}},{"before":"ee03622019d0a89681788a7a9c4fc907475823cc","after":"4985a53c2d0fe6e23523c7af8d5d30e21946b068","ref":"refs/heads/add-backpressure-to-publish","pushedAt":"2024-07-23T11:19:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Add publish ack default and handled backpressure\n\nSigned-off-by: Tomasz Pietrek ","shortMessageHtmlLink":"Add publish ack default and handled backpressure"}},{"before":null,"after":"ee03622019d0a89681788a7a9c4fc907475823cc","ref":"refs/heads/add-backpressure-to-publish","pushedAt":"2024-07-23T11:18:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Jarema","name":"Tomasz Pietrek","path":"/Jarema","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7369771?s=80&v=4"},"commit":{"message":"Fix `subscription_capacity` documenttion default value","shortMessageHtmlLink":"Fix subscription_capacity documenttion default value"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEmxRmkQA","startCursor":null,"endCursor":null}},"title":"Activity ยท nats-io/nats.rs"}