<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:
- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->
## Summary
<!-- What's the purpose of the change? What does it do, and why? -->
While the contents of `ecosystem/` are “merely” `pyproject.toml` files
and one trivial Python script, they are still covered by the licenses of
the projects from which they are copied. Not only is maintaining
license/copyright statements good practice, but it’s generally
specifically required by the particular licenses involved here.
Even though these files are for integration testing only – and therefore
do not contribute to the license of the compiled `uv` executable – they
are nevertheless part of the source archive, so distributors and
integrators need to consider their license status. For example, I
maintain the `uv` package in Fedora Linux, and I need to consider these
licenses because the files would be redistributed in the source RPMs.
## Test Plan
<!-- How was it tested? -->
N/A – validated by examination of the diff.
At a high level, this PR adds a smattering of new tests that
effectively snapshot the output of `uv lock` for a selection of
"ecosystem" projects. That is, real Python projects for which we expect
`uv` to work well with.
The main idea with these tests is to get a better idea of how changes
in `uv` impact the lock files of real world projects. For example,
we're hoping that these tests will help give us data for how #5733
differs from #5887.
This has already revealed some bugs. Namely, re-running `uv lock` for a
second time will produce a different lock file for some projects. So to
prioritize getting the tests added, for those projects, we don't do the
deterministic checking.