mirror of
https://github.com/kjuulh/dagger-rs.git
synced 2025-08-17 20:53:29 +02:00
Compare commits
2 Commits
dagger-sdk
...
dagger-sdk
Author | SHA1 | Date | |
---|---|---|---|
04990247ba
|
|||
978ede68ae |
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -245,7 +245,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "dagger-codegen"
|
||||
version = "0.2.4"
|
||||
version = "0.2.5"
|
||||
dependencies = [
|
||||
"convert_case",
|
||||
"dagger-core 0.2.2",
|
||||
@@ -347,7 +347,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "dagger-sdk"
|
||||
version = "0.2.7"
|
||||
version = "0.2.8"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"dagger-core 0.2.2",
|
||||
|
@@ -5,6 +5,53 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## v0.2.5 (2023-02-19)
|
||||
|
||||
### New Features
|
||||
|
||||
- <csr-id-978ede68ae52f5b5150a2aa45b8d6e1fbbbee2f4/> add documentation strings
|
||||
- <csr-id-9be6f435d9ea39f31a8906e55dbd3e8b1e5ec598/> Use async runtime instead of blocking.
|
||||
Default to using async runtime instead of blocking. I.e.
|
||||
|
||||
```rust
|
||||
fn main() -> eyre::Result<()> {
|
||||
// ...
|
||||
|
||||
client.container().from("rust").publish("somewhere")?;
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
// to
|
||||
|
||||
async fn main() -> eyre::Result<()> {
|
||||
// ...
|
||||
|
||||
client.container().from("rust").publish("somewhere").await?;
|
||||
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
### Commit Statistics
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
- 2 commits contributed to the release.
|
||||
- 2 commits were understood as [conventional](https://www.conventionalcommits.org).
|
||||
- 0 issues like '(#ID)' were seen in commit messages
|
||||
|
||||
### Commit Details
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
<details><summary>view details</summary>
|
||||
|
||||
* **Uncategorized**
|
||||
- add documentation strings ([`978ede6`](https://github.com/kjuulh/dagger-rs/commit/978ede68ae52f5b5150a2aa45b8d6e1fbbbee2f4))
|
||||
- Use async runtime instead of blocking. ([`9be6f43`](https://github.com/kjuulh/dagger-rs/commit/9be6f435d9ea39f31a8906e55dbd3e8b1e5ec598))
|
||||
</details>
|
||||
|
||||
## v0.2.4 (2023-02-19)
|
||||
|
||||
### New Features
|
||||
@@ -51,7 +98,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
- 5 commits contributed to the release.
|
||||
- 6 commits contributed to the release.
|
||||
- 5 commits were understood as [conventional](https://www.conventionalcommits.org).
|
||||
- 0 issues like '(#ID)' were seen in commit messages
|
||||
|
||||
@@ -62,6 +109,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
<details><summary>view details</summary>
|
||||
|
||||
* **Uncategorized**
|
||||
- Release dagger-sdk v0.2.5, dagger-codegen v0.2.4 ([`f727318`](https://github.com/kjuulh/dagger-rs/commit/f72731807d8358fdb3d80432136b7a08bb7b1773))
|
||||
- cargo clippy ([`c627595`](https://github.com/kjuulh/dagger-rs/commit/c627595fd2695e236924175d137c42f1480ccd6b))
|
||||
- without Some in _opts functions ([`f29ff83`](https://github.com/kjuulh/dagger-rs/commit/f29ff836cfd72d5e051ca6a71a230ba1e9933091))
|
||||
- with _opts methods ([`9762da8`](https://github.com/kjuulh/dagger-rs/commit/9762da895a164e30c5dc60e89a83e934ceae47ab))
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "dagger-codegen"
|
||||
version = "0.2.4"
|
||||
version = "0.2.5"
|
||||
edition = "2021"
|
||||
readme = "README.md"
|
||||
license-file = "LICENSE.MIT"
|
||||
|
@@ -64,9 +64,11 @@ pub fn format_function(funcs: &CommonFunctions, field: &FullTypeFields) -> Optio
|
||||
.pipe(|t| &t.type_ref)
|
||||
.pipe(|t| render_output_type(funcs, t));
|
||||
|
||||
if let Some((args, true)) = args {
|
||||
if let Some((args, desc, true)) = args {
|
||||
let required_args = format_required_function_args(funcs, field);
|
||||
Some(quote! {
|
||||
$(field.description.pipe(|d| format_struct_comment(d)))
|
||||
$(&desc)
|
||||
$(&signature)(
|
||||
$(required_args)
|
||||
) -> $(output_type.as_ref()) {
|
||||
@@ -77,6 +79,8 @@ pub fn format_function(funcs: &CommonFunctions, field: &FullTypeFields) -> Optio
|
||||
$(render_execution(funcs, field))
|
||||
}
|
||||
|
||||
$(field.description.pipe(|d| format_struct_comment(d)))
|
||||
$(&desc)
|
||||
$(&signature)_opts$(lifecycle)(
|
||||
$args
|
||||
) -> $(output_type) {
|
||||
@@ -90,8 +94,10 @@ pub fn format_function(funcs: &CommonFunctions, field: &FullTypeFields) -> Optio
|
||||
})
|
||||
} else {
|
||||
Some(quote! {
|
||||
$(field.description.pipe(|d| format_struct_comment(d)))
|
||||
$(if let Some((_, desc, _)) = &args => $desc)
|
||||
$(signature)(
|
||||
$(if let Some((args, _)) = args => $args)
|
||||
$(if let Some((args, _, _)) = &args => $args)
|
||||
) -> $(output_type) {
|
||||
let mut query = self.selection.select($(quoted(field.name.as_ref())));
|
||||
|
||||
@@ -268,7 +274,8 @@ fn format_function_args(
|
||||
funcs: &CommonFunctions,
|
||||
field: &FullTypeFields,
|
||||
lifecycle: Option<&rust::Tokens>,
|
||||
) -> Option<(rust::Tokens, bool)> {
|
||||
) -> Option<(rust::Tokens, rust::Tokens, bool)> {
|
||||
let mut argument_description = Vec::new();
|
||||
if let Some(args) = field.args.as_ref() {
|
||||
let args = args
|
||||
.into_iter()
|
||||
@@ -281,6 +288,18 @@ fn format_function_args(
|
||||
let t = funcs.format_input_type(&s.input_value.type_);
|
||||
let n = format_struct_name(&s.input_value.name);
|
||||
|
||||
if let Some(desc) = s.input_value.description.as_ref().and_then(|d| {
|
||||
if d != "" {
|
||||
Some(write_comment_line(&format!("* `{n}` - {}", d)))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}) {
|
||||
argument_description.push(quote! {
|
||||
$(desc)
|
||||
});
|
||||
}
|
||||
|
||||
Some(quote! {
|
||||
$(n): $(t),
|
||||
})
|
||||
@@ -294,15 +313,34 @@ fn format_function_args(
|
||||
};
|
||||
|
||||
if type_field_has_optional(field) {
|
||||
let field_name = field_options_struct_name(field);
|
||||
argument_description.push(quote! {
|
||||
$(field_name.pipe(|_| write_comment_line(&format!("* `opt` - optional argument, see inner type for documentation, use <func>_opts to use"))))
|
||||
});
|
||||
|
||||
let description = quote! {
|
||||
$(if argument_description.len() > 0 => $(format!("/// ")))
|
||||
$(if argument_description.len() > 0 => $(format!("/// # Arguments")))
|
||||
$(if argument_description.len() > 0 => $(format!("/// ")))
|
||||
$(for arg_desc in argument_description join ($['\r']) => $arg_desc)
|
||||
};
|
||||
|
||||
Some((
|
||||
quote! {
|
||||
$(required_args)
|
||||
opts: $(field_options_struct_name(field))$(lifecycle)
|
||||
opts: $(field_name)$(lifecycle)
|
||||
},
|
||||
description,
|
||||
true,
|
||||
))
|
||||
} else {
|
||||
Some((required_args, false))
|
||||
let description = quote! {
|
||||
$(if argument_description.len() > 0 => $(format!("/// ")))
|
||||
$(if argument_description.len() > 0 => $(format!("/// # Arguments")))
|
||||
$(if argument_description.len() > 0 => $(format!("/// ")))
|
||||
$(for arg_desc in argument_description join ($['\r']) => $arg_desc)
|
||||
};
|
||||
Some((required_args, description, false))
|
||||
}
|
||||
} else {
|
||||
None
|
||||
@@ -358,3 +396,36 @@ pub fn format_optional_args(
|
||||
.pipe(|t| render_optional_field_args(funcs, t))
|
||||
.flatten()
|
||||
}
|
||||
|
||||
pub fn write_comment_line(content: &str) -> Option<rust::Tokens> {
|
||||
let cnt = content.trim();
|
||||
if cnt == "" {
|
||||
return None;
|
||||
}
|
||||
|
||||
let mut tokens = rust::Tokens::new();
|
||||
|
||||
for line in content.split('\n') {
|
||||
tokens.append(format!("/// {}", line.trim()));
|
||||
tokens.push();
|
||||
}
|
||||
|
||||
Some(tokens)
|
||||
}
|
||||
|
||||
pub fn format_struct_comment(desc: &str) -> Option<rust::Tokens> {
|
||||
let lines = desc.trim().split("\n");
|
||||
|
||||
let formatted_lines = lines
|
||||
.into_iter()
|
||||
.map(write_comment_line)
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
if formatted_lines.len() > 0 {
|
||||
Some(quote! {
|
||||
$(for line in formatted_lines join($['\r']) => $line)
|
||||
})
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@ use itertools::Itertools;
|
||||
use crate::functions::{type_ref_is_optional, CommonFunctions};
|
||||
use crate::rust::functions::{
|
||||
field_options_struct_name, format_function, format_name, format_optional_args,
|
||||
format_struct_name,
|
||||
format_struct_comment, format_struct_name,
|
||||
};
|
||||
use crate::utility::OptionExt;
|
||||
|
||||
@@ -85,6 +85,7 @@ pub fn render_optional_field_args(
|
||||
contains_lifetime = true;
|
||||
}
|
||||
quote! {
|
||||
$(a.description.pipe(|d| format_struct_comment(d)))
|
||||
#[builder(setter(into, strip_option))]
|
||||
pub $(format_struct_name(&a.name)): Option<$(type_)>,
|
||||
}
|
||||
|
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## v0.2.8 (2023-02-19)
|
||||
|
||||
### New Features
|
||||
|
||||
- <csr-id-978ede68ae52f5b5150a2aa45b8d6e1fbbbee2f4/> add documentation strings
|
||||
|
||||
### Commit Statistics
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
- 1 commit contributed to the release.
|
||||
- 1 commit was understood as [conventional](https://www.conventionalcommits.org).
|
||||
- 0 issues like '(#ID)' were seen in commit messages
|
||||
|
||||
### Commit Details
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
<details><summary>view details</summary>
|
||||
|
||||
* **Uncategorized**
|
||||
- add documentation strings ([`978ede6`](https://github.com/kjuulh/dagger-rs/commit/978ede68ae52f5b5150a2aa45b8d6e1fbbbee2f4))
|
||||
</details>
|
||||
|
||||
## v0.2.7 (2023-02-19)
|
||||
|
||||
### Documentation
|
||||
@@ -18,21 +42,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
```rust
|
||||
fn main() -> eyre::Result<()> {
|
||||
// ...
|
||||
// ...
|
||||
|
||||
client.container().from("rust").publish("somewhere")?;
|
||||
client.container().from("rust").publish("somewhere")?;
|
||||
|
||||
// ...
|
||||
// ...
|
||||
}
|
||||
|
||||
// to
|
||||
|
||||
async fn main() -> eyre::Result<()> {
|
||||
// ...
|
||||
// ...
|
||||
|
||||
client.container().from("rust").publish("somewhere").await?;
|
||||
client.container().from("rust").publish("somewhere").await?;
|
||||
|
||||
// ...
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
@@ -40,7 +64,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
- 2 commits contributed to the release.
|
||||
- 3 commits contributed to the release.
|
||||
- 2 commits were understood as [conventional](https://www.conventionalcommits.org).
|
||||
- 0 issues like '(#ID)' were seen in commit messages
|
||||
|
||||
@@ -51,6 +75,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
<details><summary>view details</summary>
|
||||
|
||||
* **Uncategorized**
|
||||
- Release dagger-sdk v0.2.7 ([`a1887af`](https://github.com/kjuulh/dagger-rs/commit/a1887afc8b51f61491ba7f13c5e7a5b7619623c4))
|
||||
- change to await syntax ([`93f40b3`](https://github.com/kjuulh/dagger-rs/commit/93f40b356c48f14e910968516bed9487912095c1))
|
||||
- Use async runtime instead of blocking. ([`9be6f43`](https://github.com/kjuulh/dagger-rs/commit/9be6f435d9ea39f31a8906e55dbd3e8b1e5ec598))
|
||||
</details>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "dagger-sdk"
|
||||
version = "0.2.7"
|
||||
version = "0.2.8"
|
||||
edition = "2021"
|
||||
readme = "README.md"
|
||||
license-file = "LICENSE.MIT"
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user