diff options
Diffstat (limited to 'zarb-ml/mageia-sysadm/2011-March/003022.html')
-rw-r--r-- | zarb-ml/mageia-sysadm/2011-March/003022.html | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/zarb-ml/mageia-sysadm/2011-March/003022.html b/zarb-ml/mageia-sysadm/2011-March/003022.html new file mode 100644 index 000000000..f48064b61 --- /dev/null +++ b/zarb-ml/mageia-sysadm/2011-March/003022.html @@ -0,0 +1,210 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> + <HEAD> + <TITLE> [Mageia-sysadm] Proposal for maintainers database API + </TITLE> + <LINK REL="Index" HREF="index.html" > + <LINK REL="made" HREF="mailto:mageia-sysadm%40mageia.org?Subject=Re%3A%20%5BMageia-sysadm%5D%20Proposal%20for%20maintainers%20database%20API&In-Reply-To=%3C20110308025311.GC21938%40mars-attacks.org%3E"> + <META NAME="robots" CONTENT="index,nofollow"> + <META http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <LINK REL="Previous" HREF="003027.html"> + <LINK REL="Next" HREF="003023.html"> + </HEAD> + <BODY BGCOLOR="#ffffff"> + <H1>[Mageia-sysadm] Proposal for maintainers database API</H1> + <B>nicolas vigier</B> + <A HREF="mailto:mageia-sysadm%40mageia.org?Subject=Re%3A%20%5BMageia-sysadm%5D%20Proposal%20for%20maintainers%20database%20API&In-Reply-To=%3C20110308025311.GC21938%40mars-attacks.org%3E" + TITLE="[Mageia-sysadm] Proposal for maintainers database API">boklm at mars-attacks.org + </A><BR> + <I>Tue Mar 8 03:53:11 CET 2011</I> + <P><UL> + <LI>Previous message: <A HREF="003027.html">[Mageia-sysadm] Alamut memory problem +</A></li> + <LI>Next message: <A HREF="003023.html">[Mageia-sysadm] svn commits ML +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#3022">[ date ]</a> + <a href="thread.html#3022">[ thread ]</a> + <a href="subject.html#3022">[ subject ]</a> + <a href="author.html#3022">[ author ]</a> + </LI> + </UL> + <HR> +<!--beginarticle--> +<PRE> +Here is a proposal for an API that can be used on the maintainers +database, with the list of URLs and what they should do : + +*** +An html page with the list of all packages, and their maintainer : +<A HREF="http://maintdb.mageia.org/packages.html">http://maintdb.mageia.org/packages.html</A> +As we have many packages, the page will be long, so maybe we want to +split the list by first letter of package name : +<A HREF="http://maintdb.mageia.org/packages_a.html">http://maintdb.mageia.org/packages_a.html</A> +<A HREF="http://maintdb.mageia.org/packages_b.html">http://maintdb.mageia.org/packages_b.html</A> +<A HREF="http://maintdb.mageia.org/packages_c.html">http://maintdb.mageia.org/packages_c.html</A> +... +The list of all packages and their maintainers, in text format : +<A HREF="http://maintdb.mageia.org/packages.txt">http://maintdb.mageia.org/packages.txt</A> +With the output like this : +package1:maintainerlogin1 +package2:maintainerlogin2 +package3:maintainerlogin3 +... + +*** +An html page to show the maintainer of one package (with +[packagename] replaced with the name of a package) : +<A HREF="http://maintdb.mageia.org/packages/[packagename">http://maintdb.mageia.org/packages/[packagename</A>].html +The same in text format : +<A HREF="http://maintdb.mageia.org/packages/[packagename">http://maintdb.mageia.org/packages/[packagename</A>].txt +With output like this (only one line): +packagename:maintainerlogin +If the package is unmaintained, it appears like this : +packagename:nobody +If the package does not exist, an empty file is returned. + +*** +The list of maintainers (all maintainers who maintain at least one +package) : +<A HREF="http://maintdb.mageia.org/people.html">http://maintdb.mageia.org/people.html</A> + +*** +The list of packages maintained by someone (with [loginname] replaced by +a login) : +<A HREF="http://maintdb.mageia.org/people/[loginname">http://maintdb.mageia.org/people/[loginname</A>].html +And the same in text format : +<A HREF="http://maintdb.mageia.org/people/[loginname">http://maintdb.mageia.org/people/[loginname</A>].txt +With the same format for output : +package1:loginname +package2:loginname +package3:loginname +... +If the login does not exist, an empty file is returned. + +*** +The list of unmaintained packages : +<A HREF="http://maintdb.mageia.org/people/nobody.html">http://maintdb.mageia.org/people/nobody.html</A> +And the same in text format : +<A HREF="http://maintdb.mageia.org/people/nobody.txt">http://maintdb.mageia.org/people/nobody.txt</A> +With this output : +package1:nobody +package2:nobody +package3:nobody +... + +*** +The URL to add a package, used by the buildsystem when a package is +uploaded on the repository : +<A HREF="https://maintdb.mageia.org/admin/setnewpackage">https://maintdb.mageia.org/admin/setnewpackage</A> +Protected with basic http authentication (with a login/password that was +set in maintdb or apache configuration). +Accessed with a POST request and the following two arguments : +package: [packagename] +maintainer: [maintainername] +If the package already exists in the database, it is not updated. + +*** +The same as the previous URL, but the package maintainer is updated when +the package already exists in the database : +<A HREF="https://maintdb.mageia.org/admin/setpackage">https://maintdb.mageia.org/admin/setpackage</A> + +--------- + +Maintainers also need to be able to drop maintainership of their +packages, and take maintainership of unmaintained packages. For doing +this, I think there is two solutions : + +1) On the html pages, maintainers are able to authenticate using + their login and ldap password. When authenticated, the packages + maintained by nobody have a link "take maintainership". And the + packages maintained by the authenticated user have a link "drop + maintainership". + +2) The website does not allow changing maintainership. Instead, we add a + command in mgarepo to do it. And to do it, mgarepo connects to valstar, + is authenticated by ssh, and run a script on valstar to request the + change. This script has access to the admin password and will connect + to the "admin/setpackage" URL to update the package maintainer. + +I think the 2nd solution is better, because it allows scripting, for +example to drop/take maintainership of all packages using a regexp. +You manage maintainership using the same tool used to submit packages. +And I think it's maybe less work to implement it as it avoids adding ldap +authentication in maintdb, and creating pages to do the updates. Maybe +we also don't need html pages at all in that case. + +And I think that's all we need for the first version. + +If we compare with the maintainers db website used at mandriva, their +version also has : + - media name for each package, with pages to list packages from only + one media + - a search box to search for a package + - links to bugzilla for each package +But I don't think we should store the media name in maintdb. And to +search for packages, see media names, find bugs, we should use sophie +or mageia-app-db instead. Actually users who want to see the maintainers +of packages should probably also use mageia-app-db or sophie. + +maintdb should mainly be used in the following cases : + - by sophie, mageia-app-db and other package databases which want to show + maintainers of packages. They download the full list of packages and + maintainers every day (or hours) from the text file, to synchronize + with their database. + - by bugzilla if we want to assign bugs automatically to maintainer + - by build system or svn, for example if we want to send emails to package + maintainers when someone else commits to their packages + - by other tools which may need it ... + + + +For version 2 or later, we can also have those features : + - a changelog page, to see who took/dropped maintainership of which + packages. Maybe with an rss too. And a text files containing the + changes from the last 2 days (to avoid downloading the full list, if + you only want to synchronise). + - an URL to remove package (with admin password): + <A HREF="https://maintdb.mageia.org/admin/removepackage">https://maintdb.mageia.org/admin/removepackage</A> + - maybe support for groups and/or multiple maintainers + +For groups, we'll first have to see where we want to store them. But +for the maintdb text output, we could use something like this : +package1:maintainer1,maintainer2,maintainer3 +package2:%group1 +package3:%group2,maintainer4 +... + +And with the following pages to list packages maintained by a group : +<A HREF="http://maintdb.mageia.org/groups/groups/[groupname">http://maintdb.mageia.org/groups/groups/[groupname</A>].html +<A HREF="http://maintdb.mageia.org/groups/groups/[groupname">http://maintdb.mageia.org/groups/groups/[groupname</A>].txt + + +</PRE> + + + + + + + +<!--endarticle--> + <HR> + <P><UL> + <!--threads--> + <LI>Previous message: <A HREF="003027.html">[Mageia-sysadm] Alamut memory problem +</A></li> + <LI>Next message: <A HREF="003023.html">[Mageia-sysadm] svn commits ML +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#3022">[ date ]</a> + <a href="thread.html#3022">[ thread ]</a> + <a href="subject.html#3022">[ subject ]</a> + <a href="author.html#3022">[ author ]</a> + </LI> + </UL> + +<hr> +<a href="https://www.mageia.org/mailman/listinfo/mageia-sysadm">More information about the Mageia-sysadm +mailing list</a><br> +</body></html> |