[virt-tools-list] setup.py and packaging for distribution
Gene Czarcinski
gene at czarc.net
Tue Mar 26 15:59:19 UTC 2013
OK, I have been looking into how packaging and distribution works for
example of when you want to get a snapshot of your development.
1. python ./setup.py build seems to work
2. python ./setup.py rpm fails looking for some patch file (?) but does
create a tarball in ./dist/
3. python ./setup.py sdist works and creates a tarball in ./dist/
4. in both of the above cases the tarball is completely unsatisfactory!
They contain everything in the directory.
Suggestions:
1. Use "git archive" since it will only gather files that branch
currently manages
2. This is a snapshot. The tarball name should be something like
virt-manager-git20130326.tar.gz
3. Add more tags. I know you have the RELEASE-0.9.4-1, etc. tags but
you need some additional one for things such as release-candidates,
testing-candidates, etc. For example, maybe the current gtk3.2 branch
should have a tag something like gtk3.2-t1 [test 1].
Why the above suggestions:
1. From the git-scribe man page:
> The command finds the most recent tag that is reachable from a
> commit.
> If the tag points to the commit, then only the tag is shown.
> Otherwise,
> it suffixes the tag name with the number of additional commits
> on top
> of the tagged object and the abbreviated object name of the
> most recent
> commit.
2. Use this tag-info to set the virt-manager "version"
3. Bring back a bit of the v-m.spec.in file. Set the Version as the
"date" from one specified on the tarball using "sed". Then you can add
the tag-info as the "release" or "extra-release" using "sed". The output
of "sed" should be the .spec file which is NOT managed by git but the
spec.in is.
4. When you run "git archive", create the tarball (.tar file) but not
compressed (.gz). Now run "tar -rf" to add the spec file into the
tarball. Now you can run gzip to compress the tarball.
5. Skip creating rpms ... source or "binary". Create a mechanism to
produce a snapshot tarball. To get an rpm, rpmbuild -ts works just fine.
I have implemented something like the above as a bash script for another
project. If you want, I will take a shot at implementing this as part
of setup.py ... just point me where to look and where to change things
for the virt-manager --version.
Gene
More information about the virt-tools-list
mailing list