We solve this problem by keeping forks of the external projects on
github, bitbucket, etc. Since PIP works so nicely with those tools,
it's pretty easy to do. You'll also find that beyond the initial work
of creating your own fork (which is actually really really easy on
both github and bitbucket), maintaining your patches is easier in the
fork than keeping your patch files laying around. It's also nice in
that if your patch is useful to the project, it's easy for them to
merge it in, which is good for both you and the project. Of the 19
external django apps we use, we maintain our own branches on github/
bitbucket for 7 of them because of minor patching we had to do.

One tip though, it took me a while to get this through my head, but
explicit versions in your requirements file are almost always the way
to go. You might think it's a hassle to update your requirements file
every time you make a new commit to your fork of a project, but it
ensures that no change every sneaks up on you and it also lets you add
a useful commit message to your actual project like "Updated
requirements for django-foo to add support for feature X and fix bug
Y" which means you only have one commit log to grep through to find
what you need later. It also means that you can always reproduce old
builds if needed.

-Wes

On Nov 24, 3:53 pm, Alex Rades <alera...@gmail.com> wrote:
> Hi,
> I know this is probably not 100% django related (well, actually is 0%)
> but I think most of you have worked with virtualenv and PIP and this
> looks like a good place to talk about deployment scenarios.
>
> Basically, I'd like to handle dependencies of my virtual environment
> with PIP, but I have some patches to external projects that I have to
> apply to apply before I can use them.
> Looks like PIP does not offer a facility to apply patches to
> downloaded dependencies. Maybe pip is not the right tool to do this.
>
> How do you handle your patching needs in your environments? I've
> started thinking about using fabric to do this, but I'm not really
> sure.
>
> Thank you very much.

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.


Reply via email to