06 Nov 2019
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
— @MDAnalysis/coredevs
08 Aug 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)
24 May 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
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)