summaryrefslogtreecommitdiffstats
path: root/zarb-ml/mageia-sysadm/2011-March/003022.html
blob: f48064b61926d059012d135c3e27ff4cfbaa21ab (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
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 &quot;take maintainership&quot;. And the
   packages maintained by the authenticated user have a link &quot;drop
   maintainership&quot;.

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 &quot;admin/setpackage&quot; 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>