This commit is contained in:
Vinícius Moreira
2019-10-11 11:37:37 -03:00
committed by GitHub
8 changed files with 60 additions and 17 deletions

View File

@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [0.6.3] 2019-10-11
### Fixes
- AUR update check for some scenarios
- table not showing some update versions due to a strange Python String comparison behavior ( e.g: the string version '0.1.90' is being handled as higher than '0.1.120' )
## [0.6.2] 2019-10-02
### Improvements
- Update notifications showing the number of updates by type as well ( if they are from more than one packaging type )

View File

@@ -1,4 +1,4 @@
__version__ = '0.6.2'
__version__ = '0.6.3'
__app_name__ = 'bauh'
import os

View File

@@ -7,6 +7,8 @@ from bauh.gems.arch.model import ArchPackage
URL_PKG_DOWNLOAD = 'https://aur.archlinux.org/{}'
RE_LETTERS = re.compile(r'\.([a-zA-Z]+)-\d+$')
RE_ANY_LETTER = re.compile(r'[a-zA-Z]')
RE_VERSION_DELS = re.compile(r'[.:#@\-_]')
RE_SFX = ('r', 're', 'release')
GA_SFX = ('ga', 'ge')
@@ -74,8 +76,26 @@ class ArchDataMapper:
return nlatest > nversion
return latest_version > version
latest_split = RE_VERSION_DELS.split(latest_version)
version_split = RE_VERSION_DELS.split(version)
for idx in range(len(latest_split)):
if idx < len(version_split):
latest_part = latest_split[idx]
version_part = version_split[idx]
if latest_part != version_part:
if RE_ANY_LETTER.findall(latest_part) or RE_ANY_LETTER.findall(version_part):
return latest_part > version_part
else:
dif = int(latest_part) - int(version_part)
if dif > 0:
return True
elif dif < 0:
return False
else:
continue
return False
def fill_package_build(self, pkg: ArchPackage):

View File

@@ -25,25 +25,28 @@ def load_managers(locale: str, context: ApplicationContext, config: Configuratio
for f in os.scandir(ROOT_DIR + '/gems'):
if f.is_dir() and f.name != '__pycache__':
module = pkgutil.find_loader('bauh.gems.{}.controller'.format(f.name)).load_module()
loader = pkgutil.find_loader('bauh.gems.{}.controller'.format(f.name))
manager_class = find_manager(module)
if loader:
module = loader.load_module()
if manager_class:
if locale:
locale_path = '{}/resources/locale'.format(f.path)
manager_class = find_manager(module)
if os.path.exists(locale_path):
context.i18n.update(util.get_locale_keys(locale, locale_path)[1])
if manager_class:
if locale:
locale_path = '{}/resources/locale'.format(f.path)
man = manager_class(context=context)
if os.path.exists(locale_path):
context.i18n.update(util.get_locale_keys(locale, locale_path)[1])
if config.enabled_gems is None:
man.set_enabled(man.is_default_enabled())
else:
man.set_enabled(f.name in config.enabled_gems)
man = manager_class(context=context)
managers.append(man)
if config.enabled_gems is None:
man.set_enabled(man.is_default_enabled())
else:
man.set_enabled(f.name in config.enabled_gems)
managers.append(man)
return managers

View File

@@ -298,7 +298,7 @@ class AppsTable(QTableWidget):
label_version.setStyleSheet("color: #20A435; font-weight: bold")
tooltip = self.i18n['version.installed_outdated']
if pkg.model.installed and pkg.model.update and pkg.model.version and pkg.model.latest_version and pkg.model.version < pkg.model.latest_version:
if pkg.model.installed and pkg.model.update and pkg.model.version and pkg.model.latest_version and pkg.model.version != pkg.model.latest_version:
tooltip = '{}. {}: {}'.format(tooltip, self.i18n['version.latest'], pkg.model.latest_version)
label_version.setText(label_version.text() + ' > {}'.format(pkg.model.latest_version))

View File

@@ -59,7 +59,7 @@ notification.downgrade.failed=Erro ao reverter versão
about.info.desc=Interface gráfica para gerenciamento de aplicativos Linux
about.info.link=Mais informações em
about.info.license=Licença gratuita
about.info.rate=Se essa ferramenta é útil para você, dê uma estrela no Github para mantê-la de pé
about.info.rate=Se essa ferramenta é útil para você, dê uma estrela no Github para mantê-la em
yes=sim
no=não
version.updated=atualizada

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@@ -17,6 +17,21 @@ class ArchDataMapperTest(TestCase):
self.assertTrue(ArchDataMapper.check_update('1.5.1-1', '1.5.1-2'))
self.assertTrue(ArchDataMapper.check_update('1.5.1-1', '2.0.0-1'))
self.assertFalse(ArchDataMapper.check_update('2.0.0-1', '1.5.1-1'))
self.assertTrue(ArchDataMapper.check_update('77.0.3865.90-1', '77.0.3865.120-1'))
self.assertTrue(ArchDataMapper.check_update('77.0.3865.90-1', '77.0.3865.90-2'))
self.assertFalse(ArchDataMapper.check_update('77.0.3865.900-1', '77.0.3865.120-1'))
self.assertTrue(ArchDataMapper.check_update('77.0.3865.120-1', '77.0.3865.900-1'))
self.assertFalse(ArchDataMapper.check_update('77.0.3865.120-1', '77.0.3865.90-1'))
self.assertTrue(ArchDataMapper.check_update('77.0.3865.a-1', '77.0.3865.b-1'))
self.assertFalse(ArchDataMapper.check_update('77.0.b.0-1', '77.0.a.1-1'))
def test_check_update_no_suffix_3_x_2_digits(self):
self.assertTrue(ArchDataMapper.check_update('1.0.0-1', '1.1-1'))
self.assertFalse(ArchDataMapper.check_update('1.2.0-1', '1.1-1'))
def test_check_update_no_suffix_3_x_1_digits(self):
self.assertTrue(ArchDataMapper.check_update('1.0.0-1', '2-1'))
self.assertFalse(ArchDataMapper.check_update('2-1', '1.1-1'))
def test_check_update_release(self):
# RE