On Tue, Jul 7, 2015 at 2:51 PM, Tim Graham <timogra...@gmail.com> wrote:

> I'm a developer on the Django team and we use Trac as our bug tracker. I'm
> interested in moving our infrastructure to Python 3, but need Trac to
> support Python 3 in order to do so. Django supports Python 2 and 3, so I
> have some experience in maintaining a code base that supports both. I
> started working on a patch (attached), but as it will be a non-trivial
> effort, I wanted to get an initial review and ensure this approach is
> agreeable to the Trac team. I also wanted to ensure that when I finish the
> patch, someone will be interested in reviewing and committing it relatively
> quickly so that it doesn't go stale. My strategy is to attempt to run the
> test suite on Python 3 and fix errors, while ensuring the tests pass on
> Python 2.7 as a I go. Thanks! Tim
>

(Peter beat me to it, so there's some redundancy in my message :)

I appreciate your offer to help us move to Python 3. We are going to
release Trac 1.2 soon. In the 1.3.x development line leading up to 1.4
we'll drop support for Python 2.6, only supporting Python 2.7 (1).
Supporting Python 3.3 or 3.4 in 1.3.x is a possibility, but we haven't
discussed it lately. The last time I recall discussing it was in (2) (see
comment:30 in that ticket).

I expect it will be a major effort to have Trac support Python 3. Jun has
done some work on it, so he can best comment on the effort required. You
may want to read through #10083 (3) to see a list of concerns previously
raised, and review the "python3" tickets (4). I recall there being concerns
about some of our dependencies not supporting Python 3, such as MySQLdb.

With regard to the mechanics of proposing changes, you'll want to base your
changes off the current trunk. If you create one monolithic path, it will
be difficult for us to review, and will easily become stale, like you
suggest. If you were to fork Trac in your favorite DVCS and start stacking
up concise changes that lead to supporting Python 3, we can review and
incorporate those incrementally. For example, you could submit a patch to
fix #12046 (5). You could rebase regularly to avoid the changes that don't
get pushed right away from becoming stale.

I admit I'm not overly enthusiastic about supporting Python 2.7 and 3.x in
the same codebase. I have wanted to make progress towards Python 3 so that
we could jump to supporting a minimum of Python 3.3 or 3.4 in development
leading up to Trac 1.6. Whether explicitly planned or not, we've been
incrementing the minimum Python version supported with each major release
(6). Since I've mentioned versions - more about our versioning scheme and
roadmap can be found in (7).

(1) http://trac.edgewall.org/wiki/TracDev/ApiChanges/1.3
(2) http://trac.edgewall.org/ticket/11600#comment:20
(3) http://trac.edgewall.org/ticket/10083
(4) http://trac.edgewall.org/query?status=!closed&keywords=~python3
(5) http://trac.edgewall.org/ticket/12046
(6) https://groups.google.com/d/msg/trac-dev/nkMUY_8ILF0/xdGVywGqTkYJ
(7) http://trac.edgewall.org/wiki/RoadMap#TracsRoadAhead

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-dev+unsubscr...@googlegroups.com.
To post to this group, send email to trac-dev@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-dev.
For more options, visit https://groups.google.com/d/optout.

Reply via email to