@@ -18,6 +18,7 @@ pub enum Job {
18
18
IndexSquash ( IndexSquashJob ) ,
19
19
IndexSyncToHttp ( IndexSyncToHttpJob ) ,
20
20
IndexUpdateYanked ( IndexUpdateYankedJob ) ,
21
+ NormalizeIndex ( NormalizeIndexJob ) ,
21
22
RenderAndUploadReadme ( RenderAndUploadReadmeJob ) ,
22
23
UpdateDownloads ( UpdateDownloadsJob ) ,
23
24
}
@@ -29,6 +30,7 @@ impl Job {
29
30
const INDEX_SQUASH : & str = "squash_index" ;
30
31
const INDEX_SYNC_TO_HTTP : & str = "update_crate_index" ;
31
32
const INDEX_UPDATE_YANKED : & str = "sync_yanked" ;
33
+ const NORMALIZE_INDEX : & str = "normalize_index" ;
32
34
const RENDER_AND_UPLOAD_README : & str = "render_and_upload_readme" ;
33
35
const UPDATE_DOWNLOADS : & str = "update_downloads" ;
34
36
@@ -40,6 +42,7 @@ impl Job {
40
42
Job :: IndexSquash ( _) => Self :: INDEX_SQUASH ,
41
43
Job :: IndexSyncToHttp ( _) => Self :: INDEX_SYNC_TO_HTTP ,
42
44
Job :: IndexUpdateYanked ( _) => Self :: INDEX_UPDATE_YANKED ,
45
+ Job :: NormalizeIndex ( _) => Self :: NORMALIZE_INDEX ,
43
46
Job :: RenderAndUploadReadme ( _) => Self :: RENDER_AND_UPLOAD_README ,
44
47
Job :: UpdateDownloads ( _) => Self :: UPDATE_DOWNLOADS ,
45
48
}
@@ -53,6 +56,7 @@ impl Job {
53
56
Job :: IndexSquash ( inner) => serde_json:: to_value ( inner) ,
54
57
Job :: IndexSyncToHttp ( inner) => serde_json:: to_value ( inner) ,
55
58
Job :: IndexUpdateYanked ( inner) => serde_json:: to_value ( inner) ,
59
+ Job :: NormalizeIndex ( inner) => serde_json:: to_value ( inner) ,
56
60
Job :: RenderAndUploadReadme ( inner) => serde_json:: to_value ( inner) ,
57
61
Job :: UpdateDownloads ( inner) => serde_json:: to_value ( inner) ,
58
62
}
@@ -80,6 +84,7 @@ impl Job {
80
84
Self :: INDEX_SQUASH => Job :: IndexSquash ( from_value ( value) ?) ,
81
85
Self :: INDEX_SYNC_TO_HTTP => Job :: IndexSyncToHttp ( from_value ( value) ?) ,
82
86
Self :: INDEX_UPDATE_YANKED => Job :: IndexUpdateYanked ( from_value ( value) ?) ,
87
+ Self :: NORMALIZE_INDEX => Job :: NormalizeIndex ( from_value ( value) ?) ,
83
88
Self :: RENDER_AND_UPLOAD_README => Job :: RenderAndUploadReadme ( from_value ( value) ?) ,
84
89
Self :: UPDATE_DOWNLOADS => Job :: UpdateDownloads ( from_value ( value) ?) ,
85
90
job_type => Err ( PerformError :: from ( format ! ( "Unknown job type {job_type}" ) ) ) ?,
@@ -106,6 +111,7 @@ impl Job {
106
111
Job :: IndexUpdateYanked ( args) => conn. with_connection ( & |conn| {
107
112
worker:: perform_index_update_yanked ( env, conn, & args. krate , & args. version_num )
108
113
} ) ,
114
+ Job :: NormalizeIndex ( args) => worker:: perform_normalize_index ( env, args) ,
109
115
Job :: RenderAndUploadReadme ( args) => conn. with_connection ( & |conn| {
110
116
worker:: perform_render_and_upload_readme (
111
117
conn,
@@ -150,6 +156,11 @@ pub struct IndexUpdateYankedJob {
150
156
pub ( super ) version_num : String ,
151
157
}
152
158
159
+ #[ derive( Serialize , Deserialize ) ]
160
+ pub struct NormalizeIndexJob {
161
+ pub dry_run : bool ,
162
+ }
163
+
153
164
#[ derive( Serialize , Deserialize ) ]
154
165
pub struct RenderAndUploadReadmeJob {
155
166
pub ( super ) version_id : i32 ,
0 commit comments