1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-12-27 02:16:12 +01:00
github.com_openSUSE_osc/TODO
Dr. Peter Poeml 4a2c675e6e - build:
- rename --prefer-pacs option to --prefer-pkgs
  - implement --keep-pkgs option
2007-05-03 15:54:40 +00:00

287 lines
11 KiB
Plaintext

- split functionality that needs prj/pac as commandline arguments into a seperate tool (oscremote? osc -r?)
- memorize used the api server on checkout
- implmement switch command
- implement 'info' command
- implement 'mv' command
- editmeta: the API will return a 500 if the xml is broken... the document
could be presented for editing again in that case
- updatepacmetafromspec -- is that useful?
In which form would this be integrated best?
- use urllib.urlencode for parameter encoding
- _real_ SSL support, with certificate verification
- zsh completion, or even bash
- add option to disable gpg key checking?
- add support for adding tags to packages?
- plugin-ize subcommand implementation
- look at Susannes extensions
- Allow the package owners/users to signal an abort build.
Message-ID: <20070214120205.GA9629@suse.de>
- implement wipe command
- implement editing of project configuration (alrady works in api & backend)
- build: --extra-pkgs ... buildinfo -> &add=...&add=...
checkin:
- handle error if PUT fails, so the change is not committed to
localmeta
- changelog handling
(should also work with multiple spec files <package-name>-<repository-name>.spec, and with <package-name>-<version>.spec)
implement a package search / indexing
> BTW: Can I upload a src.rpm instead of a tarball also?
no, because not all tools will be able to handle a src.rpm. And you will not
be able to build non rpm packages from it.
But someone could patch the commandline tool osc to import a src.rpm by
extracting it (hint hint ;)
<darix> ich hab nen vorschlag fuer osc
<darix> sagen wir ich leg ein server:mail/foo123 an
<darix> dann waere es cool sowas zu koennen wie
<darix> osc importfromspec server:mail foo123
This can actually be done by
osc createpac server:mail foo123
followed by
cd foo123; osc init server:mail foo123
bug:
% osc rm subversion.de.po.bz2 subversion.nb.po.bz2
D subversion.de.po.bz2
D subversion.nb.po.bz2
poeml@aust ~/pac/opensuse/Subversion/subversion
% osc ci subversion.de.po.bz2 subversion.nb.po.bz2
Sending subversion.changes
Deleting subversion.de.po.bz2
Deleting subversion.nb.po.bz2
Sending subversion.viewcvs.conf
Transmitting file data ..
15:47 < kesselborn> DuDE: beim osc local build: müssen die config vars gesetzt sein, wenn man env vars gesetzt hat?
15:48 < DuDE> kesselborn: hm, weiss ich gerade gar nicht
15:48 < kesselborn> ja, scheint so
15:48 < kesselborn> ok
15:48 < kesselborn> aber er nimmt dann die env vas
15:48 < kesselborn> vars
15:50 < DuDE> kesselborn: hm, das sollte ich aendern
osc repos server:search:ui :
<repository name="SUSE_Linux_10.1">
<path project="server:search" repository="SUSE_Linux_10.1" />
<path project="KDE:KDE4" repository="SUSE_Linux_10.1" />
<arch>x86_64</arch>
<arch>i586</arch>
</repository>
<repository name="SUSE_Factory">
<path project="server:search" repository="SUSE_Factory" />
<path project="KDE:KDE4" repository="SUSE_Factory" />
<arch>x86_64</arch>
<arch>i586</arch>
</repository>
# shorter forms of the packstatus... useful for anything?
#http://api.opensuse.org/result/KDE:KDE3/packstatus?summary
#http://api.opensuse.org/result/KDE:KDE3/packstatus?summaryonly
# osc build SUSE_Factory i586 xorg-x11-libX11.spec
> ['/usr/bin/osc', 'build', 'i38', 'i386', 'SUSE_Factory', 'i586', 'xorg-x11-libX11.spec']
> Error: specfile 'SUSE_Factory' does not exist.
BUILD_DIST must *not* be set! Could you add this information to the
'osc help build' text?
-> possibly kill BUILD_ROOT/BUILD_DIST support altogether? or make its use configurable.
http://api.opensuse.org/result/Apache/SUSE_Linux_10.0/apache2/result
15:06 <darix> kurz zeit ueber 1-2 osc feature request zu reden die ich grade bekommen habe?
15:06 <DuDE_> ja
15:06 <darix> ok
15:06 <darix> das 1. ist
15:06 <darix> osc listpackages [<project>]
15:06 <DuDE_> als Alias?
15:07 <darix> osc listpackages [<project>] [<package>]
15:07 <darix> es soll die gebauten sachen listen
15:07 <DuDE_> ach so, rpms
15:07 <darix> quasi alle rpms/debs die da sind
15:07 <darix> und dann
15:07 <DuDE_> mit Pfad/URL?
15:07 <DuDE_> also praktisch den Link auf software.opesuse.org?
15:07 <darix> osc getpackage [<project>] [<package>] [<rpm>]+
15:07 <darix> nein
15:07 <darix> im zweifel ueber API saugen
15:08 <DuDE_> hm, waere noetig, falls ein Projekt noch nicht durchgebaut hat
15:08 <darix> jau
15:08 <darix> richi wuerde sich wirklich drueber freuen
15:08 <darix> ich weiss dass es ueber die api vom backend geht
15:09 <darix> ich weiss nur nicht ob api alles durchreicht
15:09 <darix> und leider hab ich schon ein paar sachen im api code gefunden
15:09 <darix> der falsch mit dem backend spricht :/
15:09 <DuDE_> ja, macht osc build auch so, eigentlich, allerdings weiss es dann die noetigen Datein aus dem buildinfo (version, release)
15:09 <darix> man kann auf dem backend alle rpms listen lassen
% osc addremove
A .swp
Right now, a package must exist in the bs so that it can be built
locally. But this is a bug in osc which I'm going to fix at some point
in time.
editmeta:
Ah, or rather osc _thought_ it was unmodified because it uses a simple
timestamp to compare the file with. This is basically suitable for
humans editing, because they need more than a second... I can change
that to a real comparison. Meanwhile, you can add a small sleep ;)
On the other hand, it would be even nicer if there would be a facility
that wouldn't require you to work around with an EDITOR script at all.
Noted in the todo.
copypac:
put the current release number into the spec file before sending it
show request body of 400 responses (bad request)
a merge issues:
if I mark a file as "to be added" ("A"), and someone else alread adds (and
commits) the file in between, and I update -- will I get it marked as "D" after update??
D apr_dbd_mysql.c
M libapr-util1.spec
in the unusual event that a log file should be there (due to status "building"), but there is none, fail gracefully.
% osc log openSUSE_10.2 i586
Error: can't get 'https://api.opensuse.org/result/X11:xfce/openSUSE_10.2/xfprint/i586/log?nostream=1&start=0'
HTTP Error 404: Not Found
with no repos defined:
% osc prjresults
Traceback (most recent call last):
File "/usr/bin/osc", line 7, in <module>
commandline.main()
File "/usr/lib/python2.5/site-packages/osc/commandline.py", line 1072, in main
cmd(args)
File "/usr/lib/python2.5/site-packages/osc/commandline.py", line 738, in prjresults
print '\n'.join(get_prj_results(project))
File "/usr/lib/python2.5/site-packages/osc/core.py", line 1192, in get_prj_results
for node in root.find('packstatuslist'):
TypeError: 'NoneType' object is not iterable
19:08 < Beineri> DuDE: can you add an option to "up" which moves instead overwriting a file if it has changed in the repository?
19:08 < darix> Beineri: moves?
19:08 < darix> oO
19:08 < darix> Beineri: use case?
19:09 < Beineri> darix: I want to see what changed when updating (we miss notification and history if you didn't notice). so I want to run "diff foo.myversion foo"
19:09 < darix> Beineri: we have a history?
19:09 < darix> Beineri: you should rtfm the api docs before claiming stuff!:p
19:10 < Beineri> darix: trying to turn around my words?
19:10 < darix> Beineri: no
19:10 < darix> just correcting wrong statements.
19:10 < DuDE> Beineri: doesn't sound too useful
19:10 < Beineri> darix: what's wrong with "we miss history"?
19:10 < DuDE> it's deviating too much from the normal usecase
19:10 < DuDE> which is, merging upstream changes in
19:10 < DuDE> Beineri: but I have a better idea, I think
19:11 < DuDE> Beineri: something that I miss in svn very much
19:11 < Beineri> DuDE: it still shall merge, but make a copy of my version before :-)
19:11 < darix> GET http://api.opensuse.org/source/<project>/<package>/<filename>
19:11 < DuDE> Beineri: you mean, keep a fool.mine file in any case?
19:11 < darix> GET http://api.opensuse.org/source/<project>/<package>/<filename>?rev=1234
19:11 < DuDE> Beineri: what I miss badly, is a command to see upstream changes
19:11 < DuDE> Beineri: such as the good old cvs status
19:12 < DuDE> Beineri: which showed the status of the files on the server
19:12 < Beineri> DuDE: status is not enough, I want to see what changed :-)
19:12 < DuDE> Beineri: I mostly want to know what I have to expect, before up'ping and merging
19:12 < DuDE> Beineri: yes, I also want to see that
19:12 < DuDE> Beineri: some kind of osc updiff
19:13 < DuDE> Beineri: would that help?
19:13 < darix> .oO( i smell nice race conditions^^ )o
19:13 < DuDE> Beineri: sorry, I just recognize that you asked for an option
19:13 < DuDE> Beineri: that's of course always an option
19:14 < DuDE> Beineri: surely
19:14 < Beineri> DuDE: that would help, yes. "my" stuff I could for now do with a wrapper :-)
19:15 < Beineri> darix: and that's how useful without osc/web-frontend support?
when can this happen?
% osc up
checking out new package t
A home:poeml/t
A home:poeml/t/foo
At revision 16.
At revision 9.
D bar1
Traceback (most recent call last):
File "/suse/poeml/bin/osc", line 7, in ?
commandline.main()
File "/suse/poeml/osc-stable/osc/commandline.py", line 1072, in main
cmd(args)
File "/suse/poeml/osc-stable/osc/commandline.py", line 572, in update
if state == 'M' and p.findfilebyname(filename).md5 == oldp.findfilebyname(filename).md5:
AttributeError: 'NoneType' object has no attribute 'md5'
[1] 11871 exit 1 osc up
21:05 <darix> ping
21:30 <DuDE_> pong
21:31 <darix> osc updatepac... sollte nicht fehlschlagen wenn das rpm anders heisst als das package verzeichnis
21:31 <darix> :p
18:48 <darix> darix@hydrogen:~/osc/server:http/GeoIP> osc results
18:48 <darix> Traceback (most recent call last):
18:48 <darix> File "/usr/bin/osc", line 7, in <module>
18:48 <darix> commandline.main()
18:48 <darix> File "/usr/lib64/python2.5/site-packages/osc/commandline.py", line 1077, in main
18:48 <darix> cmd(args)
18:48 <darix> File "/usr/lib64/python2.5/site-packages/osc/commandline.py", line 719, in results
18:48 <darix> print '\n'.join(get_results(project, package))
18:48 <darix> File "/usr/lib64/python2.5/site-packages/osc/core.py", line 1169, in get_results
18:48 <darix> rmap['status'] += ': ' + statusnode.find('details').text
18:48 <darix> AttributeError: 'NoneType' object has no attribute 'text'
21:49 < darix> DuDE: osc editmeta
21:49 < darix> the template is stupid
21:49 < darix> it now has "your_name" as project maintainer
21:50 < darix> that requires you to edit the line everytime when creating a new package
21:50 < DuDE> hm, can't find that
21:50 < DuDE> is that the exact string?
21:52 < DuDE> ah, I find your_username
21:52 < darix> DuDE: http://rafb.net/p/TgxmfB83.txt
21:54 < DuDE> I think that was filled in the past
21:54 < DuDE> since the user account data is now stored in the config per api server, the (in the config) global user/passwd is no longer used otherwise, so it shows the default
-> hits also in edit_user()