Skip to content

Commit

Permalink
Merge pull request #1 from influxdata/main
Browse files Browse the repository at this point in the history
Keep in parity with upstream
  • Loading branch information
amfaber authored Jul 18, 2024
2 parents 2b7a8e4 + d0e7e75 commit db67fe7
Show file tree
Hide file tree
Showing 11 changed files with 53 additions and 25 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,8 @@ jobs:
steps:
- checkout
- run:
name: Install protobuf and git
command: pacman -Sy --noconfirm protobuf git && protoc --version
name: Install protobuf and git and dependencies
command: pacman -Sy --noconfirm protobuf git gcc-libs && protoc --version
- run:
name: Regenerate descriptors
working_directory: pbjson-types
Expand Down
23 changes: 23 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Releasing

This document describes the release process for [`pbjson`], [`pbjson-types`] and
[`pbjson-build`] to crates.io.

Note that `pbjson-test` is not released as it is only used for testing.

[`pbjson`]: https://crates.io/crates/pbjson
[`pbjson-types`]: https://crates.io/crates/pbjson-types
[`pbjson-build`]: https://crates.io/crates/pbjson-build

## Step 1: Update Version

First make a PR to update the version (example [#127](https://github.com/influxdata/pbjson/issues/127))

## Step 2: Release
Run the following commands to release `pbjson`, `pbjson-types` and `pbjson-build`

```shell
cargo publish -p pbjson
cargo publish -p pbjson-build
cargo publish -p pbjson-types
```
10 changes: 5 additions & 5 deletions pbjson-build/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pbjson-build"
version = "0.6.2"
version = "0.7.0"
authors = ["Raphael Taylor-Davies <[email protected]>"]
edition = "2021"
description = "Generates Serialize and Deserialize implementations for prost message types"
Expand All @@ -10,10 +10,10 @@ categories = ["encoding"]
repository = "https://github.com/influxdata/pbjson"

[dependencies]
heck = "0.4"
prost = "0.12"
prost-types = "0.12"
itertools = "0.11"
heck = "0.5"
prost = "0.13"
prost-types = "0.13"
itertools = "0.13"

[dev-dependencies]
tempfile = "3.1"
9 changes: 7 additions & 2 deletions pbjson-build/src/generator/message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ fn write_serialize_variable<W: Write>(
writeln!(writer)?;
write!(
writer,
"{}}}).collect::<Result<Vec<_>, _>>()",
"{}}}).collect::<std::result::Result<Vec<_>, _>>()",
Indent(indent + 1)
)
}
Expand Down Expand Up @@ -316,7 +316,7 @@ fn write_serialize_variable<W: Write>(
writeln!(writer, "{}Ok((k, v))", Indent(indent + 2))?;
writeln!(
writer,
"{}}}).collect::<Result<_,_>>()?;",
"{}}}).collect::<std::result::Result<_,_>>()?;",
Indent(indent + 1)
)?;
}
Expand Down Expand Up @@ -380,6 +380,11 @@ fn write_serialize_scalar_variable<W: Write>(
"{}#[allow(clippy::needless_borrow)]",
Indent(indent)
)?;
writeln!(
writer,
"{}#[allow(clippy::needless_borrows_for_generic_args)]",
Indent(indent)
)?;
writeln!(
writer,
"{}struct_ser.serialize_field(\"{}\", {}(&{}).as_str())?;",
Expand Down
3 changes: 2 additions & 1 deletion pbjson-build/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,8 @@ impl Builder {
self.emit_fields = true;
self
}
// print integers instead of enum names.

/// Print integers instead of enum names.
pub fn use_integers_for_enums(&mut self) -> &mut Self {
self.use_integers_for_enums = true;
self
Expand Down
6 changes: 3 additions & 3 deletions pbjson-test/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
[package]
name = "pbjson-test"
version = "0.6.0"
version = "0.7.0"
authors = ["Raphael Taylor-Davies <[email protected]>"]
edition = "2021"
description = "Test resources for pbjson converion"
repository = "https://github.com/influxdata/pbjson"

[dependencies]
prost = "0.12"
prost = "0.13"
pbjson = { path = "../pbjson" }
pbjson-types = { path = "../pbjson-types" }
serde = { version = "1.0", features = ["derive"] }
Expand All @@ -24,5 +24,5 @@ chrono = "0.4"
serde_json = "1.0"

[build-dependencies]
prost-build = "0.12"
prost-build = "0.13"
pbjson-build = { path = "../pbjson-build" }
10 changes: 5 additions & 5 deletions pbjson-types/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pbjson-types"
version = "0.6.0"
version = "0.7.0"
authors = ["Raphael Taylor-Davies <[email protected]>"]
description = "Protobuf well known types with serde serialization support"
edition = "2021"
Expand All @@ -13,13 +13,13 @@ exclude = ["protos/*"]
[dependencies] # In alphabetical order
bytes = "1.0"
chrono = { version = "0.4", default-features = false, features = ["alloc"] }
pbjson = { path = "../pbjson", version = "0.6" }
prost = "0.12"
pbjson = { path = "../pbjson", version = "0.7" }
prost = "0.13"
serde = { version = "1.0", features = ["derive"] }

[dev-dependencies]
serde_json = "1.0"

[build-dependencies] # In alphabetical order
prost-build = "0.12"
pbjson-build = { path = "../pbjson-build", version = "0.6" }
prost-build = "0.13"
pbjson-build = { path = "../pbjson-build", version = "0.7" }
Binary file modified pbjson-types/descriptors.bin
Binary file not shown.
9 changes: 4 additions & 5 deletions pbjson-types/src/timestamp.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use crate::Timestamp;
use chrono::{DateTime, NaiveDateTime, TimeZone, Utc};
use chrono::{DateTime, Utc};
use serde::de::Visitor;
use serde::Serialize;

Expand All @@ -8,14 +8,13 @@ impl TryFrom<Timestamp> for DateTime<Utc> {
fn try_from(value: Timestamp) -> Result<Self, Self::Error> {
let Timestamp { seconds, nanos } = value;

let dt = NaiveDateTime::from_timestamp_opt(
Self::from_timestamp(
seconds,
nanos
.try_into()
.map_err(|_| "out of range integral type conversion attempted")?,
)
.ok_or("invalid or out-of-range datetime")?;
Ok(Utc.from_utc_datetime(&dt))
.ok_or("invalid or out-of-range datetime")
}
}

Expand All @@ -33,7 +32,7 @@ impl Serialize for Timestamp {
where
S: serde::Serializer,
{
let t: DateTime<Utc> = self.clone().try_into().map_err(serde::ser::Error::custom)?;
let t: DateTime<Utc> = (*self).try_into().map_err(serde::ser::Error::custom)?;
serializer.serialize_str(t.to_rfc3339().as_str())
}
}
Expand Down
2 changes: 1 addition & 1 deletion pbjson/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pbjson"
version = "0.6.0"
version = "0.7.0"
authors = ["Raphael Taylor-Davies <[email protected]>"]
edition = "2021"
description = "Utilities for pbjson conversion"
Expand Down
2 changes: 1 addition & 1 deletion rust-toolchain.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[toolchain]
channel = "1.72"
channel = "1.74"
components = ["rustfmt", "clippy"]

0 comments on commit db67fe7

Please sign in to comment.