Project

General

Profile

Fix #11242

ceph-deploy 1.5.22 tarball does not contain tox.ini

Added by Ken Dreyer over 4 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
Start date:
03/26/2015
Due date:
% Done:

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
ceph-qa-suite:
Crash signature:

Description

For some reason http://pypi.python.org/packages/source/c/ceph-deploy/ceph-deploy-1.5.22.tar.gz does not contain tox.ini.

I'm not sure why this happened. When I run python setup.py sdist on a git checkout of the v1.5.22 git tag, the tox.ini file is present in the tarball that setuptools generates.

Is it possible that Jenkins (or something else in the 1.5.22 release process) is running something other than python setup.py sdist to generate the tarball that gets uploaded to PyPI?

(The impact is that the downstream Fedora packages of ceph-deploy-1.5.22 cannot trivially run the test suite. I worked around it by grabbing the tox.ini file directly from GitHub, but I suspect this was working at some point a while back, it would be nice to know what happened in 1.5.22.)

History

#1 Updated by Travis Rhoden over 4 years ago

I suspect that we would want to include tox.ini in the MANIFEST.in file if we wanted it to be included.

Ironically, the manifest at one time excluded all the test files (prune ceph_deploy/test), but then the tests got moved from ceph_deploy/test to ceph_deploy/tests without the manifest being updated. I think our best course of action would be to remove the prune line from the manifest, and add tox.ini.

#2 Updated by Travis Rhoden over 4 years ago

  • Tracker changed from Bug to Fix
  • Status changed from New to Need Review
  • Target version set to 1.5.23
  • Source changed from other to Development

Up for review at: https://github.com/ceph/ceph-deploy/pull/274

I verified that adding it the manifest produces a tarball containing tox.ini

#3 Updated by Ken Dreyer over 4 years ago

Discussed this with Travis on IRC today.

Before I got involved with the downstream Fedora packages, Federico had been generating a .xz tarball locally. The comments in Fedora's ceph-deploy.spec hinted that this was done via a local Git clone?

In http://pkgs.fedoraproject.org/cgit/ceph-deploy.git/commit/?id=6111defdaff4f5e59c25ce23610dcbcda657b61d , I switched the downstream Fedora packages from using the locally-generated tarball to using the source tarball directly from PyPI. (In addition to being more closely aligned with Fedora's upstream monitoring tooling, this also means less work to package downstream, and the ability to use a "known good" distribution of the source code, etc.)

Also, in IRC Travis mentioned that he's not seeing the tox.ini file in a 1.5.22 checkout. This is weird because I'm seeing it in my local clone here:

$ rm -r dist
$ git checkout v1.5.22
$ python setup.py sdist
$ tar tzf dist/ceph-deploy-1.5.22.tar.gz | grep tox
ceph-deploy-1.5.22/tox.ini

...At any rate, now I see Travis has a PR for MANIFEST.in, which is great and the right way to solve this :)

#4 Updated by Travis Rhoden over 4 years ago

  • Status changed from Need Review to Resolved

Fixed with: https://github.com/ceph/ceph-deploy/commit/6414089bcf12a87618f8abcdf951fe71b5be901f

To clarify on some of the questions that were asked in the original report:

Jenkins does not push to PyPI, a developer does (currently me or Alfredo). We do this by checking out the tag, and doing "python setup.py sdist upload" directly.

For all of Jenkins' tests, it is using a git clone, so it has access to all the files.

Also available in: Atom PDF