Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package picard for openSUSE:Factory checked in at 2022-12-11 17:16:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/picard (Old) and /work/SRC/openSUSE:Factory/.picard.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "picard" Sun Dec 11 17:16:35 2022 rev:64 rq:1041855 version:2.8.5 Changes: -------- --- /work/SRC/openSUSE:Factory/picard/picard.changes 2022-11-30 15:01:25.133863157 +0100 +++ /work/SRC/openSUSE:Factory/.picard.new.1835/picard.changes 2022-12-11 17:16:36.785873419 +0100 @@ -1,0 +2,8 @@ +Tue Dec 6 13:48:58 UTC 2022 - Paolo Stivanin <[email protected]> + +- Update to 2.8.5: + * Relative paths for cover art file names no longer work + * PICARD-2593 - Toolbar icon text disappears when saving options + * PICARD-2596 - "Show icons in menus" option is applied without saving options + +------------------------------------------------------------------- Old: ---- picard-2.8.4.tar.gz New: ---- picard-2.8.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ picard.spec ++++++ --- /var/tmp/diff_new_pack.LHMVti/_old 2022-12-11 17:16:37.333876472 +0100 +++ /var/tmp/diff_new_pack.LHMVti/_new 2022-12-11 17:16:37.337876494 +0100 @@ -17,7 +17,7 @@ Name: picard -Version: 2.8.4 +Version: 2.8.5 Release: 0 Summary: The Next Generation MusicBrainz Tagger License: GPL-2.0-or-later ++++++ picard-2.8.4.tar.gz -> picard-2.8.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8.4/.github/workflows/pypi-release.yml new/picard-release-2.8.5/.github/workflows/pypi-release.yml --- old/picard-release-2.8.4/.github/workflows/pypi-release.yml 2022-11-22 16:26:36.000000000 +0100 +++ new/picard-release-2.8.5/.github/workflows/pypi-release.yml 2022-12-06 07:54:05.000000000 +0100 @@ -74,11 +74,7 @@ fail-fast: false matrix: os: [macos-10.15, windows-2019] - python-version: ['3.6', '3.7', '3.8', '3.9', '3.10'] - exclude: - # pyobjc is not yet compatible with Python 3.10 - - os: macos-10.15 - python-version: '3.10' + python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8.4/.github/workflows/run-tests.yml new/picard-release-2.8.5/.github/workflows/run-tests.yml --- old/picard-release-2.8.4/.github/workflows/run-tests.yml 2022-11-22 16:26:36.000000000 +0100 +++ new/picard-release-2.8.5/.github/workflows/run-tests.yml 2022-12-06 07:54:05.000000000 +0100 @@ -8,13 +8,10 @@ strategy: matrix: os: [macos-latest, ubuntu-latest, windows-2019] - python-version: ['3.6', '3.7', '3.8', '3.9', '3.10'] - exclude: - - os: macos-latest - python-version: '3.6' + python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] include: - os: macos-10.15 - python-version: '3.6' + python-version: '3.7' env: CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} @@ -92,7 +89,7 @@ strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] - python-version: ['3.8'] + python-version: ['3.8', '3.11'] steps: - uses: actions/checkout@v3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8.4/NEWS.md new/picard-release-2.8.5/NEWS.md --- old/picard-release-2.8.4/NEWS.md 2022-11-22 16:26:36.000000000 +0100 +++ new/picard-release-2.8.5/NEWS.md 2022-12-06 07:54:05.000000000 +0100 @@ -1,3 +1,12 @@ +# Version 2.8.5 - 2022-12-06 + +## Bugfixes + +- [PICARD-2590](https://tickets.metabrainz.org/browse/PICARD-2590) - Relative paths for cover art file names no longer work +- [PICARD-2593](https://tickets.metabrainz.org/browse/PICARD-2593) - Toolbar icon text disappears when saving options +- [PICARD-2596](https://tickets.metabrainz.org/browse/PICARD-2596) - "Show icons in menus" option is applied without saving options + + # Version 2.8.4 - 2022-11-22 ## Bugfixes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8.4/picard/__init__.py new/picard-release-2.8.5/picard/__init__.py --- old/picard-release-2.8.4/picard/__init__.py 2022-11-22 16:26:36.000000000 +0100 +++ new/picard-release-2.8.5/picard/__init__.py 2022-12-06 07:54:05.000000000 +0100 @@ -42,7 +42,7 @@ PICARD_DISPLAY_NAME = "MusicBrainz Picard" PICARD_APP_ID = "org.musicbrainz.Picard" PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop" -PICARD_VERSION = Version(2, 8, 4, 'final', 0) +PICARD_VERSION = Version(2, 8, 5, 'final', 0) # optional build version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8.4/picard/coverart/image.py new/picard-release-2.8.5/picard/coverart/image.py --- old/picard-release-2.8.4/picard/coverart/image.py 2022-11-22 16:26:36.000000000 +0100 +++ new/picard-release-2.8.5/picard/coverart/image.py 2022-12-06 07:54:05.000000000 +0100 @@ -324,11 +324,17 @@ filename = script_to_filename(filename, metadata) if not filename: filename = DEFAULT_COVER_IMAGE_FILENAME - if is_absolute_path(filename): - dirname = os.path.dirname(filename) - filename = make_short_filename( - dirname, os.path.basename(filename), win_shorten_path=win_shorten_path) - filename = os.path.join(dirname, filename) + dirname = os.path.normpath(dirname) + if not is_absolute_path(filename): + filename = os.path.normpath(os.path.join(dirname, filename)) + try: + basedir = os.path.commonpath((dirname, os.path.dirname(filename))) + relpath = os.path.relpath(filename, start=basedir) + except ValueError: + basedir = os.path.dirname(filename) + relpath = os.path.basename(filename) + relpath = make_short_filename(basedir, relpath, win_shorten_path=win_shorten_path) + filename = os.path.join(basedir, relpath) filename = make_save_path(filename, win_compat=win_compat, mac_compat=IS_MACOS) return encode_filename(filename) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8.4/picard/ui/__init__.py new/picard-release-2.8.5/picard/ui/__init__.py --- old/picard-release-2.8.4/picard/ui/__init__.py 2022-11-22 16:26:36.000000000 +0100 +++ new/picard-release-2.8.5/picard/ui/__init__.py 2022-12-06 07:54:05.000000000 +0100 @@ -40,6 +40,7 @@ ) from picard.const import DOCS_BASE_URL from picard.const.sys import ( + IS_HAIKU, IS_MACOS, IS_WIN, ) @@ -53,6 +54,8 @@ FONT_FAMILY_MONOSPACE = 'Menlo' elif IS_WIN: FONT_FAMILY_MONOSPACE = 'Consolas' +elif IS_HAIKU: + FONT_FAMILY_MONOSPACE = 'Noto Sans Mono' else: FONT_FAMILY_MONOSPACE = 'Monospace' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8.4/picard/ui/options/interface.py new/picard-release-2.8.5/picard/ui/options/interface.py --- old/picard-release-2.8.4/picard/ui/options/interface.py 2022-11-22 16:26:36.000000000 +0100 +++ new/picard-release-2.8.5/picard/ui/options/interface.py 2022-12-06 07:54:05.000000000 +0100 @@ -223,7 +223,6 @@ self.ui.add_button.clicked.connect(self.add_to_toolbar) self.ui.insert_separator_button.clicked.connect(self.insert_separator) self.ui.remove_button.clicked.connect(self.remove_action) - self.ui.show_menu_icons.toggled.connect(self.tagger.enable_menu_icons) self.move_view = MoveableListView(self.ui.toolbar_layout_list, self.ui.up_button, self.ui.down_button, self.update_action_buttons) self.update_buttons = self.move_view.update_buttons @@ -255,6 +254,7 @@ config.setting["toolbar_show_labels"] = self.ui.toolbar_show_labels.isChecked() config.setting["toolbar_multiselect"] = self.ui.toolbar_multiselect.isChecked() config.setting["show_menu_icons"] = self.ui.show_menu_icons.isChecked() + self.tagger.enable_menu_icons(config.setting["show_menu_icons"]) config.setting["builtin_search"] = self.ui.builtin_search.isChecked() config.setting["use_adv_search_syntax"] = self.ui.use_adv_search_syntax.isChecked() config.setting["quit_confirmation"] = self.ui.quit_confirmation.isChecked() @@ -364,6 +364,7 @@ widget = widget.parent() # Call the main window's create toolbar method widget.create_action_toolbar() + widget.update_toolbar_style() widget.set_tab_order() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8.4/test/test_coverart_image.py new/picard-release-2.8.5/test/test_coverart_image.py --- old/picard-release-2.8.4/test/test_coverart_image.py 2022-11-22 16:26:36.000000000 +0100 +++ new/picard-release-2.8.5/test/test_coverart_image.py 2022-12-06 07:54:05.000000000 +0100 @@ -38,6 +38,7 @@ from picard.coverart.utils import Id3ImageType from picard.metadata import Metadata from picard.util import encode_filename +from picard.util.filenaming import WinPathTooLong def create_image(extra_data, types=None, support_types=False, @@ -53,6 +54,7 @@ class CoverArtImageTest(PicardTestCase): + def test_is_front_image_no_types(self): image = create_image(b'a') self.assertTrue(image.is_front_image()) @@ -186,6 +188,68 @@ self.assertEqual(2, counters[counter_filename]) +class CoverArtImageMakeFilenameTest(PicardTestCase): + def setUp(self): + super().setUp() + self.image = create_image(b'a', types=['back'], support_types=True) + self.metadata = Metadata() + self.set_config_values({ + 'windows_compatibility': False, + 'enabled_plugins': [], + 'ascii_filenames': False, + }) + + def compare_paths(self, path1, path2): + self.assertEqual( + encode_filename(os.path.normpath(path1)), + encode_filename(os.path.normpath(path2)), + ) + + def test_make_image_filename(self): + filename = self.image._make_image_filename("cover", "/music/albumart", + self.metadata, win_compat=False, win_shorten_path=False) + self.compare_paths('/music/albumart/cover', filename) + + def test_make_image_filename_absolute_path(self): + filename = self.image._make_image_filename("/foo/bar/cover", "/music/albumart", + self.metadata, win_compat=False, win_shorten_path=False) + self.compare_paths('/foo/bar/cover', filename) + + @unittest.skipUnless(IS_WIN, "windows test") + def test_make_image_filename_absolute_path_no_common_base(self): + filename = self.image._make_image_filename("D:/foo/cover", "C:/music", + self.metadata, win_compat=False, win_shorten_path=False) + self.compare_paths('D:\\foo\\cover', filename) + + def test_make_image_filename_script(self): + cover_script = '%album%-$if($eq(%coverart_maintype%,front),cover,%coverart_maintype%)' + self.metadata['album'] = 'TheAlbum' + filename = self.image._make_image_filename(cover_script, "/music/", + self.metadata, win_compat=False, win_shorten_path=False) + self.compare_paths('/music/TheAlbum-back', filename) + + def test_make_image_filename_save_path(self): + self.set_config_values({ + 'windows_compatibility': True, + }) + filename = self.image._make_image_filename(".co:ver", "/music/albumart", + self.metadata, win_compat=True, win_shorten_path=False) + self.compare_paths('/music/albumart/_co_ver', filename) + + def test_make_image_filename_win_shorten_path(self): + requested_path = "/" + 300 * "a" + "/cover" + expected_path = "/" + 226 * "a" + "/cover" + filename = self.image._make_image_filename(requested_path, "/music/albumart", + self.metadata, win_compat=False, win_shorten_path=True) + self.compare_paths(expected_path, filename) + + def test_make_image_filename_win_shorten_path_too_long_base_path(self): + base_path = '/' + 244*'a' + with self.assertRaises(WinPathTooLong): + self.image._make_image_filename("cover", base_path, + self.metadata, win_compat=False, win_shorten_path=True) + + class LocalFileCoverArtImageTest(PicardTestCase): def test_set_file_url(self): path = '/some/path/image.jpeg'
