- 1.6.2
- Command-line:
- Fix 'branch' command to allow using '--new-package' option on packages that do not exist
- Fix 'buildinfo' command to include obs:cli_debug_packages by default
- Fix 'buildinfo' command to send complete local build environment as the 'build' command does
- Allow `osc rpmlint` to infer prj/pkg from CWD
- Propagate exit code from the run() and do_() commandline methods
- Give a hint where a scmsync git is hosted
- Fix crash in 'updatepacmetafromspec' command when working with an incomplete spec
- Authentication:
- Cache password from SecretService to avoid spamming user with an accept dialog
- Never ask for credentials when displaying help
- Library:
- Support package linking of packages from scmsync projects
- Fix do_createrequest() function to return None instead of request id
- Replace invalid 'if' with 'elif' in BaseModel.dict()
- Fix crash when no prefered packages are defined
OBS-URL: https://build.opensuse.org/request/show/1167769
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=438
- 1.6.1
- Command-line:
- Use busybox compatible commands for completion
- Change 'wipe' command to use the new get_user_input() function
- Fix error 500 in running 'meta attribute <prj>'
- Configuration:
- Fix resolving config symlink to the actual config file
- Honor XDG_CONFIG_HOME and XDG_CACHE_HOME env vars
- Warn about ignoring XDG_CONFIG_HOME and ~/.config/osc/oscrc if ~/.oscrc exists
- Library:
- Error out when branching a scmsync package
- New get_user_input() function for consistent handling of user input
- Move xml_indent, xml_quote and xml_unquote to osc.util.xml module
- Refactor makeurl(), deprecate query taking string or list arguments, drop osc_urlencode()
- Remove all path quoting, rely on makeurl()
- Always use dict query in makeurl()
- Fix core.slash_split() to strip both leading and trailing slashes
OBS-URL: https://build.opensuse.org/request/show/1149750
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=434
- 1.6.0
- Command-line:
- The 'token --trigger' command no longer sets '--operation=runservice' by default.
- Change 'token --create' command to require '--operation'
- Fix 'linkdiff' command error 400: prj/pac/md5 not in repository
- Update 'build' command to support building 'productcompose' build type with updateinfo.xml data
- Don't show meter in terminals that are not interactive
- Fix traceback when running osc from an arbitrary git repo that fails to map branch to a project (boo#1218170)
- Configuration:
- Implement reading credentials from environmental variables
- Allow starting with an empty config if --configfile is either empty or points to /dev/null
- Implement 'quiet' conf option
- Password can be an empty string (commonly used with ssh auth)
- Connection:
- Allow -X HEAD on osc api requests as well
- Library:
- Fix credentials managers to consistently return Password
- Fix Password.encode() on python < 3.8
- Refactor 'meter' module, use config settings to pick the right class
- Convert to using f-strings
- Use Field.get_callback to handle quiet/verbose and http_debug/http_full_debug options
- Implement get_callback that allows modifying returned value to the Field class
- Add support for List[BaseModel] type to Field class
- Report class name when reporting an error during instantiating BaseModel object
- Fix exporting an empty model field in BaseModel.dict()
- Fix initializing a sub-model instance from a dictionary
- Implement 'Enum' support in models
- Fix Field.origin_type for Optional types
- Drop unused 'exclude_unset' argument from BaseModel.dict() method
- Store cached model defaults in self._defaults, avoid sharing references to mutable defaults
OBS-URL: https://build.opensuse.org/request/show/1141459
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=432
- 1.5.1
- Library:
- Avoid using '/public/' API routes
- Update 'osc.util.models' to avoid including lazy defaults in the rendered man pages
- Spec:
- Simplify distro-specific macros
- Use %{?rhel} macros
- specfile change : use rhel version macros wherever 'fedora' macro is also used
+ Build manpages on RHEL distros where argparse-manpage is available
and where python3-sphinx is available and cleanly installable without
requiring environment(modules) from EPEL
+ use fdupes to deduplicate python bytecode on RHEL distros which support it
OBS-URL: https://build.opensuse.org/request/show/1130789
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=428
- 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