Commit Graph

7 Commits

Author SHA1 Message Date
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
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 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 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 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