I’ve said this previously, and I’ll say it again: we’re severely under-resourced. Not just XFS, the whole fsdevel community. As a developer and later a maintainer, I’ve learnt the hard way that there is a very large amount of non-coding work is necessary to build a good filesystem. There’s enough not-really-coding work for several people. Instead, we lean hard on maintainers to do all that work. That might’ve worked acceptably for the first 20 years, but it doesn’t now.

[…]

Dave and I are both burned out. I’m not sure Dave ever got past the 2017 burnout that lead to his resignation. Remarkably, he’s still around. Is this (extended burnout) where I want to be in 2024? 2030? Hell no.

  • stevecrox@kbin.social
    link
    fedilink
    arrow-up
    72
    arrow-down
    10
    ·
    edit-2
    1 year ago

    The linux kernel is very old school in how it is run and originally a big part of the DevSecOps movement was removing a lot of manual overhead.

    Moving on to something like Gitea (codeberg) would give you a better diff view and is quicker/easier than posting a patch to a mailing list.

    The branching model of the kernel is something people write up on paper that looks great (much like Gitflow) but is really time consuming to manage. Moving to feature branch workflow and creating a release branches as part of the release process allows a ton of things to be automated and simplified.

    Similarly file systems aren’t really device specific, so you could build system tests for them for benchmarking and standard use cases.

    Setting up a CI to perform smoke testing and linting, is fairly standard.

    Its really easy to setup a CI to trigger when a new branch/pr is created/updated, this means review becomes reduced to checking business logic which makes reviews really quick and easy.

    Similarly moving on to a decent issue tracker, Jira’s support for Epic’s/stories/tasks/capabilities and its linking ability is a huge simplifier for long term planning.

    You can do things like define OKR’s and then attach Epics to them and Stories/tasks to epics which lets you track progress to goals.

    You can use issues the way the linux community currently uses mailing lists.

    Combined with a Kanban board for tracking, progress of tickets. You remove a ton of pain.

    Although open source issue trackers are missing the key productivity enablers of Jira, which makes these improvements hard to realise.

    The issue is people, the linux kernel maintainers have been working one way for decades. Getting them to adopt new tools will be heavily resisted, same with changing how they work.

    Its like everyone outside, knows a breaking the ABI definition from the sub system implementation would create a far more stable ABI which would solve a bunch of issues and allow change when needed, except no one in the kernel will entertain the idea.

    • CMahaff@lemmy.world
      link
      fedilink
      English
      arrow-up
      47
      arrow-down
      1
      ·
      1 year ago

      You offered a lot of suggestions, and I’m sure people will disagree over the specifics, but I think your overall point is excellent and not talked about enough. I wonder if anyone has ever even attempted a survey on the ages of maintainers/contributors? I bet it’s skewing older fast.

      Nothing wrong with that of course, especially given the project’s age, complexity, and being written in C - but you’re right, at some point you have to attract new talent - people can’t maintain forever.

      I’m a 29 year old developer - I didn’t even know you could do git patches via email until recently. And while it’s super cool, it also sounds kinda terrible, especially at the volume they must be receiving? Their own docs are saying the mailing lists receive some 500 emails per day and I can’t imagine the merge process is fun.

      So many doc pages are dedicated to how to submit a patch - which is great that it’s documented, and I’m sure it will always be somewhat complicated for a large project - but it also feels like things that are all automatically handled by newer tools / bots which can automatically enforce style checks, etc.

      I guess they could argue that the complicated process acts as a filter to people submitting PRs who don’t know what they are doing, but I’d argue it also shuts out talented engineers who don’t have 40 hours to learn how to submit a patch to a project on top of also learning the kernel and also fixing the bug in question.

      From what little I read of their git process, does anyone know if there’s anything preventing the maintainer of a subsystem from setting up a more modern method for receiving patches? As long as the upstream artifact to the kernel has the expected format?

    • cmeerw@programming.dev
      link
      fedilink
      English
      arrow-up
      17
      arrow-down
      2
      ·
      1 year ago

      and its linking ability is a huge simplifier for long term planning.

      What long term planning? Who is going to come up with that plan? Will everyone agree to that plan? Who will be paying for the resources to work on that plan?

      Combined with a Kanban board for tracking, progress of tickets. You remove a ton of pain.

      I am not seeing how that would help. What are you going to do if there is no progress on something? Fire volunteer X because he didn’t make progress on ticket Y (as he has no interest in ticket Y)?

    • kitonthenet@kbin.social
      link
      fedilink
      arrow-up
      9
      ·
      1 year ago

      Its like everyone outside, knows a breaking the ABI definition from the sub system implementation would create a far more stable ABI which would solve a bunch of issues and allow change when needed, except no one in the kernel will entertain the idea.

      We also can’t go back to fix SMTP either. Simply saying “we need to break ABI” is not a solution for the same reason, the fear Darrick mentions in the email is justified, it’s the fear of e-mails when you change something that breaks everyone’s widget in a way they don’t expect or care to learn about and demand you fix it for them. It’s all well and good to say that they should simply wash their hands of it, but that’s not an option when your inbox is flooded with automated bug reports that don’t explain the problem

      • stevecrox@kbin.social
        link
        fedilink
        arrow-up
        11
        arrow-down
        1
        ·
        1 year ago

        I am actually arguing for a stable ABI.

        The few times I have had to compile out of tree drivers for the linux kernel its usually failed because the ABI has changed.

        Each time I have looked into it, I found code churn, e.g. changing an enum to a char (or the other way) or messing with the parameter order.

        If I was empire of the world, the linux kernel would be built using conan.io, with device trees pulling down drivers as dependencies.

        The Linux ABI Headers would move out into their own seperately managed project. Which is released and managed at its own rate. Subsystem maintainers would have to raise pull requests to change the ABI and changing a parameter from enum to char because you prefer chars wouldn’t be good enough.

        Each subsystem would be its own “project” and with a logical repository structure (e.g. intel and amd gpu drivers don’t share code so why would they be in the same repo?) And built against the appropriate ABI version with each repository released at its own rate.

        Unsupported drivers would then be forked into their own repositories. This simplifies depreciation since its external to the supported drivers and doesn’t need to be refactored or maintained. If distributions can build them and want to include the driver they can.

        Linus job would be to maintain the core kernel, device trees and ABI projects and provide a bill of materials for a selection of linux kernel/abi/drivers version which are supported.

        Lastly since every driver is a descrete buildable component, it would make it far easier for distributions to check if the driver is compatible (e.g. change a dependency version and build) with the kernel ABI they are using and provide new drivers with the build.

        None of this will ever happen. C/C++ developers loath dependency management and people can ve stringly attached to mono repos for some reason.

    • liori@lemm.eeOP
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      1 year ago

      Kernel is not a monolithic application, and you cannot develop it like one. There are tons of actors: independent developers, small support companies (like Collabora), corporations, all with different priorities. There is a large number of independent forks (e.g. for obscure devices), that will never be merged, but need to merge e.g. security patches from the mainline. A single project management tool won’t do, not your typical business grade tracking&reporting tool.

      CI is already there. Not a central one—again, distributed across different organizations. Different organizations have different needs for CI, e.g. supporting weird architectures that they need to develop against.

      There is a reason Torvalds created git—existing tools just wouldn’t work. There might be a place for a similar revolution regarding a bugtracker…

  • onlinepersona@programming.dev
    link
    fedilink
    English
    arrow-up
    28
    arrow-down
    3
    ·
    edit-2
    1 year ago

    Boy do I find mailinglists impossible to read.

    Ontopic: I appreciate what these people are doing, but were I them, a lousy community would have me quit very quickly or never join the project to begin with. Maybe the should just quit and when shit hits the commercial fan, they’ll either pay to get it fixed, get somebody on it to get it fixed, or move on.

    Probably fixing whatever non-dev problems they have to make it a nice community to join wouldn’t hurt either. For me, it’s the lack of time and C code. C is a language I absolutely will not touch. There’s not much worse than it IMO and it’s refreshing to see rust slowly entering the kernel with all its tooling.

  • ABotelho@lemmy.ca
    link
    fedilink
    arrow-up
    27
    arrow-down
    2
    ·
    1 year ago

    There are so many filesystems. So. Many.

    Have any of them considered actually dropping some and pooling efforts into the more promising ones?

    • Mindlight@lemmy.world
      link
      fedilink
      arrow-up
      9
      ·
      edit-2
      1 year ago

      Isn’t “anyone can fork if a project doesn’t really fit their taste” sort of the curse of open source?

      Swallowing your pride, merging into another project and taking a less glamorous role in that project is not as easy as it was to fork when steering your project.

      This is generally speaking. I’m definitively not saying any of this is that case with the XFS project.

      Ps. Murdering your wife is also something that seems to be bad for filesystems…

      • severien@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        Swallowing your pride, merging into another project and taking a less glamorous role in that project is not as easy as it was to fork when steering your project.

        I don’t think it’s because of the ego. But if you’re working with other people, you need to do a lot of non-coding (non-fun) things. Align thinking, find compromises, establish and follow processes. Things are easier and more fun hacking alone. No processes to limit you, no one telling you “this doesn’t align with the vision of the project” (and the other way round - you don’t have to maintain code contributed by other people with use cases not interesting to you) etc. For volunteer FOSS contributors, doing fun stuff is often a big part of the motivation to give their free time to the community.

    • liori@lemm.eeOP
      link
      fedilink
      arrow-up
      8
      ·
      1 year ago

      I guess the best start would be to have a person to organize volunteers.

      • rippersnapper@lemm.ee
        link
        fedilink
        arrow-up
        5
        arrow-down
        1
        ·
        1 year ago

        I think that might help, asking for volunteers. Segregating them based on their abilities (LinkedIn profile for instance). There are a lot of people who have a couple of hours a week they can spend for such a cause. Please check with your colleagues and see if asking for volunteers is possible.

        Donating money is also an option, but in this economy, it’s not sustainable to donate significant sums on a recurring basis for most.

    • cmeerw@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      the email lists:

      However, every one of these reports has to be triaged, analyzed, and dealt with.

      I don’t think non-coding work means non-technical work - you’ll likely still need to dig deep into the technical details to actually be able to help

      There is also a link to docs: add maintainer entry profile for XFS

  • kitonthenet@kbin.social
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    I’m having trouble understanding the email, is this for people to help with fs or xfs or both or are they effectively equal? The linked patch is for XFS which I understand Darrick has quit, is he still on fsdevel? Is this plea for either ?

    • liori@lemm.eeOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      The thread is an attempt to merge a new file system, bcachefs. This is a large change, requiring a lot of review from experienced developers, and getting anyone to do this work turned out to be difficult. Darrick here started talking how, in general, all development of file systems in Linux is troubled by lack of manpower.

  • NateNate60@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

    This problem is pretty common across most parts of the Linux space. Everyone wants to volunteer coding work, which is great, but not what’s desperately needed right now.

    The Linux community needs more than programmers, or else it will consist only of programmers. We need UI/UX experts, or we’ll never have the simplicity and ease of use of iOS. We need accessibility designers or we’ll never match up to the accessibility of MacOS. We need graphic designers and artists or we’ll never look as good as Windows 11. We need PR professionals and marketing experts or we’ll never be as notable as the Windows XP startup sound.

    We don’t have enough volunteers that fit into these categories. The next best thing you can do is contribute your money so that your favourite project can hire the people they need.

    • JackGreenEarth@lemm.ee
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      That’s more the desktop environment than the Linux kernel though. Gnome, for example, is a simple, good looking, accessible desktop environment.

      • NateNate60@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        I love and use GNOME daily, but I think it’s still the case that the interface “needs some getting used to” for a Windows/MacOS user. The design paradigm is just not familiar or self-explanatory to anyone who has regularly used desktop computers in the past decade.

        • sederx@programming.dev
          link
          fedilink
          arrow-up
          0
          ·
          1 year ago

          but I think it’s still the case that the interface “needs some getting used to” for a Windows/MacOS user.

          why do you think thats unreasonable? its a different system

          • NateNate60@lemmy.ml
            link
            fedilink
            arrow-up
            0
            ·
            1 year ago

            I think it is unreasonable because a Windows user (i.e. myself) can quickly get up to speed with MacOS within five minutes without the need for external instruction. I can manage a MacOS system perfectly fine even without any prior knowledge of how it works. I can figure out how to configure the settings to do what I need it to do without needing to search for how to do it online.

            GNOME took almost a week to get used to and remember where things are located, such as what is located in Settings, how the task flow works, and so forth. I never got used to the “disappearing dock”. I had to use an extension for that. GNOME is just way more different than the others. Meanwhile, my grandpa picked up Cinnamon as a lifelong Windows user within five minutes.

            • sederx@programming.dev
              link
              fedilink
              arrow-up
              0
              ·
              1 year ago

              Why are you talking like gnome is the default Linux DE? Its not. As you said yourself cinnamon is better for some folks.

              • NateNate60@lemmy.ml
                link
                fedilink
                arrow-up
                1
                ·
                1 year ago

                It’s not, but what distros frequently top the list of “user-friendly” distros?

                Ubuntu, PopOS, Fedora, and friends.

                Maybe it’s not how it should be, but that’s currently how it is.

    • liori@lemm.eeOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      This plea for help is specifically for non-coding, but still deeply technical work.

    • ______@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I don’t know a single ui person or artist that gives a single f about open source.

      I think as a dev you naturally grow to respect the open source space because of how much you take from it.

      I would love to be proven wrong though

    • Sigmatics@lemmy.ca
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      I mean, Microsoft and Apple have career pages stating exactly what is needed. Does Linux have something like this for volunteers? I think it’s just very inaccessible to someone from the outside. Maybe start there, improve the recruitment of volunteers

      • Potatos_are_not_friends@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        It’s extremely inaccessible from the outside. Non-devs don’t know what to do with it.

        We brought Linux laptops into our company (1500+ laptops during the pandemic) and after a year, half the devs and design team switched to Macs. The Linux users who stayed are pretty much using the laptop as a glorified netbook where they just use Google doc suites. And whenever they encounter a problem… Searching leads to nerds arguing about what version of Linux they should be using instead. Or the answer requires them to go into terminal to fix a problem.

        I have a bunch of users asking about Elementary OS, for the sole reason in that it “looks” good.

        • EddoWagt@feddit.nl
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          I have a bunch of users asking about Elementary OS, for the sole reason in that it “looks” good.

          Honestly I would use it for that reason too, you can install the Pantheon desktop on NixOS, but the gnome ecosystem is just too good