1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-12-26 09:56:13 +01:00
Commit Graph

1662 Commits

Author SHA1 Message Date
Dr. Peter Poeml
c993a04c7c Rewrite the HTTP handling
- adding http_GET/POST/PUT/DELETE() functions, which dispatch to
   http_request(), and use them everywhere
 - removing othermethods.py 
 - keeping urlopen(), in case it is used from externally, but have it print out
   a "depracated" message
 - finally, implementing a global HTTP debug mode
2007-04-19 08:47:22 +00:00
Dr. Peter Poeml
1ecbbf9f23 further the osc buildroot configuration example 2007-04-18 00:26:14 +00:00
Dr. Peter Poeml
36359996f0 remove debug print of tempfile name 2007-04-18 00:23:49 +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
0ba494298e - build:
- use <bdep> preinstall attribute instead of obsolete <pdep> element
  - use <bdep> runscripts attribute and hand it over to build in the buildinfo
2007-03-28 23:37:34 +00:00
Dr. Peter Poeml
12e1f1b45d - results: quote parameter in the new URL
- prjresults: sort package names
2007-03-28 22:55:38 +00:00
Dr. Peter Poeml
7f4ed364f0 run build with --norootforbuild, thereby defaulting to build as abuild user 2007-03-21 00:29:10 +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
0204819a54 - use new api ['build', prj, '_result'] for prjresults subcommand 2007-03-13 00:17:28 +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
2e0927ddfd - apply fix from Christoph Thiel to use cElementTree from Python 2.5 2007-03-12 23:17:34 +00:00
Dr. Peter Poeml
76632513cc - apply fix from Christoph Thiel to use cElementTree from Python 2.5 2007-03-12 20:00:47 +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
3e82391e1f - fix important bug, which could lead to overwriting local modifications when
upstream changes are merged
- if a merge fails, the store copy must be updated neverthelesss
2007-01-23 06:55:43 +00:00
Dr. Peter Poeml
e6a65dab44 these two debug prints in osc/othermethods.py may be helpful sometimes (although the code is planned te be rewritten anyway) 2007-01-23 00:37: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
a12c8e9b82 merge from Susannes branch (/branches/froh/reponator/)
* I extended the comments in the template with findings I had to dig
    through (how to switch the protocol and how to specify the port)
2007-01-12 03:53:44 +00:00
Dr. Peter Poeml
6274cf512b fix typo (Thanks Susanne) 2007-01-12 03:52:46 +00:00
Dr. Peter Poeml
da02db0c51 merge from branches/froh/reponator/:
* I moved edit_meta into an own class representing metadata.  that
    metadata is retrieved in the constructor, can be accessed as an
    elementree and can be synced back to the filesystem.

    I'm using that myself to update metadata and I changed the use of
    edit_meta to use that class.
2007-01-12 03:52:13 +00:00
David Mayr
885464d7a5 added commandline shortcut 'stat' for 'status', like in svn 2007-01-07 00:59:34 +00:00
David Mayr
6af51a1652 corrected little typo 2007-01-06 05:13:05 +00:00
Lars Vogdt
813125a8f6 - added links to the wiki pages for more details 2006-12-12 02:01:39 +00:00
Lars Vogdt
c9f3df6a51 - fix missing xml argument in documentation
- switched to SUSE_SLE-10 as example
2006-12-12 01:59:44 +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
a94364d95b correct last fix: set scheme in DEFAULTS not in the comment. 2006-10-13 09:19:28 +00:00
Dr. Peter Poeml
4f61fc4bb0 set scheme=https in the default conf; add missing import sys in othermethods.py 2006-10-13 06:37:16 +00:00
Dr. Peter Poeml
3b96e4dfdf bump version (0.9); update NEWS 2006-10-12 13:30:33 +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
c758321df2 for large numbers of packages, group the results in chunks 2006-09-29 09:55:27 +00:00
f91bd60f3b do not trace, but exit with 1 on upload error 2006-09-26 09:02:00 +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
79092b2a86 urlopen(): for server return code 500, print out the reply body 2006-09-18 16:53:55 +00:00
Dr. Peter Poeml
755a4e7626 be fair, and also mention dsc files 2006-09-18 16:45:59 +00:00
Dr. Peter Poeml
46b12c1df1 build: fix finding of built packages in the end of the build 2006-09-15 16:17:49 +00:00
Dr. Peter Poeml
41c2524691 fix dynamical build-root setting (r729) 2006-09-15 16:13:15 +00:00
Dr. Peter Poeml
b0011af9a8 build: error checking on external commands 2006-09-15 16:11:19 +00:00
Dr. Peter Poeml
26ef33195e change order of 'BUILD_ROOT', 'OSC_BUILD_ROOT' so the latter overrides the former 2006-09-15 14:35:09 +00:00
Dr. Peter Poeml
0631e8fcb1 - let environment variables OSC_SU_WRAPPER OSC_BUILD_ROOT override config values 2006-09-15 14:27:40 +00:00
Dr. Peter Poeml
51247e7a7c build: allow 'dynamical' build-root setting by using %(repo)s and %(arch)s 2006-09-15 14:26:09 +00:00
Dr. Peter Poeml
e877e12ffb - 'meta': more debugging output in case or failure: if the server
sends code 500 (internal server error), print out the used URL 
  and the ruby stack trace
2006-09-15 13:24:41 +00:00
Dr. Peter Poeml
5947848c81 bump version (0.8); update NEWS file 2006-09-15 13:23:28 +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
7f592638be fix error message in meta_get_filelist() 2006-09-15 09:48:49 +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
5be1e292fc fix issue with uploading files -- in PUT requests, there was an additional newline inserted, which could lead to wrong interpretation of the payload if e.g. an intercepting web proxy was in between osc and the api server 2006-07-19 15:15:57 +00:00
Dr. Peter Poeml
c52baf09f7 fix usage of personality wrappers 2006-07-17 13:53:17 +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
ea106f0b05 fix osc/__init__.py to contain new modules 2006-07-17 13:15:21 +00:00
Dr. Peter Poeml
545222f9b7 build: make it possible to override urllist (the list of urls where packages are downloaded in the config file 2006-07-17 13:14:17 +00:00
Dr. Peter Poeml
89a85f9b13 better copy&paste directions for import gpg keys 2006-07-17 12:07:19 +00:00
Dr. Peter Poeml
b1f8dfdf72 if osc is started for the first time, add a complete .oscrc, with build configuration, not just the api user acccount. So it isn't necessary to do it later again. 2006-07-17 12:00:59 +00:00
Dr. Peter Poeml
e6fedfcf8a if configuration is overridden by envvars, print out a statement about it 2006-07-17 10:36:26 +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
77d66c81a3 don't try to find built packages when the build wasn't complete 2006-07-14 18:31:35 +00:00
Dr. Peter Poeml
a08e80472b handle error if packagecachedir is not writable by user 2006-07-14 18:23:20 +00:00
Dr. Peter Poeml
11845654ac if only .netrc is found, automatically create a ready-to-go .oscrc 2006-07-14 18:21:35 +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
55857910d4 - properly use tempfile.mkstemp, by using os.fdopen() on the passed file
descriptor, instead of opening it again
2006-07-14 16:37:34 +00:00
Dr. Peter Poeml
f50176e4f2 in case of a parsing error of netrc, treat it as non-existant. (It turned out that python's netrc parser wouldn't cope with lines not containing a password) 2006-07-14 16:19:35 +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
bac61c05ac handle (properly report) HTTP errors in meta_get_filelist, get_slash_source show_project_meta, show_package_meta 2006-07-05 12:09:09 +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
b54e25c46b - 'ci'/'rm': properly quote the path component of URLs used in HTTP requests
(now also in DELETE requests, where no quoting was done before at all)
- 'id': properly quote the query part of the URL 
- fix up tests.py
- add to TODO
2006-06-29 23:34:06 +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
2b7970148e - editmeta:
- add examples for <disable> tags to the package template
  - add examples for build targets to the project template
2006-06-23 10:35:20 +00:00
Dr. Peter Poeml
b0d1a94762 - don't try to merge files if they have binary content
- set mtime on files that have been fetched during merge
2006-06-22 12:54:58 +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
ae285de206 - use os.path.getmtime() instead of os.stat()
- use named stat members instead of their index number
2006-06-16 12:19:02 +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
f513dc91e3 - display reason for build status is 'broken'
- handle 'project not found' error in show_project_meta()
2006-06-01 09:05:47 +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
2b6cd72037 set User-agent 2006-05-30 11:44:06 +00:00
Dr. Peter Poeml
537d6b62cc version 0.6 2006-05-30 10:31:25 +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
f0c9a1c3f4 fix copy&paste issue in clear_from_conflictlist(): write the conflict list, not the delete list 2006-05-23 13:59:29 +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
4035dad7e0 - if an old _files listing without any metadata is found, don't bother the user
with it
- add get_osc_version()
2006-05-23 08:43:04 +00:00
Dr. Peter Poeml
170a4307e5 don't fail on unlinking non-existing file 2006-05-22 17:51:44 +00:00
Dr. Peter Poeml
8548d163f6 escape spaces in username 2006-05-22 14:57:11 +00:00
Dr. Peter Poeml
1623924f2b accept older working copies 2006-05-22 14:23:13 +00:00
Dr. Peter Poeml
600d9cf4a8 version 0.4 2006-05-22 14:13:12 +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
4b7d1bc176 checkout: preserve mtime; don't read file metadata twice 2006-05-22 08:16:31 +00:00
Dr. Peter Poeml
d4d20221c1 fix diff for last change (of course it was reverse) 2006-05-19 20:28:04 +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