Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sovereign Tech Fund project: host fpm registry #2

Open
awvwgk opened this issue Dec 2, 2022 · 0 comments
Open

Sovereign Tech Fund project: host fpm registry #2

awvwgk opened this issue Dec 2, 2022 · 0 comments
Assignees

Comments

@awvwgk
Copy link
Member

awvwgk commented Dec 2, 2022

Aim of this project is to develop a web server that will allow the uploading and downloading of packages. Packages will have names and version numbers, and be associated with one or more maintainers. Users must have an account and be logged in to upload packages. A package maintainer will be able to assign other maintainers and remove a package from the registry - either a specific version or the package in its entirety. Only a package maintainer will be allowed to upload new versions of an existing package.

T1: Initial Prototype of the web server

2 months (M1-M2)
The initial prototype will be capable of creating user accounts and allowing logged-in users to upload packages. It will allow package maintainers to remove a specific version of a package, or the package in its entirety. It will include sufficient tools for moderation and administration. I.e. administrators will be able to assign new maintainers to packages, delete user accounts, remove packages, etc. Finally, users will be able to download packages via a well-defined API without authentication.

T2: Upload Restrictions and Checks

2 months (M3-M4; requires T1)
One important check and restriction for a package on upload will be to ensure that all modules provided by a package are prefixed with the name of the package. This will ensure that module name conflicts do not arise between different packages. It is estimated that it will take 1 month to implement this check.
Another important aspect will be to ensure that the package can be built as a dependency.
As other checks and restrictions are determined, we will implement them as time allows.

T3: API for Query and Mirror

1 month (M5; requires T1)
To improve efficiency and reliability for users, we will implement an API allowing tools to easily query and mirror the repository. This will involve obtaining a list of all packages and versions, and bulk downloading of packages.

T4: fpm Support

1 month (M6)
Enable fpm to support uploading packages, querying the registry for available packages and versions, and fetching packages and their dependencies.

Deliverables

  • D1: Prototype of a web server.
    • Period: M2.
    • Mean of verification: Web page available as frontend
  • D2: Implementation of restrictions and checks.
    • Period: M4.
    • Mean of verification: See package violating checks fail to upload
  • D3: API for query and mirror.
    • Period: M4.
    • Mean of verification: Access to API
  • D4: Prototype version supporting fpm.
    • Period: M5:
    • Mean of verification: Use fpm to interact with the registry
  • D5: Prototype supporting restrictions, checks, query and mirror, and fpm.
    • Period: M6.
    • Mean of verification: Use fpm and/or web frontend to interact with the registry. Implementation available on GitHub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

No branches or pull requests

2 participants