Experiment with virtualenv based packaging in the petmail style. #2255
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#2255
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Some notes on how nejucomo generated
./requirements.txt
:./setup.py
to renamesupport
tolegacysupport
.support
tolegacysupport
in.gitignore
../support
from petmailSafeDevelop
andrun_command
from petmail, but renamed the latter to avoid a collision from default tahoesetup.py
.python ./setup.py safe_develop
mainly to initialize./venv
(but perhaps it would be simpler to runpython ./support/virtualenv.py ./venv
)./venv/bin/pip install .
to use the existing./setup.*
to install dependencies into the new./venv
.requirements.txt
using the existing./venv
by running./venv/bin/python ./venv/bin/peep.py freeze > ./requirements.txt
wsgiref
andallmydata-tahoe
fromrequirements.txt
./venv
then ranpython ./setup.py safe_develop
to trigger peep's display of package hashes.requirements.txt
with the output of peep.I've just pushed an implementation of the above steps to https://github.com/nejucomo/tahoe-lafs/commits/2255-virtualenv-packaging.messy
Warner has an independent implementation of this approach which was created in "parallel sprint race mode": https://github.com/warner/tahoe-lafs/tree/venv
That implementation was more liberal in hacking out most of
./setup.py
.So, I see how this works for source packages, or if the
requirements.txt
is created on the same platform as the build in the virtualenv. I don't see how it works for binary eggs -- wouldn't we need to ship differentrequirements.txt
files for each platform, containing different hashes?Perhaps it is sufficient to have a
requirements.txt
for Windows 32-bit w/ Python 2.7, one for Windows 64-bit w/ Python 2.7, and one for every other platform that assumes a compiler and builds everything from source?See also #2077 (pip packaging plan).
Milestone renamed
We've switched to virtualenv-based installation. Not quite in the style that Nathan and I were exploring (where a new command creates+populates a virtualenv for you), but I think the existing #2055 build-it-safely ticket can cover the distance between what we've got now (virtualenv; pip install) and a peep/requirements.txt -based safe-build step on top of it. So I think we can close this one out.