aws / aws/amazon-redshift-python-driver

Building wheel from source and publishing source on pypi

Open
#233 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
220
Forks
86
PR merge metrics
No merged PRs in 30d

Description

## Python version
3.11

## Problem description
We try to build wheels from source (and not use provided wheels).
```
pip uninstall redshift-connector -y && pip install --no-binary :all: redshift-connector==2.1.3 --index-url https://pypi.python.org/simple
ERROR: Could not find a version that satisfies the requirement redshift-connector==2.1.3 (from versions: none)
ERROR: No matching distribution found for redshift-connector==2.1.3
```

First problem is that https://pypi.org/project/redshift-connector/#files does not contain source distribution.

When trying to build it locally (the source distribution from git:
```
python -m build --sdist
pip wheel dist/redshift_connector-2.1.3.tar.gz
```

we get:
```
(.venv) ➜ amazon-redshift-python-driver git:(master) ✗ pip wheel dist/redshift_connector-2.1.3.tar.gz
Processing ./dist/redshift_connector-2.1.3.tar.gz
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [7 lines of output]
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "/private/var/folders/sj/1swnwb8n6tb_3cnl8zq6wgjh0000gn/T/pip-req-build-jhbghmqn/setup.py", line 107, in
install_requires=open("requirements.txt").read().strip().split("\n"),
^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt'
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
```

Adding to MANIFEST.in:
```
include requirements.txt
```

Solve the problem of building from source tar.gz.

## Reproduction code
```
git clone https://github.com/aws/amazon-redshift-python-driver.git
cd amazon-redshift-python-driver
python3.11 -m venv .venv
source .venv/bin/activate
pip install wheel build
python -m build --sdist
pip wheel dist/redshift_connector-2.1.3.tar.gz
```

Contributor guide

Open the contributing guide

Research direction

Inspect setup.py and MANIFEST.in, then run the provided python -m build --sdist and pip wheel commands in the reproduction steps. Check that the generated source archive contains the dependency file needed during metadata generation and that pip wheel completes successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.