diff --git a/crates/crates_io_database/src/schema.rs b/crates/crates_io_database/src/schema.rs index 7cec766ca1e..2bd5c2b4815 100644 --- a/crates/crates_io_database/src/schema.rs +++ b/crates/crates_io_database/src/schema.rs @@ -1013,6 +1013,14 @@ diesel::table! { num_no_build -> Varchar, /// The declared Rust Edition required to compile this version of the crate. edition -> Nullable, + /// Value of the `description` field in the `Cargo.toml` file of this version. + description -> Nullable, + /// Value of the `homepage` field in the `Cargo.toml` file of this version. + homepage -> Nullable, + /// Value of the `documentation` field in the `Cargo.toml` file of this version. + documentation -> Nullable, + /// Value of the `repository` field in the `Cargo.toml` file of this version. + repository -> Nullable, } } diff --git a/crates/crates_io_database_dump/src/dump-db.toml b/crates/crates_io_database_dump/src/dump-db.toml index d5eabe21772..61a1f2ff937 100644 --- a/crates/crates_io_database_dump/src/dump-db.toml +++ b/crates/crates_io_database_dump/src/dump-db.toml @@ -247,6 +247,10 @@ has_lib = "public" bin_names = "public" yank_message = "private" edition = "public" +description = "public" +homepage = "public" +documentation = "public" +repository = "public" [versions_published_by.columns] version_id = "private" diff --git a/crates/crates_io_database_dump/src/snapshots/crates_io_database_dump__tests__sql_scripts@export.sql.snap b/crates/crates_io_database_dump/src/snapshots/crates_io_database_dump__tests__sql_scripts@export.sql.snap index 656ba7ab9e1..fd0f001085f 100644 --- a/crates/crates_io_database_dump/src/snapshots/crates_io_database_dump__tests__sql_scripts@export.sql.snap +++ b/crates/crates_io_database_dump/src/snapshots/crates_io_database_dump__tests__sql_scripts@export.sql.snap @@ -18,7 +18,7 @@ BEGIN ISOLATION LEVEL REPEATABLE READ, READ ONLY; \copy "crates_keywords" ("crate_id", "keyword_id") TO 'data/crates_keywords.csv' WITH CSV HEADER \copy (SELECT "crate_id", "created_at", "created_by", "owner_id", "owner_kind" FROM "crate_owners" WHERE NOT deleted) TO 'data/crate_owners.csv' WITH CSV HEADER - \copy "versions" ("bin_names", "checksum", "crate_id", "crate_size", "created_at", "downloads", "edition", "features", "has_lib", "id", "license", "links", "num", "published_by", "rust_version", "updated_at", "yanked") TO 'data/versions.csv' WITH CSV HEADER + \copy "versions" ("bin_names", "checksum", "crate_id", "crate_size", "created_at", "description", "documentation", "downloads", "edition", "features", "has_lib", "homepage", "id", "license", "links", "num", "published_by", "repository", "rust_version", "updated_at", "yanked") TO 'data/versions.csv' WITH CSV HEADER \copy "default_versions" ("crate_id", "version_id") TO 'data/default_versions.csv' WITH CSV HEADER \copy "dependencies" ("crate_id", "default_features", "explicit_name", "features", "id", "kind", "optional", "req", "target", "version_id") TO 'data/dependencies.csv' WITH CSV HEADER \copy "version_downloads" ("date", "downloads", "version_id") TO 'data/version_downloads.csv' WITH CSV HEADER diff --git a/crates/crates_io_database_dump/src/snapshots/crates_io_database_dump__tests__sql_scripts@import.sql.snap b/crates/crates_io_database_dump/src/snapshots/crates_io_database_dump__tests__sql_scripts@import.sql.snap index a24e4ce53fd..2fa830a2922 100644 --- a/crates/crates_io_database_dump/src/snapshots/crates_io_database_dump__tests__sql_scripts@import.sql.snap +++ b/crates/crates_io_database_dump/src/snapshots/crates_io_database_dump__tests__sql_scripts@import.sql.snap @@ -60,7 +60,7 @@ BEGIN; \copy "crates_categories" ("category_id", "crate_id") FROM 'data/crates_categories.csv' WITH CSV HEADER \copy "crates_keywords" ("crate_id", "keyword_id") FROM 'data/crates_keywords.csv' WITH CSV HEADER \copy "crate_owners" ("crate_id", "created_at", "created_by", "owner_id", "owner_kind") FROM 'data/crate_owners.csv' WITH CSV HEADER - \copy "versions" ("bin_names", "checksum", "crate_id", "crate_size", "created_at", "downloads", "edition", "features", "has_lib", "id", "license", "links", "num", "published_by", "rust_version", "updated_at", "yanked") FROM 'data/versions.csv' WITH CSV HEADER + \copy "versions" ("bin_names", "checksum", "crate_id", "crate_size", "created_at", "description", "documentation", "downloads", "edition", "features", "has_lib", "homepage", "id", "license", "links", "num", "published_by", "repository", "rust_version", "updated_at", "yanked") FROM 'data/versions.csv' WITH CSV HEADER \copy "default_versions" ("crate_id", "version_id") FROM 'data/default_versions.csv' WITH CSV HEADER \copy "dependencies" ("crate_id", "default_features", "explicit_name", "features", "id", "kind", "optional", "req", "target", "version_id") FROM 'data/dependencies.csv' WITH CSV HEADER \copy "version_downloads" ("date", "downloads", "version_id") FROM 'data/version_downloads.csv' WITH CSV HEADER diff --git a/migrations/2024-11-19-095931_add-version-columns/down.sql b/migrations/2024-11-19-095931_add-version-columns/down.sql new file mode 100644 index 00000000000..19dc7bd8483 --- /dev/null +++ b/migrations/2024-11-19-095931_add-version-columns/down.sql @@ -0,0 +1,5 @@ +alter table versions + drop column description, + drop column homepage, + drop column documentation, + drop column repository; diff --git a/migrations/2024-11-19-095931_add-version-columns/up.sql b/migrations/2024-11-19-095931_add-version-columns/up.sql new file mode 100644 index 00000000000..eb0c66adabf --- /dev/null +++ b/migrations/2024-11-19-095931_add-version-columns/up.sql @@ -0,0 +1,10 @@ +alter table versions + add column description text, + add column homepage text, + add column documentation text, + add column repository text; + +comment on column versions.description is 'Value of the `description` field in the `Cargo.toml` file of this version.'; +comment on column versions.homepage is 'Value of the `homepage` field in the `Cargo.toml` file of this version.'; +comment on column versions.documentation is 'Value of the `documentation` field in the `Cargo.toml` file of this version.'; +comment on column versions.repository is 'Value of the `repository` field in the `Cargo.toml` file of this version.'; diff --git a/src/controllers/krate/publish.rs b/src/controllers/krate/publish.rs index e5cb3dc6abf..819771cbc94 100644 --- a/src/controllers/krate/publish.rs +++ b/src/controllers/krate/publish.rs @@ -92,10 +92,10 @@ pub async fn publish(app: AppState, req: BytesRequest) -> AppResult AppResult, pub num_no_build: String, pub edition: Option, + pub description: Option, + pub homepage: Option, + pub documentation: Option, + pub repository: Option, } impl Version { @@ -95,6 +99,10 @@ pub struct NewVersion<'a> { pub has_lib: Option, pub bin_names: Option<&'a [&'a str]>, edition: Option<&'a str>, + description: Option<&'a str>, + homepage: Option<&'a str>, + documentation: Option<&'a str>, + repository: Option<&'a str>, } impl NewVersion<'_> { diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__edition__edition_is_saved-2.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__edition__edition_is_saved-2.snap index f292e4b8ffe..03cf3c7885f 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__edition__edition_is_saved-2.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__edition__edition_is_saved-2.snap @@ -23,11 +23,14 @@ snapshot_kind: text "crate": "foo", "crate_size": 169, "created_at": "[datetime]", + "description": "description", "dl_path": "/api/v1/crates/foo/1.0.0/download", + "documentation": null, "downloads": 0, "edition": "2021", "features": {}, "has_lib": false, + "homepage": null, "id": "[id]", "lib_links": null, "license": "MIT", @@ -45,6 +48,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo/1.0.0/readme", + "repository": null, "rust_version": "1.0", "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__links__crate_with_links_field-2.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__links__crate_with_links_field-2.snap index 8f4e7840c49..3f3f6a5602b 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__links__crate_with_links_field-2.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__links__crate_with_links_field-2.snap @@ -23,11 +23,14 @@ snapshot_kind: text "crate": "foo", "crate_size": 162, "created_at": "[datetime]", + "description": "foo?!", "dl_path": "/api/v1/crates/foo/1.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": false, + "homepage": null, "id": "[id]", "lib_links": "git2", "license": "MIT", @@ -45,6 +48,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo/1.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__boolean_readme-2.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__boolean_readme-2.snap index 4468037f74a..0d06f558c93 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__boolean_readme-2.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__boolean_readme-2.snap @@ -23,11 +23,14 @@ snapshot_kind: text "crate": "foo", "crate_size": 170, "created_at": "[datetime]", + "description": "description", "dl_path": "/api/v1/crates/foo/1.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": false, + "homepage": null, "id": "[id]", "lib_links": null, "license": "MIT", @@ -45,6 +48,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo/1.0.0/readme", + "repository": null, "rust_version": "1.69", "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__lib_and_bin_crate-2.snap b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__lib_and_bin_crate-2.snap index f31dec5ca5b..9aee4a49038 100644 --- a/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__lib_and_bin_crate-2.snap +++ b/src/tests/krate/publish/snapshots/crates_io__tests__krate__publish__manifest__lib_and_bin_crate-2.snap @@ -26,11 +26,14 @@ snapshot_kind: text "crate": "foo", "crate_size": 241, "created_at": "[datetime]", + "description": "description", "dl_path": "/api/v1/crates/foo/1.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": true, + "homepage": null, "id": "[id]", "lib_links": null, "license": "MIT", @@ -48,6 +51,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo/1.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-2.snap b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-2.snap index edcb5edb0af..5cd3e52f4a8 100644 --- a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-2.snap +++ b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-2.snap @@ -59,6 +59,10 @@ snapshot_kind: text "rust_version": null, "has_lib": false, "bin_names": [], - "edition": null + "edition": null, + "description": "description", + "homepage": null, + "documentation": null, + "repository": null } } diff --git a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-3.snap b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-3.snap index f64cdca2075..ffd7804222d 100644 --- a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-3.snap +++ b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-3.snap @@ -70,6 +70,10 @@ snapshot_kind: text "rust_version": null, "has_lib": false, "bin_names": [], - "edition": null + "edition": null, + "description": "description", + "homepage": null, + "documentation": null, + "repository": null } } diff --git a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-4.snap b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-4.snap index f64cdca2075..ffd7804222d 100644 --- a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-4.snap +++ b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-4.snap @@ -70,6 +70,10 @@ snapshot_kind: text "rust_version": null, "has_lib": false, "bin_names": [], - "edition": null + "edition": null, + "description": "description", + "homepage": null, + "documentation": null, + "repository": null } } diff --git a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-5.snap b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-5.snap index 902852cde1a..edfa8c462ad 100644 --- a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-5.snap +++ b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-5.snap @@ -81,6 +81,10 @@ snapshot_kind: text "rust_version": null, "has_lib": false, "bin_names": [], - "edition": null + "edition": null, + "description": "description", + "homepage": null, + "documentation": null, + "repository": null } } diff --git a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-6.snap b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-6.snap index 902852cde1a..edfa8c462ad 100644 --- a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-6.snap +++ b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank-6.snap @@ -81,6 +81,10 @@ snapshot_kind: text "rust_version": null, "has_lib": false, "bin_names": [], - "edition": null + "edition": null, + "description": "description", + "homepage": null, + "documentation": null, + "repository": null } } diff --git a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank.snap b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank.snap index edcb5edb0af..5cd3e52f4a8 100644 --- a/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank.snap +++ b/src/tests/krate/snapshots/crates_io__tests__krate__yanking__patch_version_yank_unyank.snap @@ -59,6 +59,10 @@ snapshot_kind: text "rust_version": null, "has_lib": false, "bin_names": [], - "edition": null + "edition": null, + "description": "description", + "homepage": null, + "documentation": null, + "repository": null } } diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show.snap index 5134d1135d5..286bb0b1842 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show.snap @@ -57,11 +57,14 @@ snapshot_kind: text "crate": "foo_show", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_show/1.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 1, "lib_links": null, "license": null, @@ -73,6 +76,7 @@ snapshot_kind: text "num": "1.0.0", "published_by": null, "readme_path": "/api/v1/crates/foo_show/1.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, @@ -85,11 +89,14 @@ snapshot_kind: text "crate": "foo_show", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_show/0.5.1/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 3, "lib_links": null, "license": null, @@ -107,6 +114,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo_show/0.5.1/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, @@ -119,11 +127,14 @@ snapshot_kind: text "crate": "foo_show", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_show/0.5.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 2, "lib_links": null, "license": null, @@ -141,6 +152,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo_show/0.5.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show_all_yanked.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show_all_yanked.snap index 9c27481cfaf..e64a14e9663 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show_all_yanked.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__read__show_all_yanked.snap @@ -56,11 +56,14 @@ snapshot_kind: text "crate": "foo_show", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_show/1.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 1, "lib_links": null, "license": null, @@ -78,6 +81,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo_show/1.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, @@ -90,11 +94,14 @@ snapshot_kind: text "crate": "foo_show", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_show/0.5.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 2, "lib_links": null, "license": null, @@ -112,6 +119,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo_show/0.5.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__prerelease_versions_not_included_in_reverse_dependencies.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__prerelease_versions_not_included_in_reverse_dependencies.snap index 352f33f378c..1fac1dd1999 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__prerelease_versions_not_included_in_reverse_dependencies.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__prerelease_versions_not_included_in_reverse_dependencies.snap @@ -29,11 +29,14 @@ snapshot_kind: text "crate": "c3", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/c3/1.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 3, "lib_links": null, "license": null, @@ -51,6 +54,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/c3/1.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies.snap index ba8345e20fe..0552a00db1d 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies.snap @@ -29,11 +29,14 @@ snapshot_kind: text "crate": "c2", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/c2/1.1.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 3, "lib_links": null, "license": null, @@ -51,6 +54,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/c2/1.1.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_includes_published_by_user_when_present.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_includes_published_by_user_when_present.snap index d51d9bbe306..d24e41552f9 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_includes_published_by_user_when_present.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_includes_published_by_user_when_present.snap @@ -41,11 +41,14 @@ snapshot_kind: text "crate": "c3", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/c3/3.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 3, "lib_links": null, "license": null, @@ -63,6 +66,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/c3/3.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, @@ -75,11 +79,14 @@ snapshot_kind: text "crate": "c2", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/c2/2.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 2, "lib_links": null, "license": null, @@ -91,6 +98,7 @@ snapshot_kind: text "num": "2.0.0", "published_by": null, "readme_path": "/api/v1/crates/c2/2.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_query_supports_u64_version_number_parts.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_query_supports_u64_version_number_parts.snap index f3edf932c87..43a16c7b9ec 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_query_supports_u64_version_number_parts.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_query_supports_u64_version_number_parts.snap @@ -29,11 +29,14 @@ snapshot_kind: text "crate": "c2", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/c2/1.0.18446744073709551615/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 2, "lib_links": null, "license": null, @@ -51,6 +54,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/c2/1.0.18446744073709551615/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_when_old_version_doesnt_depend_but_new_does.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_when_old_version_doesnt_depend_but_new_does.snap index 21cd6da789c..8d6c1cddae8 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_when_old_version_doesnt_depend_but_new_does.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__reverse_dependencies_when_old_version_doesnt_depend_but_new_does.snap @@ -29,11 +29,14 @@ snapshot_kind: text "crate": "c2", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/c2/2.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 3, "lib_links": null, "license": null, @@ -51,6 +54,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/c2/2.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__yanked_versions_not_included_in_reverse_dependencies.snap b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__yanked_versions_not_included_in_reverse_dependencies.snap index 21cd6da789c..8d6c1cddae8 100644 --- a/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__yanked_versions_not_included_in_reverse_dependencies.snap +++ b/src/tests/routes/crates/snapshots/crates_io__tests__routes__crates__reverse_dependencies__yanked_versions_not_included_in_reverse_dependencies.snap @@ -29,11 +29,14 @@ snapshot_kind: text "crate": "c2", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/c2/2.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 3, "lib_links": null, "license": null, @@ -51,6 +54,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/c2/2.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__list__versions.snap b/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__list__versions.snap index 48a43560372..4dcc0aa9400 100644 --- a/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__list__versions.snap +++ b/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__list__versions.snap @@ -12,11 +12,14 @@ snapshot_kind: text "crate": "foo_versions", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_versions/1.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 2, "lib_links": null, "license": null, @@ -28,6 +31,7 @@ snapshot_kind: text "num": "1.0.0", "published_by": null, "readme_path": "/api/v1/crates/foo_versions/1.0.0/readme", + "repository": null, "rust_version": "1.64", "updated_at": "[datetime]", "yank_message": null, @@ -40,11 +44,14 @@ snapshot_kind: text "crate": "foo_versions", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_versions/0.5.1/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 1, "lib_links": null, "license": null, @@ -62,6 +69,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo_versions/0.5.1/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, @@ -74,11 +82,14 @@ snapshot_kind: text "crate": "foo_versions", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_versions/0.5.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": 3, "lib_links": null, "license": null, @@ -96,6 +107,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo_versions/0.5.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__read__show_by_crate_name_and_semver_no_published_by.snap b/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__read__show_by_crate_name_and_semver_no_published_by.snap index febacc63071..46c892da669 100644 --- a/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__read__show_by_crate_name_and_semver_no_published_by.snap +++ b/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__read__show_by_crate_name_and_semver_no_published_by.snap @@ -11,11 +11,14 @@ snapshot_kind: text "crate": "foo_vers_show_no_pb", "crate_size": 0, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_vers_show_no_pb/1.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": "[id]", "lib_links": null, "license": null, @@ -27,6 +30,7 @@ snapshot_kind: text "num": "1.0.0", "published_by": null, "readme_path": "/api/v1/crates/foo_vers_show_no_pb/1.0.0/readme", + "repository": null, "rust_version": null, "updated_at": "[datetime]", "yank_message": null, diff --git a/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__read__show_by_crate_name_and_version.snap b/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__read__show_by_crate_name_and_version.snap index e4942362a39..98a624f86d5 100644 --- a/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__read__show_by_crate_name_and_version.snap +++ b/src/tests/routes/crates/versions/snapshots/crates_io__tests__routes__crates__versions__read__show_by_crate_name_and_version.snap @@ -11,11 +11,14 @@ snapshot_kind: text "crate": "foo_vers_show", "crate_size": 1234, "created_at": "[datetime]", + "description": null, "dl_path": "/api/v1/crates/foo_vers_show/2.0.0/download", + "documentation": null, "downloads": 0, "edition": null, "features": {}, "has_lib": null, + "homepage": null, "id": "[id]", "lib_links": null, "license": null, @@ -33,6 +36,7 @@ snapshot_kind: text "url": "https://github.com/foo" }, "readme_path": "/api/v1/crates/foo_vers_show/2.0.0/readme", + "repository": null, "rust_version": "1.64", "updated_at": "[datetime]", "yank_message": null, diff --git a/src/views.rs b/src/views.rs index 1ce09f60159..239699a9dce 100644 --- a/src/views.rs +++ b/src/views.rs @@ -587,6 +587,10 @@ pub struct EncodableVersion { pub has_lib: Option, pub bin_names: Option>>, pub edition: Option, + pub description: Option, + pub homepage: Option, + pub documentation: Option, + pub repository: Option, } impl EncodableVersion { @@ -613,6 +617,10 @@ impl EncodableVersion { has_lib, bin_names, edition, + description, + homepage, + documentation, + repository, .. } = version; @@ -643,6 +651,10 @@ impl EncodableVersion { has_lib, bin_names, edition, + description, + homepage, + documentation, + repository, published_by: published_by.map(User::into), audit_actions: audit_actions .into_iter() @@ -773,6 +785,10 @@ mod tests { bin_names: None, published_by: None, edition: None, + description: None, + homepage: None, + documentation: None, + repository: None, audit_actions: vec![EncodableAuditAction { action: "publish".to_string(), user: EncodablePublicUser {