astral-uv:charlie/zlib

Last commit made on 2024-01-20
Get this branch:
git clone -b charlie/zlib https://git.launchpad.net/astral-uv

Branch merges

Branch information

Name:
charlie/zlib
Repository:
lp:astral-uv

Recent commits

305855a... by Charlie Marsh <email address hidden>

Re-enable zlib-ng

69d2791... by Charlie Marsh <email address hidden>

Remove URL clone in requirements-txt parser (#1020)

b3954f2... by Charlie Marsh <email address hidden>

Enable PowerPC builds (#1017)

Closes #1015.

459c2ab... by Charlie Marsh <email address hidden>

Avoid canonicalizing paths in `requirements-txt` (#1019)

## Summary

When you specify an editable that doesn't exist, it should error, but
not in the parser -- the error should be downstream.

d55e34c... by Charlie Marsh <email address hidden>

Make editable URL parsing more robust (#1018)

This just generalizes the parsing to handle arbitrary schemes instead of
encoding a fixed list.

7292493... by Charlie Marsh <email address hidden>

Upgrade cargo-dist (#1016)

c663959... by Charlie Marsh <email address hidden>

Rename `pep440-rs` to `Readme.md` (#1014)

This is due to a bug in Maturin
(https://github.com/PyO3/maturin/pull/1915), so I'll just fix our setup
to work with existing versions.

Closes https://github.com/astral-sh/puffin/issues/991.

7b36519... by Charlie Marsh <email address hidden>

Add support for ARM Linux builds in release (#1012)

Closes #992.

33b35f7... by Zanie Blue <email address hidden>

Add support for disabling installation from pre-built wheels (#956)

Adds support for disabling installation from pre-built wheels i.e. the
package must be built from source locally.
We will still always use pre-built wheels for metadata during
resolution.

Available via `--no-binary` and `--no-binary-package <name>` flags in
`pip install` and `pip sync`. There is no flag for `pip compile` since
no installation happens there.

```
--no-binary

    Don't install pre-built wheels.

    When enabled, all installed packages will be installed from a source distribution.
    The resolver will still use pre-built wheels for metadata.

--no-binary-package <NO_BINARY_PACKAGE>

    Don't install pre-built wheels for a specific package.

    When enabled, the specified packages will be installed from a source distribution.
    The resolver will still use pre-built wheels for metadata.
```

When packages are already installed, the `--no-binary` flag will have no
affect without the `--reinstall` flag. In the future, I'd like to change
this by tracking if a local distribution is from a pre-built wheel or a
locally-built wheel. However, this is significantly more complex and
different than `pip`'s behavior so deferring for now.

For reference, `pip`'s flag works as follows:

```
--no-binary <format_control>

    Do not use binary packages. Can be supplied multiple times, and each time adds to the
    existing value. Accepts either ":all:" to disable all binary packages, ":none:" to empty the
    set (notice the colons), or one or more package names with commas between them (no colons).
    Note that some packages are tricky to compile and may fail to install when this option is
    used on them.
```

Note we are not matching the exact `pip` interface here because it seems
complicated to use. I think we may want to consider adjusting our
interface for this behavior since we're not entirely compatible anyway
e.g. I think `--force-build` and `--force-build-package` are clearer
names. We could also consider matching the `pip` interface or only
allowing `--no-binary <package>` for compatibility. We can of course do
whatever we want in our _own_ install interfaces later.

Additionally, we may want to further consider the semantics of
`--no-binary`. For example, if I run `pip install pydantic --no-binary`
I expect _just_ Pydantic to be installed without binaries but by default
we will build all of Pydantic's dependencies too.

This work was prompted by #895, as it is much easier to measure
performance gains from building source distributions if we have a flag
to ensure we actually build source distributions. Additionally, this is
a flag I have used frequently in production to debug packages that ship
Cythonized wheels.

8b49d90... by Zanie Blue <email address hidden>

Refer to the user instead of "root" when mentioning direct dependencies (#982)

Closes https://github.com/astral-sh/puffin/issues/857