Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

296 v1alpha1 #598

Closed
wants to merge 69 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
d782656
Make Ident a generic type
rydrman Oct 9, 2022
5197d99
Update recipe and package to have different idents
rydrman Oct 10, 2022
ddc22f9
Clean up ident impls and relations
rydrman Oct 13, 2022
db5bceb
Remove debug statements
rydrman Nov 19, 2022
e89392d
Add skelton of v1 spec type
rydrman Nov 5, 2022
3a67d0e
Add code to deserialize and serialize the example spec
rydrman Nov 12, 2022
d4b7b20
Break large option file into multiple
rydrman Nov 14, 2022
7c0b01b
Expand example test to entire recipe spec
rydrman Nov 14, 2022
2a5f845
Add missing top-level fields to the recipe spec
rydrman Nov 14, 2022
44505d4
Fix bug parsing envop with separator field
rydrman Nov 15, 2022
5336b52
Allow components to use undeclared default ones
rydrman Nov 15, 2022
5dcdda5
Use assert_eq that shows better data diffs
rydrman Nov 15, 2022
b952904
Fill out structs to parse the remaining example spec
rydrman Nov 15, 2022
4b4db3f
Move v0 structures to v0 crate
rydrman Nov 15, 2022
de766e8
Move test definition behind a trait
rydrman Nov 15, 2022
f296c9d
Formalize embedded packages as a generic type
rydrman Nov 16, 2022
171f8be
Remove use of v0::Opt from binary builder
rydrman Nov 18, 2022
05fd021
Add conditional logic for when blocks
rydrman Nov 18, 2022
6b2584b
Fail for unknown fields in testing
rydrman Nov 18, 2022
272707a
Allow components to be conditional in v1 recipes
rydrman Nov 18, 2022
c700bde
Expand BuildEnv trait to include options
rydrman Nov 19, 2022
f3be021
Add a Variant trait that's not just an option map
rydrman Nov 22, 2022
ee61693
Add new api variants to FromYaml implementation
rydrman Dec 5, 2022
3f4719f
Add source pkg generation for v1
rydrman Dec 5, 2022
fc7b67c
Add function to resolve uses and get full component
rydrman Dec 7, 2022
db90767
Make runtime_reqts function take a set of components
rydrman Dec 7, 2022
574f8f8
Add build enviroment calculation to v1 recipes
rydrman Dec 11, 2022
a4c7379
Add resolved options to v1 package type
rydrman Dec 11, 2022
7696b58
Add method to auto-handle namespaces in optionmap get
rydrman Dec 15, 2022
bceafee
Implement build option resolving for v1 recipe
rydrman Dec 15, 2022
f2de044
Do not generate empty var requests for v1 specs
rydrman Dec 15, 2022
ff75976
Update build script to be a Cow String
rydrman Dec 15, 2022
5ff3987
Add logic to generate v1 binary package
rydrman Dec 15, 2022
b2346ab
Add logic to get downstream requirements from v1 packages
rydrman Dec 15, 2022
b595d87
Add validation spec to v1 package
rydrman Dec 15, 2022
e2e760c
Update script block to properly parse a simple string or conditional
rydrman Dec 15, 2022
cd226d2
Ensure default components in v1 spec
rydrman Dec 15, 2022
eed82db
Update requirements.contains to check all items before giving up
rydrman Dec 15, 2022
d3dd75f
Add error when build script is found empty
rydrman Dec 15, 2022
32a2111
Add default variant to v1 recipe
rydrman Dec 15, 2022
9b5776c
Remove error implementation for PkgRequest
rydrman Dec 15, 2022
c72180c
Implement var request satisfy for v1 package
rydrman Dec 15, 2022
d44d619
Improve solution data structure/ownership
rydrman Dec 16, 2022
51eac62
Add default value for package script
rydrman Dec 16, 2022
65056fe
Flatten v1 package struct
rydrman Dec 16, 2022
b688a12
Remove 'atDownstreamBuild from pkg options
rydrman Dec 16, 2022
95e8643
Expand build env to report used components
rydrman Dec 16, 2022
734844c
Add static var assignement support to NameAndValue
rydrman Dec 18, 2022
b6c29c0
Remove atDownstreamBuild altogether
rydrman Dec 18, 2022
f2f3c18
Ressurect auto injection of downstream requirements for v0
rydrman Dec 18, 2022
fb3cc0a
Implement additional requirements for v1 variants
rydrman Dec 18, 2022
8204c58
Inject downstream requirements into v1 components
rydrman Dec 19, 2022
ea09a3f
Add option validation for v1 packages
rydrman Dec 20, 2022
3530f37
Remove unused impl Satisfy for recipe types
rydrman Dec 20, 2022
8d7d154
Add placeholders to catch common errors in yaml
rydrman Dec 20, 2022
3a181aa
Add lint command to validate yaml files
rydrman Dec 20, 2022
8907e76
Fix spec files that won't lint
rydrman Dec 20, 2022
e6a4c00
Add check to disable publishing unstable apis by default
rydrman Dec 20, 2022
23c5a40
Actually assign a version number for downstream requests in v1
rydrman Dec 21, 2022
31d6439
Fix pkg options not propagating downstream
rydrman Dec 21, 2022
0d4dc01
Use exact version matching for @source
rydrman Dec 22, 2022
0a0b565
Actually apply options as runtime requirements in packages
rydrman Dec 22, 2022
f8c5e13
Update BuildEnv to have a target
rydrman Dec 22, 2022
f1ffefc
Allow for options to be conditional on current package components
rydrman Dec 22, 2022
6e4c33c
Update v1 options to also resolve values for pkg options
rydrman Dec 23, 2022
5b67610
Update bootstrap packages to include version number, be v1 specs
rydrman Dec 23, 2022
8b09a9f
Convert some packages to v1 spec as examples/testing
rydrman Dec 23, 2022
750ed00
Fix bug where source package was always regenerated in makefile
rydrman Dec 23, 2022
fd36197
Make docker easier to control from interactive shell
rydrman Dec 23, 2022
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
5 changes: 5 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ jobs:
run: make test
- name: Lint
run: make lint
- name: Lint Package Specs
run: |
cargo build --bin spk
export PATH="$PWD/target/debug:$PATH"
make packages.lint
- name: SPFS Integration Tests
run: |
# Run tests as a normal user to verify privilege escalation
Expand Down
46 changes: 46 additions & 0 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions crates/spk-build/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ version = "0.36.0"
sentry = ["spk-solve/sentry"]

[dependencies]
itertools = "0.10.3"
relative-path = "1.3"
serde = { version = "1.0.117", features = ["derive"] }
serde_json = "1.0"
Expand Down
5 changes: 3 additions & 2 deletions crates/spk-build/src/archive_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// https://github.com/imageworks/spk

use rstest::rstest;
use spk_schema::foundation::option_map;
use spk_schema::{recipe, Package};
use spk_storage::export_package;
use spk_storage::fixtures::*;
Expand All @@ -22,11 +23,11 @@ async fn test_archive_create_parents() {
rt.tmprepo.publish_recipe(&spec).await.unwrap();
let (spec, _) = BinaryPackageBuilder::from_recipe(spec)
.with_source(BuildSource::LocalPath(".".into()))
.build_and_publish(&*rt.tmprepo)
.build_and_publish(option_map! {}, &*rt.tmprepo)
.await
.unwrap();
let filename = rt.tmpdir.path().join("deep/nested/path/archive.spk");
export_package(spec.ident(), filename)
export_package(&spec.ident().to_any(), filename)
.await
.expect("export should create dirs as needed");
}
Loading