Skip to content

Commit 3a464f3

Browse files
committed
controllers/krate/publish: Expose the default_version field
1 parent caf043c commit 3a464f3

18 files changed

+21
-1
lines changed

src/controllers/krate/publish.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,7 @@ pub async fn publish(app: AppState, req: BytesRequest) -> AppResult<Json<GoodCra
392392
.first(conn)
393393
.optional()?;
394394

395+
let mut default_version = None;
395396
// Upsert the `default_value` determined by the existing `default_value` and the
396397
// published version. Note that this could potentially write an outdated version
397398
// (although this should not happen regularly), as we might be comparing to an
@@ -412,6 +413,8 @@ pub async fn publish(app: AppState, req: BytesRequest) -> AppResult<Json<GoodCra
412413
.filter(default_versions::crate_id.eq(krate.id))
413414
.set(default_versions::version_id.eq(version.id))
414415
.execute(conn)?;
416+
} else {
417+
default_version = Some(existing_default_version.num.to_string());
415418
}
416419

417420
// Update the default version asynchronously in a background job
@@ -507,7 +510,7 @@ pub async fn publish(app: AppState, req: BytesRequest) -> AppResult<Json<GoodCra
507510
Ok(Json(GoodCrate {
508511
krate: EncodableCrate::from_minimal(
509512
krate,
510-
None,
513+
default_version.or(Some(version_string)).as_deref(),
511514
Some(&top_versions),
512515
None,
513516
false,

src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ expression: response.json()
77
"badges": null,
88
"categories": null,
99
"created_at": "[datetime]",
10+
"default_version": "1.0.0",
1011
"description": "description",
1112
"documentation": null,
1213
"downloads": 0,

src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_twice.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ expression: response.json()
77
"badges": null,
88
"categories": null,
99
"created_at": "[datetime]",
10+
"default_version": "2.0.0",
1011
"description": "2.0.0 description",
1112
"documentation": null,
1213
"downloads": 0,

src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_weird_version.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ expression: response.json()
77
"badges": null,
88
"categories": null,
99
"created_at": "[datetime]",
10+
"default_version": "0.0.0-pre",
1011
"description": "description",
1112
"documentation": null,
1213
"downloads": 0,

src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__basics__new_krate_with_token.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ expression: response.json()
77
"badges": null,
88
"categories": null,
99
"created_at": "[datetime]",
10+
"default_version": "1.0.0",
1011
"description": "description",
1112
"documentation": null,
1213
"downloads": 0,

src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_1.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ expression: response.json()
77
"badges": null,
88
"categories": null,
99
"created_at": "[datetime]",
10+
"default_version": "1.0.0+foo",
1011
"description": "description",
1112
"documentation": null,
1213
"downloads": 0,

src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_2.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ expression: response.json()
77
"badges": null,
88
"categories": null,
99
"created_at": "[datetime]",
10+
"default_version": "1.0.0-beta.1",
1011
"description": "description",
1112
"documentation": null,
1213
"downloads": 0,

src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__build_metadata__version_with_build_metadata@build_metadata_3.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ expression: response.json()
77
"badges": null,
88
"categories": null,
99
"created_at": "[datetime]",
10+
"default_version": "1.0.0+foo",
1011
"description": "description",
1112
"documentation": null,
1213
"downloads": 0,

src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__categories__good_categories.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ expression: response.json()
77
"badges": null,
88
"categories": null,
99
"created_at": "[datetime]",
10+
"default_version": "1.0.0",
1011
"description": "description",
1112
"documentation": null,
1213
"downloads": 0,

src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__dependencies__dep_limit-2.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ expression: response.json()
77
"badges": null,
88
"categories": null,
99
"created_at": "[datetime]",
10+
"default_version": "1.0.0",
1011
"description": "description",
1112
"documentation": null,
1213
"downloads": 0,

0 commit comments

Comments
 (0)