package --include-source: the project source archive requires a licenses/ directory that does not exist
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 85/100
Research direction
Start with ReleaseBuildConstants.PROJECT_SOURCE_PATHS in scripts/nvx_tools/build_constants.py and the source-archive flow in scripts/nvx_tools/release.py. Check that every listed path exists, then run python3 scripts/nvx.py package --include-source after collect-sources; done means the package succeeds from a clean checkout and a test catches missing listed paths.
Written by the indexing model from the issue text.
Description
Summary
package --include-source cannot succeed from a clean checkout. The project source archive lists a top-level licenses/ path that is not in the repository, and archive creation refuses missing inputs. This is independent of #374. I found it while validating #385 on a bare-metal Linux/KVM host.
Where
ReleaseBuildConstants.PROJECT_SOURCE_PATHSL392-L415 includes"licenses"(L402)._project_source_archiveL739-L762 adds every listed path under the repository root.create_reproducible_tar_gzL33-L41 raises when an input does not exist.licenses/has never existed ondev. The root commit ofdev, 254a56c38, already listed it, but its tree had no such directory.- In the earlier prototype history, c8f3da034 moved
licenses/COPYING-LINUXtokernel/COPYING-LINUX, which the archive already covers throughkernel. - The release package's own
licenses/directory (release.pyL1486-L1493,doc/build.mdL276-L277) is assembled fromopenvmm/LICENSEandkernel/COPYING-LINUX. It has nothing to do with the project source archive.
- In the earlier prototype history, c8f3da034 moved
- CI does not catch this because the
package-releaseaction passes--binary-only(L28-L31, L44-L47). No test checks that the listed paths exist.
Trigger: the documented source-inclusive flow (doc/distribution.md L12-L26): collect-sources, then package --include-source.
Expected: package --include-source creates the project source archive from the repository's project files.
Actual: on prometheus32 (Linux/KVM), at a3d929a plus #385, after a successful collect-sources:
$ python3 scripts/nvx.py package --include-source
!! source-inclusive package omits the Azure Linux guest: collect-sources does not collect its corresponding source
error: cannot create source archive; missing: /home/ppenna/nvx-issue-374/licenses
After I created an empty licenses/ directory in the scratch clone, the same command succeeded and staged all four source archives.
Suggested fix
- Remove
"licenses"fromPROJECT_SOURCE_PATHS.LICENSE,THIRD_PARTY_NOTICES.md, andkernel/COPYING-LINUXare already covered. - Add a unit test that every
PROJECT_SOURCE_PATHSentry exists, preferably as a git-tracked path, so the list cannot drift from the tree again.
- Dominant language
- Python
- Stars
- 237
- Forks
- 14
- Avg merge
- 13h 18m
- Merged PRs (30d)
- 232
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/nvx
-
Managed start can fail when OpenVMM reads its control capability before NVX writes itPossibly taken @ppenna claimed this today. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Fall back from --cpu-profile auto to a host profile, with a warning, on CPUs that no built-in profile servesPossibly taken @ppenna claimed this 1 day ago. Open
microsoft/nvx#434 · 1 assignee ·
Maintainers usually reply within 1 day
-
CI: maximize workflow parallelism and reduce turnaround timePossibly taken @ppenna claimed this 1 day ago. Open
Difficulty 5/5 Over a week Newbie friendliness 35/100
microsoft/nvx#430 · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
microsoft/nvx#426 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
Maintainers usually reply within 1 day
Similar issues
-
docs(types): update the collection binding note now that typed collections shipped in pycubrid 1.9.0Opendocumentation priority: low size: S
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
cubrid-lab/sqlalchemy-cubrid#768 ·
Maintainers usually reply within 1 day
-
bug help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 65/100
ansys/pydpf-core#3547 ·
Maintainers usually reply within 1 day
-
core
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
vectorize-io/hindsight#5457 ·
Maintainers usually reply within 1 day
-
[Bug]: LangChain drops OpenAI Responses text blocks from session recordingPossibly taken @ktz03 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
volcengine/OpenViking#5806 ·
Maintainers usually reply within 1 day