Best Practices for Django App Packaging

John.Florian at dart.biz John.Florian at dart.biz
Tue Jan 21 19:12:55 UTC 2014


> From: sgallagh at redhat.com
> To: Development discussions related to Fedora 
<devel at lists.fedoraproject.org>
> Date: 01/21/2014 13:24
> Subject: Re: Best Practices for Django App Packaging
> Sent by: devel-bounces at lists.fedoraproject.org
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 01/21/2014 11:22 AM, John.Florian at dart.biz wrote:
> >> On 01/21/2014 03:45 PM, John.Florian at dart.biz wrote:
> >>> While I've been packaging Python apps for Fedora for a long
> >>> time, I'm a complete novice to Django.  I've just completed my
> >>> first app (using the built-in development server) and now want
> >>> to get it packaged.  Thus far I've followed my normal model of
> >>> using setuptools so that everything very cleanly lands in
> >>> /usr/lib/python2.7/site-packages/my_package.  My Django app is
> >>> under there, along with other related Python modules that are
> >>> used independently of the Django app.
> >>> 
> >>> I'm not finding any docs in the Fedora package guidelines and
> >>> am unaware of existing packages that might serve as excellent
> >>> examples.  My web searches are turning up lots, but nothing
> >>> much specific to Fedora.
> >>> 
> >>> At the moment, I'm particularly struggling with how to make my 
> >>> /etc/httpd/conf.d/myapp.conf point to my 
> >>> /usr/lib/python2.7/site-packages/my_package/my_site/wsgi.py in
> >>> a good generic RPM spec sense.  I'd rather not hard-code the
> >>> Python version in myapp.conf.
> >>> 
> >>> Any pointers would be greatly appreciated.
> >>> 
> >> If you want an exampple, please look at openstack-dashboard: [1]
> >> is the config file to be dropped at /etc/httpd/conf.d (for 
> >> httpd-2.2) or [2] for httpd-2.4
> >> 
> >> The spec is here[3] for reference.
> >> 
> >> HTH, Matthias
> >> 
> >> 
> >> [1] 
> >> http://pkgs.fedoraproject.org/cgit/python-django-horizon.git/tree/
> >>
> >> 
> openstack-dashboard.conf
> >> [2] 
> >> http://pkgs.fedoraproject.org/cgit/python-django-horizon.git/tree/
> >>
> >> 
> openstack-dashboard-httpd-2.4.conf
> >> [3] 
> >> http://pkgs.fedoraproject.org/cgit/python-django-horizon.git/tree/
> >>
> >> 
> python-django-horizon.spec
> > 
> > Thanks Matthias!  That's quite a complicated example, although I
> > can see there's much I can learn from it.  Unfortunately, it's not
> > the ideal example because it moves everything that setup.py builds
> > into /usr/share/openstack-dashboard.  I need to keep stuff under 
> > /usr/lib/pythonX.Y/site-packages so that the other, non-Django,
> > parts continue to work as expected.  (I suppose I could just
> > relocate the Django-parts of the build, but sounds like it will
> > break more things that it will help.)
> > 
> 
> Another example you may want to take a look at is ReviewBoard, which
> is pretty straightforward.
> 
> http://pkgs.fedoraproject.org/cgit/ReviewBoard.git/tree/ReviewBoard.spec
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
> 
> iEYEARECAAYFAlLeu4UACgkQeiVVYja6o6N22QCeJk4+xNa0tciSy4Iu//UaA8mi
> mNYAoIqoD9BCTI2lXX/LqKO0ikA0CYor
> =Lsln
> -----END PGP SIGNATURE-----


Thank you too Stephen!  That indeed does look much more similar.  Although 
I don't see any Apache httpd config in the package.  Reading The Fine 
Manual briefly looks like it relies on 'rb-site install' to do this part. 
I was hoping to find an example where the RPM spec dropped a Django app 
setup right into /etc/httpd/conf.d -- in other words, a package that just 
assumes you will use Apache httpd, maybe even creates an empty sqlite db 
so things are just ready to run with a httpd restart.

I may be just trying to do too much in my spec and perhaps should rely on 
puppet to do the deployment and integration work.
--
John Florian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/devel/attachments/20140121/a26670b1/attachment.html>


More information about the devel mailing list