BarryWarsaw

Revision 56 as of 2011-11-07 20:37:55

Clear message

Hi. I'm Barry Warsaw. I have worked for Canonical since January 2007. For my first three years, I was on the Launchpad Registry team, where I was primarily responsible for the implementation, care, and feeding of Launchpad mailing lists. I did a bunch of other things registry-related as well. In early 2010, I joined the Ubuntu Platform Foundations team.

Brief background

I've been a core Python developer since 1995, and worked with Guido in PythonLabs at various previous employers. I've written many independent Python libraries, was instrumental in the development of the email package, was lead maintainer of Jython for a while, and have had my hand in many aspects of the Python community and running the python.org infrastructure. I was release manager for Python 2.6 and 3.0 and a few earlier versions.

I'm probably best known for being the lead developer on GNU Mailman, a mailing list manager, for which I won the Second Annual Antonio Pizzigati Prize. In fact, it is GNU Mailman that powers Launchpad's mailing lists.

In my previous incarnations I did a lot of Emacs development.

You can find out more about me at my personal website http://barry.warsaw.us including my GPG and SSH public keys, and some of my non-computer related interests. Yeah, I do have a blog.

Ubuntu Development

I work a lot on various Python issues in Ubuntu, Debian, and upstream. For Ubuntu 12.04 (Precise Pangolin) I'll be concentrating on porting our tools and applications to Python 3. Other things I worked on during the Oneiric cycle include replacing python-support and python-central with dh_python2.

I'm also keenly interested in the Ubuntu Distributed Development (UDD) initiative, which is essentially using the Bazaar distributed revision control system to develop Ubuntu packages. For Precise, we'll be concentrating on improving the integration of UDD with Debian quilt format.

UDS-P Notes

debhelper improvements

Blueprint

Standardised way to do testing? setuptools + packaging have "setup.py test"

  • - it would be nice if distutils would exit 0 here...

Barry proposes a tool, pyti (GSOC project), that can itrospect a package and work out how to test it. Barry is working with distutils SIG to get the test info into the egg-info output Piotr will rewrite py3multibuild soon, now that 2.7 is the only supported version, this is the priority. It will live in python-defaults, target 3 (primarily) and 2.7 dh_python2 in lucid: * Some bugs seen in oneiric due to dh_python2. * Doko proposes backporting the maverick dh_python2 Build flags. There is a standard way of passing flags to setup.py, but this requires patching distutils / setuptools.

dh_python2 transition in oneric: * Some patches were rejected because lucid doesn't have dh_python2 yet. * Many patches accepted. * Many ignored so far. * Gtk and Gnome converted.

MIR team only accepting dh_python2.

Alternative pythons: * Python3 can support this relatively sanely. * How to state support:

  • - tox can help test across python implementations.

* pypy still moving too fast to be included, but there are PPAs

Rebuild all python packages that are still have 2.6 extensions. Build lsb with python3 again Smile :)

Python 3 on the 12.04 CD

Blueprint

Unlikely to ship *only* python3 in 12.04. But likely to get some Python 3 applications on the CD.

Likely candidates: - Software Center

  • (blocked on xapian and dbus)

- Jockey

  • (blocked on dbus)

- ubiquity - apport - quickly (will be ported)

  • potential for upgrading existing projects to python3

Things that need to be converted eventually: - Unity (for lenses) - ubuntuone - landscape

main dependencies: https://wiki.ubuntu.com/AllisonRandal/Python3Status (highlighted packages are on CD)

Port dependencies all the way down, then software

There is *no chance* that /usr/bin/python will ever be python 3 (this is upstream policy).

Long-term vision: only have python3 on CD for 14.04, possibly push python2 to universe

Problematic libraries: * DBus issues:

  • - No plan to port python-dbus to python3 - GDBus+GI works for clients, not servers - Leaves no solution for Qt (QtDBus?)

* launchpadlib - lots of dependencies * gstreamer

  • - message bus doesn't work over GI

* twisted

  • - upstream doesn't have resources

* pyqt4? ScottK has a port

Want upstream to do the porting, but may need to help upstream

Some upstreams don't want to port, especially because of back-compatibility with legacy enterprise distributions

Upstreams don't seem interested - chicken and egg

If conversions will take time, we need to start the conversion now, especially for problematic components

How can we communicate about progress and changes? Start with ubuntu-devel, dedicated wiki page, pull in Debian Revive the python jam from the dh_python2 conversion

Missing packaging bits: cdbs has python3 support (define python3- package in debian/control and cdbs does magic) POX planning to deal with dh pieces over next few weeks

We can develop guidelines for how to do it now; update as helpers get better Also update packages as we can so they remain usable examples

Can we commit to including python3 on the CD?

  • - Largely dependent on space constraints - Desktop not expecting major changes

    - Might need to pull in PyQt4 for ubuntuone

What about helpers?

  • - Planning to demote deprecated helpers (pysupport, python-central) to universe this cycle - So everything needs to be converted - Gwibber failed to be converted because of bug #862876

python 3.3

  • - Won't be out in time for 12.04 - Will be around for 14.04

If 2to3 will convert but you need custom fixers, let's coordinate centrally so they can be shared

  • - e.g. for i18n package and gettext - fixing doctests

Improving LTS->LTS upgrade for Python

Blueprint

Likely not much to do.

New machine buildout

When prefixed by a letter, step applies to that version of Ubuntu.

  • Fix display resolution
  • Swap control and capslock:
    • N: Preferences -> Keyboard -> Layouts -> Options -> Ctrl key position -> Swap Ctrl and CapsLock

    • O: System Settings -> Region and Language -> Layouts -> Options -> Ctrl key position -> Swap Ctrl and CapsLock

  • Auto-hide bottom tray
  • sudo apt-get install openssh-server openssh-blacklist-extra
  • sudo apt-get install bzr jed etckeeper python-all-dbg python-all-dev gnome-do aptitude landscape-client subversion mercurial
  • sudo apt-get install emacs emacs-goodies-el emacs23-el gnupg-agent pyflakes
  • sudo apt-get install claws-mail claws-mail-plugins claws-mail-extra-plugins claws-mail-themes claws-mail-tools clawsker
  • sudo apt-get install mumble indicator-weather
  • apt-get update; upgrade; reboot
  • Desktop cleanups:
    • M: clean up top tray (e.g. remove firefox, unlock and move indicators)
    • N: n/a
  • Desktop additions:
    • M: add to panel: main menu, appmenu indicator, system monitor, force quit; configure
    • N: n/a
  • Enable NTP
    • N: System -> Administration -> Time and Date -> Configuration -> NTP

    • O: n/a
    • Laptops: edit /etc/ntp.conf to add tinker panic 0

  • 24-hour clock, set location, wind speed in mph
  • set background to solid color (h/s/v == 0/8/15)
  • cd ~/.ssh; wget http://barry.warsaw.us/authorized_keys; chmod

  • from elsewhere, scp standard vm ssh credentials to ~/.ssh
  • cd /tmp; bzr branch .../base .
  • mv base/.bzr ~
  • cd ; bzr revert
  • idle time screensaver to 1hr
  • sound theme == none
  • system -> preferences -> startup applications; disable gnome login sound (bug 277203)

  • system -> administration -> login screen (check and then uncheck login sound)

  • setup Terminal
    • Dark Ambiance (make default via Profiles...)
    • 80x48
    • text color (h/s/v == 0/0/100)
    • background color (h/s/v = 0/0/19)
    • background solid color, no transparency
    • unlimited scrollback
  • rm -f ~/examples.desktop
  • gconftool-2 -s /apps/notify-osd/gravity -t int 2 (sucks, but it's the best we can do apparently)
  • Fix Gtk2 key theme:
    • N: gconftool-2 -s /desktop/gnome/interface/gtk_key_theme -t string Emacs
    • O: gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"
  • fix /etc/hosts
    • remove mapping for 127.0.1.1 (dhcp will dtrt)
  • sudo apt-get landscape-client configure
  • sudo apt-get build-dep python python2.7 python3.2
  • rsync -avz .claws-mail newmachine:
  • rsync -avz .config/chromium newmachine:.config
  • rsync -avz .mozilla/firefox/blah.default newmachine:.mozilla/firefox
  • FF default dance
  • add new machine to geometries in ~/env/elisp/fsfmacs/start.el
  • mkdir ~projects && cd ~projects

  • bzr branch lp:python-mode
  • bzr branch lp:winring
  • preferences -> keyboard shortcuts

    • activate the window menu (disable)
    • minimize window (alt+h)
    • maximize window vertically (alt+down)
  • MacBook Pro

    • ln -s env/keyboards/snowdog .xmodmaprc
    • sudo hciconfig hci0 reset
    • pair trackpad; disable apple trackpad when other device present