This is a part of the FESCo Elections Interviews series. Voting is open to all Fedora contributors. The voting period starts on Thursday, December 6th and closes promptly at 23:59:59 UTC on Thursday, December 20th, 2018.

Interview with Aleksandra Fedorova (bookwar)


Describe some of the important technical issues you foresee affecting the Fedora community. What insight do you bring to these issues?

We are moving towards more flexible and varied ways of delivering the software. And this flexibility is going to become an issue on its own.

On a technical side, extended list of deliverables requires extended testing effort which is hard to achieve via semi-manual workflows. As a CI Engineer and member of Fedora CI Working Group I want to make sure that CI effort is aligned with current engineering goals. And while we work on improving the CI infrastructure and user experience we also find the ways to incorporate CI in the development process.

Now from the process and policy point of view, as a former DevOps Engineer, I have worked on the “other” side – in cloudy environments flexible to the point of becoming chaotic. And while I believe that there are things Fedora needs to catch up with in terms of modern development practices, there are a lot of things “modern practices” need to catch up with in terms of processes and workflows, which are widely known and established in the Linux distributions world.

I hope that bringing this perspective to FESCo would help us find the right balance between providing the flexible tooling and keeping the solid foundation for it to be usable

What objectives or goals should FESCo focus on to help keep Fedora on the cutting edge of open source development?

It may sound odd, but I would say that one of the big goals of FESCo and Fedora community in general is to prevent Fedora from becoming stable. In this case by stable I mean “freezed” not “free of bugs”.

We need it to be easy to change things, even most core features. We need certain loose ends hanging for everyone to come and take care of.

One of the objectives to achieve that big goal is to provide people with the toolchain and services to make their own unique flavors of Fedora or on top of Fedora. Custom repositories, modules, images, flatpaks… you name it. And we need it to be a self-service available for any contributor to use. We should provide pieces for community to play, build and create.

The other complementary thing is actually CI. While many believe that Continuous Integration is there to prevent people from changing things (it does prevent you from merging changes sometimes), the actual reason why we need CI is to allow more changes coming in. CI (and test automation) gives you the freedom to take in changes which otherwise look unusual, or risky. It allows you to focus on whether or not the change is reasonable and brings any value, rather than worry if it might break something.

What are the areas of the distribution and our processes that, in your opinion, need improvement the most? Do you have any ideas how FESCo would be able to help in those “trouble spots”?

Additionally to the topics above one of the troubling issues in Fedora is the lack of open collaboration on the package maintenance side. Traditionally, changes in package specs happen locally in a private environment, and community can only interact with the outcome of the change via karma or bug reports. It is very hard for people to contribute and actively help the maintainer especially when they don’t have the packager status themselves.

We have already done a lot to improve this situation. The open pull-requests workflow, which is available on Pagure already, being one of those big steps. But there is more to it. CI, again, could help here as via early integration we encourage maintainers of dependent packages to work closely and discuss the changes happening in interacting packages early in the development phase, and to actually contribute into each other’s test suites.