Hi!
In the process of updating my very old plugins to work with more recent versions of QIIME2 and after reading through What happened to Qurro and Songbird? - #4 by fedarko , I wanted to share some ideas that might make it easier for plugins to remain maintained after their creators have gone on to other careers:
- QIIME 2-facilitated community of junior maintainers – I’m sure y’all have thought about this thoroughly, but just in case not: I feel like it’d be great to have a pool of folks interested in learning how to do software development that could help with some of the more rote tasks of updating dependencies, etc (and potentially one day take over managing some low-maintenance plugins?) I’m not sure this would ever work – I don’t know that the incentives would align, and also the sort of stuff they’d likely need to do (eg resolve dependency issues) are complex and painful, but maybe there’s a way? For example, as a grad student the incentives that got me to contribute to QIIME 2 were (1) the ability to say I did open source software on my resume and (2) a free trip to San Diego. But maybe I’m an outlier, and there aren’t enough other software-curious, sun-starved grad students out there to make this work
And if this community already does exist, then it’d be great to have a way to reach out to them when issues inevitably arise with old plugins!
- More documentation & support for those of us updating plugins – the developer documentation is currently very focused on folks developing plugins for the first time. I’d love some content for those of us who are dusting off the cobwebs trying to keep our plugins functional in as little time as possible. For example: big breaking changes you might need to know about in the past 5-10 years of QIIME 2 (y’all are getting old!!
), a brief reminder on how you might want to test that your package works with other QIIME2 dependencies, some links to the current standard package development best practices (I apparently published my plugins pre-
pyproject.toml
), and most importantly: some simple artifacts to use for testing. I made some updates to my plugin but really can’t be bothered to go find an OTU table, remember how to convert it to a QIIME 2 artifact, etc etc (I’m sure I could find it in the standard documentation, but again: trying to do this work in as little time as possible
)
- Ok edit literally after writing this post I realized I had some test data in my repos that I could use.
So maybe a different way to make sure there is sample artifacts for future testing is to make sure that the developer documentation includes making test data for your plugin a highly encouraged part of the development process.
- Ok edit literally after writing this post I realized I had some test data in my repos that I could use.
It’s also possible that all of these issues will be made irrelevant by the new plans for the library, in which case yay please ignore me!