akhilles
a8f13c4ec8
Disable path snapshot tests in windows
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-29 15:58:07 -04:00
akhilles
1d0f51ad0a
Error on unsupported metadata types
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-29 15:58:07 -04:00
akhilles
2abd3c93d5
Add snapshot tests
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-29 15:58:07 -04:00
Akhil Velagapudi
d9bfb02551
Unified caching for load(), Module() ( #180 )
...
* Simplify eval error wrapping
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Simply Module() span resolution
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Unified caching for load(), Module()
This simplifies the code and improves the performance substantially.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-23 23:19:39 -04:00
Akhil Velagapudi
3145c214ac
Fix unstable ref warning performance regression ( #176 )
...
* Generate unstable ref warnings after cache check
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Don't suppress introspection diagnostics
This is not relevant because we only raise diagnostics once per "load".
So, if introspection does transient loads, those diagnostics will be
forever suppressed if not raised during introspection.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-23 11:01:40 -04:00
Lenny Khazan
bd642654d6
pcb vendor --ignore-errors (#170 )
...
* `pcb vendor --ignore-errors`
* update snapshot
2025-09-21 14:44:19 -04:00
Akhil Velagapudi
5ad3c7effb
[ENG-1] Add language-level physical values to do math ( #161 )
...
* Add PhysicalValue Rust + Starlark types
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add more units
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add Voltage
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add physical value math
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Moar units
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Macroify
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Moar unit math stuff
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Move define_physical_unit macros
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add physical relationship tests
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add __str__
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Parse celsius, fahrenheit temps
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Hijack units.zen and swap with builtins
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add builtin
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* For unsupported ops, output dimensionless
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix starlark-rust dep
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix __str__ type annotation
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Remove unused record fields
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Remove unused imports in tests/path.rs
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add physical value to schematic
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Make physical value str conv lossless
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add back __{}__ typed properties in pcb
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix tests
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add with_tolerance, with_unit
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add physical value <> string math
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Allow all bin ops on custom type
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Parse "ohms"
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add dimensioned units
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add dimensionless casting, allow with_unit(None)
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Allow constructing physical value with just number pos arg
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Bump starlark-rust
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-19 17:12:41 -04:00
Diode Robot
fc990625c0
Add kicad version to metadata.json ( #163 )
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
Co-authored-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-19 13:11:40 -04:00
Akhil Velagapudi
dceb75b5f3
Generate warnings if Path() paths don't exist ( #160 )
...
* Add Path() to spec
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Raise warning if path does not exist
Related to DIO-375.
Even if the path doesn't exist during initial development, it should not
be checked into the registry in this state.
We can run registry CI with -Dwarnings to catch this.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Generate warnings if Path() paths don't exist
Even if allow_not_exists, warnings are useful (DIO-375).
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Release should fail if path missing
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-16 18:12:38 -04:00
Akhil Velagapudi
5b6824f223
Add board_name to metadata.json ( #159 )
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-16 13:24:56 -04:00
Akhil Velagapudi
8e9c355a3f
Disallow dots in names ( #150 )
...
* Disallow dots in names
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Bump stdlib
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Simplify is_instance_position
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Update snapshot
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-15 18:06:28 -04:00
Akhil Velagapudi
d5a2bc10e0
Revert #144 , use moved() ( #153 )
...
* Revert "Revert net naming changes (#144 )"
This reverts commit 51e5066276 .
* Don't change net name prefix case
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Register moved() directives for new net names
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Dedup get_component_prefix
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Don't change case of net names
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Update netlist tests
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Skip warnings for auto-generated directives
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-14 22:14:19 -04:00
Akhil Velagapudi
bb0898dbef
Add moved() directive ( #152 )
...
* Add pcb:sch comments to test board
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add moved() directive
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Include moved paths in Schematic
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Repair footprints, groups in layout
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Update docs
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Compute remapper data *before* processing positions
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add warnings if old path exists or new path doesn't
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add snapshot tests for moved()
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-14 21:15:37 -04:00
Akhil Velagapudi
f4359ca00e
Parse position data, include it in netlist ( #151 )
...
* Include position data in netlist
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add snapshot tests of netlist pos data
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Switch to symbol positions
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-12 10:44:44 -04:00
Akhil Velagapudi
0760ecaec4
Add basic BOM matching API ( #145 )
...
* Add EvalConfig, reuse pcb_zen::eval
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add Bom struct with multiple views
This also limits the public API of Bom to just json() and
ungrouped_json().
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add bom rule matching
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add basic BOM matching API
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Address PR comments
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add multiple offers to matching rule
Also added package to matching key
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add matched_by, make package required
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-09 00:24:55 -04:00
Akhil Velagapudi
0ca2f604ba
Replace buildifier with ruff fmt ( #146 )
...
buildifier doesn't support f-strings, which we use in a bunch of places.
We also run fmt after `pcb upgrade`, and it's a bit annoying that it
fails due to a buildifier error.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-08 23:22:10 -04:00
Akhil Velagapudi
19062d9d56
Build test release on pcb tag ( #142 )
...
Also build with -Dwarnings in `pcb release`
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-05 23:15:44 -04:00
Akhil Velagapudi
dbc3ab31e6
Make pcb tag and pcb release consistent ( #139 )
...
* Make pcb tag and pcb release consistent
Before:
pcb tag --board <BOARD> --version <VERSION> [PATH]
pcb release <zen_path> # inconsistent - used file path
After:
pcb tag --board <BOARD> --version <VERSION> [PATH]
pcb release --board <BOARD> [PATH] # now consistent
Also, prefix the board name so that the folders + zip file names are
easier to grok.
Before:
- Staging: .pcb/releases/MyBoard/v1.0.0/
- Zip: .pcb/releases/MyBoard/v1.0.0.zip (just v1.0.0.zip, not MyBoard.v1.0.0.zip)
After:
- Staging: .pcb/releases/MyBoard-v1.0.0/
- Zip: .pcb/releases/MyBoard-v1.0.0.zip
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add find_board_by_name method
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Only print structured data to stdout
Only print json if -f json. Print human-friendly table otherwise.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-05 22:44:14 -04:00
Akhil Velagapudi
0ee48ef792
Require --board in pcb tag ( #136 )
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-04 22:31:10 -04:00
Akhil Velagapudi
0c2c87c338
[DIO-352] Add TestBench() support ( #129 )
...
* Add TestBench
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add checks
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add net -> ports dict
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add port -> pin dict
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Provide component properties to check fns
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Update spec, fix spans on check failures
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Use check(), error() to fail checks instead of return value
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add ModuleView to group check fn args
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add component_values field, expose more typed values
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fully switch to ComponentValues in check fn
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Use ModuleValue directly
Delete ModuleView
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add at() support for module which can return sub-module or component
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Rename testbench.rs -> test_bench.rs
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Move bench_test_cases to test-workspaces/bench
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Print "checks passed" log to eprintln
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Make .nets and .components functions
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add schematic to graph conversion, path finding
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add external net support to path finding
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Don't use bool ret for matchers
Use error(), check()
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add path.matches()
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add samples
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Moar samples
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Update spec.mdx
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Consolidate seq matchers test code
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add suppress_errors
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add lm5163q1 example
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add test_cases, inputs arg to check fns
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Update bmi270 example to use path.matches()
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Use more path.matches()
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add span for path.matches()
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add pcb test
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Print stuff only to stderr
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Output test results in TAP or json
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* "testbench" -> "test_bench"
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add table output format for pcb test
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Tolerate non-callable inputs to "checks"
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add tuple checks support for renaming check fns
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add snapshot tests
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Make max_depth optional
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-09-04 22:30:30 -04:00
Akhil Velagapudi
af92d81ee2
Fix fetching a commit from a non-default branch ( #119 )
...
* Fix fetching a commit from a non-default branch
Previously, we would do a shallow clone of the default branch and then
attempt to checkout the commit. This doesn't work if the commit is not
on the default branch.
Also, allow specifying short hash (len 7).
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Remove left over dbg
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-26 10:00:27 -07:00
Yishen Chen
b4aa47b114
Add pcb sim to setup spice simulation from schematics ( #56 )
2025-08-26 12:06:04 -04:00
Akhil Velagapudi
27e91cf0a3
Add Path() with allow_not_exist support ( #118 )
...
* Combine LoadSpec::Path and LoadSpec::Workspace
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add allow_not_exist flag
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add Path() with allow_not_exist support
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Allow vendoring of directories
Use shared vendoring code in pcb vendor/release.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add pcb release test
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-26 08:42:00 -07:00
Akhil Velagapudi
9ae327b645
Add pcb tag ( #117 )
...
* Add `pcb tag`
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add `--force` flag to `pcb tag`
Also, remove the version ordering validation.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-25 22:45:58 -07:00
Akhil Velagapudi
ae7766a8a6
Add warnings for unstable refs in load(), Module() ( #105 )
...
* Refactor diagnostics for warnings support
- Add render trait
- Render warnings after errors
- Reuse build code across build, layout
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Delete bundle
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix clippy lints
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add git ref metadata
3 stages to fetch_remote:
- Ensure remote is in cache
- Add appropriate symlinks
- Classify + store ref metadata
Some code cleanup:
- Factored out some git clone dupe code
- Centralized git operations in git.rs
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Warn on unstable refs
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add "-Dwarnings" flag to error on warnings
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Warn on unstable refs in Module()
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add snapshot tests for warnings
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix span detection for chained Module()
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add ResolveContext, dedup resolve code
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Use spec history for better alias warnings
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add pcb.toml spans
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add type-erased error storage to Diagnostic
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix bug with load() span detection
The previous logic would just attempt to match by path, but if there are
multiple load() statements in a single file with the same path, then
find_load_span_for_path with always return the first.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Added diagnostics passes
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add LSP-specific pass to filter out some warnings
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix rebase conflicts
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix unstable ref detection logic
If we clone by tag and the tag exists in the git repo, it's a stable
ref. Same with commit.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-25 15:45:51 -07:00
Akhil Velagapudi
3b2f8f1a08
Copy all tracked files to release src ( #115 )
...
* Build after release in snapshot tests
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Copy all tracked files to release src/
Remove the filtering that I added, it's not needed. This can be further
simplified in the future by merging tracked_local_files into
path_to_spec.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Do offline build of staged sources
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Do --offline builds in release + build tests
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Error on local deps outside workspace when vendoring
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Track local pcb.toml files
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-25 10:39:10 -07:00
Akhil Velagapudi
dcdec1262c
Make pcb release and pcb bom -f json consistent ( #114 )
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-24 18:12:36 -07:00
Akhil Velagapudi
96582b2714
Standardize pcb info paths ( #108 )
...
`pcb info` would mix and match absolute vs relative paths for workspace
root and board .zen paths. Enforce consistent behavior:
- Workspace root: always show full canonical path
- Board paths: always relative to workspace root
Also, removed the removed redundant directory field.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-23 15:53:37 -07:00
Akhil Velagapudi
b76e7eb53d
[DIO-347] Fix workspace-relative loads in local paths ( #107 )
...
* Add regression test for "//" dep in local path
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Resolve "effective_workspace_root" (with cache)
Which is different from overall "workspace_root".
Do this once at the top instead of at multiple downstream sites.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-23 13:25:09 -07:00
Akhil Velagapudi
f3ee7fb3a9
Serialize bom as list ( #103 )
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-22 10:45:21 -07:00
Akhil Velagapudi
9549fca231
[DIO-334] Switch to <board_name>/<version> tags ( #102 )
...
* Switch to `<board_name>/<version>` tags
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix bug where .source.zip wasn't used for source-only releases
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Make tag -> board matching case-insensitive
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Sanitize cli version
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add git helpers to sandbox
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-22 09:31:14 -07:00
Akhil Velagapudi
0da1d57a35
[DIO-333] Add --source-only releases, schema_version ( #101 )
...
* Add --source-only flag to `pcb release`
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add schema version to metadata.json
This'll help with migrations. Rename existing "version" field to
"git_version" to disambiguate.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add pcb release snapshot tests
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Sanitize git hashes
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Sanitize arch, platform, user
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Use flat schema version
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-22 07:50:46 -07:00
Akhil Velagapudi
4c4213aa48
Export pre-aggregated, unmatched bom w/ path as key ( #100 )
...
* Export pre-aggregated BOM w/ path as key
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add pcb bom snapshot tests
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Update existing snapshot
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Rename bom/unmatched.json to bom/design_bom.json
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-21 18:48:37 -07:00
Akhil Velagapudi
44c73baf2d
[DIO-319] Add board config to pcb.toml, pcb info ( #92 )
...
* Add board config to pcb.toml, pcb info
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Choose first board (when sorted) as fallback default
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add secondary heuristics pass to detect boards without pcb.toml
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Update snapshots
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Don't allow malformed pcb.toml
Empty pcb.toml is fine.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Don't copy .pcb/cache into test fixture
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Replace test-workspace with snapshot tests of pcb info
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-21 15:20:16 -07:00
Akhil Velagapudi
9a1930c2c5
pcb cli-level testing (#96 )
...
* Add sandbox
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add dir snapshotting
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add branch support, snapshot_dir
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add snapshot testing of stdout/stderr
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Only use local files for workspace root detection
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add bom, release tests
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add pcb vendor snapshot test
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Sanitize linux tmp dir paths
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Ignore some tests on Windows
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Reuse dep fetching code from pcb-zen
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix download race condition
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Bump lock file
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Specify default branch
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Suppress 3d export logs to stdout
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-21 13:52:38 -07:00