Showing posts with label codehosting. Show all posts
Showing posts with label codehosting. Show all posts

Sunday, December 16, 2007

two new releases

I'm working on another django project and need some head features for it, so I needed to update my server from 0.96 to use an svn checkout (I wish there were more frequent formal releases of django - they need a release manager). As a result, I spent a while today updating a couple of my applications to be compatible with the head version.

So, there are new (formally tested and released :-) versions of django-links and codehosting available.

Sunday, April 22, 2007

codehosting now supports feedburner

I just posted a new version of my codehosting project for django which supports passing the Atom feeds for release updates through feedburner.com. There isn't anything tying the implementation to FeedBurner, of course, but since that's why I wanted the feature that's how I am describing it.

One tricky bit was I wanted all of the existing subscribers to my feed(s) to be redirected to the FeedBurner URL. I couldn't just add a redirect rule in Apache, since not all of the feeds are set up with FeedBurner yet. So I opted for letting the django code handle the redirection. If a project has an external_feed property that is not null, that value is used as the URL for feeds for the project. So when someone accesses the old URL for the codehosting release feed (http://www.doughellmann.com/projects/feed/atom/codehosting/) they are redirected to http://feeds.feedburner.com/DougHellmann-codehosting instead. And FeedBurner looks at http://www.doughellmann.com/projects/local_feed/atom/codehosting/, which always produces the Atom content locally.

The "local_feed" URL is never included in any templates, so no web crawlers should ever find it by themselves.

This is one of those cases where I had thought to include this feature from the beginning, since migrating the existing readers of the feed(s) required this hackish change. But, it looks like it is working. I would be interested in any feedback anyone else might have on other ways I could have handled the redirects.

Sunday, March 4, 2007

Distributing django applications

I had a report that version 1.2 of my codehosting package did not include all of the required files. It turns out I messed up the setup.py file and left out the templates, images, and CSS files. Oops.

In the process of trying to fix the setup file, I discovered that distutils does not include package data in sdist. Not a big deal, since I just created a MANIFEST.in file to get around it.

My next challenge (for this project) is how to write the templates in a way that would let anyone actually reuse them. For example, the project details page shows info about the most current release and a complete release history. It uses a 2 column layout for that, but the way I have it implemented the layout is defined in the base template for my site. I want to move that layout from the site base template down into the application base template, but I do not want to repeat myself if I can avoid it. Maybe I need to get over that and just repeat the layout instructions. Or refactor the site base template somehow. Obviously that needs more thought. I did find some useful advice in DosAndDontsForApplicationWriters, but have not implemented all of those suggestions.

In the mean time, release 1.4 of codehosting is more flexible than the previous releases and is probably closer to something useful for people other than me.

[Updated 28 Sept 2007 to correct typo in title]

Saturday, December 30, 2006

project site with django

While I'm at it, I ought to go ahead and release the code I wrote to host my projects site.

Featuritis

My project site is finally online, and I find myself falling into precisely the trap I was hoping to avoid. I originally wanted to find some existing software to host the site, so I could concentrate on the myriad projects cluttering up the back of my brain. Since I opted to build my own, I've found myself focusing on building more features into the site management tool instead of those other projects.

In any event, today I added Atom feeds to track releases for each project, as well as a global feed to track all releases from the site. The feeds include download links to each released software bundle as enclosures, because it was easy not because it seems especially useful.

Tuesday, December 26, 2006

code hosting

I spent some time over the weekend building a rough tool with django to host my code projects. It is only at http://www.doughellmann.com, though that domain may not be available in your DNS cache, yet. I'm happy with the schema for the results, but will probably tweak the colors and layout for a while.

Friday, December 22, 2006

code hosting tool

I am looking for a tool to build out a site to host my code projects. None of these projects are large enough to warrant anything like the features provided by SourceForge. I don't think my requirements are very strict, but I haven't been able to find anything to do what I want (sort of a sourceforge-lite):

  1. I must be able to host the projects under a domain I control myself. One domain for all projects is preferable since I don't want to have to edit my apache config every time I think of a new project.
  2. I do not care to expose my svn repository to the world, since it contains plenty of stuff besides the projects that I do want to release. Releasing source as tarballs or apps as disk images is good enough for me.
  3. Each project needs a home page with a summary and links to releases and release notes.
  4. Adding new releases should be easy. I will upload the release file via ftp or scp, but I want to be able to add the reference to the release file without editing a bunch of HTML each time.
  5. A blog is a nice-to-have, but I already have this blog, so it isn't a requirement.
  6. I don't need an issue tracker, forum or mailing list manager. I may maintain an email address for support of all of the projects, or I might use a google group.

I thought about Zope for a few minutes, but just don't want to go back in that direction. I used to use Zope quite a bit. I haven't in a long while, and the zen has left me, I'm afraid. Somehow the relational model is more persistent in my grey matter. Plus, I'm still not over my plone upgrade fiasco from a few years ago, which is why I don't have much of a site up anymore. I finally gave up trying to make the site work, pulled the content out to preserve it, and just threw up a redirect to the photo gallery.

I looked at drupal. It has some nice features, but I don't like the default appearance and I'm not that interested in learning another templating language so I can improve it. WordPress has most of the features I want, though I would have to edit release pages myself. Again, though, they have a whole template language that seems like more than I want to deal with for extensions. Maybe if I was already PHP-enabled these would seem like stronger contenders.

I was hoping to find something built using django (or at least parts I could assemble myself), since I am already trying to extend my skills in that direction. It looks like the django-way to do most everything is to build your own, though, so I suppose that is what I'll end up doing. I should be able to lean heavily on the admin UI for most of my editing, so I would just need templates for presenting the results. That's not too bad.