- 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

- 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

- 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

- 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

- 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

- 1.0.1
  - Configuration:
    - Fix a cut&paste error in setting 'disable_hdrmd5_check' config option
  - Connection:
    - Set Content-Type of POST requests without data to 'application/x-www-form-urlencoded'

- 1.0.0
  - Command-line:
    - Use '.' as a wildcard that resolves to a project or a package name from the current working copy, for example 'osc rdiff ./. -c <num>'
    - Add 'create-pbuild-config' (cpc) command
    - Add '--disable-build' option to the 'branch' command
    - Add '--disable-build' option to the 'linkpac' command
    - Add '-X/--extra-pkgs-from' option to the 'build' command
    - Add '--add' option to the 'meta' command that appends new values to the existing values
    - Replace '-q/--hide-legend' option in 'prjresults' command with global '-q/--quiet' option
    - Replace '--debug' option in the 'getbinaries' command with '--debuginfo' to avoid conflicts with the global '--debug'
    - Replace '--verbose' option in the 'build' command with '--verbose-mode' to avoid conflicts with the global '--verbose'
    - Replace '--version' option with 'version' command
    - Enable forwarding requests to the parent projects in 'rq list -i' and 'sr accept' commands
    - Make use of '-M/--multibuild' option consistent across the commands
    - Enhance '--force' option in the 'commit' command to allow deleting packages even if other packages depend on them
    - Print URLs and xpaths in the debug rather than the verbose mode
    - Fix 'add' command for github /archive/ URLs
    - Fix 'buildhistory' command to produce proper output using build_table() and a CSV writer
    - Fix 'linkpac' command to avoid copying a lock from a locked package to the target package
    - Fix 'setlinkrev' command to write a log message on setting a revision
    - Fix 'submitrequest' command not to error out on using an alias to apiurl
    - Fix 'update' command on project level for scm packages
    - Fix '--mine' option in the 'request' command to show only requests created by the user
    - Fix the documentation url in the 'maintenancerequest' and 'createincident' commands
    - Remove '--skip-validation' option from the 'commit' command
    - Remove '--oldpkg', '--oldprj' options from the 'rdiff' command
    - Remove 'create', 'list', 'log', 'show', 'decline', 'accept', 'delete', 'revoke' subcommands from the 'submitrequest' command
    - Remove '--seperate-requests' option from the 'submitrequest' command
    - Remove '--raw' option from the 'develproject' command
    - Remove '--maintained' option from the 'search' command
    - Remove 'deleteprj' command
    - Remove 'deletepac' command
    - Remove 'editmeta' command
    - Remove 'results_meta' command
    - Remove 'rlog' command
    - Remove 'rprjresults' command
    - Remove 'rresults' command
  - Configuration:
    - Add 'project_separator' config option
    - Add 'disable_hdrmd5_check' config option to ignore hdrmd5 mismatches
    - Remove 'plaintext_passwd' config option
  - Library:
    - Add Store class that will replace store_{read,write}* functions
    - Remove 'GnomeKeyringCredentialsManager' and related code
    - Remove Request.get_creator() method
    - Replace unmaintained cmdln.py with a custom code based on argparse
    - Replace core.findpacs() with Package.from_paths() and Package.from_paths_nofail()
    - Drop Python 2 support, Python 3.6 is the lowest supported version
    - Code cleanups, following PEP 8 and the latest best practices now
    - Improve handling of hdrmd5 mismatches
    - Handle uncompressed Debian packages
    - Replace arbitrary XML escaping code with xml_escape()
    - Fix race condition in using .old directory in Serviceinfo.execute()
    - Fix manual run of source service
  - Connection:
    - Switch http_request() to urllib3 and cryptography (drop M2Crypto dependency)
    - Warn when using HTTP connection, make HTTPS the default
    - Send HTTP header Accept: application/xml
    - Wait between retries
  - Authentication:
    - Support signature (ssh) auth including ssh-agent forwarding
    - Lock cookiejar to prevent unnecessary signature auth by waiting for a session cookie
    - Print user and apiurl when prompting for a password
    - Fix a crash when deleting a password
  - Known issues:
    - Commandline option values cannot start with '-', for example: osc build -x -vim
      Background: This is a limitation of underlying Python's argparse
      How to fix: Use '=' to join the option with its value: osc build -x=-vim
      URL: https://github.com/openSUSE/osc/issues/1227
    - Commandline positional arguments no longer recognize '/' as a universal argument separator
      Background: This is an attempt to bring some consistency into argument parsing, reducing number of separators and value combinations
      How to fix: Separate <project>/<package> from <repo>/<arch> with a space
      URL: https://github.com/openSUSE/osc/issues/1272
