a96650426dbf6e058a49cd631690ca3effdf6028
beb5149f23762c1be5ed74573d311111d9788e94
210189aa51179a190a7a52d6ed0ca1f007342c53
also makes a new objectives folder for these files
cannot
I'd like to see a vote on this delayed until after Flock and when the TBD sections are filled out based on the Flock hackfest.
rebased onto 210189aa51179a190a7a52d6ed0ca1f007342c53
1 new commit added
adds explanation for modularity hackfests
I like this proposal, however I would like to point to one thing.
In the goals section you are talking about improving packager experience and experience of creating modules for packagers. But I could not find anywhere in deliverables anything about "create tooling for automated creation of modules which is run as part of Fedora". For example:
packager experience
experience of creating modules for packagers
rust-regex
ripgrep
zola
Nowadays, it consumes quite a lot of time for me to maintain 30+ Rust modules.
Do you think it is feasible to add on the roadmap?
It seems like dnf will need a lot of changes. Is the dnf team on board? cc @jmracek
Before encouraging people to make modules, can you please resolve the upgrades first? https://pagure.io/modularity/issue/151 This has been the most common issue during upgrades from F30 to F31 and there is known workaround but not known general solution yet.
This is technically possible for a long time. Mock can install and enable modules in buildroot. Therefore it is just a matter of having the right config in Koji. I would be more specific here. What you are trying to do, technically.
Can we make this part of the objective? https://pagure.io/fesco/issue/2114
Should we stop modularizing libraries and focus on "leaf stacks" instead?
There must be strong restrictions to create modules, because each module will increase demands for release engineering, infrastructure and testing. At present there are multiple reports about broken dependencies between nonmodular content and enabled modules and their dependencies on systems that never used dnf module commands (consequence of enablement of defaults and their dependencies). Wee need to focus on QE and testing all module streams combinations to ensure integrity of distribution (modular repoclosure).
dnf module
It is blocked by rejection of https://src.fedoraproject.org/rpms/libsolv/pull-request/4. See also https://bugzilla.redhat.com/show_bug.cgi?id=1737469
We need to provide an alternative approach how to resolve system-upgrade in fedora. I do not agree to use "Rolling Defaults", because it is a fragile construct that makes modularity more complicate and not transparent.
Is this a fail-safe mechanism? The fail-safe mechanism is ready to deploy.
I do not understand that, sorry.
Any significant changes must be ready before 2020-02-25 - Beta freeze
+1
Complaints about dependency issues with enabled modules, when the users did not know modularity existed and they never had used any modular command, are numerous. Maybe modules should only be used when explicitly required by the user? Such approach would prevent a lot of discussed problems per se.
If we did not allow modules to have a default stream, we could still maintain the ursine packages for the default version of the available software. In that case, people who wouldn't be interested in modules could remain on a non-modular content (they are trying to do it anyway), without any problems with upgrades. The others, who'd like to use modules, could do it and they would be expected to know how to solve the upgrades by themselves.
I feel, that there is a longing for modular only system, but I am not sure that we are able to test that different modular streams do not break mutual dependencies. With most of the software in modules, with possibly multiple streams, there will be bazillion of different combinations and I am afraid we do not have enough human and machine power to test everything thoroughly.
What we also need urgently are clear guidelines how to create modules, so that the streams and profiles are correctly set (or even named). These guidelines should also be enforced and modules that do not meet the criteria should not be let into the system ( => gating).
Maybe introducing an automated tool that would take care of it is a good idea, so I am in favor of +1 to @ignatenkobrain .
If we abandon the idea of default streams everything will indeed get much easier for the users. As a bonus, we don't have to do ursa prime.
That indeed has my full support. The default version should be nonmodular. Modules should provide alternate versions for people who want them.
The problem with this approach that this "alternative version" maintenance workflow would be different. We either need to have same workflow for standard and alternative versions or we should not have modularity. Trying to be somewhere in the middle is not going to end up well.
We can fix the users experience + regular packager experience first and worry about the modular contributor experience later? If the experience is "nah, this is too complicated", we would still have the default nonmodular version.
I believe that users experience should be our mantra, because we do not want to make users leaving for other distros. So, for every technology we want to adopt into Fedora, we must nourish it into perfectness or think about something else.
If staying in the middle only represents some extra work to package the modules, I think it is a reasonable cost. The non-modular workflow is known, experienced, tested and trusted, so we do not have to do much in this field and we can focus on making the modular workflow as pleasant as possible while still staying in the middle.
By the way, I like staying in the middle because it is far from every extreme.
The plan also forget to talk about: 1. Module or stream removal process from distribution (EOL) 2. Life-cycle of the stream 3. Modular upgrade path - missing documentation and tooling 4. What about module:streams obsoletes?
Pull-Request has been closed by bcotton
The ownership of Modularity development within Red Hat has changed. So we're retiring the current Modularity objective and work with the new team to develop a new one.
also makes a new objectives folder for these files