From 5af967b32b6ebbbc6a3ce439144eb0d69be5aece Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Mon, 15 Sep 2014 16:14:12 +0200 Subject: [PATCH] a first step towards publishing on pypi (so that one can install this using pip install sfa) --- Makefile | 30 ++++++++++++++++++++++++++++++ README.md | 2 +- readme.py | 28 ++++++++++++++++++++++++++++ setup.cfg | 4 ++++ setup.py | 11 +++++++++-- 5 files changed, 72 insertions(+), 3 deletions(-) create mode 100755 readme.py create mode 100644 setup.cfg diff --git a/Makefile b/Makefile index 76392a9d..bbdb8315 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,10 @@ rpmtaglevel:=$(shell rpm -q --specfile sfa.spec --queryformat="%{release}\n" 2> VERSIONTAG=$(rpmversion)-$(rpmtaglevel) # this used to be 'should-be-redefined-by-specfile' and it indeed should be SCMURL=git://git.onelab.eu/sfa.git +TARBALL_HOST=root@build.onelab.eu +TARBALL_TOPDIR=/build/sfa +# I have an alternate pypitest entry defined in my .pypirc +PYPI_ARGS= -r pypi python: version @@ -137,6 +141,32 @@ signatures: (cd sfa/methods; grep 'def.*call' *.py > SIGNATURES) .PHONY: signatures +########## for uploading onto pypi +# a quick attempt on pypitest did not quite work as expected +# I was hoping to register the project using "setup.py register" +# but somehow most of my meta data did not make it up there +# and I could not find out why +# so I went for the manual method instead +# there also was a web dialog prompting for a zip file that would +# be used to initialize the project's home dir but this too +# did not seem to work the way I was trying to use it, so ... + +# this target is still helpful to produce the readme in html from README.md +index.zip: README.md + python readme.py + +# I need to run this on my mac as my pypi +pypi: version + setup.py sdist upload $(PYPI_ARGS) + ssh $(TARBALL_HOST) mkdir -p $(TARBALL_TOPDIR)/$(VERSIONTAG) + rsync -av dist/sfa-$(VERSIONTAG).tar.gz $(TARBALL_HOST):$(TARBALL_TOPDIR)/$(VERSIONTAG) + +# cleanup +clean: readme-clean + +readme-clean: + rm -f index.html index.zip + ########## sync # 2 forms are supported # (*) if your plc root context has direct ssh access: diff --git a/README.md b/README.md index 77e9e9b1..5fd0f079 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Purpose This software implements a wrapper for the SFA (Slice-based Federation Architecture) that allows networking testbeds to interoperate in terms -of exposing and provisioning resources. It comes with some drivers for +of exposing and provisioning resources. It comes with drivers for a few testbeds, notably PlanetLab and IotLab. References diff --git a/readme.py b/readme.py new file mode 100755 index 00000000..dd2ed9c0 --- /dev/null +++ b/readme.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +from __future__ import print_function + +from argparse import ArgumentParser + +# sudo pip install markdown +import markdown +import zipfile + +usage="transform README.md into index.html and zip into index.zip" +parser = ArgumentParser(usage=usage) +args = parser.parse_args() + +input="README.md" +output="index.html" +zipped="index.zip" + +with open(output,"w") as o: + with open(input) as i: + html = markdown.markdown (i.read()) + o.write(html) +print ("(Over)written {}".format(output)) + +with zipfile.ZipFile(zipped,'w') as z: + z.write(output) +print ("(Over)written {}".format(zipped)) + diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..524b9053 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,4 @@ +[metadata] +summary = An SFA Wrapper together with drivers for PlanetLab and IotLab and others +description-file = README.md +license = LICENSE.txt diff --git a/setup.py b/setup.py index b5094433..4bd45834 100755 --- a/setup.py +++ b/setup.py @@ -4,6 +4,10 @@ Installation script for the sfa module """ +# as fas as pushing onto pypi, I have been using this page +# http://peterdowns.com/posts/first-time-with-pypi.html +# for setting up the whole business + import sys, os, os.path from glob import glob import shutil @@ -115,9 +119,12 @@ else: setup(name='sfa', packages = packages, data_files = data_files, - scripts = scripts, + version=version_tag, + keywords = ['federation','testbeds','SFA','SfaWrap'], url="http://svn.planet-lab.org/wiki/SFATutorial", author="Thierry Parmentelat, Tony Mack, Scott Baker", author_email="thierry.parmentelat@inria.fr, tmack@princeton.cs.edu, smbaker@gmail.com", - version=version_tag) + download_url = "http://build.onelab.eu/sfa/{v}/sfa-{v}.tar.gz".format(v=version_tag), + scripts = scripts, +) -- 2.43.0