Skip to content

Commit a4f2d7a

Browse files
committed
chore: update spec 0.4 to 0.4.1
Signed-off-by: David Bernard <[email protected]>
1 parent 18f08b8 commit a4f2d7a

File tree

8 files changed

+59
-51
lines changed

8 files changed

+59
-51
lines changed

cdevents-sdk/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ assert-json-diff = "2.0"
2424
boon = "0.5"
2525
glob = "0.3"
2626
proptest = "1"
27+
regex = "1.10"
2728
rstest = "0.19"
2829

2930
[features]

cdevents-sdk/src/generated/mod.rs

+40-40
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,46 @@ pub mod spec_0_3_0 {
177177
pub use super::testsuiterun_queued_0_1_0 as testsuiterun_queued;
178178
pub use super::testsuiterun_started_0_1_0 as testsuiterun_started;
179179
}
180-
pub mod spec_0_4_0 {
180+
pub mod spec_0_4_0_draft {
181+
pub use super::artifact_signed_0_1_0 as artifact_signed;
182+
pub use super::branch_created_0_1_2 as branch_created;
183+
pub use super::branch_deleted_0_1_2 as branch_deleted;
184+
pub use super::build_finished_0_1_1 as build_finished;
185+
pub use super::build_queued_0_1_1 as build_queued;
186+
pub use super::build_started_0_1_1 as build_started;
187+
pub use super::change_abandoned_0_1_2 as change_abandoned;
188+
pub use super::change_created_0_2_0 as change_created;
189+
pub use super::change_merged_0_1_2 as change_merged;
190+
pub use super::change_reviewed_0_1_2 as change_reviewed;
191+
pub use super::change_updated_0_1_2 as change_updated;
192+
pub use super::environment_created_0_1_1 as environment_created;
193+
pub use super::environment_deleted_0_1_1 as environment_deleted;
194+
pub use super::environment_modified_0_1_1 as environment_modified;
195+
pub use super::incident_detected_0_1_0 as incident_detected;
196+
pub use super::incident_reported_0_1_0 as incident_reported;
197+
pub use super::incident_resolved_0_1_0 as incident_resolved;
198+
pub use super::pipelinerun_finished_0_1_1 as pipelinerun_finished;
199+
pub use super::pipelinerun_queued_0_1_1 as pipelinerun_queued;
200+
pub use super::pipelinerun_started_0_1_1 as pipelinerun_started;
201+
pub use super::repository_created_0_1_1 as repository_created;
202+
pub use super::repository_deleted_0_1_1 as repository_deleted;
203+
pub use super::repository_modified_0_1_1 as repository_modified;
204+
pub use super::service_deployed_0_1_1 as service_deployed;
205+
pub use super::service_published_0_1_1 as service_published;
206+
pub use super::service_removed_0_1_1 as service_removed;
207+
pub use super::service_rolledback_0_1_1 as service_rolledback;
208+
pub use super::service_upgraded_0_1_1 as service_upgraded;
209+
pub use super::taskrun_finished_0_1_1 as taskrun_finished;
210+
pub use super::taskrun_started_0_1_1 as taskrun_started;
211+
pub use super::testcaserun_finished_0_1_0 as testcaserun_finished;
212+
pub use super::testcaserun_queued_0_1_0 as testcaserun_queued;
213+
pub use super::testcaserun_started_0_1_0 as testcaserun_started;
214+
pub use super::testoutput_published_0_1_0 as testoutput_published;
215+
pub use super::testsuiterun_finished_0_1_0 as testsuiterun_finished;
216+
pub use super::testsuiterun_queued_0_1_0 as testsuiterun_queued;
217+
pub use super::testsuiterun_started_0_1_0 as testsuiterun_started;
218+
}
219+
pub mod spec_0_4_1 {
181220
pub use super::artifact_deleted_0_1_0 as artifact_deleted;
182221
pub use super::artifact_downloaded_0_1_0 as artifact_downloaded;
183222
pub use super::artifact_packaged_0_2_0 as artifact_packaged;
@@ -224,45 +263,6 @@ pub mod spec_0_4_0 {
224263
pub use super::ticket_created_0_1_0 as ticket_created;
225264
pub use super::ticket_updated_0_1_0 as ticket_updated;
226265
}
227-
pub mod spec_0_4_0_draft {
228-
pub use super::artifact_signed_0_1_0 as artifact_signed;
229-
pub use super::branch_created_0_1_2 as branch_created;
230-
pub use super::branch_deleted_0_1_2 as branch_deleted;
231-
pub use super::build_finished_0_1_1 as build_finished;
232-
pub use super::build_queued_0_1_1 as build_queued;
233-
pub use super::build_started_0_1_1 as build_started;
234-
pub use super::change_abandoned_0_1_2 as change_abandoned;
235-
pub use super::change_created_0_2_0 as change_created;
236-
pub use super::change_merged_0_1_2 as change_merged;
237-
pub use super::change_reviewed_0_1_2 as change_reviewed;
238-
pub use super::change_updated_0_1_2 as change_updated;
239-
pub use super::environment_created_0_1_1 as environment_created;
240-
pub use super::environment_deleted_0_1_1 as environment_deleted;
241-
pub use super::environment_modified_0_1_1 as environment_modified;
242-
pub use super::incident_detected_0_1_0 as incident_detected;
243-
pub use super::incident_reported_0_1_0 as incident_reported;
244-
pub use super::incident_resolved_0_1_0 as incident_resolved;
245-
pub use super::pipelinerun_finished_0_1_1 as pipelinerun_finished;
246-
pub use super::pipelinerun_queued_0_1_1 as pipelinerun_queued;
247-
pub use super::pipelinerun_started_0_1_1 as pipelinerun_started;
248-
pub use super::repository_created_0_1_1 as repository_created;
249-
pub use super::repository_deleted_0_1_1 as repository_deleted;
250-
pub use super::repository_modified_0_1_1 as repository_modified;
251-
pub use super::service_deployed_0_1_1 as service_deployed;
252-
pub use super::service_published_0_1_1 as service_published;
253-
pub use super::service_removed_0_1_1 as service_removed;
254-
pub use super::service_rolledback_0_1_1 as service_rolledback;
255-
pub use super::service_upgraded_0_1_1 as service_upgraded;
256-
pub use super::taskrun_finished_0_1_1 as taskrun_finished;
257-
pub use super::taskrun_started_0_1_1 as taskrun_started;
258-
pub use super::testcaserun_finished_0_1_0 as testcaserun_finished;
259-
pub use super::testcaserun_queued_0_1_0 as testcaserun_queued;
260-
pub use super::testcaserun_started_0_1_0 as testcaserun_started;
261-
pub use super::testoutput_published_0_1_0 as testoutput_published;
262-
pub use super::testsuiterun_finished_0_1_0 as testsuiterun_finished;
263-
pub use super::testsuiterun_queued_0_1_0 as testsuiterun_queued;
264-
pub use super::testsuiterun_started_0_1_0 as testsuiterun_started;
265-
}
266266

267267
pub const ARTIFACT_DELETED_0_1_0: &str = "dev.cdevents.artifact.deleted.0.1.0";
268268
pub const ARTIFACT_DOWNLOADED_0_1_0: &str = "dev.cdevents.artifact.downloaded.0.1.0";

cdevents-sdk/src/generated/ticket_closed_0_1_0.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ pub struct Content {
1919
#[serde(rename = "milestone", default, skip_serializing_if = "Option::is_none",)]
2020
pub milestone: Option<String>,
2121
#[serde(rename = "priority", default, skip_serializing_if = "Option::is_none",)]
22-
pub priority: Option<String>,
22+
pub priority: Option<crate::NonEmptyString>,
2323
#[serde(rename = "resolution",)]
24-
pub resolution: String,
24+
pub resolution: crate::NonEmptyString,
2525
#[serde(rename = "summary", default, skip_serializing_if = "Option::is_none",)]
2626
pub summary: Option<String>,
2727
#[serde(rename = "ticketType", default, skip_serializing_if = "Option::is_none",)]
28-
pub ticket_type: Option<String>,
28+
pub ticket_type: Option<crate::NonEmptyString>,
2929
#[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none",)]
3030
pub updated_by: Option<String>,
3131
#[serde(rename = "uri",)]

cdevents-sdk/src/generated/ticket_created_0_1_0.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ pub struct Content {
1919
#[serde(rename = "milestone", default, skip_serializing_if = "Option::is_none",)]
2020
pub milestone: Option<String>,
2121
#[serde(rename = "priority", default, skip_serializing_if = "Option::is_none",)]
22-
pub priority: Option<String>,
22+
pub priority: Option<crate::NonEmptyString>,
2323
#[serde(rename = "summary",)]
2424
pub summary: String,
2525
#[serde(rename = "ticketType", default, skip_serializing_if = "Option::is_none",)]
26-
pub ticket_type: Option<String>,
26+
pub ticket_type: Option<crate::NonEmptyString>,
2727
#[serde(rename = "uri",)]
2828
pub uri: crate::UriReference,
2929
}

cdevents-sdk/src/generated/ticket_updated_0_1_0.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ pub struct Content {
1919
#[serde(rename = "milestone", default, skip_serializing_if = "Option::is_none",)]
2020
pub milestone: Option<String>,
2121
#[serde(rename = "priority", default, skip_serializing_if = "Option::is_none",)]
22-
pub priority: Option<String>,
22+
pub priority: Option<crate::NonEmptyString>,
2323
#[serde(rename = "summary", default, skip_serializing_if = "Option::is_none",)]
2424
pub summary: Option<String>,
2525
#[serde(rename = "ticketType", default, skip_serializing_if = "Option::is_none",)]
26-
pub ticket_type: Option<String>,
26+
pub ticket_type: Option<crate::NonEmptyString>,
2727
#[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none",)]
2828
pub updated_by: Option<String>,
2929
#[serde(rename = "uri",)]

cdevents-sdk/tests/specs.rs

+9-2
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,14 @@ struct HackUrlLoader;
5555

5656
impl UrlLoader for HackUrlLoader {
5757
fn load(&self, url: &str) -> Result<serde_json::Value, Box<dyn std::error::Error>> {
58-
if url.starts_with("https://cdevents.dev/schema/links/") {
58+
let re = regex::Regex::new(r"https://cdevents.dev/(?<version>\d+\.\d+)\.\d+/schema/(?<path>.*)")?;
59+
if let Some(caps) = re.captures(url) {
60+
let path = format!("../cdevents-specs/spec-v{}/schemas/{}.json", &caps["version"], &caps["path"]);
61+
let jsonschema: serde_json::Value = serde_json::from_str(&std::fs::read_to_string(path)?)?;
62+
Ok(jsonschema)
63+
} else if url.starts_with("https://cdevents.dev/schema/links/") {
64+
// HACK to fix a bug in specs 0.4.0
65+
// [Link's ref path needs an update for all the event schemas · Issue #211 · cdevents/spec](https://github.com/cdevents/spec/issues/211)
5966
let path = url.replace("https://cdevents.dev/schema", "../cdevents-specs/spec-v0.4/schemas/");
6067
let jsonschema: serde_json::Value = serde_json::from_str(&std::fs::read_to_string(path)?)?;
6168
Ok(jsonschema)
@@ -73,7 +80,7 @@ fn events_schemas() -> &'static EventsSchemas {
7380
#[rstest]
7481
fn can_serde_example(#[files("../cdevents-specs/spec-*/examples/*.json")] path: PathBuf) {
7582
let example_txt = fs::read_to_string(path).expect("to read file as string");
76-
//HACK uri are stored ad http::Uri, they are "normalized" when serialized, so prenormalization to avoid failure like
83+
// HACK uri are stored ad http::Uri, they are "normalized" when serialized, so prenormalization to avoid failure like
7784
// json atoms at path ".subject.content.repository.source" are not equal:
7885
// lhs:
7986
// "https://example.org"

cdevents-specs/spec-v0.4

Submodule spec-v0.4 updated 166 files

generator/src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ fn collect_structs(
347347
None => match field_names.last() {
348348
// HACK for an anyOf (string or enum/string)
349349
Some(&"priority") | Some(&"ticketType") | Some(&"resolution") => TypeInfo {
350-
type_declaration: "String".to_string(),
350+
type_declaration: "crate::NonEmptyString".to_string(),
351351
..Default::default()
352352
},
353353
_ => unimplemented!("expected key 'type' in field '{}'", field_names.join(".")),

0 commit comments

Comments
 (0)