Skip to content

Commit 33fbd24

Browse files
authored
Merge pull request #48 from typesense/add-typesense-publish-workflow
Add typesense publish workflow
2 parents a7646fc + 8335914 commit 33fbd24

File tree

21 files changed

+144
-101
lines changed

21 files changed

+144
-101
lines changed

.github/workflows/release.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Publish to crates.io
2+
on:
3+
push:
4+
tags: ['v*'] # Triggers when pushing tags starting with 'v'
5+
workflow_dispatch: # Allows manual triggering of the workflow
6+
jobs:
7+
publish:
8+
runs-on: ubuntu-latest
9+
permissions:
10+
id-token: write # Required for OIDC token exchange
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: rust-lang/crates-io-auth-action@v1
14+
id: auth
15+
16+
- name: Publish typesense_derive
17+
run: cargo publish
18+
working-directory: typesense_derive
19+
20+
- name: Publish typesense_codegen
21+
run: cargo publish
22+
working-directory: typesense_codegen
23+
24+
- name: Publish typesense
25+
run: cargo publish
26+
working-directory: typesense

Cargo.toml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,17 @@ members = [
44
"typesense_derive",
55
"typesense_codegen"
66
]
7+
8+
resolver = "3"
9+
10+
[workspace.package]
11+
version = "0.3.0"
12+
edition = "2024"
13+
license = "Apache-2.0"
14+
repository = "https://github.com/typesense/typesense-rust"
15+
authors = ["Typesense <contact@typesense.org>"]
16+
17+
[workspace.dependencies]
18+
19+
typesense_derive = { path = "./typesense_derive", version = "0.3.0" }
20+
typesense_codegen = { path = "./typesense_codegen", version = "0.25.0" }

typesense/Cargo.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
[package]
22
name = "typesense"
3-
version = "0.1.0"
4-
authors = ["Typesense <contact@typesense.org>"]
5-
edition = "2018"
6-
license = "Apache-2.0"
7-
description = "WIP client for typesense"
8-
repository = "https://github.com/typesense/typesense-rust"
3+
version.workspace = true
4+
authors.workspace = true
5+
repository.workspace = true
6+
edition.workspace = true
7+
license.workspace = true
8+
description = "Client for typesense"
99

1010
[features]
1111
default = ["derive"]
@@ -24,8 +24,8 @@ hmac = "0.12"
2424
serde = { version = "1", features = ["derive"] }
2525
serde_json = "1.0"
2626
sha2 = "0.10"
27-
typesense_derive = { version = "0.1.0", path = "../typesense_derive", optional = true }
28-
typesense_codegen = { version = "0.25.0", path = "../typesense_codegen" }
27+
typesense_derive = { workspace = true, optional = true }
28+
typesense_codegen = { workspace = true }
2929

3030
[dev-dependencies]
3131
dotenvy = "0.15"

typesense/src/document.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//! A document to be indexed in a given collection must conform to the schema of the collection.
55
//!
66
use crate::collection_schema::CollectionSchema;
7-
use serde::{de::DeserializeOwned, Serialize};
7+
use serde::{Serialize, de::DeserializeOwned};
88

99
/// Trait that should implement every struct that wants to be represented as a Typesense
1010
/// Document

typesense/src/keys.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//!
33
//! More info [here](https://typesense.org/docs/0.20.0/api/api-keys.html).
44
5-
use base64::{engine::general_purpose::STANDARD as Base64Engine, Engine};
5+
use base64::{Engine, engine::general_purpose::STANDARD as Base64Engine};
66
use core::fmt;
77
use hmac::{Hmac, Mac};
88
use serde::{Deserialize, Serialize};
@@ -29,7 +29,7 @@ pub async fn generate_scoped_search_key(
2929
let digest = Base64Engine.encode(result.into_bytes());
3030

3131
let key_prefix = &key.as_ref()[0..4];
32-
let raw_scoped_key = format!("{}{}{}", digest, key_prefix, params);
32+
let raw_scoped_key = format!("{digest}{key_prefix}{params}");
3333

3434
Ok(Base64Engine.encode(raw_scoped_key.as_bytes()))
3535
}

typesense/tests/api/collection.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
use super::Config;
44
use serde::{Deserialize, Serialize};
5-
use typesense::document::Document;
65
use typesense::Typesense;
6+
use typesense::document::Document;
77
use typesense_codegen::apis::collections_api;
88
use typesense_codegen::models::{CollectionResponse, CollectionSchema};
99

typesense/tests/api/documents.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
use super::Config;
44
use serde::{Deserialize, Serialize};
5+
use typesense::Typesense;
56
use typesense::document::Document;
67
use typesense::models::SearchParameters;
7-
use typesense::Typesense;
88
use typesense_codegen::apis::documents_api;
99

1010
#[derive(Typesense, Serialize, Deserialize)]

typesense/tests/derive/collection.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use serde::{Deserialize, Serialize};
2-
use typesense::document::Document;
32
use typesense::Typesense;
3+
use typesense::document::Document;
44

55
#[test]
66
fn derived_document_generates_schema() {

typesense_codegen/Cargo.toml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
[package]
22
name = "typesense_codegen"
3-
version = "0.25.0"
4-
authors = ["OpenAPI Generator team and contributors"]
5-
description = "client for typesense generated with openapi spec"
6-
edition = "2018"
7-
license = "Apache-2.0"
3+
version = "0.25.1"
4+
description = "Types for typesense generated with openapi spec"
5+
authors.workspace = true
6+
repository.workspace = true
7+
edition.workspace = true
8+
license.workspace = true
89

910
[dependencies]
1011
serde = "^1.0"

typesense_codegen/src/apis/analytics_api.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* Generated by: https://openapi-generator.tech
99
*/
1010

11-
use super::{configuration, Error};
11+
use super::{Error, configuration};
1212
use crate::apis::ResponseContent;
1313

1414
/// struct for typed errors of method [`create_analytics_rule`]
@@ -62,7 +62,7 @@ pub async fn create_analytics_rule(
6262
if let Some(ref local_var_apikey) = local_var_configuration.api_key {
6363
let local_var_key = &local_var_apikey.key;
6464
let local_var_value = match local_var_apikey.prefix {
65-
Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
65+
Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
6666
None => local_var_key.clone(),
6767
};
6868
local_var_req_builder =
@@ -114,7 +114,7 @@ pub async fn delete_analytics_rule(
114114
if let Some(ref local_var_apikey) = local_var_configuration.api_key {
115115
let local_var_key = &local_var_apikey.key;
116116
let local_var_value = match local_var_apikey.prefix {
117-
Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
117+
Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
118118
None => local_var_key.clone(),
119119
};
120120
local_var_req_builder =
@@ -165,7 +165,7 @@ pub async fn retrieve_analytics_rule(
165165
if let Some(ref local_var_apikey) = local_var_configuration.api_key {
166166
let local_var_key = &local_var_apikey.key;
167167
let local_var_value = match local_var_apikey.prefix {
168-
Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
168+
Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
169169
None => local_var_key.clone(),
170170
};
171171
local_var_req_builder =
@@ -211,7 +211,7 @@ pub async fn retrieve_analytics_rules(
211211
if let Some(ref local_var_apikey) = local_var_configuration.api_key {
212212
let local_var_key = &local_var_apikey.key;
213213
let local_var_value = match local_var_apikey.prefix {
214-
Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
214+
Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
215215
None => local_var_key.clone(),
216216
};
217217
local_var_req_builder =

0 commit comments

Comments
 (0)