Skip to content

Commit

Permalink
chore(release): prepare version 2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
oddlama committed Nov 14, 2022
1 parent 99a59b4 commit b24c9e0
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 50 deletions.
48 changes: 15 additions & 33 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 36 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
[package]
name = "autokernel"
version = "0.1.0"
version = "2.0.0"
edition = "2021"
authors = ["oddlama <[email protected]>", "clotodex <[email protected]>"]
description = """
Autokernel is a tool for managing your kernel configuration that guarantees semantic correctness.
It checks symbol assignments for validity by creating a native bridge to the kernel's
Kconfig interface and ensures that your configuration does not silently break during kernel updates.
"""
documentation = "https://github.com/oddlama/autokernel"
homepage = "https://github.com/oddlama/autokernel"
repository = "https://github.com/oddlama/autokernel"
keywords = ["kernel", "configuration", "kconfig", "lua"]
categories = ["command-line-utilities"]
license = "MIT"

[features]
index = ["dep:rusqlite"]
Expand All @@ -15,13 +26,13 @@ name = "autokernel-index"
required-features = ["index"]

[dependencies]
clap = { version = "3.2.17", features = ["derive"] }
clap = { version = "4.0.23", features = ["derive"] }
libc = "*"
serde = { version = "1.0.143", features = ["derive"] }
serde_json = { version = "1.0.83", features = ["unbounded_depth"] }
libloading = "0.7.3"
thiserror = "1.0.32"
anyhow = { version = "1.0.62", features = ["backtrace"] }
serde = { version = "1.0.147", features = ["derive"] }
serde_json = { version = "1.0.87", features = ["unbounded_depth"] }
libloading = "0.7.4"
thiserror = "1.0.37"
anyhow = { version = "1.0.66", features = ["backtrace"] }
colored = "2.0.0"
bitflags = "1.3.2"
rlua = "0.19.4"
Expand All @@ -34,3 +45,21 @@ uuid = { version = "1.2.1", features = ["v4"] }

[dev-dependencies]
serial_test = "0.9.0"

[profile.release]
lto = true

[package.metadata.deb]
section = "utils"
assets = [
["target/release/autokernel", "usr/bin/", "755"],
["LICENSE", "usr/share/doc/autokernel/", "644"],
["README.md", "usr/share/doc/autokernel/README", "644"],
["examples/config.toml", "etc/autokernel/config.toml", "644"],
["examples/config.lua", "etc/autokernel/config.lua", "644"],
]
extended-description = """\
Autokernel is a tool for managing your kernel configuration that guarantees semantic correctness.
It checks symbol assignments for validity by creating a native bridge to the kernel's
Kconfig interface and ensures that your configuration does not silently break during kernel updates.
"""
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@

# About autokernel

Autokernel is a tool to manage your kernel configuration that guarantees semantic correctness.
It checks symbol assignments for validity using a native bridge to the kernel's Kconfig interface
and ensures that your configuration doesn't silently break on kernel updates. Next time a config option is
removed or renamed (like when `CONFIG_THUNDERBOLT` was merged with `CONFIG_USB4`), you will notice.
Autokernel is a tool for managing your kernel configuration that guarantees semantic correctness.
It checks symbol assignments for validity by creating a native bridge to the kernel's
Kconfig interface and ensures that your configuration does not silently break during kernel updates.
The next time a config option is removed or renamed, similar to when `CONFIG_THUNDERBOLT` was merged
with `CONFIG_USB4`, you will notice.

It provides a configuration framework which understands the semantics behind symbols,
their dependencies and allowed values and enforces these rules when generating the final
Expand Down
9 changes: 9 additions & 0 deletions examples/config.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-- Begin with the defconfig for your architecture
load_kconfig_unchecked(kernel_dir .. "/arch/x86/configs/x86_64_defconfig")

-- Replace this with your own config:
PCI "y"
NET "y"
USELIB "n"
LEGACY_PTYS "n"
-- ...
4 changes: 2 additions & 2 deletions examples/tutorial.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
-- Loading kconfig files
--###############################################################

-- First, it is a good ideais to begin with loading the defconfig for your architecture.
-- First, it is a good idea to begin with loading the defconfig for your architecture.
-- This will be sane base configuration to build upon.
--
-- This is done unchecked (by calling the kernel's internal conf_read() function), as these
Expand Down Expand Up @@ -142,7 +142,7 @@ end
RTLWIFI_USB:satisfy { y, recursive = true }

-- This will automatically calculate and assign the required values for the symbol
-- `RTLWIFI_USB` and its dependencies to be set to `y`.
-- `RTLWIFI_USB` and its dependencies to be set to `y`.
-- Specifying `recursive = true` also includes transitive dependencies.
--
-- The returned solution will always be unambiguous with respect to the symbols that will be enabled.
Expand Down
8 changes: 4 additions & 4 deletions src/bin/autokernel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ use clap::Parser;
use colored::Colorize;
use tempdir::TempDir;

/// A tool to manage your kernel configuration that guarantees semantic correctness.
/// It checks symbol assignments for validity using a native bridge to the kernel's
/// Kconfig interface and ensures that your configuration doesn't silently break on kernel updates.
/// It can be used to just generate a `.config` file, or even to build the kernel.
/// Autokernel is a tool for managing your kernel configuration that guarantees semantic correctness.
/// It checks symbol assignments for validity by creating a native bridge to the kernel's
/// Kconfig interface and ensures that your configuration does not silently break during kernel updates.
/// It can be used to generate a `.config` file, or even to build the kernel.
#[derive(Parser, Debug)]
#[clap(version, about, long_about = None)]
struct Args {
Expand Down

0 comments on commit b24c9e0

Please sign in to comment.