[UHD] Replacing Cheetah Templates with Mako

Dear UHD users,

We will be replacing Cheetah as a template engine with the less-dead
Mako template engine. I have pushed a branch for feedback etc. to our
github page:
https://github.com/EttusResearch/uhd/tree/uhd/python3_mako_831

This only affects people building UHD from source. People using binaries
will not care or even need to know about this.

Why are we doing this? The issue with Cheetah is, the project seems
inactive and has not been updated in a long while. Also, it is not
Python 3 compatible, and some of the distributions we support are
starting to switch over to Python 3 as the default. We spent some time
researching other template engines not only for quality and features,
but also for stability of API, user base, community etc. Mako is used
widely on the webs, and has a mostly backward-compatible API for several
years now, as well as an active community.

What does UHD need a template engine for? We use it to auto-generate
code in some places. It saves us from typing out long, boring and
repetitive sources files, which a computer can do much better than a
human without typos. We do not use it during runtime or anytime after
installation.

When will this be changed? Soon, and will be permanent for the next
major release (3.9.0).

Doesn’t GNU Radio work fine with Cheetah? GNU Radio is facing similar
issues (e.g. no Python 3 compatibility), but Cheetah is much more deeply
woven into GNU Radio and it’s harder to replace, and such things can’t
happen unless for major releases. It’s certainly not a single commit as
for UHD.

I’ll leave this public branch up for a bit, and will then merge this
into master – but I’m happy for any feedback!

Thanks,
Martin

On 07/07/2015 01:27 PM, Martin B. wrote:

Why are we doing this? The issue with Cheetah is, the project seems
repetitive sources files, which a computer can do much better than a
for UHD.

I’ll leave this public branch up for a bit, and will then merge this
into master – but I’m happy for any feedback!

Thanks,
Martin


D
OK, so for those of us who maintain builder packages, like
build-gnuradio, what new packages do I need in the pre-reqs? Just
python-mako, or are
there more packages that are required?

On 07.07.2015 10:59, Marcus D. Leech wrote:

OK, so for those of us who maintain builder packages, like
build-gnuradio, what new packages do I need in the pre-reqs? Just
python-mako, or are
there more packages that are required?

Excellent question: For Ubuntu, Debian + Fedora, it depends on the
Python version, so it’s either python-mako or python3-mako. Mako can
also be installed from PyPi using e.g. ‘pip install Mako’.

There are no other packages required. Note you (for build-gnuradio)
can’t rip out Cheetah because it’s still required by GNU Radio.

Cheers,
Martin

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs