feat: add compiler version to aiken.toml
This commit is contained in:
parent
d6cc450ce4
commit
c3ad52b50f
|
@ -153,6 +153,7 @@ dependencies = [
|
|||
"rayon",
|
||||
"regex",
|
||||
"reqwest",
|
||||
"semver",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"strip-ansi-escapes",
|
||||
|
@ -2808,6 +2809,15 @@ dependencies = [
|
|||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "semver"
|
||||
version = "1.0.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.199"
|
||||
|
|
|
@ -48,6 +48,7 @@ cryptoxide = "0.4.4"
|
|||
vec1 = "1.10.1"
|
||||
patricia_tree = "0.8.0"
|
||||
ciborium = "0.2.2"
|
||||
semver = { version = "1.0.23", features = ["serde"] }
|
||||
|
||||
[dev-dependencies]
|
||||
blst = "0.3.11"
|
||||
|
|
|
@ -2,6 +2,7 @@ use std::{fmt::Display, fs, io, path::Path};
|
|||
|
||||
use crate::{github::repo::LatestRelease, package_name::PackageName, paths, Error};
|
||||
use aiken_lang::ast::Span;
|
||||
use semver::Version;
|
||||
|
||||
use miette::NamedSource;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
@ -12,6 +13,12 @@ pub use aiken_lang::plutus_version::PlutusVersion;
|
|||
pub struct Config {
|
||||
pub name: PackageName,
|
||||
pub version: String,
|
||||
#[serde(
|
||||
deserialize_with = "deserialize_version",
|
||||
serialize_with = "serialize_version",
|
||||
default = "default_version"
|
||||
)]
|
||||
pub compiler: Version,
|
||||
#[serde(default)]
|
||||
pub plutus: PlutusVersion,
|
||||
pub license: Option<String>,
|
||||
|
@ -22,6 +29,28 @@ pub struct Config {
|
|||
pub dependencies: Vec<Dependency>,
|
||||
}
|
||||
|
||||
fn deserialize_version<'de, D>(deserializer: D) -> Result<Version, D::Error>
|
||||
where
|
||||
D: serde::Deserializer<'de>,
|
||||
{
|
||||
let buf = String::deserialize(deserializer)?.replace('v', "");
|
||||
|
||||
Version::parse(&buf).map_err(serde::de::Error::custom)
|
||||
}
|
||||
|
||||
fn serialize_version<S>(version: &Version, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
let version = format!("v{}", version);
|
||||
|
||||
serializer.serialize_str(&version)
|
||||
}
|
||||
|
||||
fn default_version() -> Version {
|
||||
Version::parse(built_info::PKG_VERSION).unwrap()
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Clone, Debug)]
|
||||
pub struct Repository {
|
||||
pub user: String,
|
||||
|
@ -59,6 +88,7 @@ impl Config {
|
|||
Config {
|
||||
name: name.clone(),
|
||||
version: "0.0.0".to_string(),
|
||||
compiler: default_version(),
|
||||
plutus: PlutusVersion::default(),
|
||||
license: Some("Apache-2.0".to_string()),
|
||||
description: format!("Aiken contracts for project '{name}'"),
|
||||
|
|
Loading…
Reference in New Issue