d-asnaghi
5c539e1618
add hatching to complex test
2025-08-24 01:10:28 -04:00
d-asnaghi
c0e7524da3
use Duplicate
2025-08-24 01:05:23 -04:00
d-asnaghi
497bc9a6bf
add graphics groups
2025-08-24 00:11:04 -04:00
d-asnaghi
6114d1b14c
move methods to virtual item
2025-08-23 23:56:12 -04:00
d-asnaghi
9b2a3014fe
reduce complexity
2025-08-23 23:50:05 -04:00
d-asnaghi
5e1dae4458
bump timout
2025-08-23 23:28:35 -04:00
d-asnaghi
8ae65df813
add timout
2025-08-23 23:16:35 -04:00
d-asnaghi
5c84abe585
add graphics test
2025-08-23 23:14:18 -04:00
d-asnaghi
ed1f17185b
fix snapshots with no files
2025-08-23 23:12:44 -04:00
d-asnaghi
bd73505b33
deterministic snapshot
2025-08-23 23:12:44 -04:00
d-asnaghi
a48dec4ea0
add complex test
2025-08-23 23:12:44 -04:00
d-asnaghi
96696f48c3
fix sync graphics
2025-08-23 23:12:44 -04:00
d-asnaghi
9c80fab38f
add zone sync
2025-08-23 23:12:44 -04:00
d-asnaghi
ab281447da
hack: keep old tests to make sure we don't mess up
2025-08-23 23:12:44 -04:00
d-asnaghi
9097c81c55
wip: fix nets for zones
2025-08-23 23:12:44 -04:00
d-asnaghi
9bd46cea2c
hack: amend tests with (0,0) positioning for now
2025-08-23 23:12:44 -04:00
d-asnaghi
117e879aaa
add more interesting test
2025-08-23 23:12:44 -04:00
d-asnaghi
85f5ab3ece
fix net determinism
2025-08-23 23:12:44 -04:00
d-asnaghi
dcf37bd51e
fix zone sync
2025-08-23 23:12:44 -04:00
d-asnaghi
94723014f0
simpler zone test
2025-08-23 23:12:44 -04:00
d-asnaghi
4201c01536
add zones to groups
2025-08-23 23:12:44 -04:00
d-asnaghi
6a29835ead
add initial test for zone sync
2025-08-23 23:12:44 -04:00
d-asnaghi
2027895d99
sync zones and text
2025-08-23 23:12:44 -04:00
Lenny Khazan
222f784fc2
Add flag for supporting vendor in wasm ( #109 )
2025-08-23 21:25:30 -04: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
2a57b047d1
Add PCB_NAME variable substitution ( #104 )
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-22 10:52:49 -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
deec05e184
Remove invalid workflow file ( #99 )
...
It's causing a bunch of noise in Actions.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-21 14:53:48 -07:00
Akhil Velagapudi
eedba95d7d
Use smart rust cache ( #98 )
...
* Use smart rust cache
Out cache sizes are blowing up:
Cache Size: ~8914 MB (9346691088 B)
"C:\Program Files\Git\usr\bin\tar.exe" -xf C:/a/_temp/277318a1-9141-472d-bf1b-4d0461835b0b/cache.tzst -P -C C:/a/pcb/pcb --force-local --use-compress-program "zstd -d"
Cache restored successfully
Cache restored from key: Windows-cargo-02b001115c33129b2426bd7db7faa11329497685bfa1d1e328c20e41bc781dca
Which is slowing down builds. Just fetching cargo cache took 6 mins.
Swatinem/rust-cache has much better default behavior:
- Cleans dependencies no longer used
- Cleans incremental build artifacts
- Cleans anything older than 1 week
It also only caches dependencies (and their built artifacts). Caching
workspace crates is not that useful.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Reuse build pcb for stdlib testing
Also use actions/checkout for faster cloning.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-21 14:37:50 -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
Lenny Khazan
9d75b20b24
bump version ( #97 )
v0.2.0-prerelease.5
2025-08-21 15:30:27 -04:00
Akhil Velagapudi
477d0f0e79
Vendor pcb.toml files ( #93 )
...
* Mark vendor/ dir as alias root
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Don't consider pcb.toml files irrelevant
Use more LoadSpec helpers.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Track pcb.toml files in path_to_spec
This is enough for `pcb vendor` to pick up these files and copy them to
the vendor/ dir.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Use FileProvider::exists
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-21 15:29:34 -04:00
Lenny Khazan
f46a1918db
Use vendor/ folder in release ( #95 )
...
* Use vendor/ folder in release
* only for release
2025-08-21 15:29:24 -04:00
Akhil Velagapudi
ea36c60894
Include drill map pdf in gerbers.zip ( #94 )
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-20 20:47:16 -07:00
Akhil Velagapudi
1ee83c6e7e
Initial implementation of interface subclasses + auto-promotion ( #89 )
...
* Add serialize(), deserialize() builtins for debugging
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add field(), __post_init__ to interface()
Also, add better print() behavior.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add interface/net promotion
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Remove Cargo.toml patch
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix example
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Fix test workspace
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add interface arg type checking
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Update spec.mdx
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Allow `using(Net)`
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-20 09:27:39 -07:00
Akhil Velagapudi
f54aa468cc
Add hierarchical package alias resolution ( #91 )
...
Deeper directories taking priority.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-20 08:50:47 -07:00
Akhil Velagapudi
1df8194abf
Switch to larger github runners ( #90 )
...
* Switch to larger github runners
The "xlarge" in "macos-15-xlarge" doesn't actually mean extra large. The
"x" indicates arm64 as opposed to Intel.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Remove dep on deprecated actions-rs/toolchain@v1
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-19 18:50:50 -07:00
Akhil Velagapudi
392c9b9395
Better CAD exports ( #88 )
...
* Use copied layout files as source for cad export
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Include pads, silkscreen, soldermask in CAD
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Patch text vars in .kicad_pro file
This is used for CAD export for some reason over the .kicad_pcb file.
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-19 16:35:12 -07:00
Akhil Velagapudi
8996bef578
Use "odb.zip" for the ODB++ archive ( #87 )
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-19 15:32:33 -07:00
Akhil Velagapudi
55dc9a736e
Add ODB++ release artifact ( #86 )
...
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-19 15:28:11 -07:00
Lenny Khazan
d554a4f281
Bump to 0.2.0-prerelease.4 and add --version ( #85 )
v0.2.0-prerelease.4
2025-08-19 16:55:59 -04:00
Lenny Khazan
2bd2a2afb2
Add JSON output mode to pcb release ( #84 )
2025-08-19 16:53:23 -04:00
Lenny Khazan
d8afaba34b
Remove LSP autoimport logic ( #83 )
2025-08-18 23:07:43 -04:00
Lenny Khazan
f9a6743428
0.2.0-prerelease.3 ( #82 )
...
* bump version
* Bump version: 0.2.0-prerelease.3
2025-08-18 18:32:06 -04:00
Akhil Velagapudi
47190c5821
[DIO-309] Add component_type tag for well-known components ( #81 )
...
* Make zen_file path relative to release archive
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
* Add component_type tag for well-known components
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
---------
Signed-off-by: akhilles <akhilvelagapudi@gmail.com >
2025-08-18 14:54:40 -07:00