From Fedora Project Wiki

Renaming Django packages - How to

This page summarizes the progress of transition from Django* and django* to python-django* packages, as submitted in fpc ticket [1].

Instructions

  • All packages must be re-reviewed (in the review process, state that it is a re-review of existing package): Package_Renaming_Process#Re-review_required.
  • Target is Fedora 18.
  • Be careful of proper Provides/Obsoletes: Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages.
  • Add the Provides: django* even if the package was originally named Django*. This will allow the users to install packages by simply typing "yum install django" or "yum install django-foo" with the lowercase "d". This Provide should stay forever, because we want the users to be able to do this.
  • If the package Requires: or BuildRequires: another django package, it should require it with python-django* from now on.

Examples

Some examples how to do it.

Django-foo

A package with name starting in uppercase.

Original package:

Name: Django-foo
Version: 1.2.3
Release: 3
Requires: Django

New package:

Name: python-django-foo
Version: 1.2.3
Release: 1
Requires: python-django
# These are added because of the renaming mechanism
Provides: Django-foo = %{version}-%{release} # Provide with macros.
Obsoletes: Django-foo < 1.2.3-4 # Obsolete anything that is lower than the _bumped release_ of the renamed package. Obsolete with hardcoded values of renamed package.
# Add this for good usability, as mentioned above.
Provides: django-foo = %{version}-%{release}

django-bar

A package with name starting in lowercase.

Original package:

Name: django-bar
Version: 1.2.3
Release: 3
Requires: Django
Requires: Django-foo
Requires: django-foobar

New package:

Name: python-django-bar
Version: 1.2.3
Release: 1
Requires: python-django
Requires: python-django-foo
Requires: python-django-foobar
# This is added because of the renaming mechanism
Provides: django-bar = %{version}-%{release} # Provide with macros.
# This is added because of the renaming mechanism, but also for good usability, so it should stay forever in this package.
Obsoletes: django-bar < 1.2.3-4 # Obsolete anything that is lower than the _bumped release_ of the renamed package. Obsolete with hardcoded values of renamed package.

List of Packages

This is the list of all django packages that we are targeting. Please write your name to the Responsible column for the packages that you will take care of, so that we can track what packages are not taken care of at all. When the review process is being done/done and the package is in buildroot, add a proper result mark:

{{result|fail|Nobody}}
{{result|inprogress|Yourname}}
{{result|pass|Yourname}}
Package name Status
Django
Pass pass mrunge
django-addons
Inprogress inprogress beckerde
django-ajax-selects
Inprogress inprogress beckerde
django-annoying
Inprogress inprogress kumarpraveen
django-authenticator
Inprogress inprogress mrunge
django-authopenid
Fail fail Nobody
django-authority
Fail fail Nobody
django-avatar
Fail fail Nobody
django-celery
Fail fail Nobody
django-contact-form
Pass pass mrunge
django-countries
Fail fail Nobody
django-dpaste
Inprogress inprogress mrunge
django-evolution
Fail fail Nobody
django-extra-form-fields
Inprogress inprogress mrunge
django-filter
Fail fail Nobody
django-flash
Fail fail Nobody
django-followit
Inprogress inprogress kumarpraveen
django-keyedcache
Fail fail Nobody
django-kombu
Fail fail Nobody
django-lint
Inprogress inprogress mrunge
django-mako
Fail fail Nobody
django-mptt
Pass pass mrunge
django-notification
Pass pass mrunge
django-pagination
Pass pass mrunge
django-picklefield
Fail fail Nobody
django-piston
Pass pass mrunge
django-profile
Fail fail Nobody
django-profiles
Pass pass mrunge
django-pylibmc
Fail fail Nobody
django-recaptcha
Fail fail Nobody
django-recaptcha-works
Fail fail Nobody
django-registration
django-reversion
Fail fail Nobody
django-robots
Pass pass mrunge
django-sct
Fail fail mrunge
django-simple-captcha
Pass pass mrunge
django-sorting
Fail fail Nobody
Django-south
Fail fail Nobody
django-staticfiles
Inprogress inprogress beckerde
django-tables
Fail fail Nobody
django-tagging
Pass pass mrunge
django-tastypie
Pass pass Cquad
django-threadedcomments
Fail fail Nobody
django-threaded-multihost
Fail fail Nobody
django-tinymce
Fail fail Nobody
django-tracking
Pass pass mrunge
django-typepad
Fail fail Nobody

Fix provides to "django-foo" in these:

Package name Status
python-django-debug-toolbar
Pass pass mrunge
python-django-horizon
Fail fail Nobody
python-django-nose
Pass pass mrunge