1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-12-29 03:06:15 +01:00
Commit Graph

1026 Commits

Author SHA1 Message Date
Marcus Hüwe
34e7822bbb - added --baselibs option to osc build 2008-05-08 12:21:57 +00:00
Pavol Rusnak
afec162189 - added --keep-maintainers switch to copypac
(do not remove original maintainers and replace them with caller)
2008-04-30 12:28:25 +00:00
Dr. Peter Poeml
3018460596 Merged revisions 3774-3775,3779,3781-3782,3787,3789-3793,3798,3802,3805,3817-3822,3827,3829-3830,3837-3839,3841-3842,3848-3850 via svnmerge from
https://forgesvn1.novell.com/svn/opensuse/branches/buildservice/osc-exception-handling

........
  r3774 | poeml | 2008-04-22 17:39:45 +0200 (Tue, 22 Apr 2008) | 3 lines
  
  A first draft on implement systematic exception handling: 
  Add errors.py with some exceptions defined, and babysitter.py to handle them
........
  r3775 | poeml | 2008-04-22 22:34:12 +0200 (Tue, 22 Apr 2008) | 9 lines
  
  - new global options:
       --debugger         jump into the debugger before executing anything
       --post-mortem      jump into the debugger in case of errors
       -t, --traceback    print call trace in case of errors
  - traceback and post_mortem can also be set in .oscrc.
  - catch more errors (HTTPError).
  - make config accessible from outside of the Osc instance, by making it a class
    attribute
........
  r3779 | poeml | 2008-04-23 00:55:49 +0200 (Wed, 23 Apr 2008) | 5 lines
  
  - new global option:
       -d, --debug        print info useful for debugging
  - catch some more errors (HTTPError), with OscHTTPError which isn't very
    advanced yet.
........
  r3781 | Marcus_H | 2008-04-23 01:02:00 +0200 (Wed, 23 Apr 2008) | 2 lines
  
  - added OscConfigError class (just for testing).
  - small change in the signature of the OscBaseError constructor (actually we should get rid of the 'args' tuple because it will be deprecated sooner or later
........
  r3782 | Marcus_H | 2008-04-23 02:02:13 +0200 (Wed, 23 Apr 2008) | 2 lines
  
  - access the prg.conf.config dict in a save way - this way we avoid AttributeErrors if the prg.conf.config dict doesn't exist
  - in case of an configparser error we have to use the prg.options object directly (this was removed in r3781 by accident)
........
  r3787 | poeml | 2008-04-23 09:23:56 +0200 (Wed, 23 Apr 2008) | 4 lines
  
  - remove local exception handling from do_req
  - for HTTPError, print details (headers and response) when in debug mode
  - catch AttributeError
........
  r3789 | poeml | 2008-04-23 16:23:14 +0200 (Wed, 23 Apr 2008) | 4 lines
  
  - errors: add two new classes named OscWrongOptionsError and OscWrongArgsError
  - commandline: raise instances of the new errors in a number of places
  - commandline: add get_cmd_help() to Osc instance which returns the formatted help of a subcommand
........
  r3790 | Marcus_H | 2008-04-23 16:48:28 +0200 (Wed, 23 Apr 2008) | 4 lines
  
  - added 2 new exception classes: OscNoConfigfileError and OscIOError
  - added new method write_config() to the conf.py module: This method writes osc's configuration file
  - minor cleanups in the conf module
........
  r3791 | poeml | 2008-04-23 17:11:07 +0200 (Wed, 23 Apr 2008) | 3 lines
  
  small compatibility fix for r3790: try-except-finally isn't supported in
  python-2.4.2, thus do the same as try-except inside a try-finally.
........
  r3792 | poeml | 2008-04-23 17:37:53 +0200 (Wed, 23 Apr 2008) | 2 lines
  
  fix up the remaining places regarding handling of errors related to commandline parsing
........
  r3793 | poeml | 2008-04-23 17:40:34 +0200 (Wed, 23 Apr 2008) | 3 lines
  
  raise a NoWorkingCopyError in osc.core.store_read_project() in case of an
  IOError
........
  r3798 | Marcus_H | 2008-04-23 23:55:24 +0200 (Wed, 23 Apr 2008) | 1 line
  
  ported -r3797 from trunk
........
  r3802 | Marcus_H | 2008-04-24 11:00:55 +0200 (Thu, 24 Apr 2008) | 1 line
  
  ported -r3801 from trunk
........
  r3805 | poeml | 2008-04-24 12:52:30 +0200 (Thu, 24 Apr 2008) | 2 lines
  
  raise OscHTTPError in show_pattern_meta(), replacing local error handling
........
  r3817 | poeml | 2008-04-24 20:21:32 +0200 (Thu, 24 Apr 2008) | 9 lines
  
  - remove errors.OscHTTPError again.
    it seems simpler to use urllib2.HTTPError instead (and just add a specific
    error text message where appropriate, and re-raise)
  - for 404s, check out _which_ part was not found
    it is very ugly, but may be considered Good for pragmatic reasons
  - removed local exception handling and workaround for returned 500's from
    delete_package() and delete_project(), thereby getting rid of 4 possible exit
    points.
........
  r3818 | Marcus_H | 2008-04-24 22:36:17 +0200 (Thu, 24 Apr 2008) | 1 line
  
  - this check is superfluous because every HTTPError instance has a code attribute
........
  r3819 | poeml | 2008-04-25 00:39:39 +0200 (Fri, 25 Apr 2008) | 1 line
  
  remove a forgotten debug line from core.delete_project()
........
  r3820 | poeml | 2008-04-25 10:07:58 +0200 (Fri, 25 Apr 2008) | 2 lines
  
  - ditch local error handling from wipebinaries(), rebuild(), and abortbuild()
........
  r3821 | poeml | 2008-04-25 10:56:38 +0200 (Fri, 25 Apr 2008) | 2 lines
  
  It is never needed to import the exception module.
........
  r3822 | poeml | 2008-04-25 11:13:39 +0200 (Fri, 25 Apr 2008) | 4 lines
  
  - when going into the debugger with --post-mortem, always print a traceback before
    (thus implying -t)
  - do not jump into the debugger if not on a TTY, or working in interactive mode
........
  r3827 | poeml | 2008-04-25 13:07:46 +0200 (Fri, 25 Apr 2008) | 9 lines
  
  - add errors.OscWorkingCopyOutdated, which takes a tuple with three args:
    path to working copy, current rev, expected rev
  - add handler for urllib2.URLError errors to the babysitter
  - simplify the OscWrongArgsError and OscWrongOptionsError handlers, by removing
    the extra line "Sorry, wrong ..." that was printed before the messages given
    when the error was raised.
  - remove one more errors.OscHTTPError which was still there, and raise
    urllib2.HTTPError instead (show_package_meta())
........
  r3829 | poeml | 2008-04-25 14:19:10 +0200 (Fri, 25 Apr 2008) | 11 lines
  
  - comment some methods in osc.core which are used by nearly all do_* methods in
    osc.commandline
  - improve "is not a package/project dir" error messages, by printing the
    absolute path tried, instead of '.' for the cwd
  - make core.store_read_package() raise a proper NoWorkingCopyError instead of
    terminating
  - give attribution to things in babysitter.py copied from mercurial
  - prefix HTTPError exceptions with 'Server returned an error:'
  - remove obsolete local error handling from do_prjresults(), do_importsrcpkg(),
    do_repos()
........
  r3830 | poeml | 2008-04-25 14:29:35 +0200 (Fri, 25 Apr 2008) | 1 line
  
  catch IOError exceptions in the babysitter
........
  r3837 | poeml | 2008-04-25 17:27:36 +0200 (Fri, 25 Apr 2008) | 5 lines
  
  - do_remotebuildlog: raise errors for wrong arguments, remove exits
  - raise AttributeError in make_meta_url() instead of exiting
  - delete unused method core.delete_server_files()
  - replace exit call inside make_meta_url() with an AttributeError 
........
  r3838 | poeml | 2008-04-25 17:49:18 +0200 (Fri, 25 Apr 2008) | 1 line
  
  simplify the check in do_checkout if a project exists, by using show_project_meta() instead of meta_exists
........
  r3839 | poeml | 2008-04-25 18:31:26 +0200 (Fri, 25 Apr 2008) | 6 lines
  
  - commandline do_checkout(): change the order of the two checks, first do the
    (cheaper) check for existing directory
  - core.core checkout_package(): simplify the check in if the package
    exists, by using show_package_meta() instead of meta_exists
    Let it throw an exception, instead of using sys.exit().
........
  r3841 | Marcus_H | 2008-04-27 15:48:06 +0200 (Sun, 27 Apr 2008) | 5 lines
  
  - added 2 new exception classes: PackageError() and PackageExistsError. The PackageError() class is meant to be the base class for all subsequent package exceptions.
  - get rid of 2 sys.exit(1) calls
  - make the update() method of the Project() class safer: in any case we have to write the _packages file otherwise the package tracking will be screwed up.
  - minor fix in delPackage(): use getTransActPath() when printing out the filename
........
  r3842 | Marcus_H | 2008-04-27 16:52:55 +0200 (Sun, 27 Apr 2008) | 3 lines
  
  - make the commit() method safe: in any case we have to write the _packages file otherwise the package tracking will be screwed up.
  - removed another sys.exit(1): raise an exception if a package is missing when doing a commit. For now we use the PackageExistsError() exception but this might change in the future (updated description of PackageExistsError() according to this change)
........
  r3848 | poeml | 2008-04-28 12:46:45 +0200 (Mon, 28 Apr 2008) | 3 lines
  
  rename several error classes, dropping the "Osc" prefix, and "Error" suffix in
  cases where they don't really make sense.
........
  r3849 | poeml | 2008-04-28 12:57:32 +0200 (Mon, 28 Apr 2008) | 3 lines
  
  - rename osc.errors module to osc.oscerr, to make it easier to import it from
    other programs and have a crystal clear namespace
........
  r3850 | poeml | 2008-04-28 13:26:12 +0200 (Mon, 28 Apr 2008) | 2 lines
  
  split PackageExists exception class into PackageExists and PackageMissing
........
2008-04-28 16:37:44 +00:00
Dr. Peter Poeml
5d7df534ee submitreq show: fix the --diff option; the diff was shown reversed. (bnc#379519) 2008-04-28 09:39:07 +00:00
Marcus Hüwe
2440bed285 - added --job option to the do_build() command. (this option will be passed to build script) 2008-04-24 09:00:23 +00:00
Marcus Hüwe
4c6ce9ae56 - added new method getStatus() which calculates the status of certain packages
- cleaned up do_status() and added support for multiple project dirs (osc st prj_dir1 /path/to/prj_dir2 ...)
2008-04-23 21:51:24 +00:00
Marcus Hüwe
e9176c7513 - fixed bug #378752 (osc fails to delete patterns) 2008-04-10 21:04:17 +00:00
Marcus Hüwe
80ab6bf345 - fixed bug #359846:
the BUILD_DIST environment variable will be ignored by osc
- the following environment variables can still be used:
  # OSC_SU_WRAPPER overrides the setting of su-wrapper. 
  # OSC_BUILD_ROOT overrides the setting of build-root.
  # OSC_PACKAGECACHEDIR overrides the setting of packagecachedir.
  (now they're documented in the helptext)
2008-04-09 18:45:59 +00:00
Marcus Hüwe
a3f948dede - fixed bug #376285:
* make_dir() and checkout_package() got a new optionally 'prj_dir'     parameter. This parameter specifies in which dir we want to create new project/package dirs.
2008-04-02 15:30:44 +00:00
Dr. Peter Poeml
e62dd94cc0 copypac: make the server-side copy the default. But do a client-side copy if source and target are not on the same buildservice instance. 2008-04-02 14:36:23 +00:00
Marcus Hüwe
a20e354d07 - small apiurl fixes 2008-03-27 00:36:17 +00:00
Dr. Peter Poeml
3db9e6449c Link handling:
Add support for handling linked packages in expanded form. They can be checked
out, updated (expanding or unexpanding them), and built locally.
Missing: commit support.

Newly introduced options are:
- osc checkout: --expand-link 
- osc update: --expand-link and --unexpand-link 

Other changes:
- osc core: add show_upstream_xsrcmd5() method which returns the xsrcmd5 (if a
  linkinfo element exists only, of course)
- made updating of expanded sources work with package tracking, too.
2008-03-24 20:24:49 +00:00
Dr. Peter Poeml
64f3d8c55e submitreq show: if the target package doesn't exist, a diff cannot be produced. 2008-03-20 20:11:30 +00:00
Marcus Hüwe
3c3e961f4e - minor fix in createPackageDir
- osc mkpac only works when 'do_package_tracking' is enabled
2008-03-17 23:43:32 +00:00
Marcus Hüwe
3fdf758dbb - do_repos() should work in a project dir too 2008-03-17 23:24:28 +00:00
Dr. Peter Poeml
2493ea555a - copypac: do a server-side copy (via a single api call) when
used with -s / --server-side. 
  This might be the default behaviour later.
  An option to specify the source revision is missing yet.
2008-03-17 21:46:42 +00:00
Dr. Peter Poeml
54c1690309 osc req: add option -a / --add-header to add arbitrary request headers 2008-03-16 20:46:16 +00:00
Marcus Hüwe
5d57d7e299 - added 3 new methods:
* createPackageDir(): create and initialize a new package dir in
    the given project.
  * get_apiurl_usr(): returns the username for a certain apiurl
  * get_configParser(): returns an ConfigParser() object which can be
    used for parsing the ~/.oscrc file
- fixed username issues when creating a new package (the problem was
  that the username for the default host was used and not the one for
  that specific apiurl)
- some small fixes in the do_importsrcpkg() method
2008-03-15 22:51:37 +00:00
Pavol Rusnak
734973a0bd csv exported project results now use ';' as default 2008-03-13 11:13:22 +00:00
Dr. Peter Poeml
2bf92fce75 submitreq:
- when requesting a submit, save the source package's revision id (looking up
   what it currently is)
 - give the user a way to override it, to submit an older revision
 - when using show --diff, take the actual old revision into account. Thus, the
   diff is against the source revision of the time of request creation.
2008-03-12 23:37:35 +00:00
Dr. Peter Poeml
6ab8fb52c7 - remove remove obsolete, commented code (do_editpac(), do_editprj())
- fix a small tabbing issue
2008-03-12 18:26:41 +00:00
Dr. Peter Poeml
241f528dc4 implement a submitreq 'accept' action, resulting in the respective state change 2008-03-12 18:22:11 +00:00
Jürgen Weigert
0334ea4218 add --debuginfo switch to osc build 2008-03-11 15:18:02 +00:00
Dr. Peter Poeml
c0fabfc449 merged the package-tracking branch changes r2404:3491 into the trunk. 2008-03-10 18:04:23 +00:00
Michal Marek
3613893199 better fix: use %(mapping keys)s in templates 2008-03-07 09:13:30 +00:00
Michal Marek
ad2493d496 fixed last change (r3445) 2008-03-07 09:01:13 +00:00
Dr. Peter Poeml
d87de082c2 submitreq:
- rename 'refuse' -> 'decline', which is more polite.
  - show: make the diff optional
  - add RequestState class
  - handle state history
  - implement 'decline' action
2008-03-06 10:25:45 +00:00
Dr. Peter Poeml
d63779a6a4 rename the new merge requests to submit requests 2008-03-05 23:51:48 +00:00
Susanne Oberhauser
b4df120e5b - adjust osc init docstring to new realities (osc meta instead of osc
createpac)
2008-03-05 21:05:17 +00:00
Dr. Peter Poeml
488e14a0d8 typo accepd -> accept 2008-03-04 23:48:34 +00:00
Dr. Peter Poeml
aec7129a9b - add a new subcommand 'mergereq' to handle merge requests. So far, it can
create, list, show requests.
- internally, add a MergeReq class, and do the needed (HTTP) requests.
2008-03-04 23:41:00 +00:00
Michal Marek
6c20c7203f fix importsrcpkg when $projectdir/.osc/_apiurl is an alternative apiurl 2008-03-03 13:51:01 +00:00
Marcus Hüwe
016c80db86 - added optional apiurl parameter to the following methods:
meta_exists, make_meta_url, checkRevision
  if no apiurl parameter is specified the global value (conf.config['apiurl'])
  will be used. This should fix bug #361764
- some small apiurl fixes in the make_diff method (the package_tracking branch already has this fix)
2008-02-18 13:44:20 +00:00
Michal Marek
3dd6ef0f71 added option --csv to 'osc prjresults' to output a CSV table 2008-02-12 12:45:06 +00:00
Dr. Peter Poeml
63e4d8da3c - osc build: add --no-verify, to skip the package signature verification step 2008-01-24 18:06:45 +00:00
Marcus Hüwe
f8b5963c7a - check if a project exists before initializing the project dir 2008-01-18 10:35:57 +00:00
Marcus Hüwe
a8788c2c4e - added revision option to do_cat() 2008-01-15 18:58:58 +00:00
Marcus Hüwe
5306a78503 - added two new options to osc build:
* --local-package: use this option if you're trying to build a
    package which doesn't exist on the server
  * --alternative-project <project>: use this option to specify an
    alternative project if the current project doesn't exist on the
    server, e.g.: osc build [OPTS] --alternative-project openSUSE:10.3 standard i586 BUILD_DESCR
- some other minor cleanups in build.py
- get_repos_of_project() is now a generator function
2008-01-07 14:54:31 +00:00
Marcus Hüwe
53e1640b1e - added new command "remotebuildlog" to show the buildlog of a package
(you don't have to checkout the package to view the buildlog)
- renamed "get_log()" to "get_buildlog" to avoid any confusion with
  "get_commitlog()"
- added new method "print_buildlog()" which prints out the buildlog on the
  standard output
2008-01-03 22:10:16 +00:00
Marcus Hüwe
5242289d3d - do_cat(): do not print a newline (strip the trailing '\n' from string) 2007-12-13 12:00:16 +00:00
Dr. Peter Poeml
6781119d43 - cat: simplify the code a bit; don't print header and footer lines
- unification of the help output of some commands
2007-12-10 14:23:58 +00:00
Dr. Peter Poeml
aca6c6979e cat: fix the test if the file is binary, which swallowed the first 4098 bytes 2007-11-30 10:28:00 +00:00
Dr. Peter Poeml
9aafba838f improve wording in rdiff documentation 2007-11-29 17:32:52 +00:00
Dr. Peter Poeml
620bc2ea68 add rdiff subcommand, to allow server-side diffs between arbitrary packages 2007-11-29 17:22:57 +00:00
Marcus Hüwe
d4bfd42bb4 - copied init_project_dir() method from the osc-package-tracking branch (just removed the do_package_tracking stuff)
- checkout an empty project instead of doing nothing
2007-11-29 12:54:07 +00:00
Marcus Hüwe
7b9f85f97f - reworked the diff functionality:
* some new things like showing newly added files
  * moved the whole code into a new methode (make_diff())
  * behave more like svn when doing a diff against a certain revision
- changed the storedir attribut of the Package() class to an absolute
  filename - normally this shouldn't have any impact on existing methods, functionality etc.
2007-11-26 18:13:51 +00:00
Marcus Hüwe
69e3fd1d4e - added new "cat" command to print a file on the standard output 2007-11-02 18:18:30 +00:00
Dr. Peter Poeml
675901bc5d - aggregatepac: new command, similar to linkpac. Patch from Pavol Rusnak.
- prjresults: for newly added packages, build status may be missing. Cope with that.
2007-10-30 13:45:54 +00:00
Marcus Hüwe
42e128687d - added --build-failed and --broken options to the do_wipebinaries()
method (this also fixes bug/enhancement #335498)
2007-10-27 19:13:24 +00:00
Marcus Hüwe
d0b0b1bdb5 enabled deletion of packages as the backend now supports it. 2007-10-13 23:15:49 +00:00
Marcus Hüwe
69b7e3bfc7 added a bit more functionality to do_maintainers. It is possible to add and delete users from a project/package 2007-09-12 18:01:13 +00:00
Marcus Hüwe
40d2ce205e - added verbose option to do_maintainers:
* it basically lists some more information about
    each maintainer
- replaced get_user_email() with get_user_data()
2007-09-03 16:18:37 +00:00
Dr. Peter Poeml
9ce40d4bab - build: allow to use lbuild, a compatible replacement for build 2007-09-03 14:52:45 +00:00
Dr. Peter Poeml
459651ed60 make osc call build with --changelog option, by default [#298436] 2007-09-03 10:25:18 +00:00
Dr. Peter Poeml
27cee26d4a new command 'maintainer' 2007-09-03 10:17:26 +00:00
Dr. Peter Poeml
70524c88c7 fix typo in error message in do_importsrcpkg() 2007-08-27 18:02:53 +00:00
Dr. Peter Poeml
a3a2667742 - change conf.get_config() to take three optional override values:
get_config(override_conffile = None,
             override_http_debug = None,
             override_apisrv = None)
  Thus, it should be possible to use the osc module with one simple 
  conf.get_config() call. It is no longer required to set up the api url in the
  config dict, and call conf.init_basicauth().
2007-08-22 10:18:25 +00:00
Dr. Peter Poeml
0da80f0fd9 - core: add get_binary_file(), with contribution from James Oakley
- ls command: add -b option to list binaries
- req command: show error response also for 404 responses
2007-08-16 18:15:08 +00:00
Marcus Hüwe
02d77c4bda fixed "osc build" if $BUILD_DIST is set 2007-08-15 19:28:08 +00:00
Dr. Peter Poeml
da6f6c4a8a build: add --changelog option to force update of the package changelog from a changes file 2007-08-14 11:26:13 +00:00
Dr. Peter Poeml
cdf91d7f39 commit: use the documented commit method by default now 2007-08-14 10:30:39 +00:00
Dr. Peter Poeml
5cd1ace719 don't hardcode 'package' query parameter into show_results_meta() 2007-08-11 12:29:38 +00:00
Dr. Peter Poeml
6298267101 meta: remove notion of non-implemented --create switch. give example for meta pkg usage 2007-08-09 16:15:13 +00:00
Dr. Peter Poeml
929fe9b12c search: add --repos-baseurl option 2007-08-09 11:35:08 +00:00
Marcus Hüwe
d75d98da50 fixed possible "UnboundLocalError". Thanks to judas_iscariote for spotting this issue! 2007-08-08 19:48:38 +00:00
Marcus Hüwe
003c3dad5b fixed two small typos 2007-08-08 15:44:14 +00:00
Marcus Hüwe
9921478c37 changed default behaviour of importsrcpkg(). The files will not be committed by default. To commit them use the --commit switch. 2007-07-30 18:11:52 +00:00
Marcus Hüwe
d6bdc3712f - some more work on importsrcpkg():
* by default the new files will be comitted
    (if it is a new package or if there are no
    source files on the server)
  * added --disable-commit option switch to
    import the package only locally
  * added --delete-old-files option switch to
    delete old files from the server.
- some changes in the Package class:
  * extended existing commit() method to do
    all the commit work (before it was done
    in the do_commit() method).
  * moved stuff from the constructor into a
    new method (update_datastructs()).
2007-07-30 11:12:42 +00:00
Marcus Hüwe
155d60cfa0 use rpm-python to detect the "Name:", "Summary:", "%description" of a (s)rpm.
This change speeds up some things
2007-07-29 15:27:27 +00:00
Dr. Peter Poeml
8316936fa5 allow to import source rpms by specifying an URL 2007-07-25 12:21:46 +00:00
Dr. Peter Poeml
633fd2c10f simplify do_importsrcpkg() 2007-07-25 12:14:32 +00:00
Dr. Peter Poeml
8fe9ac2ed1 add req command to issue arbitrary requests to the API 2007-07-25 10:56:04 +00:00
Dr. Peter Poeml
31953fbbe4 append missing newline if do_commits=False [#293672] 2007-07-24 10:35:08 +00:00
Marcus Hüwe
f36e3133c7 - added new importfromsrcpkg command:
* now a package can be imported from a
    src.rpm
  * thanks to Peter for his is_rpm() and is_srcrpm()
    methods
- split out some methods into smaller ones (so they
  can be reused for other tasks)
- added some new methods for unpacking a src.rpm
- changed read_meta_from_spec() method to be more
  flexible (it is possible to specify the tags and
  sections).
2007-07-23 16:03:30 +00:00
Dr. Peter Poeml
de9faebefe - meta: add --delete switch to delete pattern files
- complete last fix (don't implicitely add .xml to pattern files) -- forgot to
  commit the part in osc/core.py.
2007-07-19 12:23:42 +00:00
Dr. Peter Poeml
1945a7a683 - fix indentation (enforceming pattern file argument)
- don't implicitely add .xml to pattern files -- it will probably cause
  confusion.
2007-07-19 11:54:13 +00:00
Dr. Peter Poeml
a9dbc4bb1d fix error message which osc issues if build package is too old 2007-07-19 10:49:30 +00:00
Dr. Peter Poeml
ad9517cb81 meta: extend usage info for 'meta pattern' 2007-07-19 10:14:10 +00:00
Dr. Peter Poeml
04bd877a59 - meta: allow for editing patterns
# list patterns:
  osc meta pattern <prj>

  # show pattern foo:
  osc meta pattern <prj> foo

  # edit pattern foo:
  osc meta pattern <prj> foo -e
2007-07-19 10:08:42 +00:00
Dr. Peter Poeml
d260050dc0 - commit (using the currently documented way): do DELETEs _before_ generating
an "upload" revision with PUTs. The DELETEs would be invalidated by the
  commit.
2007-07-18 13:20:59 +00:00
Dr. Peter Poeml
5c0b0d64b6 commit: flush stdout, so that the progress dots are seen directly when being written 2007-07-18 13:05:13 +00:00
Dr. Peter Poeml
05b47f7f98 - commit: switch to new commit mode also if the -F switch is used
- update NEWS file
2007-07-16 17:30:48 +00:00
Dr. Peter Poeml
b5e1dec8ad - api now sends HTTP/1.1 400 Bad Request for invalid xml. Thus, show the reply
body because it contains helpful info.
- repair linkpac for the new metadata editing facilities. copypac still seems
  to work.
2007-07-16 17:06:06 +00:00
Dr. Peter Poeml
5284a9b783 - meta: implement -F|--file switch. Can read from stdin to ease scripting.
- rework editmeta class, because it was programmed to pull content from the
  server first
- add a catch-all for the depracated commands which refers to the new meta command
2007-07-16 16:20:09 +00:00
Dr. Peter Poeml
4944828bf1 - improve usage info on meta command
- if PUT on metadata fails with a 500, and http_debug is True, print out the
  body of the server reply
- rename update_pacmeta() to update_local_pacmeta() for clarity
- rename update_filesmeta() to update_local_filesmeta() for clarity
2007-07-16 13:40:58 +00:00
Dr. Peter Poeml
3aa108d32a usage info for the meta command 2007-07-16 10:58:11 +00:00
Dr. Peter Poeml
9921fcac8e Switch from software.opensuse.org to download.opensuse.org as default
download URL
2007-07-16 09:45:17 +00:00
Marcus Hüwe
cf3727b70c - added initial search support (some ideas are taken from the webclient):
* when searching a package/project it
     is also possible to search for the search term
     in the <title /> and <description /> elements of
     a package/project.
   * show only exact matches
   * etc.
- please tell me if the usability is too "complex"
  or if the output of the results is too weird.
2007-07-15 13:49:13 +00:00
Dr. Peter Poeml
5a4f1e4d42 - new meta command, replacing editmeta, editprj, createprj, editpac, createpac,
edituser. TODO: 
    - write usage info
    - implement -c|--create
    - implement -F|--file
    - check whether I broke usage of metadata copying/creation from withing
      linkpac or copypac
    - re-implement createpac and friends as aliasses to the new meta command -- I
      just commented them out for now
- fix metadata change detection, which no longer relies on the timestamp of the
  temporary file
- add close() in dgst(), which seemed to miss (I can't see a reason why it
  should not be there0
2007-07-13 16:01:02 +00:00
Dr. Peter Poeml
9d2863b257 - log: convert commit messages to preferred output locale
- commit: new option -F/--file to read commit message from file
- commit: print committed revision number
- Package.commit(): return the new revision number
2007-07-13 10:02:35 +00:00
Marcus Hüwe
fd199c66e9 - added revision support for "osc log"
- some other minor fixes (a bit exception handling (some other methods should be improved too!) etc.)
2007-07-12 00:48:52 +00:00
Dr. Peter Poeml
7e98ecb0cb - renamed log command to buildlog (short: bl)
- implementing a provisionary log command for the commit log
- commit: implemented -m option for the commit message
- commit files together, if (and only if) do_commits = 1 is set in the 
  [general] section of .oscrc
2007-07-11 23:24:26 +00:00
Marcus Hüwe
44b1f5621c small fix for do_checkout() 2007-07-07 17:13:37 +00:00
Marcus Hüwe
644f8695de added checkRevision() method to verify a revision 2007-07-06 11:54:34 +00:00
Dr. Peter Poeml
eaa08653e0 addremove: ignore foo.rXX, foo.mine for files which are in 'C' state 2007-07-06 11:20:30 +00:00
Dr. Peter Poeml
9ee07fcd5a wipebinaries: allow to wipe all binaries of packages for which the build is disabled 2007-07-04 14:57:19 +00:00
Marcus Hüwe
a0f8f15190 updatepacmetafromspec scans for spec files automatically.
requested/suggested (or whatever) by darix
2007-07-04 13:48:24 +00:00
Marcus Hüwe
85e66362af added initial revision handling:
- extended "osc co prj pac" to checkout a specific revision of pac
    - extended "osc up" to update to a specific revision
    - extended "osc diff" to diff the working copy against a
      specific revision on the server. NOTE: comparing two
      server-side revisions (osc diff -r 11:12) is currently
      not supported!
2007-07-04 12:55:26 +00:00
Marcus Hüwe
adf9e633f9 added --specfile option to updatepacmetafromspec. Now the name of the spec can differ from the package name. 2007-06-30 15:39:47 +00:00
Dr. Peter Poeml
5f2e9ac766 - load subcommands from /var/lib/osc-plugins/ or ~/.osc-plugins/ 2007-06-29 18:26:30 +00:00
Dr. Peter Poeml
f54d26e61e rm: don't allow to mark files as deleted which are not under version control 2007-06-29 12:02:35 +00:00
Dr. Peter Poeml
d5ba95193b log: fail gracefully if logfile can't be found 2007-06-26 14:22:23 +00:00
Dr. Peter Poeml
a7158af067 - ls: add verbose option to print extra information for packages
- for ls, co, meta, editmeta, linkpac, copypac, rebuildpac, and wipebinaries
  (basically all the server-side commands), allow arguments "foo/bar" instead
  of "foo bar"
- add show_project_conf()
2007-06-26 13:17:38 +00:00
Dr. Peter Poeml
751bc409ac init: make usage (and usage info) info more precise 2007-06-21 09:40:47 +00:00
Dr. Peter Poeml
0cf26d0f06 - with small changes, apply a patch from Marcus Huewe:
- added wipebinaries command
  - added abortbuild command
  - improve handling of metadata editing if the server doesn't accept it
- rebuildpac: rename internal command for consistency reasons
- update NEWS file
2007-06-14 14:30:36 +00:00
Dr. Peter Poeml
48349f67b9 adjust for change in build.rpm, where /usr/lib/build/debsort was removed. Look
for debtransform program instead in order to determine if build.rpm is new
enough.
2007-06-14 08:34:02 +00:00
Dr. Peter Poeml
fc6eaf68da - update cmdln.py to planned 1.0 version. The main changes are
related to points that were raised during employment in osc:

  # v0.8.3
  - Fix a bug where errors with passing an incorrect number of args to
    functions in do_foo() implementations would be masked.
  
  # v1.0.0
  - [backward incompat] `Cmdln.main()` no longer takes an `optparser`
    argument. Top-level option parsing has been changed so that top-level
    options for a `Cmdln` subclass can more naturally be defined and
    handled on the class definition. Changes:
    - `Cmdln.main()` calls `self.get_optparser` to get an option handler.
      Subclasses should overload this method for custom top-level options.
    - After option parsing, but before sub-command handling, the
      `self.postoptparse()` hook is called.
  - Add a `version` attribute on `Cmdln` subclasses. If set, the default
    top-level option parser will have a `--version` attribute.
  - [backward incompat] Simplify the StopProcessing/opts.stop handling for
    option handling in subcommands. The "opts" argument to "do_*"
    sub-command functions will no longer have a "stop" value.
    StopProcessing is now called StopOptionProcessing. This shouldn't
    affect simple usage of cmdln.py.
  
- adjust osc.commandline for these changes.
2007-05-16 10:55:05 +00:00
Dr. Peter Poeml
036a8780e2 results: remove obsolete code handling commandline arguments 2007-05-15 21:13:39 +00:00
Dr. Peter Poeml
c895de414e osc build: add --userootforbuild option 2007-05-14 08:29:50 +00:00
Dr. Peter Poeml
0d9278229c - don't need config['pass'] anymore
- but set config['user'], which was unset since the recent changes in auth handling
2007-05-10 14:29:04 +00:00
Dr. Peter Poeml
cb61461fb4 - build & buildinfo:
- implement --extra-pkgs option
  - pass the list of extra packages to the backend, as "add=pkg" query parameters
  - use osc.core.get_buildinfo(), instead of os.system('osc buildinfo ...')
- implement adding query parameters to constructed URLs in a more generic way
2007-05-09 09:36:55 +00:00
Dr. Peter Poeml
a21f5c1891 don't try to delete projects, as long it is not implemented in the backend 2007-05-08 08:59:10 +00:00
Dr. Peter Poeml
2c5e637693 make deletepac work again 2007-05-07 18:32:51 +00:00
Dr. Peter Poeml
0ab5e73ed9 use apiurl, not apisrv, in deleteprj and deletepac commands 2007-05-07 17:52:04 +00:00
Dr. Peter Poeml
90ca587cd0 - 0.96
- save api server url to .osc/_apiurl. This requires changing makeurl() and all
  calls to it.
- implement 'info' subcommand, essential for debugging these changes.
- use new api routes in all places
- buildhistory works again
- copypac: implement package copy from one buildservice instance to another
  (--to-apiurl option)
- the results subcommand handles <working copy> arguments now
2007-05-04 21:51:54 +00:00
Dr. Peter Poeml
4a2c675e6e - build:
- rename --prefer-pacs option to --prefer-pkgs
  - implement --keep-pkgs option
2007-05-03 15:54:40 +00:00
Dr. Peter Poeml
877f8b5ad7 - build:
- implement --prefer-pacs option
  - finished the help text that I started last time
  - rename buildconf -> rpmlist for the sake of consistency
2007-05-02 13:49:57 +00:00
Dr. Peter Poeml
60bc70dc7a applied patch from Michael Marek, fixing all places where error messages were
printed to stdout instead of stderr. [#239404]
2007-04-25 21:10:49 +00:00
Dr. Peter Poeml
354c01be55 - build: fix passing of commandline options and arguments to build.main(),
which was still using sys.argv
- build: use own api server as upstream URL in urllist. So far,
  api.opensuse.org was hardcoded in the download URL [#265211].
2007-04-25 11:22:40 +00:00
Dr. Peter Poeml
b58b6e5a3f - fully implement accessing multiple API servers. "apisrv" in the config takes
a URL now, so the variable "scheme" which was needed in addition before
  becomes obsolete. For backward compatibility, a hostname (and scheme
  variable) are still accepted. Likewise, the auth sections in the config take
  a URL now, and a hostname:port to keep old config working.
  Furthermore, apisrv can be overridden by -A on the commandline. HTTP or HTTPS
  scheme is determined from the URL. Credentials must be configured in .oscrc.
2007-04-25 10:24:51 +00:00
Dr. Peter Poeml
2f5b52e92c Complete rewrite of the internal commandline handling, using cmdln.py.
Bump version to 0.95.

New features:
- implement "rebuild all failed packages", via --failed option in rebuildpac
  subcommand (new api route)
- status -v shows all files, including unmodified ones
- suppress the legend in prjresults by default (show with -l)
- add global options to override config
- can use arbitrary api server via global -A option
- -H enables HTTP traffic debugging
- --version

Bugfixes:
- fix typo in delete_project() (the line building up the URL got lost)
- fix the commit subcommand's arguments. This works correctly now: 
    osc ci ../test/onlyinwc `pwd` fstab ../test/f2 
- fix buildinfo subcommand, if no specfile is posted. Broke with the recent URL
  handling rewrite, but didn't seem to bother because the build subcommand
  always sends the specfile.
- try to fix buildhistory route, but it might be gone actually (need to pursue)
- add --clean/--noinit to osc build help output
2007-04-24 23:00:12 +00:00
Dr. Peter Poeml
162b52cc4d update: when updating multiple packages, print each package name 2007-03-29 21:53:38 +00:00
Dr. Peter Poeml
5f4640848e - when updating, don't delete files with local modifications
- add testcase
2007-03-19 13:30:59 +00:00
Dr. Peter Poeml
0b47b21719 - make 'results' subcommand many times faster, by making only a single request
on _result?view=status&package=%s (new api)
2007-03-12 23:21:34 +00:00
Dr. Peter Poeml
03b1db05fb - let the diff subcommand return 1 if differences were found 2007-03-12 15:46:15 +00:00
Dr. Peter Poeml
9a944edfeb - sort output of 'status' (unknown files first, filenames alphabetically)
- fix the unit tests for the above change, and for api changes
2007-01-23 00:32:45 +00:00
Dr. Peter Poeml
6274cf512b fix typo (Thanks Susanne) 2007-01-12 03:52:46 +00:00
David Mayr
885464d7a5 added commandline shortcut 'stat' for 'status', like in svn 2007-01-07 00:59:34 +00:00
Lars Vogdt
813125a8f6 - added links to the wiki pages for more details 2006-12-12 02:01:39 +00:00
Dr. Peter Poeml
cf852ae5db print usage info if 'co' is called without arguments 2006-10-18 22:30:53 +00:00
Dr. Peter Poeml
baafea955b - add 'edituser' command for editing the metadata of a user account. It tries
to create a user if it doesn't exist yet. A new command 'usermeta' replaces
  'id' respectively 'userid'.
- add preliminary support for doing uploads with a subsequent "commit" request
  (not switched on now, since I want to do more testing on this, and there is
  no way to pass on a commit message yet anyway.)
- add runtime check for build.rpm version, so the rpm package dependencies is
  no longer required
- fix typo introduced last time in the editmeta, deletepac, deleteprj commands
- rewrite the PUT and DELETE request methods to 
  - transparently handle HTTPS 
  - handle path parameters (for commits)
  - send user agent
- rename get_user_id() function to get_user_meta()
- change copyright notice from Peter Poeml to Peter Poeml / Novell Inc.
- fix testsuite
- add CREDITS file
2006-10-12 13:22:56 +00:00
Dr. Peter Poeml
39779ec9bc - rewrite configuration handling
- move all configuration code into module osc/conf.py
  - now, the API server can be configured in .oscrc with
    apisrv = ...
  - also, 'scheme' (http/https) is no longer a module variable but can be
    configured
  - all config is in DEFAULT
- ignore vim swap files
- use urllib() convenience wrapper in some functions that used
  urllib2.urlopen() and had their own error handling. Instead, it seems to make
  sense -- in the future-- to create our own errors and propagate them up, in
  cases where the error handling of urlopen() is too generic
- rename get_slash_source() to meta_get_project_list() for consistency
- show local time in get_buildhistory(), not UTC
- rewrite help text of 'rebuildpac' command
- allow to run commandline.py from the commandline (without the wrapper)
- don't send a space when doing a POST request without body
2006-10-10 14:04:34 +00:00
Dr. Peter Poeml
5f8fc4e340 - fix 'status <filename>'
- use filename matching to exclude files [#208969]
- add '.gitignore', '.pc', '*~' to ignore list
- add testcase
2006-09-29 14:34:18 +00:00
Dr. Peter Poeml
2b4a5ae46a - fix 'status' to work with project directories as arguments, and print proper relative pathnames
- fix testsuite, and add test for relative directories with 'status'
- add is_package_dir() method
- add pathjoin() method, similar to os.path.join but it removes a leading ./
2006-09-29 13:15:41 +00:00
Dr. Peter Poeml
03413a9e32 update NEWS and TODO 2006-09-29 10:37:53 +00:00
Dr. Peter Poeml
2321509096 - change 'buildhistory' to display human-readable text
- add 'deleteprj' command and delete_project() method. Note: the API server
  doesn't seem to support it yet.
- add 'prjresults' command to display aggregated build status over the entire
  project
- 'rebuildpac': accept additional repo and arch argument. Note: the syntax has
  changed.
- 'log': print usage info if called with missing arguments
2006-09-25 15:11:03 +00:00
Dr. Peter Poeml
c6d1d3917e - add 'copypac' subcommand, to copy a complete package to a new package, possibly cross-project
- don't die if user tries to 'add' a file which is already versioned
- don't die if 'addremove' encounters directories
2006-09-21 14:33:24 +00:00
Dr. Peter Poeml
755a4e7626 be fair, and also mention dsc files 2006-09-18 16:45:59 +00:00
Dr. Peter Poeml
aa248dde9f - implement POSTing of local specfile to get real buildinfo
- extend urlopen() so it takes data for optional POST
  - extend get_buildinfo() to take optional specfile argument
  - osc.build.main: send specfile to server
  - buildinfo(): accept specfile as third argument, and document it
2006-09-15 11:47:34 +00:00
Dr. Peter Poeml
7a8c7664da add subcommands createpac/editpac and createprj/editprj, which wrap around editmeta but are more logical to find; fix help message of editmeta subcommand 2006-09-15 10:53:44 +00:00
Dr. Peter Poeml
768dcb9b4a implement 'deletepac' subcommand 2006-08-11 10:37:29 +00:00
Dr. Peter Poeml
36cc55b6fd - rename subcommand 'history' (which was not implemented yet) to
'buildhistory', and make it work. It still gives out raw xml, which might be
  changed
- add some help text to the linkpac documentation
- add '.git' to exclude_stuff
2006-08-10 16:39:13 +00:00
Dr. Peter Poeml
db81a4b07b - new subcommand: linkpac, to create a linked package
- extend edit_meta() with two arguments: template=new_package_templ, change_is_required=True
- increase BLOCKSIZE in othermethods.putfile() (1024 seemed a little small)
- extend othermethods.putfile() to serve a string buffer instead of a real file 
- for filelists, don't read _meta file any longer (depracated). Read directly
  from /source/<project>/
2006-08-07 10:08:54 +00:00
Dr. Peter Poeml
12b0c4bb99 - fix creation of packages, which did no longer work since the latest changes
in error handling (since editmeta needs to see the 404 to know that a package
  is to be created)
- insert a newline after 'missing argument' messages
2006-07-20 14:23:10 +00:00
Dr. Peter Poeml
686eb637c8 build: when called without arguments, show only architectures that can be built on the local machine 2006-07-17 13:38:37 +00:00
Dr. Peter Poeml
b69ae796cc add info about build subcommand to README 2006-07-17 13:15:42 +00:00
Dr. Peter Poeml
d6f6a80d09 hacky support to allow setting <platform> <arch> by the environment variable BUILD_DIST, where BUILD_DIST equals <platform>-<arch> 2006-07-14 18:39:44 +00:00
Dr. Peter Poeml
e19ded6f70 add build opts to usage info 2006-07-14 17:45:44 +00:00
Dr. Peter Poeml
20a13e7b3b - bump version (0.7)
- initial support for local builds (subcommand 'build')
2006-07-14 17:39:46 +00:00
Dr. Peter Poeml
9e10eb40c6 add a wrapper function for urllib2.urlopen which handles errors; give better usage info for buildconfig/buildinfo 2006-07-12 14:14:50 +00:00
Dr. Peter Poeml
5d86b595b9 add new subcommands buildconfig, buildinfo, repos 2006-07-05 10:25:31 +00:00
Dr. Peter Poeml
1145aa0d3e - rewrite command and command alias handling so it is all defined in one place 2006-07-03 10:00:20 +00:00
Dr. Peter Poeml
d159226078 catch ctrl-c during log following 2006-06-29 23:41:10 +00:00
Dr. Peter Poeml
3eec9cfefc remove forgotten debugging code from last commit 2006-06-26 15:12:40 +00:00
Dr. Peter Poeml
6366ffb72f - remove dead code
- remove requirement on pyxml package
- use list comprehensions in some places
- fix 'rebuildpac' command to not show raw xml
- fix updatepacmetafromspec to cope with subpackages during parsing
2006-06-26 15:11:22 +00:00
Dr. Peter Poeml
0e4348e8fc - fix typo in package meta template: DESCIPTION -> DESCRIPTION
- unify all help texts
2006-06-22 11:26:01 +00:00
Dr. Peter Poeml
29fa2b0810 - add support for streaming build log, while it is being written (patch
by Christoph Thiel)
2006-06-16 12:40:26 +00:00
Dr. Peter Poeml
3e412a67a5 - don't diff binary files, using diff's heuristic
- add 'rebuildpac' command, which triggers a rebuild for all
  repositories/architectures of the package
- fix merge on 'update', if osc is called from another directory
- escape '+' signs in filenames in GET requests as well (adds to [#153725,
  181593])
- don't fail on 'resolve' when the working copy is in a newer rev already
2006-06-08 10:30:29 +00:00
Dr. Peter Poeml
24a49bbfd6 - work around ruby on rails issue, which swallows '+' signs in filenames in PUT
requests [#153725, 181593]
- before committing, make sure that the working copy is up to date (added
  show_rev() function)
- add 'commit' as subcommand alias for 'ci/checkin'
- use os.path.abspath() in Project and Package classes
2006-06-06 10:50:40 +00:00
Dr. Peter Poeml
749a1f76c9 - make 'resolved' more robust
- add 'repourls' subcommand
2006-06-02 14:00:58 +00:00
Dr. Peter Poeml
b9f53cbfb7 - add a tentative 'updatepacmetafromspec' subcommand, which takes package
metadata from a specfile
- handle HTTP error codes != 404 when reading metadata in edit_meta()
2006-05-31 12:13:26 +00:00
Dr. Peter Poeml
9557d10177 - it is not necessary to compute the digest when adding files -- saves time
- checkin: update local copy in store (fixes diff using obsolete old version)
- use shutil.copy2 instead of home-grown copy_file
- make put_source_file() and delete_source_file() methods of the Package class;
  rename delfile method to delete_localfile
2006-05-30 10:07:16 +00:00
Dr. Peter Poeml
2e8d12af7e fix update of working copy when adding file from upstream which is missing locally 2006-05-29 21:04:14 +00:00
Dr. Peter Poeml
1f764554a0 - fix update in directory with unmodified files: don't try to merge if upstream
file wasn't changed at all
- use given project name in new_project_templ
2006-05-23 16:16:14 +00:00
Dr. Peter Poeml
17de02b604 - add 'editmeta' subcommand: Edit project/package meta information, creating
new project or package if it doesn't exist. The user interface is $EDITOR
- gracedully handle unknown subcommands
2006-05-23 15:27:43 +00:00
Dr. Peter Poeml
e54577ceba remove a debug print statement 2006-05-23 14:05:07 +00:00
Dr. Peter Poeml
aa36c25505 - add 'help' subcommand (and add help :-)
- make all subcommands functions -- so they can be used from outside (they
  still print directly their output; they could become iterators later)
- deprecate 'init' subcommand
- 0.5
2006-05-23 13:48:58 +00:00
Dr. Peter Poeml
4ec0b4fbe7 fix status letter for files merged on update (in analogy to svn , it is either G or U) 2006-05-23 09:59:22 +00:00
Dr. Peter Poeml
8548d163f6 escape spaces in username 2006-05-22 14:57:11 +00:00
Dr. Peter Poeml
211b197b26 - add diff3 merge support. Locally modified files are merged with upstream changes
if possible, and go into Conflict state if that fails.
- add 'resolved' command to be used after manual merging.
2006-05-22 14:12:06 +00:00
Dr. Peter Poeml
2c37f7287d - allow 'up' of a project directory (will automatically pull in all new
packages)
- add NEWS file
2006-05-22 10:50:37 +00:00
Dr. Peter Poeml
4b83218cf6 0.3
status: 
- use new file metadata which provides checksum, size and mtime 
- don't list unmodified files
- fix some conditions where status was too stupid so far
update: 
- much faster now, since only new or changed files are downloaded
- print revision number
checkout:
- mark project directory as such (to be used later)
diff:
- faster, since 'status' is faster
- work against local copy
checkin: 
- update package metadata from specfile 
- fix argument handling 
add: 
- ignore .osc and other files
other changes:
- sanitize argument handling, so most commands can work with
  arbitrary files/directories as arguments (work is always done per package)
- add history command (doesn't seem to be working yet)
- on first usage, ask for username password on first usage, 
  and store them in .oscrc (.netrc can still be used)
2006-05-19 20:13:29 +00:00
Dr. Peter Poeml
f5a2f3089b 'status': don't print unmodified files 2006-05-11 11:26:53 +00:00
Dr. Peter Poeml
03ca18dbb8 - make 'results' output less noisy
- add parseargs() to simplify argument handling
- clean up some unused code
2006-05-11 07:27:50 +00:00
Dr. Peter Poeml
c0c271a8ec fix import of the rest of the module from commandline.py 2006-05-10 14:34:59 +00:00
Dr. Peter Poeml
aaa41561be - reorganize source to build a python module
- add setup.py
- add osc-wrapper.py as a wrapper script, so the module can be used when
  installed in the system as well as in the uninstalled source directory
2006-05-10 14:21:51 +00:00