Changed do_repos() to filter out disabled repos of a package. Read
package from checked out package dir. This changes also the output
of getbinaries if args are missing and the user is within a checked
out package dir. Show only enabled repos in this case.
Allow also osc repos [PROJECT] [PACKAGE].
Maked getbinaries also work in project dirs. If osc getbinaries
get called in a checked out package directory, the binaries for
all packages of this project get checked out.
This makes sense esp. for projects which work with default reviewers before.
(like it is planned for openSUSE:Factory).
In this way the review can happen during the week, people get feedback ASAP when review
fails, but the entire rebuild does not happen before the everything get accepted.
"osc add $URL" is adding a download_url source service to the package now.
This means the server is downloading the file itself, important for reviewing
version updates.
Added new function run_pager() to get 'osc log/diff' work like
'git log/diff' which send the output to PAGER (which is by default:
less or what's defined in the environment).
Signed-off-by: Danny Kukawka <danny.kukawka@web.de>
Make sure global option -A works too in a checked out package.
Always check if -A was passed to command line and use it
instead of the package/project dir information.
Signed-off-by: Danny Kukawka <danny.kukawka@web.de>
Get apiurl for 'osc my' from checked out package if possible.
Make sure that global option -A works to in a checked out
package.
Signed-off-by: Danny Kukawka <danny.kukawka@web.de>
Added 'osc getbinaries REPOSITORY' to checkout all binaries
(incl. source package) of a REPOSITORY. New option checks out
all architectures into subdirs named as the arch.
Signed-off-by: Danny Kukawka <danny.kukawka@web.de>
From 257d823c45b940604c8d3d992b1e1f2da3746074 Mon Sep 17 00:00:00 2001
From: Danny Kukawka <danny.kukawka@web.de>
Date: Fri, 30 Apr 2010 17:17:17 +0200
Subject: [PATCH] fix close() statement in download()
Fixed warning from pychecker by fixing the close()
statement in download().
Signed-off-by: Danny Kukawka <danny.kukawka@web.de>
- removed build_xpath_predicate()
- rewrote search()
- added xpath_join() to join two xpath expressions
- TODO: backward compatibility: currently do_search() requires a recent
api version from git master in order to do some role filter stuff
* support submit requests on project level, osc is checking which
packages have changed and submits only the changed after asking back.
* add support for _patchinfo package submissions in "osc sr" on project level
- added option '-B' to osc maintainer, prints bugowner OR maintainer.
- added 'osc req help' as convenience alias to 'osc help req'.
- 'osc in' to be done. Its usage just prints a suggested zypper command line.
- Incompatible change: osc se now prints Project Package, instead of
Package Project for easier copy&paste.
- give better hint how to use osc vc without network connectivity.
- added printing of cache statistices to osc build
- implemented 'osc ls .' to take proj/pack name from current directory.
* Incompatible change: 'osc ls' now defaults to 'osc ls .',
* Use 'osc ls /' if you really want to list all projects.
* This is meant as a proof of concept. I intend to generalize this usage of '.'
for all osc commands. Feedback welcome.
+- 'osc in' to be done. Its usage just prints a suggested zypper command
line.
+- Incompatible change: osc se now prints Project Package, instead of
Package Project
+ for easier copy&paste.
+
* so far it was only used for querying rpms which can be done with the rpmquery module
- core.py:
* removed data_from_rpm() and tag_to_rpmpy() methods
- util/rpmquery.py:
* added staticmethod "query()"
- commandline.py, fetch.py:
* use rpmquery module instead of rpm-python/data_from_rpm()
* We may remove direct gnome keyring support later (there are currently
reports of users who can't access obs anymore when not using gnome)
* do not write passwords to .oscrc if keyring is available and used
- expanded several tabs to spaces.
- added default project to new getpac and bco subcommand. .oscrc:getpac_default_project = OpenSUSE:Factory
(not added to branch subcommand, to not interfere with its syntax.)
- allow osc req as shortcut for osc request.
- allow osc cat with one parameter, if it is a url.
- core.py:makeurl() now prints the url for educational purposes if osc -v -v
do_maintainer relly on delPerson, which did not exists. It is
taken from old delMaintainer function with role handling.
Fixed also some issues in do_maintainer role handling
that preprocess helper for --days myself.
0.121.jw03
- fixed osc req list -U to not look into the local dir
- added osc my ... pkg/prj/req shorthand commands
- add 'osc se' alias for 'osc search -e'
- add -b -m -M to 'osc search'
0.121.jw02
- made rresults an alias for results. python decorators are a strange concept...
- asserting that ~/.oscrc remains mode 0600
- no more plain text passwords in ~/.oscrc, we store now as bz2+base64
- added verbosity control -v -q. To be used in guess_proj_pack()
- added 'll' and 'ls -l' as shorthand to 'list -v'
- started to change to explicit dual license GPLv2 or GPLv3 to conform to Novell policy.
- added revision parameter to show_upstream_srcmd5(), so that it can be used in do_cat later.
- allowed both integer and srcmd5 revisions in meta_get_filelist()
- added 'lL', 'LL': allowed -e and -v together in do_list(). Was an internal error before.
- added cat -e, to cat a file through a link.
'cat -e -r 3' expands through the third revision of the _link.
- added subcmd bco as alias for branch -c
- added default project to branch subcommand. .oscrc:branch_project = OpenSUSE:Factory
- added primitive experimental support for .oscrc:checkout_no_colon = 1
- suggest using svn when .svn found.
- alias submitpac submitrequest
- osc bco now continues to checkout after branch target exists error.
- added .oscrc:plaintext_passwd=1 for backwards compatibility
- moved core.py:exclude_stuff to .oscrc:exclude_glob and expand it to catch *.orig etc.
- allowed req as alias for request.
- bugfix get_request_list: use 'or' with multiple states, not 'and'.
- added osc req list -s all; a shorthand for enumerating all states
- osc req list no longer confuses creator with approver.
- osc req list -D nnn limit to requests nnn days old.
- osc req list now also shows requests from the the given package, not only to.
- improved help texts with repairlink to point to osc resolved.
- improved passx code when creating oscrc.
- osc sr -l is now a shortcut for 'osc req list -M -a -t submit -D 0'
--overlay OVERLAY
Copy overlay filesystem to buildroot after installing
all RPMs. This must be a valid directory.
--rsync-src RSYNCSRC
Copy overlay folder (RSYNCSRC) to a folder (RSYNCDEST)
inside the buildroot using rsync.
It will "%define RSYNCDONE 1" for handling %setup in your
specfile. E.g.:
%prep
%if 0%{?RSYNCDONE}
%setup -n aaa_base -T -D -b 5 -b 7
%else
%setup -n aaa_base -b 5 -b 7
%endif
--rsync-dest RSYNCDEST
Todo: tell rpmbuild not to delete the folders.
osc commit check for '?' files can be supressed by -f/--force option
It also have more options. File can be easily added, removed or the
whole filelist should be opened in editor and edited (this is very close
to git rebase --interactive behavior).
* obsolete deletepac and deleteprj to delete and rdelete commands.
- enable package tracking by default
* add support to hide commands in help list (so we can show propper
help when people still try to use it).
seife: this is for you, drop your own scripts emulating it :)
The usage information on osc co PACKAGE was a bit confusing and one of
the descriptions was inaccurate. Remove the inaccurate description and
improve the language on the clearer one.
A simple solution to the colons in project names messing up LD_LIBRARY_PATH:
http://lists.opensuse.org/archive/opensuse-buildservice/2008-12/msg00166.html
Example use:
$ osc co -c openSUSE:Factory osc
A $PWD/osc/debian.changelog
A $PWD/osc/debian.tar.gz
A $PWD/osc/osc-0.113.tar.gz
A $PWD/osc/osc.changes
A $PWD/osc/osc.dsc
A $PWD/osc/osc.spec
A $PWD/osc/ready
Versus without -c
$ osc co openSUSE:Factory osc
A $PWD/openSUSE:Factory/osc/debian.changelog
A $PWD/openSUSE:Factory/osc/debian.tar.gz
A $PWD/openSUSE:Factory/osc/osc-0.113.tar.gz
A $PWD/openSUSE:Factory/osc/osc.changes
A $PWD/openSUSE:Factory/osc/osc.dsc
A $PWD/openSUSE:Factory/osc/osc.spec
A $PWD/openSUSE:Factory/osc/ready
Signed-off-by: Brandon Philips <bphilips@suse.de>
New functions:
osc.core.get_commit_message_template()
- check the differences in .changes
- extract them and add to the commit message
osc.core.dgst_from_string():
- same as dgst, but work with string argument
Modified functions:
osc.core.edit_message():
- new optional argument template
osc.commandline.do_commit():
- use get_commit_message_template to collect the changes and call the
edit_message with template argument
osc.core.edit_message():
- used dgst_from_string for header_orig value, so commit message could be
used as is with template. Used a mtime check for canceling support.
TODO: maybe is dgst_from_string unecessary
- print_buildlog: use streamfile() to retrieve the buildlog
- do_cat: use streamfile() to retrieve a file - there's no need to have a tempfile or to read the entire file into memory anymore
- add --current parameter for linkpac to use current revision of source
package fixed.
- add osc setlinkrev to add or update revision number in links easily
- fix streaming of binary files via "cat" (#493325)
fostering open source contributions says that it can discourage contribution by
conveying a false sense of "code ownership". Marking territory is negatively
affecting collaboration. See http://www.youtube.com/watch?v=ZSFDm3UYkeE
* basically get rid of the scheme and apisrv mess - instead directly use the apiurl (== <protocol>://<host>) for everything
* some other minor cleanups here and there
* everyone who has a scheme or apisrv entry in his ~/.oscrc will get a deprecation warning but it's still working (at some point in the future we might remove these code paths)
* when writing a new ~/.oscrc store the apiurl in the conffile [fixes#478054]
- while being at it:
* fixed#478054 ("osc asks for build.o.o credential even if -A<somelocalapi> is always used")
* fixed#478052 ("osc backtrace on password entry (first startup)")
- osc diff -rX:Y: the default is to return an unified diff (to get a pretty diff use the --pretty option)
- osc rdiff: the default is to return a pretty diff (to get an unified diff use the --unified option)
- osc sr show --diff: the default is to return a pretty diff (to get an unified diff use the --unified option)
- core.get_binarylist(): add "verbose" switch that returns instances of class
File, instead of filenames
- improve core.get_binary_file():
* clean up tempfiles,
* set mtime,
* set file mask
Function signature is changed, because I'm not aware of any user than the example
script I once published on http://en.opensuse.org/Build_Service/osc_plugins
- do_addremove():
* if "do_package_tracking" is enabled scan the project dir for new/disappeared packages
* added --recursive option (If CWD is a project dir then scan all package dirs as well)
* minor pathname fix
- fixed argument handling in some methods: don't remove items from a list while looping over it
now 'osc submitrequest create' checks if you already submitted requests for this package, if so it'll ask you if the previous submissions should be revoked
OscConfigParser() behaves like a normal ConfigParser() object. The
only differences is that it preserves the order+format of configuration entries
and that it stores comments.
In order to keep the order and the format it makes use of the ConfigLineOrder()
class.
- removed .netrc cruft from the conf module
- other config cleanups
circumstances -- when there is a working copy, and the package is a source
link, osc will figure out what's needed.
- don't stop submitrequests on packages that have a devel project defined, if
the submit comes from that project.
- osc checkout: checkout of source links is now done in expanded form per
default. --unexpand-link can be used to get the raw link file (and patches).
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
........