mirror of
				https://github.com/Swatinem/rust-cache.git
				synced 2025-10-31 19:23:49 +00:00 
			
		
		
		
	chore: use 8 character hash components (#143)
Use 8 character hash components to reduce the key length, making it more readable. Fixes #97
This commit is contained in:
		
							parent
							
								
									ad97570a01
								
							
						
					
					
						commit
						bb80d0f127
					
				| @ -3,6 +3,7 @@ | ||||
| ## 2.3.1 | ||||
| 
 | ||||
| - Fix cache key stability. | ||||
| - Use 8 character hash components to reduce the key length, making it more readable. | ||||
| 
 | ||||
| ## 2.3.0 | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										14
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							| @ -60028,6 +60028,7 @@ class Workspace { | ||||
| const HOME = external_os_default().homedir(); | ||||
| const config_CARGO_HOME = process.env.CARGO_HOME || external_path_default().join(HOME, ".cargo"); | ||||
| const STATE_CONFIG = "RUST_CACHE_CONFIG"; | ||||
| const HASH_LENGTH = 8; | ||||
| class CacheConfig { | ||||
|     constructor() { | ||||
|         /** All the paths we want to cache */ | ||||
| @ -60103,7 +60104,7 @@ class CacheConfig { | ||||
|             } | ||||
|         } | ||||
|         self.keyEnvs = keyEnvs; | ||||
|         key += `-${hasher.digest("hex")}`; | ||||
|         key += `-${digest(hasher)}`; | ||||
|         self.restoreKey = key; | ||||
|         // Construct the lockfiles portion of the key:
 | ||||
|         // This considers all the files found via globbing for various manifests
 | ||||
| @ -60132,7 +60133,7 @@ class CacheConfig { | ||||
|                 hasher.update(chunk); | ||||
|             } | ||||
|         } | ||||
|         let lockHash = hasher.digest("hex"); | ||||
|         let lockHash = digest(hasher); | ||||
|         self.keyFiles = keyFiles; | ||||
|         key += `-${lockHash}`; | ||||
|         self.cacheKey = key; | ||||
| @ -60214,6 +60215,15 @@ class CacheConfig { | ||||
| function isCacheUpToDate() { | ||||
|     return core.getState(STATE_CONFIG) === ""; | ||||
| } | ||||
| /** | ||||
|  * Returns a hex digest of the given hasher truncated to `HASH_LENGTH`. | ||||
|  * | ||||
|  * @param hasher The hasher to digest. | ||||
|  * @returns The hex digest. | ||||
|  */ | ||||
| function digest(hasher) { | ||||
|     return hasher.digest("hex").substring(0, HASH_LENGTH); | ||||
| } | ||||
| async function getRustVersion() { | ||||
|     const stdout = await getCmdOutput("rustc", ["-vV"]); | ||||
|     let splits = stdout | ||||
|  | ||||
							
								
								
									
										14
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							| @ -60028,6 +60028,7 @@ class Workspace { | ||||
| const HOME = external_os_default().homedir(); | ||||
| const CARGO_HOME = process.env.CARGO_HOME || external_path_default().join(HOME, ".cargo"); | ||||
| const STATE_CONFIG = "RUST_CACHE_CONFIG"; | ||||
| const HASH_LENGTH = 8; | ||||
| class CacheConfig { | ||||
|     constructor() { | ||||
|         /** All the paths we want to cache */ | ||||
| @ -60103,7 +60104,7 @@ class CacheConfig { | ||||
|             } | ||||
|         } | ||||
|         self.keyEnvs = keyEnvs; | ||||
|         key += `-${hasher.digest("hex")}`; | ||||
|         key += `-${digest(hasher)}`; | ||||
|         self.restoreKey = key; | ||||
|         // Construct the lockfiles portion of the key:
 | ||||
|         // This considers all the files found via globbing for various manifests
 | ||||
| @ -60132,7 +60133,7 @@ class CacheConfig { | ||||
|                 hasher.update(chunk); | ||||
|             } | ||||
|         } | ||||
|         let lockHash = hasher.digest("hex"); | ||||
|         let lockHash = digest(hasher); | ||||
|         self.keyFiles = keyFiles; | ||||
|         key += `-${lockHash}`; | ||||
|         self.cacheKey = key; | ||||
| @ -60214,6 +60215,15 @@ class CacheConfig { | ||||
| function isCacheUpToDate() { | ||||
|     return core.getState(STATE_CONFIG) === ""; | ||||
| } | ||||
| /** | ||||
|  * Returns a hex digest of the given hasher truncated to `HASH_LENGTH`. | ||||
|  * | ||||
|  * @param hasher The hasher to digest. | ||||
|  * @returns The hex digest. | ||||
|  */ | ||||
| function digest(hasher) { | ||||
|     return hasher.digest("hex").substring(0, HASH_LENGTH); | ||||
| } | ||||
| async function getRustVersion() { | ||||
|     const stdout = await getCmdOutput("rustc", ["-vV"]); | ||||
|     let splits = stdout | ||||
|  | ||||
| @ -13,6 +13,7 @@ const HOME = os.homedir(); | ||||
| export const CARGO_HOME = process.env.CARGO_HOME || path.join(HOME, ".cargo"); | ||||
| 
 | ||||
| const STATE_CONFIG = "RUST_CACHE_CONFIG"; | ||||
| const HASH_LENGTH = 8; | ||||
| 
 | ||||
| export class CacheConfig { | ||||
|   /** All the paths we want to cache */ | ||||
| @ -105,7 +106,7 @@ export class CacheConfig { | ||||
| 
 | ||||
|     self.keyEnvs = keyEnvs; | ||||
| 
 | ||||
|     key += `-${hasher.digest("hex")}`; | ||||
|     key += `-${digest(hasher)}`; | ||||
| 
 | ||||
|     self.restoreKey = key; | ||||
| 
 | ||||
| @ -144,7 +145,7 @@ export class CacheConfig { | ||||
|         hasher.update(chunk); | ||||
|       } | ||||
|     } | ||||
|     let lockHash = hasher.digest("hex"); | ||||
|     let lockHash = digest(hasher); | ||||
| 
 | ||||
|     self.keyFiles = keyFiles; | ||||
| 
 | ||||
| @ -239,6 +240,16 @@ export function isCacheUpToDate(): boolean { | ||||
|   return core.getState(STATE_CONFIG) === ""; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Returns a hex digest of the given hasher truncated to `HASH_LENGTH`. | ||||
|  * | ||||
|  * @param hasher The hasher to digest. | ||||
|  * @returns The hex digest. | ||||
|  */ | ||||
| function digest(hasher: crypto.Hash): string { | ||||
|   return hasher.digest("hex").substring(0, HASH_LENGTH); | ||||
| } | ||||
| 
 | ||||
| interface RustVersion { | ||||
|   host: string; | ||||
|   release: string; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user