Document the schema structure
This commit is contained in:
parent
2cd137455f
commit
ac2f9922dc
39
HACKING.md
39
HACKING.md
|
@ -1,6 +1,10 @@
|
||||||
# HACKING
|
# HACKING
|
||||||
|
|
||||||
`fingerprint.php` does all the work. Just run it. versions.txt is generated from a list of all usable tags on the electron repo.
|
There's two scripts:
|
||||||
|
|
||||||
|
## `fingerprint.php`
|
||||||
|
|
||||||
|
This downloads the relevant releases from GitHub, and generates hashes of all files contained within each release.
|
||||||
|
|
||||||
This includes all releases that were not:
|
This includes all releases that were not:
|
||||||
|
|
||||||
|
@ -8,4 +12,35 @@ This includes all releases that were not:
|
||||||
2. beta releases
|
2. beta releases
|
||||||
3. older than 0.24.0 (electron was called atom-shell before that)
|
3. older than 0.24.0 (electron was called atom-shell before that)
|
||||||
|
|
||||||
All generated hashes are kept in `hashes/`. The generated lookup table is saved at lookup.json
|
All generated hashes are kept in `hashes/$version.json`. A sample snippet for the JSON structure:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"LICENSE": "10bfa95a2f25df14dfe6a55a9e73d9fa5becdb60",
|
||||||
|
"LICENSES.chromium.html": "fa5b9f95d12b0044d6ae8dbf303ad46d43edea76",
|
||||||
|
"version": "0e2ef13d37fb9a81b63ab1babfa39635722366a3",
|
||||||
|
"Electron.app/Contents/PkgInfo": "9f9eea0cfe2d65f2c3d6b092e375b40782d08f31",
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## `lookup-table.php`
|
||||||
|
|
||||||
|
This generates an inverted-lookup-table from all the hashes. So you can pass a hash and get a list of releases that specific hash was found in.
|
||||||
|
These are stored in the following architecture specific files:
|
||||||
|
|
||||||
|
- `lookup/darwin-arm64.json`
|
||||||
|
- `lookup/darwin-x64.json`
|
||||||
|
- `lookup/linux-arm64.json`
|
||||||
|
- `lookup/linux-x64.json`
|
||||||
|
- `lookup/win32-arm64.json`
|
||||||
|
- `lookup/win32-x64.json`
|
||||||
|
|
||||||
|
The schema for these files is fairly intuitive:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"sha1_hash": ["list", "of", "versions"],
|
||||||
|
"sha1_hash": ["list", "of", "versions"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
|
@ -27,11 +27,11 @@ lookup['win32-x64']['baf786083f482c1f035e50e105b5f7475af1e00b']
|
||||||
// ["v1.4.3", "v1.4.4", "v1.4.5"]
|
// ["v1.4.3", "v1.4.4", "v1.4.5"]
|
||||||
```
|
```
|
||||||
|
|
||||||
You can sort or filter the returned versions if needed.
|
You can sort or filter the returned versions if needed. If you'd like to access the raw data, see `HACKING.md` for a schema description.
|
||||||
|
|
||||||
## supported releases
|
## supported releases
|
||||||
|
|
||||||
All Stable electron releases for the following architectures are fingerprinted:
|
All *Stable* electron releases for the following architectures are fingerprinted:
|
||||||
|
|
||||||
- linux-x64
|
- linux-x64
|
||||||
- linux-arm64
|
- linux-arm64
|
||||||
|
@ -40,7 +40,7 @@ All Stable electron releases for the following architectures are fingerprinted:
|
||||||
- win32-arm64 (Windows)
|
- win32-arm64 (Windows)
|
||||||
- darwin-arm64 (Apple Silicon)
|
- darwin-arm64 (Apple Silicon)
|
||||||
|
|
||||||
A list of release fingerprints is under the `hashes` directory.
|
A list of release fingerprints is under the `hashes` directory. Releases made when Electron was still called `atom-shell` are not supported (Before April 2015).
|
||||||
|
|
||||||
## which files are present?
|
## which files are present?
|
||||||
|
|
||||||
|
@ -100,4 +100,4 @@ electron
|
||||||
|
|
||||||
Released under WTFPL.
|
Released under WTFPL.
|
||||||
|
|
||||||
[we]: https://github.com/captn3m0/which-electron
|
[we]: https://github.com/captn3m0/which-electron
|
||||||
|
|
Loading…
Reference in New Issue