- 1.9.0
- Security:
- Fix possibility to overwrite special files in .osc (CVE-2024-22034 boo#1225911)
Source files are now stored in the 'sources' subdirectory which prevents
name collisons. This requires changing version of '.osc' store to 2.0.
- Command-line:
- Introduce build --checks parameter
- Library:
- OscConfigParser: Remove automatic __name__ option
OBS-URL: https://build.opensuse.org/request/show/1194846
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/osc?expand=0&rev=199
- Security:
- Fix possibility to overwrite special files in .osc (CVE-2024-22034 boo#1225911)
Source files are now stored in the 'sources' subdirectory which prevents
name collisons. This requires changing version of '.osc' store to 2.0.
- Command-line:
- Introduce build --checks parameter
- Library:
- OscConfigParser: Remove automatic __name__ option
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=450
- Command-line:
- Change 'repairwc' command to always run all repair steps
- Library:
- Make most of the fields in KeyinfoPubkey and KeyinfoSslcert models optional
- Fix colorize() to avoid wrapping empty string into color escape sequences
- Provide default values for kwargs.get/pop in get_results() function
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=447
- Command-line:
- Improve 'submitrequest' command to inherit description from superseded request
- Fix 'mv' command when renaming a file multiple times
- Improve 'info' command to support projects
- Improve 'getbinaries' command by accepting '-M' / '--multibuild-package' option outside checkouts
- Add architecture filtering to 'release' command
- Change 'results' command so the normal and multibuild packages have the same output
- Change 'results' command to use csv writer instead of formatting csv as string
- Add couple mutually exclusive options errors to 'results' command
- Set a default value for 'results --format' only for the csv output
- Add support for 'results --format' for the default text mode
- Update help text for '--format' option in 'results' command
- Add 'results --fail-on-error/-F' flag
- Redirect venv warnings from stderr to debug output
- Configuration:
- Fix config parser to throw an exception on duplicate sections or options
- Modify conf.get_config() to print permissions warning to stderr rather than stdout
- Library:
- Run check_store_version() in obs_scm.Store and fix related code in Project and Package
- Forbid extracting files with absolute path from 'cpio' archives (boo#1122683)
- Forbid extracting files with absolute path from 'ar' archives (boo#1122683)
- Remove no longer valid warning from core.unpack_srcrpm()
- Make obs_api.KeyinfoSslcert keyid and fingerprint fields optional
- Fix return value in build build.create_build_descr_data()
- Fix core.get_package_results() to obey 'multibuild_packages' argument
- Tests:
- Fix tests so they don't modify fixtures
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=442
- 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