aboutsummaryrefslogtreecommitdiff
path: root/notes/package_registry.txt
blob: c7040aef9f6934ffaa3cb8943c1edefa65de0569 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

How to make a scaleable package registry?

* Require moderation/review of everything? It's nicer, because the won't be
  a need to act quickly (e.g. to remove malware).
  - But allow updates to be downloaded, if explicitly requested,
    even if they haven't been reviewed yet.
* Have a system with "review points"?
    - Each package needs to reach a certain threshold of "review points"
      before being considered to be reviewed.
    - New packages need to reach the threshold before becoming visible?
      And also updates from new users? And API changes?
        - API and implementation could be reviewed separately.
          The implementation is easier to change, so it could be reviewed
          with a lower threshold.
    - The threshold could very between sections, e.g. security or network
      related packages. This could partly be detected automatically by
      checking which dependencies are used.
    - Different reviewers could have focus areas, where they have more
      review points. Some areas could require a certain number of reviews
      from a specific group of reviewers.
* Have a semi-automated flagging system
    - Require more review points if an upload/version/package gets flagged,
      otherwise it gets hidden.
    - Notify moderators (but don't hide) packages that are widely
      used and have existed for some time (e.g. a month).
* Special "trusted moderators" could have more powers to hide/delete or
  unhide things.
* Strongly encourage (or even require) team-based package management.
    - But allow pre-review with veto rights for stable APIs/interfaces,
      which are impossible to change. E.g. a specific user/group has to
      review API changes, and only if no answer (or accepted) the interface
      change is published.
    - There could be many different sub-teams, depending on skill-set of the
      members. A user could belong to many teams.
    - Review could be required from multiple teams (e.g. "network team",
      "accessibility team" and "API team").
    - There should be some way for a board of some association to remove
      a person from a team (or even suspend the persons account).
    - Teams could have both "members" and "package moderators".
      Members could them be able to elect package moderators.
* Perhaps have "upload sections", where each section is handled by an
  "association-team". The association-team would have members, a board,
  and bylaws (with some instance-wide requirements), and would hence
  (in the jurisdiction of Sweden) legally be an association on its own.
    - There could be a "std" section for standard things.
    - There could be a "edge" section for non-standard or unfinished things.
    - External associations/projects could have their own section.
      (Should there be a difference between internal and external projects
       even?)
        - Non-associations could be allowed on a case-by-case basis,
          if they are doing a public good, have reasonable values,
          are reasonably democratic/open, etc.
          (For example non-profit F/OSS foundations, as long as they
          have reasonable values)