Python 2 reaches end of life on 1 January, 2020, according to PEP 373 and python/devguide#344. Many of our dependencies (notably numpy, see their Plan for dropping Python 2.7 support) have ceased Python 2.7 support in new releases or will also drop Python 2.7 in 2020.

We know that science is rolling slowly and surely some scientific projects will continue with Python 2.7 beyond 2020. MDAnalysis has been supporting Python 2 and Python 3 now for a while. However, given how precious developer time is, we also decided to drop support soon after the official Python 2.7 drop date.

Our plan is to give researchers a stable legacy platform and release MDAnalysis 1.0.0 with full Python 2.7 support and tests. However, no major development will continue in 1.0. Issues will only be fixed and backported on a best-effort basis, simply because there are not enough developers to do this work.

We will then work towards MDAnalysis 2.0.0, which will only support Python 3.

Tentative Roadmap

2020 (1st quarter)

  • release 1.0.0 in early 2020 (maybe end of 2019…)
    • 1.x will be the last version of MDAnalysis that fully supports Python 2.7
    • 1.0 will be similar to upcoming 0.21 (i.e., no major annoying API breaks but clean-up and deprecations)
    • development on 1.x will cease with the release of 2.0; we will consider PRs that backport fixes but we will not officially support it after the release of 2.0
  • finalize API decisions for 2.0.0

2020 (2nd quarter)

  • release 2.0.0
    • officially drop Python 2.7 support
    • support all current Python 3.x releases
    • include larger changes/deprecations (API breaks compared to 1.0.0 if necessary, removal of legacy code, etc)
  • code modernization (making use of specific Python 3 constructs) will be ongoing


If you have comments or you see problems with this roadmap then please get in touch


Google Season of Docs 2019 Technical Writer

Google Season of Docs 2019

This year MDAnalysis is hosting Lily Wang (@lilyminium on GitHub) for the first iteration of Google Season of Docs. She will work with us over the coming months on a user guide for MDAnalysis, structured by topic.

Lily Wang: A User Guide for MDAnalysis

MDAnalysis is a library for the analysis of computational (primarily molecular dynamics, i.e. MD) simulations. Frequently these analyses are rare, novel, or individual enough that they are not immediately available as a predefined function within MDAnalysis. MDAnalysis provides a toolkit for interacting with simulations and constructing new analyses. Lily will create a high-level user guide structured by topic. This user guide will describe the building blocks of the data structures, analysis, topologies, and more. It will be targeted at a general audience; molecular dynamics users will be able to see the machine abstraction and technical considerations (e.g. MemoryReader) under the hood, while developers will be able to gain an understanding of the scientific background.


Lily Wang is a Ph.D. student at the Australian National University, Canberra. She aims to improve various aspects of molecular dynamics simulation over the course of her degree. During GSoD, she hopes to refine her technical writing skills while contributing to a package that she very much appreciates. In the tattered remnants of her free time, she enjoys reading and wandering around mountains. You can follow her progress on GSoD (and reading) on her blog.

@richardjgowers @orbeckst (mentors)

Google Summer of Code Student 2019

We are happy to anounce that MDAnalysis is hosting one GSoC students for NumFOCUS this year, Ninad Bhat (@NinadBhat) on GitHub).

Ninad Bhat: Better Periodic Boundary Handling

Ninad Bhat

Molecular simulations are predominantly ran under periodic boundary conditions, i.e., upon leaving one face of the simulation volume, you re-enter in the opposite face. This can lead to molecules being split over the periodic boundary, which requires rectification before performing calculations. In this project, Ninad will implement wrapping and unwrapping functionality in the various AtomGroup methods that use the position of particles, e.g., the calculation of the center of mass. In order to improve performance, the wrapping and unwrapping methods will be implemented in Cython.

Ninad is a senior undergraduate at IIT Bombay. He is working with Phase Field Modelling for his master thesis and has also used molecular dynamics for some of his projects. He has been contributing to different open source projects since 2016 and credits most of his programming knowledge to it. During GSoC, he aims to improve his software development skills while also getting a deeper understanding of molecular dynamics.

Ninad will describe his progress on his blog.

@jbarnoud @richardjgowers @micaela-matta @orbeckst (mentors)