Posts Tagged ‘Python’

Surfing

Tuesday, January 12th, 2010

Sometimes I get lost in the Web, just following links after link for new ideas, following a vague plan of action, multiplying tabs and relying on browser’s session restore capabilities and tab and bookmark syncing.
Tonight, after a full day of work, the gym, the dinner and some chatting with my lovely wife, I had one of this session on the sofa (thanks to netbook magic, the fully working Samsung NC10 with F12 and about 4hrs battery life..).
Anyway, I discovered some interesting projects. the first is a Django powered software forge (think sourceforge plus trac): basie is a MIT licensed software which is growing up from an academic world, and I shall admit to find it intriguing, and an interesting candidate to the trac position.
Next one is the Python Buildhaus Project, which goal is to setup a build system for Python packages against multiple architectures / OSes / python environments: infrastructure will be provided by the Snakebite project, which goal is to make available as many platforms as possible to test open source software builds.
Finally, a nice old blog entry regarding TDD AntiPatterns.
Lot of stuff. Will keep an eye on those (and perhaps contribute to basie, who knows…).

Building RPMs, part two – Pinax

Sunday, August 23rd, 2009

Ok, so now we have the environment complete. First thing I want to package is Pinax. This is a nice little collection of Django applications which add some required stuff for most of web based applications.

On the link above you will find all the info for the project, so let’s start. We will build the release version of Pinax (for development versions I have a side project, which I will show you at right time). Please note – all the release used are current for the day this entry has been written.

Download pinax version 0.5.1 from here and put it in rpmbuild/SOURCES. After that:

cd ~/rpmbuild/SPECS

rpmdev-newspec -t python pinax

Rpmdev-newspec creates the skeleton for a new spec file named pinax. The -t python option tells to create a skeleton with some python definitions in it (python definitions are laid out according to this wiki entry on the Fedora Project Wiki); you can see which skeletons are available looking in ‘\etc\rpmdevtools’.

Why Python? Well, my guess is that being DJango a Python framework, you know….

Let’s look at the spec file and put some info into that. You can use any editor for the file (I use geany, fast and lightweight).

# sitelib for noarch packages, sitearch for others (remove the unneeded one)
%{!?python_sitelib: %global python_sitelib %(%{__python} -c “from distutils.sysconfig import get_python_lib; print get_python_lib()”)}
%{!?python_sitearch: %global python_sitearch %(%{__python} -c “from distutils.sysconfig import get_python_lib; print get_python_lib(1)”)}

Name: pinax
Version:
Release: 1%{?dist}
Summary:

Group: Development/Languages
License:
URL:
Source0:
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:
BuildRequires: python-devel

I am assuming that Pinax is a pure python package, so we use the sitelib for noarch packages (first line of the two provided). After that we have to insert some descriptive info of the Pinax project.

But, of course, before going ahead we must check some of the Pinax dependencies.

Continuing tomorrow…

Getting lost

Thursday, June 25th, 2009

At Byte-code meetup I just launched the idea for a new projet to support the Prince2 project management methodology.

Right now, I just registered at sourceforge and nothing else. But the plan is clear (and will be managed in a Prince2 manner, by the way):

  • Django / Python powered
  • GPL v2
  • Integration with external tools ( trac comes to mind, but also taskjuggler )

Django is a little hazard – never programmed seriously in Python, and the Django world is a new one for me. Anyway, I am just willing to move away from the Java world for a while.

Now comes the best – I will try to do it using Fedora way . This means that every additional package (Python or Django) will be rpm’ed.

Django by itself it’s a no-brainer – just yum install Django (observe the capital ‘D’ here), but I was looking at Pinax and some more Django extensions, mostly hosted at google code.

Benefits of this plan:

  • Enhance package building knowledge
  • Easy installation
  • Really join fedora community

So I will create a new category, starting today, where I will summarize my steps. Stay tuned.