So, the sun starts to set on 2018, and another year draws to a close. At the same time, we stand ready to launch Kodi 18 "Leia" in the very near future, which opens a new chapter in how Kodi is structured, how it functions, how it's used. It seems like an appropriate time to stop and draw breath, then, and take a look backwards: what's been good, what's been bad, the what-went-wells, the where-do-we-still-have-challenges.
First up, then, the positive stuff.
Internally, there have been very many changes and improvements to Kodi's core code that, while not immediately obvious on the outside, make life a lot easier to both maintain and expand the application. Architectural changes, such as the move towards Python 3; support for Python scrapers and binary addons; movement of functionality out of a global/core approach and into a more local/modular system; improvements to the Videoplayer such as shader support and overall speed/quality improvements. And it's not all about the code itself: documentation has been revamped, with some superb work and good ideas on how we can better keep track of how Kodi is built.
The Kodi Team continues to grow, with new members joining us in every capacity. That allows us to be more structured with our internal processes, as well as (e.g.) bringing in more Google "Summer of Code" students to work on specific elements of the code. Indeed, a shout goes out to those GSoC students this year: good work, done professionally, seen through to the end, rolled into the application. As some of them joined us this year at DevCon, we've put effort into making that meeting more structured, constructive, focused, and more accessible to the new Team members so they feel more welcome, more quickly. We have an active team of round-the-clock moderators who work to keep our forum in shape - violations, spam, noise. Add a sprinkle of automation here and there and, hopefully, users can find what they need and get the community help they want without getting buried.
One of the eternal challenges in any large, dispersed organisation - perhaps made more so when everyone is a volunteer - is internal team communication. We've made active steps this year to improve this: new internal tools, more collaboration, more organisation, greater transparency and openness. We all know how the open source community can have some famous and pretty public disagreements; while we still have our fair share of these within the team, we've generally put a lid on the worst of these, diverting energy into the application instead of internal arguments. This also extends to external communication and interaction sometimes: having spent some time on self-reflection, we're a lot more aware of how we come across to new developers and contributors, and how attitude can impact directly on people's willingness and ability to contribute. We're continuing to work on how we use GitHub and the pull request process, for example, to hopefully get more contributions, more quickly - submitted, reviewed and committed.
Extending the idea of external communication, we've made some major updates to the wiki, many of which reflect the significant functionality changes we've seen. We have the new forum, and new paste site, and generally a much more usable and polished public face. Linked to the submission/merge process as well, we've actively sought to get more external testing of changes through mirrors and nightly/test builds, all of which combines to give more stable code and a better user expereince all round.
Now, for a lot of users, much of that might be all well and good - "what about the application features, though?", I hear you cry. Fear not, kind reader, for there has been much work there as well. From platform support, such as H.265/HEVC on Pi and collaboration with Android SoC vendors, to DRM support and possibilities that opens up for official content add-ons; a return to our roots with Xbox One support; the release of the long-awaited retroplayer gaming support as part of the official Kodi build; a significant re-work of our music and related library capabilities. Some of these are admittedly more revolutionary than others, but all of them build a more solid, stable, expandable platform for future releases.
Is everything perfect, though? No, of course not. Any retrospective has to really look at where we still need to improve.
We've made great steps forwards on communication: we can still do much more. We need to streamline our internal tools so people get to know about what they need and not drown ourselves in noise (forum, Slack, GitHub, email...). We've been working on internal policies to resolve issues between team members - we're not a company, we don't have an HR department, so we need to simply agree "the rules of the road" that govern attitude and acceptable behaviour (hey, we've all been on the Internet long enough, you know what it's like sometimes!). That in turn touches on the external communication and attitudes towards people: we still need to complete the pivot from "this sucks..." to "thanks for the contribution, might I suggest...". Streamlining the code, documenting it better, modularising it, making it easier to offer up changes without spending five years familiarising yourself with all aspects of the code base - all of these will hopefully help on this aspect.
GSoC has been a success for us, as covered above. But we always need more developers and new ideas. We need to become a more attractive project to work on and work with. We need to be more accepting of change, more welcoming of criticism or suggestions, more open and transparent about how, why and where things happen in what is increasingly an enormous, "black box" project from the outside. While all projects of this type are revolving doors of contributors, we lost some core talent this last year; similarly, though, some people have rejoined the Team, resurrecting some of their passion for Kodi and what it could become. The hippy in all of us would like less drama, more love, and for everyone to just get along, all of the time.
And, finally, we need to work more on the vision for Kodi. It's true that we've been painted with the piracy brush for too long. As we introduce new features, as the DRM functionality beds in, we have to hope that this changes, and we can get back to the primary reason most of us work on this application: because we genuinely believe it is, and will remain, the best one-stop home entertainment and multimedia platform in the world.
Those were our thoughts. Maybe you have your own - in the spirit of openness and communication, then, perhaps you can share those ideas with us through all of the normal channels.
In the meantime, as you ponder Life, the Universe, and Everything, we wish you a peaceful end to 2018. Whatever you celebrate at this time of year, whether you celebrate anything at all, we wish you well for now and the future.
Thank you for sharing the journey with us.