Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ result*
.secret

cosign.key

# Used for testing purposes
!next/tests/repo/cosign.key
!test-files/keys/cosign.key

# Local testing for bluebuild recipe files
Expand Down
28 changes: 28 additions & 0 deletions Cargo.lock

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

17 changes: 13 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
[workspace]
members = ["utils", "recipe", "template", "process"]
members = [
"utils",
"recipe",
"template",
"process",
"next"
]

[workspace.package]
description = "A CLI tool built for creating Containerfile templates for ostree based atomic distros"
Expand All @@ -16,6 +22,7 @@ chrono = "=0.4.45"
clap = "=4.6.6"
colored = "=3.1.1"
comlexr = "=1.5.0"
futures = "0.3.34"
indexmap = { version = "=2.14.0", features = ["serde"] }
indicatif = { version = "=0.18.6", features = ["improved_unicode", "rayon"] }
lazy-regex = "=3.6.1"
Expand All @@ -37,6 +44,7 @@ shadow-rs = { version = "=2.0.0", default-features = false }
structstruck = "=0.5.1"
syntect = { version = "=5.3.0", default-features = false, features = ["default-fancy"] }
tempfile = "=3.27.0"
thiserror = "=2.0.20"
tokio = { version = "=1.53.1", default-features = false }
uuid = { version = "=1.25.0", features = ["v4"] }
which = "=8.0.5"
Expand Down Expand Up @@ -68,15 +76,16 @@ license.workspace = true
[package.metadata.release]
pre-release-hook = ["git", "cliff", "-o", "CHANGELOG.md", "--tag", "{{version}}"]
pre-release-replacements = [
{ file = "install.sh", search = "VERSION=v\\d+\\.\\d+\\.\\d+", replace = "VERSION=v{{version}}" },
{ file = "flake.nix", search = "version = \"v\\d+\\.\\d+\\.\\d+\";", replace = "version = \"v{{version}}\";" }
{ file = "install.sh", search = "VERSION=v\\d+\\.\\d+\\.\\d+", replace = "VERSION=v{{version}}" },
{ file = "flake.nix", search = "version = \"v\\d+\\.\\d+\\.\\d+\";", replace = "version = \"v{{version}}\";" }
]

[dependencies]
blue-build-recipe = { version = "=0.9.37", path = "./recipe" }
blue-build-template = { version = "=0.9.37", path = "./template" }
blue-build-utils = { version = "=0.9.37", path = "./utils" }
blue-build-process-management = { version = "=0.9.37", path = "./process" }
blue-build-next-builder = { version = "=0.9.37", path = "./next" }
clap-verbosity-flag = "=3.0.4"
clap_complete = "=4.6.9"
clap_complete_nushell = "=4.6.2"
Expand All @@ -86,7 +95,6 @@ open = "=5.4.1"
os_info = "=3.15.0"
requestty = { version = "=0.6.3", features = ["macros", "termion"] }
rust-embed = { version = "=8.12.0", features = ["debug-embed", "compression", "deterministic-timestamps"] }
thiserror = "=2.0.20"
urlencoding = "=2.1.3"
yaml-rust2 = "=0.12.0"

Expand All @@ -106,6 +114,7 @@ serde.workspace = true
serde_json.workspace = true
serde_yaml.workspace = true
shadow-rs.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread"] }
bon.workspace = true

Expand Down
1 change: 1 addition & 0 deletions Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ common:
utils/ \
process/ \
scripts/ \
next/ \
.git/ \
/app

Expand Down
28 changes: 17 additions & 11 deletions bacon.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ default_job = "clippy-all"
command = ["cargo", "check", "--tests", "--color", "always"]
need_stdout = false
default_watch = false
watch = ["src", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]
watch = ["src", "next", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]

[jobs.check-all]
command = ["cargo", "check", "--all-features", "--tests", "--color", "always"]
need_stdout = false
default_watch = false
watch = ["src", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]
watch = ["src", "next", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]

[jobs.clippy]
command = [
Expand All @@ -26,17 +26,23 @@ command = [
]
need_stdout = false
default_watch = false
watch = ["src", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]
watch = ["src", "next", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]

[jobs.clippy-all]
command = [
"cargo", "clippy", "--workspace",
"cargo",
# "+nightly",
"clippy",
"--workspace",
"--all-features",
"--tests", "--color", "always",
# "--verbose",
"--tests",
"--color",
"always",
]
need_stdout = false
default_watch = false
watch = ["src", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]
watch = ["src", "next", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]

[jobs.test]
command = [
Expand All @@ -45,7 +51,7 @@ command = [
]
need_stdout = true
default_watch = false
watch = ["src", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs", "test-files", "integration-tests"]
watch = ["src", "next", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs", "test-files", "integration-tests"]

[jobs.test-all]
command = [
Expand All @@ -54,13 +60,13 @@ command = [
]
need_stdout = true
default_watch = false
watch = ["src", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs", "test-files", "integration-tests"]
watch = ["src", "next", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs", "test-files", "integration-tests"]

[jobs.doc]
command = ["cargo", "doc", "--color", "always"]
need_stdout = false
default_watch = false
watch = ["src", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]
watch = ["src", "next", "process", "recipe", "template", "utils", "Cargo.toml", "build.rs"]

# If the doc compiles, then it opens in your browser and bacon switches
# to the previous job
Expand All @@ -74,14 +80,14 @@ command = ["cargo", "install", "--path", ".", "--debug", "--locked", "--color",
need_stdout = false
allow_warnings = true
default_watch = false
watch = ["src", "process", "recipe", "template", "utils", "scripts", "Cargo.toml", "build.rs"]
watch = ["src", "next", "process", "recipe", "template", "utils", "scripts", "Cargo.toml", "build.rs"]

[jobs.install-all]
command = ["cargo", "install", "--all-features", "--path", ".", "--debug", "--locked", "--color", "always"]
need_stdout = false
allow_warnings = true
default_watch = false
watch = ["src", "process", "recipe", "template", "utils", "scripts", "Cargo.toml", "build.rs"]
watch = ["src", "next", "process", "recipe", "template", "utils", "scripts", "Cargo.toml", "build.rs"]

# You may define here keybindings that would be specific to
# a project, for example a shortcut to launch a specific job.
Expand Down
36 changes: 36 additions & 0 deletions next/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
[package]
name = "blue-build-next-builder"
description.workspace = true
edition.workspace = true
repository.workspace = true
categories.workspace = true
version.workspace = true
license = "LGPL-2.1"
build = "build.rs"

[dependencies]
blue-build-process-management = { version = "=0.9.37", path = "../process" }
blue-build-utils = { version = "=0.9.37", path = "../utils" }
blue-build-recipe = { version = "=0.9.37", path = "../recipe" }

bon.workspace = true
cached.workspace = true
comlexr.workspace = true
futures.workspace = true
lazy-regex.workspace = true
log.workspace = true
miette.workspace = true
oci-client.workspace = true
rayon.workspace = true
serde.workspace = true
serde_json.workspace = true
tempfile.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread"] }

[dev-dependencies]
rstest.workspace = true
tokio = { workspace = true, features = ["test-util"] }

[lints]
workspace = true
17 changes: 17 additions & 0 deletions next/LGPL_2.1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
The next generation build engine for BlueBuild.
Copyright (C) 2026 BlueBuild Authors

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
Loading
Loading