Gentoo Archives: gentoo-dev

From: konsolebox <konsolebox@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: Facilitating user contributed ebuilds (Was: [gentoo-dev] The future of the Sunrise project)
Date: Sat, 11 Jun 2016 03:58:28
Message-Id: CAJnmqwYhQtqKdKpTKHTTn5-LnBAxZR7j05YtBUJsHTCeyeiUJQ@mail.gmail.com
In Reply to: Facilitating user contributed ebuilds (Was: [gentoo-dev] The future of the Sunrise project) by Alexander Berntsen
1 On Wed, Jun 8, 2016 at 9:16 PM, Alexander Berntsen <bernalex@g.o> wrote:
2 > It would be wise of us to create a novel way of involving users from
3 > the ashes of Sunrise.
4 >
5 > Here is my suggestion: It would be fruitful to encourage every single
6 > Gentoo user to have their own repository. And this repository should
7 > be publicly available.
8 >
9 > This way we can merge useful things from people, and they can submit
10 > pull-requests if they have useful things that are not in the tree.
11 > Before merging anything to the main tree, ebuilds should of course be
12 > carefully reviewed. Users could also review each other's ebuilds to
13 > ensure better quality ebuilds.
14 >
15 > This could lead to a future where the Gentoo tree is largely
16 > superseded. Every user would just have their own repository, where
17 > they could pick and choose packages from other users. The Gentoo tree
18 > would just focus on a high-quality repository of the basic/core things
19 > that everybody needs. Gentoo devs would spend most of their time
20 > maintaining curated small and useful repositories.
21 >
22 >
23 > While there is some work to be done to facilitate my suggestion, it
24 > should be a lot less work than Sunrise was. What we need short-term is
25 > simply documentation where we encourage users to have their own
26 > repositories that are available online. Next up would be setting
27 > Portage up to expect a user repository from the get go. The initial
28 > personal tree could be fork of the Gentoo tree with a remote 'gentoo'
29 > that they can pull from (emerge could do this automatically). This
30 > way, users who do not care at all, can just use Gentoo like they do
31 > today.
32 >
33 > The final step is the most difficult (but then again we might never
34 > get so far). It is two-fold. First we make the core/base repository.
35 > Then we identify important subsets that can be logically separated
36 > into repositories, and do this.
37 >
38 > Parallel to all this, we should work on tooling. It is unreasonable to
39 > expect people to be git experts to be effective. The workflows for
40 > managing user repositories doesn't need the full power of git anyway.
41 > It would also be good to offer hosting insofar as possible to a set of
42 > curated repositories we consider to be of high quality.
43 >
44 >
45 > In the end, Gentoo might make a gigantic leap into the future with a
46 > truly modular distribution. If anyone wants to look at distros that
47 > get this more right than Gentoo, have a look at e.g. NixOS and Exherbo.
48 >
49 > What are your thoughts?
50
51 Here's mine:
52
53 Make the layman system more open (or have a version of layman that has
54 more scope e.g. open-layman), but add tags to differentiate stable,
55 official, or trusted overlays to those which aren't: outdated,
56 under-provision, etc. We have to have an open web-based registration
57 system where users can easily sign-up for their own overlay name which
58 would be mapped to a supported repository service, like Github. The
59 system would time and time check for each repository for activity, and
60 check for updates. It would then update the database for packages
61 which are provided by the overlay. Note that it doesn't have to
62 always do repoman-like checks (or maybe it doesn't really have to),
63 but it could just do it when a user asks for a request, which could be
64 enqueued, and done only once in every update.
65
66 With an open system, users would be encouraged to contribute since
67 even if their works would not be accepted to be merged into the
68 official repo, it would still be available to the public for anyone to
69 use - where people could also easily find it.
70
71 Everything about security should already be obvious. You can warn
72 users, mask user overlays by default, etc. If we want, we can have a
73 comment and upvote system for every package in every overlay where
74 each is only dynamically created in the database if an upvote,
75 downvote, or comment is made.
76
77 If we are also concerned about overlay names that should only be used
78 officially, we should warn users that if possible, they should only
79 use unique names, and avoid common names, and tell them that we could
80 take their names for official use if we want to, granting their name
81 is arguably not unique.
82
83 Transfer of a package to an official repository:
84
85 If an official dev chooses to pull a package from a user overlay,
86 automatically it should mean that he or another dev would take place
87 in maintaining that package. This would prevent the issue of
88 unmaintained packages, and dependencies among user overlays.
89
90 Now some people might question this since it might just drive people
91 to become normal contributors, and not official, but I think it's more
92 helpful to the system than not, since it adds more activity, and a lot
93 of users don't intend to become an official dev anyway. Besides,
94 people can still become an official dev on later time if they would
95 want to, or they can be persuaded to become one.
96
97 ---
98 konsolebox