- 1.5.0
- Command-line:
- Change 'rdiff' command to display diff for _project if no package is specified
- Update 'build' command with initial support for 'productcompose' build type
- Change 'build' command to disable preinstall images in rootless builds
- Configuration:
- Fix conf.write_initial_config() to use read_file() instead of deprecated readfp()
- Other:
- Support installing osc into virtualenv
- Spec:
- Recommend 'build' on openSUSE/SLE and 'obs-build' on all other distros
OBS-URL: https://build.opensuse.org/request/show/1128028
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=424
- 1.4.1
- Configuration:
- Always display apiurl when asking for credentials
- Ask for new credentials when user is missing from an apiurl section in the config file
- Library:
- Fix testing revision for being empty
- Fix core.change_request_state_template() to always return a string
- Tests:
- Replace 'git init -b' with 'git init' and 'git checkout -b'
- Spec:
- Run fdupes after install
- List the python sitelib paths explicitly
- Mark csh completion files as configs
- Own zsh completion dirs to mute rpmlint errors
- Move bash completion from /etc to /usr/share
- Fix whitespaces in the changes file
OBS-URL: https://build.opensuse.org/request/show/1116734
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=412
- 1.4.0
- Command-line:
- Add rootless build support to 'build' command for 'kvm' and 'podman' vm types
- Print a hint to clean the build root after a failed build
- Avoid adding a newline to prompt in 'wipe' command
- Fix 'build' command to pass '--vm-type' option to the underlying build tool
- Add '--just-print-buildroot' option to print build root path and exit to 'build' command
- Add support for keep_packages_locked on request revoke
- Import zsh completition made by Holger Macht and improve it
- Use XDG locations in completion
- Fix 'search' command to resolve '-B .' to the current project
- Add '-M/--multibuild-package' option to 'checkconstraints' command
- Allow constraints file with remote request in 'checkconstraints' command
- Unify how the 'commit' and 'build' commands work with '--noservice' option
- Fix 'request show' command to print superseded_by information
- Fix 'service' command to support already documented 'r' abbreviation for 'run'
- Configuration:
- Implement 'exclude_files' and 'include_files' config options that allow skipping files in the 'checkout' command
- Fix api_host_options for custom CAs (cafile and capath options work again)
- Switch 'osc.conf.config' from dict to Options class with type checking
- Rename conf.Options.build_type to vm_type to be consistent with obs build and osc --vm-type option
- Update list of supported vm_type values in conf.Options.vm_type
- Remove any duplicated code loading configuration from ENV
- Library:
- Add 'osc.util.models' module implementing an alternative pydantic-like data validation
- Add 'osc.util.xdg' module for handling XDG paths
- Fix handling empty vm_type in Store.last_buildroot
- Spec:
- Install zsh completion
- Build and install oscrc man page
OBS-URL: https://build.opensuse.org/request/show/1115564
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=410
- 1.3.1
- Command-line:
- Fix string + int concatenation errors in 'build' command by using f-strings instead
- Fix '--all' option in 'rebuild' command
- Fix 'build' command when '--alternative-project' option is specified and the git branch cannot be mapped to a project
- Stop suggesting that the working directory is git/mercurial/svn/cvs
- Be helpful in deprecating commands
- Configuration:
- Add more config options among integer options
- Library:
- Fix GitStore to error out properly if there is no 'origin' remote in the git repo
- print_buildlog: Remove control characters from build log before printing (CVE-2012-1095)
OBS-URL: https://build.opensuse.org/request/show/1106804
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=408
- 1.3.0
- Command-line:
- Add experimental support of Git SCM to the 'build' command
- Add experimental support of Git SCM to the 'service' command
- Make 'meta' command capable of editing attributes
- Change '--add' option in 'meta attribute' command to skip duplicate values
- Add an interactive option to display build log in 'request list -i' command
- Add '--setopt' option for setting config options from the command-line
- Fix '--prefer-pkgs' option for noinstall="1" packages in kiwi builds
- Change 'checkout' command to print open requests only when running in an interactive terminal
- Enhance '--force' option description in the 'request' command
- Connection:
- Fix crash when HTTP_PROXY env contains no auth
- Library:
- Add 'git_scm' module for handling packages that live in git scm rather than usual obs scm
- Change pop_project_package_from_args() to use get_store() to support Git SCM
- Change osc.build module to use 'store' object instead of calling core.store_*() functions
- Use alternative project if specified in parse_repoarchdescr()
- Fix xml indent() on Python 3.6
- Fix less pager by adding '-R' to LESS env
- Improve print_msg() and migrate some arbitrary prints to it
OBS-URL: https://build.opensuse.org/request/show/1103139
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=406
- 1.2.0
- Command-line:
- Add 'repo' command and subcommands for managing repositories in project meta
- Extend 'browse' command to open requests in a web browser
- Add highlighting for 'osc diff' and similar commands
- Fix 'api' command to stream output to avoid running out of memory
- Fix printing utf-8 characters to stdout
- Connection:
- Fix ValueError: Cannot set verify_mode to CERT_NONE when check_hostname is enabled
- Authentication:
- Correctly handle passwords with utf-8 characters
- Library:
- Fix crash when submiting a SCM package which has no _link
- Fix local service execution of scmsync packages
- Detect target package by its full name, instead of assuming its origin is identical to the source package type
- Other:
- Spell openSUSE correctly
OBS-URL: https://build.opensuse.org/request/show/1098639
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=404
- 1.1.4
- Command-line:
- Change 'review list' command to display open requests (state: new, review, declined)
- Fix running osc in an AppImage by switching to the correct working directory
- Handle ProtocolError exception
- Library:
- Add 'req_states' parameter to osc.core.get_review_list()
- Connection:
- Fix grabber to work with old urllib3 versions that do not contain URLSchemeUnknown exception
OBS-URL: https://build.opensuse.org/request/show/1088780
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=402
- 1.1.3
- Command-line:
- Backup edited messages and notify user about them when osc errors out
- Consider only open requests when listing requests with a given review state
- Fix 'diff' command when no files are specified
- Configuration:
- Add glob support to the 'trusted_prj' config option
- Library:
- Fix core.xmlindent() to work with ElementTree objects
OBS-URL: https://build.opensuse.org/request/show/1085990
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=399
- 1.1.2
- Command-line:
- Add '--buildtool-opt' option passing options to underlying rpmbuild to the 'build' command
- Fix 'diff' command to support diffing selected files only
- Identify inherited packages in the 'dependson' command output
- Bring the '--debug' option back to the 'buildinfo' command
- Fix 'buildhistory' command by setting the type of the '--limit' option to int
- Library:
- Fix a traceback when failed to unlock a keyring
- Don't retry on 400 HTTP status code in core.server_diff()
- Clean-up the '.old' folder if an exception happens
- Document 'popt' attribute in the _link template
- Fix build.get_repo() to return only directory that contains 'repodata/repomd.xml'
- Connection:
- Retry on receiving the following HTTP status codes: 400, 500, 502, 503, 504
- Allow disabling retry on 400 HTTP status code
- Fix urlgrab to skip mirrors with invalid scheme
OBS-URL: https://build.opensuse.org/request/show/1084218
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=395
- 1.1.1
- Command-line:
- Fix 'creq' command that wasn't working at all
- Fix 'ls' command when listing all projects by setting project argument to '/'
- Fix regression: Run interactive config setup on missing config or credentials
- Append plugin dirs to sys.path to allow loading modules installed next to the plugins
- Do not recurse into subdirs when loading plugins
- Configuration:
- Display apiurl when asking for a username or a password
- If apiurl is not set in interactive_config_setup(), use apiurl from DEFAULTS
- Library:
- Decode entities in HTTPError message body
OBS-URL: https://build.opensuse.org/request/show/1078421
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=392
- Update to 1.1.0
- Command-line:
- New class-based commands
- Sort commands before printing help
- No longer read plugins from /var/lib/osc-plugins
- Configuration:
- Do not error out on setting oscrc permissions if the file is owned by another user
- Library:
- Restore 'include_request_from_project' conf option functionality
- Simplify how babysitter works with options and config
- Prefer f-strings over c-style string expansion
OBS-URL: https://build.opensuse.org/request/show/1076940
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=390
- 1.0.0b4
- Fix regressions to osc 0.x:
- mv: Fix traceback due to missing target file name
- rm: Fix creating a Package object by providing multiple files on the command line
- copypac: Fix downgrading a package to an old revision
- buildhist: Fix running from a package checkout
- rebuild: Fix running from a package checkout
- rdiff: Fix traceback when new project is not specified
- rq list: Fix passing values of the --type option
- build: Fix reading extra-pkgs from oscrc
- Support withfullhistory in osc.core.get_request_list again
- Fix osc.get_request_list ignoring the req_type parameter
- Revert "Do not list declined requests by default"
- connection: Mute the "Converted retries value" debug message
- connection: Fix traceback on loading an invalid cookiejar file
- connection: Save cookiejar only when there's a Set-Cookie header in the response
- Add oscerr.ProjectError class needed by core.delete_project()
- Fix all errors reported by pylint
- spec file:
- drop upstreamed patches:
- 1217.patch
- 1228.patch
- Recommend python3-distro - needed for setting the default editor by distro
OBS-URL: https://build.opensuse.org/request/show/1063014
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=382
1.0.0b3
- add create-pbuild-config (cpc) command which allows to create a working
config for pbuild tool based on OBS server side data
- branch: Add --disable-build option
- linkpac: Add --disable-build option
- linkpac: Fix linking a locked package by not copying the lock to the target package
- sr: Do not error out on using an alias to apiurl
- rq: Fix the -M/--mine option to show only requests created by the user
- rq list: Avoid conflict between --all and --state options
- rq list: Fix traceback when there's no search criteria
- rq list -i: Enable forwarding requests to the parent projects
- rq show: Improve output
- sr accept: Enable forwarding requests to the parent projects
- setlinkrev: Write a log message on setting a revision
- buildhistory: Produce proper output using build_table() and a CSV writer
- buildinfo: Bring the -d/--debug option back
- build: Bring the --verbose' option back as --verbose-mode=MODE to avoid conflicts with global --verbose
- service: Add verbose option for running local services
- service: Fix manual run of source service
- conf: Avoid crash when deleting a password
- connection: Fix the '9 - review the server certificate' option in cert trust prompt
- Handle uncompressed Debian packages
- Fix osc add for github /archive/ URLs
- Handle empty EDITOR=/PAGER= env variable properly
- Mute ssl/tls deprecation warnings
- Add "--extra-pkgs-from" ("-X") option to osc build.
- Fix a scenario when OBS sends unexpected md5s
- Replace core.findpacs() with Package.from_paths() and Package.from_paths_nofail()
- Always list requests with 'new,review' states by default
- Change get_request_collection() not to list declined requests by default
- Add information about osc vc using the EDITOR envar to the help output
- Improve argument handling in many commands
- Implement Store class handling '.osc' dirs, migrate some code to it
- Code cleanups
- Deprecated:
- core.get_request_list() function
- core.store_write_apiurl() function
- core.store_read_scmurl() function
- core.store_read_apiurl() function
1.0.0b2
- Support ssh-agent forwarding
- ssh auth: Avoid password prompt when using TransientCredentialsManager
- Properly handle missing ssh-keygen and ssh-add
- Add ssh-keygen as a recommends for ssh MFA authentication
- Print user and apiurl when prompting for a password
- Pass apiurl to all auth handlers
- Do not list declined requests by default
- Fix 'osc up' on project level for scm packages
- Lock cookiejar to prevent unnecessary signature auth
- Process input with configurable project separators
- Add project_separator to config file
- Fix race condition in using .old directory in Serviceinfo.execute()
- Send HTTP header Accept: application/xml
- Print URLs and xpaths in debug rather than verbose mode
- Inject no-op print() into http.client when http debugging is off
- Reset "file current position" on errors in HTTP requests
- Create ~/.config/osc/trusted-certs if not exists
- conf: Convert defaults to their expected types
- Document `build` repo selection logic
- Add debug print for REPO (and desc just in case)
- Shortened `build` help and add debug prints
- Replace unmaintained cmdln.py with a custom code
- Allow intermixing positional and optional args
- Add global options to subcommands so they can be specified in any place
- Remove the '-A' option from the 'maintainer' command
- Replace the '-q/--hide-legend' option in 'prjresults' command with global '-q/--quiet' option
- Remove duplicated --debug and --verbose options
- Add version command to print the used version
- Remove deprecated 'plaintext_passwd' config option
- Remove deprecated 'GnomeKeyringCredentialsManager' and related code
- Remove deprecated '--skip-validation' option from the 'commit' command
- Remove deprecated '--oldpkg', '--oldprj' options from the 'rdiff' command
- Remove deprecated subcommands 'create', 'list', 'log', 'show', 'decline', 'accept', 'delete', 'revoke' from the 'submitrequest' command
- Remove deprecated '--seperate-requests' option from the 'submitrequest' command
- Remove deprecated '--raw' option from the 'develproject' command
- Remove deprecated '--maintained' option from the 'search' command
- Remove deprecated 'rlog' command
- Remove deprecated 'rprjresults' command
- Remove deprecated 'rresults' command
- Remove deprecated 'results_meta' command
- Remove deprecated 'deleteprj' command
- Remove deprecated 'deletepac' command
- Remove deprecated 'editmeta' command
- Remove deprecated Request.get_creator()
- Remove PROJ_PACK.txt file, move its content to GitHub issue #1099
- Remove TODO file, move its content to GitHub issue #1098
- Remove fuse support
- Remove unused run_bandit.sh
- Remove obsolete osc_expand_link.pl
- Remove unused icons
- Replace imp with importlib
- Move files from dist/ to contrib/
- Move osc.fish under contrib/
- Move python package metadata from setup.py to setup.cfg
- Move __version__ from osc.core to osc
- Fix resource warnings (unclosed files)
- 1.0.0b1
- drop Python 2 support
- switch http_request() to urllib3 and cryptography (drop M2Crypto dependency)
- warn when using HTTP connection, Make HTTPS the default
- add XDG compatible location for osc plugins
- replace osc-wrapper.py with entry_points.
- core: add functions for glob matching of multibuild flavors
- fix multibuild packages in all osc commands where applicable
- do not ask for login for -h,--help
- move format_table() to util.helper
- code cleanups
OBS-URL: https://build.opensuse.org/request/show/1058838
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=376
- 0.181.0
- fix crash when 'pass' is not set in the config file
- add missing attributes to Package when scm_url is set
- fix failure to create config in current dir
- update list of considered file names for ssh key autodetection
- allow users to prefer ssh key over password auth
- ssh: recognize gpg keys (yubikey usage)
- fix operating on _project meta
- revert "interpretation of string literals in messages" that broke unicode handling
- fix product build rpm caching
- enable md5 revisions in osc log
- parseRevisionOption(): raise an exception on invalid revisions
OBS-URL: https://build.opensuse.org/request/show/991346
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=366
- 0.178.0
- EXPERIMENTAL: git repository handling
* init command is working inside of a git repository
* downloadassets command fetches references assets from build description
* checkout is cloning from git
- EXPERIMENTAL: signature (ssh key) authetication
* allow to configure 'sshkey' option in the config
* try to guess ssh key from the keys added to ssh-agent
* rename OscHTTPBasicAuthHandler to OscHTTPAuthHandler
* simplify bad auth retry workaround needed for old python versions
- add support for building preinstall images
- add support for building Helm charts
- show the md5s that are failing to validate after fetching a package
- add missing space to copypac completion
- never require login in the help command
- linkdiff: raise an exception when an added file is missing
- run tests via calling 'setup.py test'
- several coding style fixes
- spec file:
- run tests via calling 'setup.py test'
- disabled tests in debian.rules
OBS-URL: https://build.opensuse.org/request/show/979843
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=360
- 0.177.0
* switch to python3 in osc-wrapper and make python3 explicit
* allow formatting of the sccache uri
* show repository state and details
* a few minor fixes and improvements in credentials handling
* order credential managers by priority
* kernel keyring is now supported as credential manager
* support regex based name filtering in core.get_prj_results()
* revision parsing parseRevisionOption(): cleanup and make logic consistent
* use sr_ids[0] for superseding (fixes issues with superseding requests
containing many packages
* download logs and metadata in subdirs named by packages when osc getbinaries
is issued on project level or in multibuild case
- spec file:
* recommed python-keyring-keyutils for new kernel keyring backend
OBS-URL: https://build.opensuse.org/request/show/972884
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=358
- 0.176.0
* add -F option to osc submitreq
* add --verbose option to build command
* fix getbinaries command to fetch also multibuild packages
* fix getbinaries -M/--multibuild-package option usage
* skip fetching metadata and logs in the getbinaries command
* do not download a bdep with a hdrmd5 from the api by default
* re-download file from API when hdrmd5 doesn't match
* honor --download-api-only option
* remove Windows from the supported operating systems
* fix license in setup.py
* add py3.10 and py3.11 to the classifiers in setup.py
* use the latest version of COPYING file from gnu.org
* fix crash on terminal resize during download
* do not fail with a traceback in case of a config error
* preserve oscrc symlink when writing conf file
* escape % character in binary download URLs
* fix printing paths to built debian packages
OBS-URL: https://build.opensuse.org/request/show/958111
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=357
Fedora and EPEL provide osc in their respective repositories. However OSC is built with a custom SPEC file. The goal of these changes is bring the packaging of OSC closer in both build systems.
If these changes are accepted, I plan to also submit the changes to Fedora.
* Modified SPEC file to be more compatible with KOJI and COPR.
** Modified SPEC file to use python3 for CentOS/RHEL 7
** Modified SPEC file use fedora/rhel version macros.
** Changed perl to sed in %install section of SPEC file.
Removes PERL as an unofficial build dependence. EPEL-9 build roots in MOCK may not include PERL
OBS-URL: https://build.opensuse.org/request/show/956576
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=356
* do not crash when running "osc search --binary --verbose foo"
* don't run source services when building outside of an OSC package working copy
* fix XDG_CONFIG_HOME
* offer a force ("f") choice in metafile.edit's error handling code path
* fix XPath used in search requests
* add support for creating a workflow token via "osc token"
* handle missing os.sysconf more gracefully
* detachbranch: remove _link when link target got removed
* improve error message in case of an URLError
* fix downloading from mirrors
* avoid sending entire projects on "osc mr"
* fix hdmrd5 check of local cached files
* improve logic for conffile mode handling
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=354
* fix password deletion via "osc config -d <apiurl> pass"
* support changing the password store via "osc config <apiurl>
--select-password-store")
* support slash syntax in osc browse ("osc browse prj/pkg" is equivalent to
"osc browse prj pkg")
* fix the commit of a frozen package wc
* fix local product builds using obsrepositories:/ directives
* print a meaningful message when trying to a commit a non-existent package
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=353
* add showlinked command to show all references of packages linking to a given one
* add build --shell-after-build flag. It can also be set via .oscrc.
* add build --stage flag. Useful for example for fixing file lists and just
running the install section to see the result of it (use --stage=i=).
Check the help for more details.
* allow to run build script as non-root, by setting su-wrapper empty
=> osc is not guessing anymore if user builds are wanted
* add support for cross arch local build using a sysroot
* support slash notation in "osc creq -a <action type> args"
* add "--force" option to the "osc add" command (can be used to override
the exclude_glob config option)
* support the commit of arbitrary sized files
* add support for sccache
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=350
* support --lastsucceeded/--last-succeeded in "osc buildlog", "osc
remotebuildlog" + friends (perform the corresponding operation on
the build log of the last successful build)
* fix pypi deployment via Travis CI
* several fixes in request related code paths (no double html_escape
of a request's description etc.)
* support local builds in a systemd-nspawn container
* fix potential TypeErrors+UnicodeEncodeErrors in the util.cpio and
util.ar modules
* support local flatpak builds (requires a recent build version)
* "osc init <prj>" works for a non-existent (server-side) project <prj>
* .old dir support for source services so that some services have access
to the results of a previous service run
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=345
* maintainer search: lookup via package name by default and binary as fallback
* fix crash on console resize when downloading files during build
* add proper repourls to osc reporuls
* new command osc releaserequest: This command is used to transfer sources and
binaries without rebuilding them.
It requires defined release targets set to trigger="manual".
* some improvements on output of help and error messages
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=342
* fix code for python3.8 and python3.9
* remove dead code
* fix tests
* don't use chardet to guess encoding. utf-8 or latin-1 is now assumed
This will speed up decoding (bsc#1173926)
* escape sequences are interpreted correctly on -m
osc sr -m "1st line\n2nd line"
results in
1st line
2nd line
* add status filter to osc results
* add --brief to osc prjresults
Gives:
build openSUSE_Leap_15.1 x86_64 succeeded
build openSUSE_Leap_15.0 x86_64 succeeded
build openSUSE_Leap_15.0 armv7l unresolvable
build openSUSE_Factory_ARM armv7l succeeded
build openSUSE_Factory_ARM aarch64 succeeded
* osc prjresults -s <status>: status can now be the long text like "succeeded", "failed"
* improve error message if osc service <servicename> is not run in working directory
* web links are now also printed for osc mr when print_web_links=1 is set
- Spec:
* re-enable test suite
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=338
* improve speed and usability of osc bash completion
* switch packagequery.py to return only bytes
* improved some error messages
* osc add: support git@ (private github) or git:// URLs correctly
* split dependson and whatdependson commands
* support for osc build --shell-cmd
* Fix kiwi build with --prefer-pkgs
* add pkg-ccache support for osc build
* fix security issue (bsc#1122675, CVE-2019-3681) do not allow '/' in filename
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=335