mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-06-14 18:01:05 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ad3315346c | |||
| 516f79ee0f | |||
| 9f5443b6d6 | |||
| 0dafc779ce |
@@ -2,7 +2,6 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
import requests
|
import requests
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
def validate_github_token():
|
def validate_github_token():
|
||||||
"""Validate that GITHUB_TOKEN environment variable is set."""
|
"""Validate that GITHUB_TOKEN environment variable is set."""
|
||||||
@@ -27,26 +26,70 @@ def fetch_release_data(repo, tag):
|
|||||||
print(f"Error fetching release data: {e}")
|
print(f"Error fetching release data: {e}")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
def fetch_checksum_file(release_data):
|
||||||
|
"""
|
||||||
|
Fetch the checksum.txt file from the release assets
|
||||||
|
and parse it into a dictionary mapping file names to their SHA256 checksums.
|
||||||
|
"""
|
||||||
|
checksums = {}
|
||||||
|
|
||||||
|
# Find the checksum.txt asset URL
|
||||||
|
checksum_asset = None
|
||||||
|
for asset in release_data['assets']:
|
||||||
|
if asset['name'] == 'checksums.txt':
|
||||||
|
checksum_asset = asset
|
||||||
|
break
|
||||||
|
|
||||||
|
if not checksum_asset:
|
||||||
|
print("Warning: checksum.txt file not found in release assets.")
|
||||||
|
return checksums
|
||||||
|
|
||||||
|
# Download the checksum file
|
||||||
|
headers = {
|
||||||
|
'Authorization': f"Bearer {os.environ['GITHUB_TOKEN']}",
|
||||||
|
'Accept': 'application/octet-stream'
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.get(checksum_asset['browser_download_url'], headers=headers)
|
||||||
|
response.raise_for_status()
|
||||||
|
|
||||||
|
# Parse checksum file
|
||||||
|
for line in response.text.splitlines():
|
||||||
|
if line.strip():
|
||||||
|
checksum, filename = line.strip().split(None, 1)
|
||||||
|
checksums[filename] = checksum
|
||||||
|
|
||||||
|
return checksums
|
||||||
|
except requests.RequestException as e:
|
||||||
|
print(f"Error fetching checksum file: {e}")
|
||||||
|
return checksums
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error parsing checksum file: {e}")
|
||||||
|
return checksums
|
||||||
|
|
||||||
def extract_build_hash(target_commitish):
|
def extract_build_hash(target_commitish):
|
||||||
"""Extract the first 8 characters of the commit hash."""
|
"""Extract the first 8 characters of the commit hash."""
|
||||||
return f"commit.{target_commitish[:8]}"
|
return f"commit.{target_commitish[:8]}"
|
||||||
|
|
||||||
def generate_asset_json(release_data, asset):
|
def generate_asset_json(release_data, asset, checksums):
|
||||||
"""Generate JSON for a specific asset."""
|
"""Generate JSON for a specific asset."""
|
||||||
version = release_data['tag_name'].lstrip('v')
|
version = release_data['tag_name'].lstrip('v')
|
||||||
build = extract_build_hash(release_data['target_commitish'])
|
build = extract_build_hash(release_data['target_commitish'])
|
||||||
long_version = f"{version}+{build}"
|
long_version = f"{version}+{build}"
|
||||||
path = f"{asset['name']}+{long_version}"
|
|
||||||
|
# Get SHA256 checksum if available
|
||||||
|
sha256 = checksums.get(asset['name'], "")
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"path": path,
|
|
||||||
"name": asset['name'],
|
"name": asset['name'],
|
||||||
"version": version,
|
"version": version,
|
||||||
"build": build,
|
"build": build,
|
||||||
"longVersion": long_version,
|
"longVersion": long_version,
|
||||||
"url": asset['browser_download_url'],
|
"url": asset['browser_download_url'],
|
||||||
"firstSolcVersion": os.environ["FIRST_SOLC_VERSION"],
|
"sha256": sha256,
|
||||||
"lastSolcVersion": os.environ["LAST_SOLC_VERSION"]
|
"firstSolcVersion": os.environ.get("FIRST_SOLC_VERSION", ""),
|
||||||
|
"lastSolcVersion": os.environ.get("LAST_SOLC_VERSION", "")
|
||||||
}
|
}
|
||||||
|
|
||||||
def save_platform_json(platform_folder, asset_json, tag):
|
def save_platform_json(platform_folder, asset_json, tag):
|
||||||
@@ -69,14 +112,14 @@ def save_platform_json(platform_folder, asset_json, tag):
|
|||||||
# Remove any existing entry with the same path
|
# Remove any existing entry with the same path
|
||||||
list_data['builds'] = [
|
list_data['builds'] = [
|
||||||
build for build in list_data['builds']
|
build for build in list_data['builds']
|
||||||
if build['path'] != asset_json['path']
|
if build['version'] != asset_json['version']
|
||||||
]
|
]
|
||||||
# Add the new build
|
# Add the new build
|
||||||
list_data['builds'].append(asset_json)
|
list_data['builds'].append(asset_json)
|
||||||
|
|
||||||
# Update releases
|
# Update releases
|
||||||
version = asset_json['version']
|
version = asset_json['version']
|
||||||
list_data['releases'][version] = asset_json['path']
|
list_data['releases'][version] = f"{asset_json['name']}+{asset_json['longVersion']}"
|
||||||
|
|
||||||
# Update latest release
|
# Update latest release
|
||||||
list_data['latestRelease'] = version
|
list_data['latestRelease'] = version
|
||||||
@@ -98,6 +141,9 @@ def main():
|
|||||||
# Fetch release data
|
# Fetch release data
|
||||||
release_data = fetch_release_data(repo, tag)
|
release_data = fetch_release_data(repo, tag)
|
||||||
|
|
||||||
|
# Fetch checksums
|
||||||
|
checksums = fetch_checksum_file(release_data)
|
||||||
|
|
||||||
# Mapping of asset names to platform folders
|
# Mapping of asset names to platform folders
|
||||||
platform_mapping = {
|
platform_mapping = {
|
||||||
'resolc-x86_64-unknown-linux-musl': 'linux',
|
'resolc-x86_64-unknown-linux-musl': 'linux',
|
||||||
@@ -111,7 +157,7 @@ def main():
|
|||||||
platform_name = platform_mapping.get(asset['name'])
|
platform_name = platform_mapping.get(asset['name'])
|
||||||
if platform_name:
|
if platform_name:
|
||||||
platform_folder = os.path.join(platform_name)
|
platform_folder = os.path.join(platform_name)
|
||||||
asset_json = generate_asset_json(release_data, asset)
|
asset_json = generate_asset_json(release_data, asset, checksums)
|
||||||
save_platform_json(platform_folder, asset_json, tag)
|
save_platform_json(platform_folder, asset_json, tag)
|
||||||
print(f"Processed {asset['name']} for {platform_name}")
|
print(f"Processed {asset['name']} for {platform_name}")
|
||||||
|
|
||||||
|
|||||||
@@ -249,6 +249,15 @@ jobs:
|
|||||||
chmod +x resolc-x86_64-unknown-linux-musl
|
chmod +x resolc-x86_64-unknown-linux-musl
|
||||||
chmod +x resolc-universal-apple-darwin
|
chmod +x resolc-universal-apple-darwin
|
||||||
|
|
||||||
|
- name: Create sha-256 checksum
|
||||||
|
run: |
|
||||||
|
shasum -a 256 resolc-x86_64-unknown-linux-musl > checksums.txt
|
||||||
|
shasum -a 256 resolc-universal-apple-darwin >> checksums.txt
|
||||||
|
shasum -a 256 resolc-x86_64-pc-windows-msvc.exe >> checksums.txt
|
||||||
|
shasum -a 256 resolc.js >> checksums.txt
|
||||||
|
shasum -a 256 resolc.wasm >> checksums.txt
|
||||||
|
shasum -a 256 resolc_web.js >> checksums.txt
|
||||||
|
|
||||||
- uses: actions/create-github-app-token@v1
|
- uses: actions/create-github-app-token@v1
|
||||||
id: app-token
|
id: app-token
|
||||||
with:
|
with:
|
||||||
@@ -276,3 +285,4 @@ jobs:
|
|||||||
resolc.js
|
resolc.js
|
||||||
resolc.wasm
|
resolc.wasm
|
||||||
resolc_web.js
|
resolc_web.js
|
||||||
|
checksums.txt
|
||||||
|
|||||||
+5
-1
@@ -4,6 +4,10 @@
|
|||||||
|
|
||||||
This is a development pre-release.
|
This is a development pre-release.
|
||||||
|
|
||||||
|
## v0.1.0-dev.13
|
||||||
|
|
||||||
|
This is a development pre-release.
|
||||||
|
|
||||||
Supported `polkadot-sdk` rev:`c29e72a8628835e34deb6aa7db9a78a2e4eabcee`
|
Supported `polkadot-sdk` rev:`c29e72a8628835e34deb6aa7db9a78a2e4eabcee`
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
@@ -14,7 +18,7 @@ Supported `polkadot-sdk` rev:`c29e72a8628835e34deb6aa7db9a78a2e4eabcee`
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Storage keys and values are big endian. This was a pre-mature optimization because for the contract itself it this is a no-op and thus not observable. However we should consider the storage layout as part of the contract ABI. The endianness of transient storage values are still kept as-is.
|
- Storage keys and values are big endian. This was a pre-mature optimization because for the contract itself it this is a no-op and thus not observable. However we should consider the storage layout as part of the contract ABI. The endianness of transient storage values are still kept as-is.
|
||||||
- Runner `resolc` using webkit is no longer supported.
|
- Running `resolc` using webkit is no longer supported.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- A missing byte swap for the create2 salt value.
|
- A missing byte swap for the create2 salt value.
|
||||||
|
|||||||
Generated
+17
-17
@@ -4553,7 +4553,7 @@ checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lld-sys"
|
name = "lld-sys"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"libc",
|
"libc",
|
||||||
@@ -8266,7 +8266,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-benchmarks"
|
name = "revive-benchmarks"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alloy-primitives",
|
"alloy-primitives",
|
||||||
"criterion",
|
"criterion",
|
||||||
@@ -8278,18 +8278,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-build-utils"
|
name = "revive-build-utils"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-builtins"
|
name = "revive-builtins"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"revive-build-utils",
|
"revive-build-utils",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-common"
|
name = "revive-common"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -8299,7 +8299,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-differential"
|
name = "revive-differential"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alloy-genesis",
|
"alloy-genesis",
|
||||||
"alloy-primitives",
|
"alloy-primitives",
|
||||||
@@ -8312,7 +8312,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-integration"
|
name = "revive-integration"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alloy-primitives",
|
"alloy-primitives",
|
||||||
"alloy-sol-types",
|
"alloy-sol-types",
|
||||||
@@ -8328,7 +8328,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-linker"
|
name = "revive-linker"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"libc",
|
"libc",
|
||||||
@@ -8340,7 +8340,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-llvm-builder"
|
name = "revive-llvm-builder"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"assert_cmd",
|
"assert_cmd",
|
||||||
@@ -8362,7 +8362,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-llvm-context"
|
name = "revive-llvm-context"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"hex",
|
"hex",
|
||||||
@@ -8384,7 +8384,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-runner"
|
name = "revive-runner"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alloy-primitives",
|
"alloy-primitives",
|
||||||
"hex",
|
"hex",
|
||||||
@@ -8400,7 +8400,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-runtime-api"
|
name = "revive-runtime-api"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"inkwell",
|
"inkwell",
|
||||||
@@ -8410,7 +8410,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-solc-json-interface"
|
name = "revive-solc-json-interface"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"rayon",
|
"rayon",
|
||||||
@@ -8422,7 +8422,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-solidity"
|
name = "revive-solidity"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@@ -8449,7 +8449,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revive-stdlib"
|
name = "revive-stdlib"
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"inkwell",
|
"inkwell",
|
||||||
"revive-build-utils",
|
"revive-build-utils",
|
||||||
@@ -11117,9 +11117,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokio"
|
name = "tokio"
|
||||||
version = "1.43.0"
|
version = "1.44.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e"
|
checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"backtrace",
|
"backtrace",
|
||||||
"bytes",
|
"bytes",
|
||||||
|
|||||||
+15
-15
@@ -3,7 +3,7 @@ resolver = "2"
|
|||||||
members = ["crates/*"]
|
members = ["crates/*"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.1.0-dev.12"
|
version = "0.1.0-dev.13"
|
||||||
authors = [
|
authors = [
|
||||||
"Cyrill Leutwiler <cyrill@parity.io>",
|
"Cyrill Leutwiler <cyrill@parity.io>",
|
||||||
"Parity Technologies <admin@parity.io>",
|
"Parity Technologies <admin@parity.io>",
|
||||||
@@ -14,20 +14,20 @@ repository = "https://github.com/paritytech/revive"
|
|||||||
rust-version = "1.81.0"
|
rust-version = "1.81.0"
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
revive-benchmarks = { version = "0.1.0-dev.12", path = "crates/benchmarks" }
|
revive-benchmarks = { version = "0.1.0-dev.13", path = "crates/benchmarks" }
|
||||||
revive-builtins = { version = "0.1.0-dev.12", path = "crates/builtins" }
|
revive-builtins = { version = "0.1.0-dev.13", path = "crates/builtins" }
|
||||||
revive-common = { version = "0.1.0-dev.12", path = "crates/common" }
|
revive-common = { version = "0.1.0-dev.13", path = "crates/common" }
|
||||||
revive-differential = { version = "0.1.0-dev.12", path = "crates/differential" }
|
revive-differential = { version = "0.1.0-dev.13", path = "crates/differential" }
|
||||||
revive-integration = { version = "0.1.0-dev.12", path = "crates/integration" }
|
revive-integration = { version = "0.1.0-dev.13", path = "crates/integration" }
|
||||||
revive-linker = { version = "0.1.0-dev.12", path = "crates/linker" }
|
revive-linker = { version = "0.1.0-dev.13", path = "crates/linker" }
|
||||||
lld-sys = { version = "0.1.0-dev.12", path = "crates/lld-sys" }
|
lld-sys = { version = "0.1.0-dev.13", path = "crates/lld-sys" }
|
||||||
revive-llvm-context = { version = "0.1.0-dev.12", path = "crates/llvm-context" }
|
revive-llvm-context = { version = "0.1.0-dev.13", path = "crates/llvm-context" }
|
||||||
revive-runtime-api = { version = "0.1.0-dev.12", path = "crates/runtime-api" }
|
revive-runtime-api = { version = "0.1.0-dev.13", path = "crates/runtime-api" }
|
||||||
revive-runner = { version = "0.1.0-dev.12", path = "crates/runner" }
|
revive-runner = { version = "0.1.0-dev.13", path = "crates/runner" }
|
||||||
revive-solc-json-interface = { version = "0.1.0-dev.12", path = "crates/solc-json-interface" }
|
revive-solc-json-interface = { version = "0.1.0-dev.13", path = "crates/solc-json-interface" }
|
||||||
revive-solidity = { version = "0.1.0-dev.12", path = "crates/solidity" }
|
revive-solidity = { version = "0.1.0-dev.13", path = "crates/solidity" }
|
||||||
revive-stdlib = { version = "0.1.0-dev.12", path = "crates/stdlib" }
|
revive-stdlib = { version = "0.1.0-dev.13", path = "crates/stdlib" }
|
||||||
revive-build-utils = { version = "0.1.0-dev.12", path = "crates/build-utils" }
|
revive-build-utils = { version = "0.1.0-dev.13", path = "crates/build-utils" }
|
||||||
|
|
||||||
hex = "0.4.3"
|
hex = "0.4.3"
|
||||||
cc = "1.2"
|
cc = "1.2"
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ RUN make install-llvm-builder
|
|||||||
RUN revive-llvm --target-env musl clone
|
RUN revive-llvm --target-env musl clone
|
||||||
RUN revive-llvm --target-env musl build --llvm-projects lld --llvm-projects clang
|
RUN revive-llvm --target-env musl build --llvm-projects lld --llvm-projects clang
|
||||||
|
|
||||||
FROM messense/rust-musl-cross:x86_64-musl AS resolc-builder
|
FROM messense/rust-musl-cross@sha256:68b86bc7cb2867259e6b233415a665ff4469c28b57763e78c3bfea1c68091561 AS resolc-builder
|
||||||
WORKDIR /opt/revive
|
WORKDIR /opt/revive
|
||||||
|
|
||||||
RUN apt update && \
|
RUN apt update && \
|
||||||
|
|||||||
Reference in New Issue
Block a user