- Command-line:
- Use OSC_PACKAGE_CACHE_DIR env var instead of deprecated OSC_PACKAGECACHEDIR
- Connection:
- Check for both upper and lowercase versions of HTTP_PROXY and HTTPS_PROXY env vars
- Library:
- Add 'trackingbranch' field to ScmsyncObsinfo model
- Revert "Return None if GitStore cannot determine apiurl"
- Throw a proper exception when 'apiurl' argument of 'makeurl()' is empty
- Move code setting apiurl from store to 'osc.conf.get_config()'
- Simplify 'osc.commandline.Osc.get_api_url()' to return the value from 'self.options'
- Remove 'osc.commandline.Osc.post_argparse()' because it's no longer used
- Fix unit tests to use the new code path to run osc
- Fix osc.gitea_api.dt_sanitize() by replacing dateutil with datetime
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=489
- Command-line:
- Add 'git-obs pr cancel-scheduled-merge' command
- Add timeline to 'git-obs pr review interactive'
- Add '--timeline' option to 'git-obs pr get'
- Fix 'git-obs pr search' by using pagination to retrieve all results
- Extend '--message' option in git-obs subcommands with the '-m' short option
- Add a different message for scheduled merges in 'git-obs pr merge' command
- Library:
- Add 'conn' parameter to gitea_api.common.GiteaModel
- Add gitea_api.Connection.scheme attribute
- Add gitea_api.PullRequest.merge_commit property
- Add gitea_api.PullRequest.get_owner_repo_number()
- Add gitea_api.common.dt_sanitize() for sanitizing datetime strings
- Handle missing head repo in the PullRequest properties
- Return None if GitStore cannot determine apiurl
- Remove extra newline from store files
- Fix the 'Move remaining imports in osc.babysitter into try-except block' change by preserving the order of handling the exceptions
- Spec:
- Use primary_python to define runtime requires matching the shebang lines
- Provide %{use_python_pkg}-osc for all pythons and python3-osc for primary_python
- Add conflict with obs-scm-bridge < 0.7.3
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=487
- Command-line:
- Add 'git-obs pr comment [--message=...]' command
- Add 'git-obs pr show-patch' command
- Add '--reviewer' option to 'git-obs pr review {approve,decline,interactive}' to support group reviews via group review bot
- Update 'git-obs pr review interactive' to return non-zero return codes for 'exit' and 'skip' actions
- Make 'osc results --show-excluded' work in a project context
- Add '--no-pager' global option
- Fix 'osc fork' by copying whole query part to the new scmsync url
- Fix 'osc buildinfo' for git packages by handing the 'build_repositories' files by store objects
- Fix crash in 'git-obs pr get --patch'
- Fix git-obs to exit with 130 on keyboard interrupt
- Fix --sccache help typo in 'osc build' command
- Connection:
- Don't retry requests on 504 Gateway Timeout
- Library:
- If a devel project is not specified, try reading it from a mapping from URL set in OBS:GitDevelProjectMap project attribute
- Improve detection of packages and projects in git
- scmsync_obsinfo: Pass correct revision to obs-scm-bridge
- Add obs_api.Request.search() method
- Raise an exception if obs-scm-bridge fails
- Fix obs_scm.Package.get_pulled_srcmd5() returning an empty string
- Fix git store to support non-default remote
- Extend 'gitea_api.User.get()' to take 'username' parameter
- Move get_editor() and related functions from command-line module to gitea_api.common
- Migrate subcommands from using Store() to get_store() that is git aware
- Make imports lazy to imporove osc load times
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=484
- 1.17.0
- Command-line:
- Rename 'git-obs pr review' to 'git-obs pr review interactive'
- Add 'A)approve and schedule for merging' action to 'git obs pr review interactive'
- Add 'git-obs pr merge' command
- Add 'git-obs pr review accept' and 'git-obs pr review decline' commands
- Implement 'git-obs repo list' command
- Add '--export' option to 'git-obs pr list' and 'git-obs pr search'
- Fix crash during token validation in 'git-obs login {add,update}' when value is not specified
- Fix loading shell completions for 'git-obs'
- Fix 'git-obs api' by preventing of quoting the URL query part
- Add a possibility to override git-obs login entries from env
- Validate arguments in 'osc fork' command
- Revert "Improve 'updatepacmetafromspec' command to expand rpm spec macros by calling rpmspec to query the data"
- Improve 'updatepacmetafromspec' command to expand rpm spec macros by calling queryrecipe to query the data (bsc#1243722)
- Connection:
- Do not use pipe for ssh-keygen input
- Library:
- Refactor gitea_api to use objects with properties instead of raw JSON data
- Add GiteaModel base class and json_dumps() function that can serialize such objects
- Rename 'anonymous' argument in 'gitea_api.Repo.clone()' to 'use_http'
- Allow git in git-obs to be switched from SSH to http(s)
- Move yaml handling code to osc.util.yaml, add fallback to PyYaml
- Fix how types are compared in OscOptions.set_value_from_string()
- get_package_results: check for waiting states in all multibuild packages
- Extend _buildinfo file lookup to the current directory
- Fix git store when .git is a file with "gitdir: <path>" link
- Migrate store_* functions to use get_store instead of the original code
- Spec:
- Modify spec to use PyYAML on SLE15
OBS-URL: https://build.opensuse.org/request/show/1288240
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=482
- 1.16.0
- Command-line:
- Add 'osc rmkpac' subcommand
- Add 'osc service precommit' subcommand, for use with git hook
- Add '--target-branch' filter option to 'git-obs pr list'
- Add '--reviewer' and '--review-state' options to 'git-obs pr list'
- Add '--no-draft' filter option to 'git-obs pr list'
- Set limit=0 to disable pagination in all relevant git-obs subcommands
- Improve help of the 'git-obs login' subcommands
- Update 'git-obs login {add,update}' to check the gitea token format
- Fix 'osc fork' when <attributes/> in the source project is empty
- Fix handling env in tests for 'osc vc'
- Fix how GitStore reads project from the parent directory
- Fix 'git-obs pr create' with multistring EDITOR
- Improve handling exceptions in 'git-obs' command
- Improve message in 301: Moved Permanently error in git-obs
- Improve git-obs to read credentials from env variables
- Remove commas from the list of request IDs in the superseding prompt in 'osc sr'
- Connection:
- Fix git-obs connection for urllib3 v1 by overriding the default timeout
- Library:
- Add troubleshooting info to gitea_api.Login.DoesNotExist message
- Add 'min_key_length' argument to KeyValueTable to enforce the minimal length of the first column
- Fix implicit optionals in type hints to make code PEP 484 compliant
- Don't crash when OBS API returns None as request description
- Fix TypeError in response_to_exception() in gitea_api
OBS-URL: https://build.opensuse.org/request/show/1278577
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=479
- 1.15.0
- Command-line:
- Improve 'osc fork' to follow the devel package specified in the 'OBS:RejectBranch' attribute
- Hotfix 'osc fork' failures of devel project users
- Change 'osc fork' to print an error rather than raising an exception
- Fix setting parent remote in 'git-obs repo clone'
- Extend 'osc build' to read build project from Gitea: <owner>/_ObsPrj, project.build file
- Fix 'osc build' when working with sources from git, when .osc is not available
- Fix crash in 'osc build --host'
- Fix rendering help output by adding the complete docstring of the commands
- Add commented git status to the 'git-obs pr create' message
- When doing an mr from a working copy check for unchecked modifications
- Consolidate working copy modification check dialog into a function
- Connection:
- Change a debug message to a warning if ssh-keygen is not available
- Add explanatory message to ignore the signature auth warning when not using SSH keys for auth
- Library:
- Implement handling of updateinfo.xml and _modulemd.yaml files
- Fix working with _subdirs when detecting packages that are subdirectories in a git project
- Fix canonname handling when querying a downloaded package
- Add obs_api.Attributes model
- Add 'quiet' and 'branch' options to gitea_api.Repo.clone()
- Fix GitStore by parsing git urls with obs_api.Git.urlparse()
- Add gitea_api.Git.urlparse() for parsing git urls
- Change gitea_api.Config.url_to_hostname() to also try matching only a hostname instead of full Gitea URL
- Rename get_parser() functions to argparse_manpage_get_parser() to clarify their purpose
- Refactor the validity check of cached binaries
- Other:
- Update git-obs-quickstart doc with more detailed info on creating tokens
- Spec:
- Recommend obs-scm-bridge
- Build git-obs man page
OBS-URL: https://build.opensuse.org/request/show/1267068
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=476
- 1.14.0
- Command-line:
- Improve 'osc fork' command to support also forking projects managed in git
- Extend 'osc fork' command with '--target-project' and '--target-package' options
- Enable shell completion of various 'git-obs' arguments and options
- Fix 'git-obs pr create --target-branch'
- Fix 'osc fork' crash in print_gitea_settings()
- Use -A/--apiurl specified on the command-line even if running from a checkout
- Assume openSUSE:Factory if project cannot be determined in 'osc build' command
- Change 'osc whatdependson' command to take multiple '-M' options incl. wildcards
- Fix diff highlighting
- Library:
- Set pacsuffix='deb' if binarytype=='deb'
- Add scmsync element to meta template
- Add missing project_separator substitutions
- Fix call os.userexpand() on gitea_api.Config() path argument
- Fix adding arguments to the argument parser so they work with argcomplete
- Fix MultibuildFlavorResolver to consider an empty flavor during glob match
- Fix MultibuildFlavorResolver to work with <package> _multibuild elements
- Remove superfluous setting of apiurl from 'osc fork'
- Mute mypy errors on field property assignment
- Add type hint to XmlModel.XML_TAG
- Support new 'X | None' union syntax in field types
- Other:
- Fix 'git-obs login add' command invocation in git-obs-quickstart documentation
- Spec:
- Recommends: python3-argcomplete for git-obs
OBS-URL: https://build.opensuse.org/request/show/1254826
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=473
- 1.13.0
- Command-line:
- Add 'osc fork' command for forking a package with sources managed in Gitea
- Add 'git-obs pr review' command
- Allow 'git-obs login' subcommands to prompt for Gitea tokens
- Fix 'osc checkout' command to support deleted packages incl. revisions
- Update 'osc rpmlint' command by adding help message for invoking command in PKG dir
- Add '--multibuild-package' option to 'osc rpmlint' command
- Library:
- Change how git projects and packages are detected
- Change show_project_sourceinfo() to split a huge request into many and join the results to workaround GET limitations
- Make 'rev' option in ScmsyncObsinfo.from_api() optional
- Make GitObsCommand.gitea_{conf,login,conf} properties writable
- Fix local building of deb dockerfile
- Fix getting scm_url from scmsync_obsinfo that has subdir set
- Fix or silence pylint errors
- Support 'enabled' field in tokens
- Highlight trailing whitespaces in diffs
- Fix missing spaces in help string
- Other:
- Add git-obs Quickstart documentation and man page
OBS-URL: https://build.opensuse.org/request/show/1249622
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=466
- 1.12.1
- Command-line:
- Improve 'maintenancerequest' command to inherit description from superseded request
- Library:
- Tell the build script to disable repos/containers handling for normal builds
- Improve detecting git packages, use .osc metadata from project in parent directory
- Fix retrieving apiurl from git repositories in get_api_url() in the command-line code
- Fix typo in core.binary() that caused text files being detected as binary
- Improve core.binary() by always considering data that contains \0 binary
- Fix assembling scm_url when scmsync_obsinfo.revision is None
OBS-URL: https://build.opensuse.org/request/show/1245662
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=464
- 1.11.0
- Command-line:
- Add hint how to deal with scmsync-nobranch scenarios
- Speed loading commands up
- Fix 'log' command to work correctly with --meta --patch options
- Document that 'status' command prints unmodified files in verbose output
- Hide progressbar.Bar widget after ProgressBar has completed
- Avoid printing urlquoted file names in 'getbinaries' command
- Configuration:
- Mute oscrc permissions warning when there's no password set
- Connection:
- Save session cookie even if a request fails
- Library:
- Fix local building in git projects
- Extend xml.etree.ElementTree.ParseError output with a snippet of broken XML
- Sync ScmsyncObsinfo with obs-scm-bridge
- Move running obs_scm_bridge into run_obs_scm_bridge() function
- Convert remaining makeurl() query parameters from deprecated string to dict
- Add more operators to XPathQuery
- Make 'title' and 'description' fields optional in the Package model
- Fix progress bar code to support progressbar2
- Support LoongArch64 architecture
- Mute pylint errors in show_package_disabled_repos() that are false-positives
- Fix another bytes/unicode issues in core.link_pac() by replacing ElementTree code with XML models
- Fix handling 'lock' field in 'Package' model
- Fix handling SimpleFlag model
- Extend RequestActionSource with 'repository' attribute
- Load most of the modules in commandline.py on-demand
- Fix traceback in 'linkpac --disable-build'
- Spec:
- Add conflict with older versions of obs-service-source_validator to ensure that version compatible with .osc store 2.0 is installed
OBS-URL: https://build.opensuse.org/request/show/1235608
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=458
- 1.10.1
- Command-line:
- Fix crash in 'build' command due to undefined 'build_root' variable
- Spec:
- Add missing python3-ruamel.yaml BuildRequires
- Fix rpmlint error about creating the /usr/libexec/git/obs symlink
- 1.10.0
- Command-line:
- New git-obs executable with several subcommands
- Support parameters on token triggers
- Change 'update' command to treat empty '.osc/_in_update/_files' as missing
- Change 'checkout' command to allow checkout obs imported sources of scmsync sources
- Change 'creq' command to allow specifying source and target repository
- Change the help output to determine executable name from the command-line arguments
- Add '--no-timestamps' parameter to 'build' command
- Fix 'token' command to avoid crash when a wipe token exists
- Fix crash in 'results' command by skipping non-status elements in project results
- Fix crash in 'build' command when building with --local-package --alternative-project from a locally initialized .osc package
- Print buildroot directory when build or chroot finishes
- Library:
- Add 'gitea_api' module
- Support the mkosi build type
- Support copy of scmsync packages
- Support Dockerfile.* in _multibuild packages
- Implement obs_api.Status.data property that returns status data as a dictionary
- Implement obs_api.Package.cmd_fork()
- Fix meter by setting default of use_pb_fallback to False
- Fix store migration from 1.0 to 2.0 when there is a 'sources' file that would conflict with 'sources' directory
- Fix revision'd checkout of scmsync package
OBS-URL: https://build.opensuse.org/request/show/1222744
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=456
- 1.9.2
- Command-line:
- Fix 'resolved' command to skip subdirectories in package checkouts
- Fix 'comment' command to resolve project name
- Implement meter.SimpleTextMeter that prints what's being downloaded
- Connection:
- Use configured 'http_headers' in HTTP requests
- Library:
- Fix storing _buildinfo and _buildconfig files in .osc rather than among the source files
- Use findtext() instead of find().text
- Spec:
- Recommend python3-zstandard to support opening control.tar.zst
OBS-URL: https://build.opensuse.org/request/show/1202739
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=454
- 1.9.1
- Command-line:
- Add 'createrequest release' subcommand
- Change 'review list' command to omit requests with 'declined' state
- Fix `osc build --local-package`
- Fix typos
- Library:
- Fix extraction of the 'ar' archives when they don't contain header with long filenames
- Fix iterating through arch_list in core.get_repos_of_project()
- Check for None & len() of ET.Element instead of bool() in PackageBase.get_meta_value()
- Spec:
- Replace 'setup.py test' that was removed in setuptools 72 with 'python3 -m unittest'
OBS-URL: https://build.opensuse.org/request/show/1196283
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=452
- 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
- 1.8.0
- 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/request/show/1183845
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/osc?expand=0&rev=442