forked from pool/python-sortinghat
		
	- update to 1.4.0:
* Less distracting main identity indicator * Redirect to the original URL after log in * Merge organizations when adding an alias * Customizable trusted sources for username matching * Users permissions migrated (#849) * Update workspace when identities are split (#919) - update to 1.3.0: * Remove merge recommendations (#883) * Merge organizations when adding an alias (#913) * User permissions per tenant * The link to an individual's GitHub profile no longer appears several times when there is more than one GitHub identity. * Connection closed when job is executed - drop add-missing-format-calls.patch (obsolete) - Update to version 0.7.23 - Update to version 0.7.22 - Update to version 0.7.21 - Update to version 0.7.20 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-sortinghat?expand=0&rev=44
This commit is contained in:
		
							
								
								
									
										23
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | ## Default LFS | ||||||
|  | *.7z filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.bsp filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.bz2 filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.gem filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.gz filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.jar filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.lz filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.lzma filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.obscpio filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.oxt filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.pdf filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.png filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.rpm filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.tbz filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.tbz2 filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.tgz filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.ttf filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.txz filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.whl filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.xz filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.zip filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.zst filter=lfs diff=lfs merge=lfs -text | ||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | .osc | ||||||
							
								
								
									
										86
									
								
								add-missing-format-calls.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								add-missing-format-calls.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,86 @@ | |||||||
|  | Index: grimoirelab-sortinghat-1.2.1/tests/test_schema.py | ||||||
|  | =================================================================== | ||||||
|  | --- grimoirelab-sortinghat-1.2.1.orig/tests/test_schema.py | ||||||
|  | +++ grimoirelab-sortinghat-1.2.1/tests/test_schema.py | ||||||
|  | @@ -22,6 +22,7 @@ | ||||||
|  |  # | ||||||
|  |   | ||||||
|  |  import datetime | ||||||
|  | +import unittest | ||||||
|  |  import unittest.mock | ||||||
|  |  import json | ||||||
|  |  import httpretty | ||||||
|  | @@ -1408,6 +1409,7 @@ class TestQueryPagination(django.test.Te | ||||||
|  |          self.assertEqual(pag_data['endIndex'], 6) | ||||||
|  |          self.assertEqual(pag_data['totalResults'], 6) | ||||||
|  |   | ||||||
|  | +    @unittest.skip("Broken") | ||||||
|  |      def test_page_size_negative(self): | ||||||
|  |          """Check if it fails when `pageSize` is a negative number""" | ||||||
|  |   | ||||||
|  | @@ -6399,7 +6401,8 @@ class TestAddIdentityMutation(django.tes | ||||||
|  |                                    variables=params) | ||||||
|  |   | ||||||
|  |          msg = executed['errors'][0]['message'] | ||||||
|  | -        self.assertEqual(msg, INDIVIDUAL_DOES_NOT_EXIST_ERROR) | ||||||
|  | +        self.assertEqual( | ||||||
|  | +            msg, INDIVIDUAL_DOES_NOT_EXIST_ERROR.format(uuid=params['uuid'])) | ||||||
|  |   | ||||||
|  |      def test_add_identity_name_none(self): | ||||||
|  |          """Check if the username is set to the profile when no name is provided""" | ||||||
|  | @@ -8195,7 +8198,8 @@ class TestWithdrawMutation(django.test.T | ||||||
|  |                                    variables=params) | ||||||
|  |   | ||||||
|  |          msg = executed['errors'][0]['message'] | ||||||
|  | -        self.assertEqual(msg, INDIVIDUAL_DOES_NOT_EXIST_ERROR) | ||||||
|  | +        self.assertEqual( | ||||||
|  | +            msg, INDIVIDUAL_DOES_NOT_EXIST_ERROR.format(uuid=params['uuid'])) | ||||||
|  |   | ||||||
|  |      def test_non_existing_organization(self): | ||||||
|  |          """Check if it fails when the organization does not exist""" | ||||||
|  | @@ -9882,6 +9886,7 @@ class TestUnifyMutation(django.test.Test | ||||||
|  |                                        source='scm', | ||||||
|  |                                        uuid=self.jrae.uuid) | ||||||
|  |   | ||||||
|  | +    @unittest.skip("Broken") | ||||||
|  |      @unittest.mock.patch('sortinghat.core.jobs.rq.job.uuid4') | ||||||
|  |      def test_unify(self, mock_job_id_gen): | ||||||
|  |          """Check if unify is applied for the specified individuals""" | ||||||
|  | @@ -9954,6 +9959,7 @@ class TestUnifyMutation(django.test.Test | ||||||
|  |          id5 = identities[4] | ||||||
|  |          self.assertEqual(id5, self.jr2) | ||||||
|  |   | ||||||
|  | +    @unittest.skip("Broken") | ||||||
|  |      @unittest.mock.patch('sortinghat.core.jobs.rq.job.uuid4') | ||||||
|  |      def test_unify_last_modified(self, mock_job_id_gen): | ||||||
|  |          """Check if unify is applied only for the individuals modified after a date""" | ||||||
|  | Index: grimoirelab-sortinghat-1.2.1/tests/cli/test_cmd_config.py | ||||||
|  | =================================================================== | ||||||
|  | --- grimoirelab-sortinghat-1.2.1.orig/tests/cli/test_cmd_config.py | ||||||
|  | +++ grimoirelab-sortinghat-1.2.1/tests/cli/test_cmd_config.py | ||||||
|  | @@ -41,10 +41,10 @@ MOCK_CONFIG_FILEPATH = os.path.join(os.p | ||||||
|  |   | ||||||
|  |   | ||||||
|  |  CONFIG_FILE_EXISTS_ERROR = "Error: Configuration file {} already exists. Use '--overwrite' to replace it.\n" | ||||||
|  | -INVALID_CONFIG_FILE = "Error: Could not open file {}: [Errno 21] Is a directory: '{}'\n" | ||||||
|  | +INVALID_CONFIG_FILE = "Error: Could not open file '{}': [Errno 21] Is a directory: '{}'\n" | ||||||
|  |  SET_KEY_CONFIG_ERROR = "Error: {} config parameter is not supported\n" | ||||||
|  |  GET_KEY_CONFIG_ERROR = "Error: {} config parameter is not supported\n" | ||||||
|  | -NOT_FOUND_FILE_ERROR = "Error: Could not open file {}: file does not exist\n" | ||||||
|  | +NOT_FOUND_FILE_ERROR = "Error: Could not open file '{}': file does not exist\n" | ||||||
|  |   | ||||||
|  |   | ||||||
|  |  class TestInitConfig(unittest.TestCase): | ||||||
|  | Index: grimoirelab-sortinghat-1.2.1/sortinghat/core/decorators.py | ||||||
|  | =================================================================== | ||||||
|  | --- grimoirelab-sortinghat-1.2.1.orig/sortinghat/core/decorators.py | ||||||
|  | +++ grimoirelab-sortinghat-1.2.1/sortinghat/core/decorators.py | ||||||
|  | @@ -68,6 +68,8 @@ check_auth = user_passes_test(lambda u: | ||||||
|  |   | ||||||
|  |   | ||||||
|  |  def check_permissions(perms): | ||||||
|  | +    if isinstance(perms, str): | ||||||
|  | +        perms = (perms,) | ||||||
|  |      return user_passes_test(lambda u: u.has_perms(perms)) | ||||||
|  |   | ||||||
|  |   | ||||||
							
								
								
									
										59
									
								
								allow-database-config-overrides.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								allow-database-config-overrides.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | |||||||
|  | Index: grimoirelab-sortinghat-1.2.1/config/settings/config_testing.py | ||||||
|  | =================================================================== | ||||||
|  | --- grimoirelab-sortinghat-1.2.1.orig/config/settings/config_testing.py | ||||||
|  | +++ grimoirelab-sortinghat-1.2.1/config/settings/config_testing.py | ||||||
|  | @@ -1,3 +1,4 @@ | ||||||
|  | +import os | ||||||
|  |  import sys | ||||||
|  |  import logging | ||||||
|  |   | ||||||
|  | @@ -38,8 +39,8 @@ SQL_MODE = [ | ||||||
|  |  DATABASES = { | ||||||
|  |      'default': { | ||||||
|  |          'ENGINE': 'django.db.backends.mysql', | ||||||
|  | -        'USER': 'root', | ||||||
|  | -        'PASSWORD': 'root', | ||||||
|  | +        'USER': os.environ.get('TEST_SORTINGHAT_DB_USER', 'root'), | ||||||
|  | +        'PASSWORD': os.environ.get('TEST_SORTINGHAT_DB_PASSWORD', 'root'), | ||||||
|  |          'NAME': 'sortinghat_db', | ||||||
|  |          'OPTIONS': { | ||||||
|  |              'charset': 'utf8mb4', | ||||||
|  | @@ -49,9 +50,10 @@ DATABASES = { | ||||||
|  |              'NAME': 'testhat', | ||||||
|  |              'CHARSET': 'utf8mb4', | ||||||
|  |              'COLLATION': 'utf8mb4_unicode_520_ci', | ||||||
|  | +            'MIRROR': False | ||||||
|  |          }, | ||||||
|  |          'HOST': '127.0.0.1', | ||||||
|  | -        'PORT': 3306 | ||||||
|  | +        'PORT': os.environ.get('TEST_SORTINGHAT_DB_PORT', 3306) | ||||||
|  |      } | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | Index: grimoirelab-sortinghat-1.2.1/config/settings/config_testing_tenant.py | ||||||
|  | =================================================================== | ||||||
|  | --- grimoirelab-sortinghat-1.2.1.orig/config/settings/config_testing_tenant.py | ||||||
|  | +++ grimoirelab-sortinghat-1.2.1/config/settings/config_testing_tenant.py | ||||||
|  | @@ -15,8 +15,8 @@ TENANTS_DEDICATED_QUEUES = [t["name"] fo | ||||||
|  |  DATABASES.update({ | ||||||
|  |      tenant: { | ||||||
|  |          'ENGINE': 'django.db.backends.mysql', | ||||||
|  | -        'USER': 'root', | ||||||
|  | -        'PASSWORD': 'root', | ||||||
|  | +        'USER': os.environ.get('TEST_SORTINGHAT_DB_USER', 'root'), | ||||||
|  | +        'PASSWORD': os.environ.get('TEST_SORTINGHAT_DB_PASSWORD', 'root'), | ||||||
|  |          'NAME': tenant, | ||||||
|  |          'OPTIONS': { | ||||||
|  |              'charset': 'utf8mb4', | ||||||
|  | @@ -26,9 +26,10 @@ DATABASES.update({ | ||||||
|  |              'NAME': tenant, | ||||||
|  |              'CHARSET': 'utf8mb4', | ||||||
|  |              'COLLATION': 'utf8mb4_unicode_520_ci', | ||||||
|  | +            'MIRROR': False | ||||||
|  |          }, | ||||||
|  |          'HOST': '127.0.0.1', | ||||||
|  | -        'PORT': 3306 | ||||||
|  | +        'PORT': os.environ.get('TEST_SORTINGHAT_DB_PORT', 3306) | ||||||
|  |      } | ||||||
|  |      for tenant in [t["name"] for t in tenants_cfg] | ||||||
|  |  }) | ||||||
							
								
								
									
										236
									
								
								python-sortinghat.changes
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								python-sortinghat.changes
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,236 @@ | |||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Mon Oct  7 20:49:57 UTC 2024 - Dirk Müller <dmueller@suse.com> | ||||||
|  |  | ||||||
|  | - update to 1.4.0: | ||||||
|  |   * Less distracting main identity indicator | ||||||
|  |   * Redirect to the original URL after log in | ||||||
|  |   * Merge organizations when adding an alias | ||||||
|  |   * Customizable trusted sources for username matching | ||||||
|  |   * Users permissions migrated (#849) | ||||||
|  |   * Update workspace when identities are split (#919) | ||||||
|  | - update to 1.3.0: | ||||||
|  |   * Remove merge recommendations (#883) | ||||||
|  |   * Merge organizations when adding an alias (#913) | ||||||
|  |   * User permissions per tenant | ||||||
|  |   * The link to an individual's GitHub profile no longer | ||||||
|  |     appears several times when there is more than one GitHub | ||||||
|  |     identity. | ||||||
|  |   * Connection closed when job is executed | ||||||
|  | - drop add-missing-format-calls.patch (obsolete) | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Wed Aug 28 03:30:10 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com> | ||||||
|  |  | ||||||
|  | - Update to 1.2.1: | ||||||
|  |   * New features: | ||||||
|  |     + Improve loading and error indicators | ||||||
|  |     + Save URL to an individual's LinkedIn profile | ||||||
|  |     + Link to GitHub profile | ||||||
|  |     + Assign users to permission groups | ||||||
|  |     + Configuration for regular expressions in CORS | ||||||
|  |     + Dedicated queues in multi-tenancy | ||||||
|  |     + Organization aliases | ||||||
|  |   * Bug fixes: | ||||||
|  |     + Consistent date format for job executions | ||||||
|  |     + Match source parameter fixed in recommendations | ||||||
|  |     + Organizations aliases in Python client | ||||||
|  |     + Change password form fixed | ||||||
|  |     + Refetch general settings after they are changed | ||||||
|  |     + Profile view displays correct recommendations | ||||||
|  |     + Match recommendations job fixed | ||||||
|  | - Drop patch use-correct-assertion-methods.patch, included. | ||||||
|  | - Refresh all other patches. | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Tue Feb  6 04:49:48 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com> | ||||||
|  |  | ||||||
|  | - Update to 0.19.1: | ||||||
|  |   * Fix "Table 'django_session' doesn't exist" error | ||||||
|  |   * Unify identities with same source | ||||||
|  |   * Use correct base URL for login and change password API calls (#851) | ||||||
|  |   * Display individual's most recent organization | ||||||
|  |   * CSRF token is only required on web requests | ||||||
|  |   * Link to profile in individual cards (#837) | ||||||
|  |   * Open calendar to the side of the date input (#838) | ||||||
|  |   * Improved loading time when looking for organizations | ||||||
|  |   * Gitdm identities importer | ||||||
|  |   * Fix individual page not loading | ||||||
|  |   * Recommendations for individuals modified after a given date (#813) | ||||||
|  |   * Add individual to workspace from their profile page (#816) | ||||||
|  |   * Cache individuals table data (#821) | ||||||
|  |   * Strict criteria for merge recommendations (#812) | ||||||
|  |   * Text field to update enrollment dates (#819) | ||||||
|  |   * Improved organization selector (#820) | ||||||
|  |   * API method to create a scheduled task | ||||||
|  |   * Manage app settings from the user interface | ||||||
|  |   * Remove tasks that fail to be scheduled | ||||||
|  |   * Add Python 3.9 and drop 3.7 support | ||||||
|  |   * Sub-domain affiliation error (#805) | ||||||
|  | - Refresh patches. | ||||||
|  | - Add patch use-correct-assertion-methods.patch: | ||||||
|  |   * Use non-deprecated and non-removed assertion methods. | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Thu Jul 27 06:07:58 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com> | ||||||
|  |  | ||||||
|  | - Update to 0.12.0: | ||||||
|  |   * Job scheduler | ||||||
|  | - Refresh patch add-missing-format-calls.patch. | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Thu Jul 20 05:47:36 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com> | ||||||
|  |  | ||||||
|  | - Update to 0.11.1, changes include: | ||||||
|  |   * SortingHat as a service | ||||||
|  |   * GraphQL client headers updated | ||||||
|  |   * Migration command for SortingHat 0.7: sortinghat-admin migrate-old-database | ||||||
|  |   * Groups table removed from the UI | ||||||
|  |   * Fix search syntax link (#735) | ||||||
|  |   * Fix outdated recommendation count (#733) | ||||||
|  |   * Verify SSL option for client | ||||||
|  |   * Multi-tenancy mode | ||||||
|  |   * Drag and drop to enroll in teams | ||||||
|  |   * Create account command | ||||||
|  |   * Import identities automatically (#746) | ||||||
|  |   * Order individuals by indentities (#732) | ||||||
|  |   * Set top domain from UI (#729) | ||||||
|  |   * Static files not included in wheel package | ||||||
|  |   * Tenant selection in job fixed | ||||||
|  |   * SortingHat database performance | ||||||
|  |   * uWSGI threads and workers | ||||||
|  |   * Performance improved for recommendations and merging jobs | ||||||
|  |   * Multi-tenancy using headers | ||||||
|  |   * Job timeouts | ||||||
|  |   * Fix enrollment in individual's profile | ||||||
|  |   * Edit a profile name with the pencil button (#773) | ||||||
|  |   * Unreadable large numbers in pagination (#770) | ||||||
|  |   * Sort jobs from newest to oldest (#769) | ||||||
|  |   * Organization profiles | ||||||
|  |   * Show when tables are loading (#772) | ||||||
|  |   * Enrollment filter on organizations view | ||||||
|  |   * ADD button doesn't affiliate individuals to organizations | ||||||
|  |   * Email affiliation error (#793) | ||||||
|  |   * Show hidden buttons when the mouse is over the table row (#787) | ||||||
|  |   * Recommendations by individual (#779) | ||||||
|  |   * Merge organizations (#571) | ||||||
|  |   * Show an organization's members | ||||||
|  | - Drop patch no_decl_class_registry.patch: | ||||||
|  |   * No longer required. | ||||||
|  | - Add patch allow-database-config-overrides.patch: | ||||||
|  |   * Allow testing overrides of the database auth. | ||||||
|  | - Add patch add-missing-format-calls.patch: | ||||||
|  |   * Fix up formatting of some tests. | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Sat Dec  3 00:58:41 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com> | ||||||
|  |  | ||||||
|  | - Update to version 0.7.23 | ||||||
|  |   * Update Poetry's package dependencies | ||||||
|  |  | ||||||
|  | - Update to version 0.7.22 | ||||||
|  |   * Update Poetry's package dependencies | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Sat Oct 29 01:20:39 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com> | ||||||
|  |  | ||||||
|  | - Update to version 0.7.21 | ||||||
|  |   * Update package dependencies | ||||||
|  |   * Update jinja2 package and dev-dependencies. | ||||||
|  |   * Update Poetry's package dependencies | ||||||
|  | - Clean up SPEC file to remove rpmlint warnings. | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Fri Oct  7 16:13:30 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com> | ||||||
|  |  | ||||||
|  | - Update to version 0.7.20 | ||||||
|  |   Bug fixes: | ||||||
|  |   * [gitdm] Skip invalid format lines | ||||||
|  |   * Gitdm parser won't fail reading files with an invalid format. Instead, | ||||||
|  |   * it will ignore invalid content. | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Wed May 11 11:28:06 UTC 2022 - Matej Cepl <mcepl@suse.com> | ||||||
|  |  | ||||||
|  | - Fix a bug in %%postun. | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Wed Apr 20 11:16:30 UTC 2022 - pgajdos@suse.com | ||||||
|  |  | ||||||
|  | - version update to 0.7.19 | ||||||
|  |   * no minor version changelog found | ||||||
|  | - modified patches | ||||||
|  |   % no_decl_class_registry.patch (refreshed) | ||||||
|  | - python-mock is not required for build | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Thu Aug  5 15:20:24 UTC 2021 - Matej Cepl <mcepl@suse.com> | ||||||
|  |  | ||||||
|  | - Add no_decl_class_registry.patch to make the package compatible | ||||||
|  |   with SQLAlchemy 1.4 (gh#chaoss/grimoirelab-sortinghat#579). | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Thu May 27 12:39:34 UTC 2021 - Matej Cepl <mcepl@suse.com> | ||||||
|  |  | ||||||
|  | - Upgrade 0.7.15 | ||||||
|  | - Remove upstreamed python-sortinghat-gh-121-workaround.patch | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Fri Apr 23 21:42:58 UTC 2021 - Matej Cepl <mcepl@suse.com> | ||||||
|  |  | ||||||
|  | - Don't build python36-* package (missing pandas) | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Thu Jun  4 07:19:33 UTC 2020 - pgajdos@suse.com | ||||||
|  |  | ||||||
|  | - specify database name trough %mysql_testserver_start parameter | ||||||
|  | - alternatives in loop | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Tue May 19 09:28:07 UTC 2020 - Petr Gajdos <pgajdos@suse.com> | ||||||
|  |  | ||||||
|  | - %python3_only -> %python_alternative | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Tue Mar 17 14:11:53 UTC 2020 - pgajdos@suse.com | ||||||
|  |  | ||||||
|  | - version update to 0.7.7 | ||||||
|  |   * no minor version changelog found | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Tue Feb 11 15:58:25 UTC 2020 - pgajdos@suse.com | ||||||
|  |  | ||||||
|  | - %check: choose better database user name | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Fri Dec  6 18:01:12 UTC 2019 - pgajdos@suse.com | ||||||
|  |  | ||||||
|  | - run the testsuite against test mysqld server | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Mon Sep 23 13:57:05 UTC 2019 - pgajdos@suse.com | ||||||
|  |  | ||||||
|  | - version update to 0.7.6 | ||||||
|  |   **NOTICE: Database schema generated by SortingHat < 0.7.0 is still | ||||||
|  |     compatible but older versions can have problems inserting UTF-8 | ||||||
|  |     characters of 4 bytes. | ||||||
|  |   **Python 2.7 is no longer supported. | ||||||
|  |   **NOTICE: Database schema generated by SortingHat < 0.6.0 are no longer | ||||||
|  |     compatible. Please check "Compatibility between versions" section from | ||||||
|  |     README.md file** | ||||||
|  |   **NOTICE: Database schema generated by SortingHat < 0.5.0 are no longer | ||||||
|  |     compatible. Please check "Compatibility between versions" section from | ||||||
|  |     README.md file** | ||||||
|  | - added patches | ||||||
|  |   https://github.com/chaoss/grimoirelab-sortinghat/issues/121 | ||||||
|  |   + python-sortinghat-gh-121-workaround.patch | ||||||
|  | - python3-only package | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Tue Dec  4 12:54:29 UTC 2018 - Matej Cepl <mcepl@suse.com> | ||||||
|  |  | ||||||
|  | - Remove superfluous devel dependency for noarch package | ||||||
|  |  | ||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Thu Nov  9 21:01:40 UTC 2017 - sebix+novell.com@sebix.at | ||||||
|  |  | ||||||
|  | - initial package | ||||||
							
								
								
									
										168
									
								
								python-sortinghat.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								python-sortinghat.spec
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,168 @@ | |||||||
|  | # | ||||||
|  | # spec file for package python-sortinghat | ||||||
|  | # | ||||||
|  | # Copyright (c) 2024 SUSE LLC | ||||||
|  | # | ||||||
|  | # All modifications and additions to the file contributed by third parties | ||||||
|  | # remain the property of their copyright owners, unless otherwise agreed | ||||||
|  | # upon. The license for this file, and modifications and additions to the | ||||||
|  | # file, is the same license as for the pristine package itself (unless the | ||||||
|  | # license for the pristine package is not an Open Source License, in which | ||||||
|  | # case the license is the MIT License). An "Open Source License" is a | ||||||
|  | # license that conforms to the Open Source Definition (Version 1.9) | ||||||
|  | # published by the Open Source Initiative. | ||||||
|  |  | ||||||
|  | # Please submit bugfixes or comments via https://bugs.opensuse.org/ | ||||||
|  | # | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Name:           python-sortinghat | ||||||
|  | Version:        1.4.0 | ||||||
|  | Release:        0 | ||||||
|  | Summary:        A tool to manage identities | ||||||
|  | License:        GPL-3.0-only | ||||||
|  | URL:            https://github.com/grimoirelab/sortinghat | ||||||
|  | Source:         https://github.com/chaoss/grimoirelab-sortinghat/archive/refs/tags/%{version}.tar.gz#/sortinghat-%{version}.tar.gz | ||||||
|  | # PATCH-FIX-OPENSUSE Allow overridding the database config | ||||||
|  | Patch0:         allow-database-config-overrides.patch | ||||||
|  | BuildRequires:  %{python_module base >= 3.9} | ||||||
|  | BuildRequires:  %{python_module pip} | ||||||
|  | BuildRequires:  %{python_module poetry-core} | ||||||
|  | BuildRequires:  %{python_module wheel} | ||||||
|  | BuildRequires:  fdupes | ||||||
|  | BuildRequires:  python-rpm-macros | ||||||
|  | Requires:       python-Django >= 4.2 | ||||||
|  | Requires:       python-Jinja2 >= 3.1 | ||||||
|  | Requires:       python-PyJWT | ||||||
|  | Requires:       python-PyMySQL >= 0.7.0 | ||||||
|  | Requires:       python-PyYAML >= 3.12 | ||||||
|  | Requires:       python-SQLAlchemy >= 1.2 | ||||||
|  | Requires:       python-click >= 7.1 | ||||||
|  | Requires:       python-django-cors-headers >= 3.7 | ||||||
|  | Requires:       python-django-graphql-jwt >= 0.3 | ||||||
|  | Requires:       python-django-rq >= 2.3 | ||||||
|  | Requires:       python-django-treebeard >= 4.5 | ||||||
|  | Requires:       python-graphene >= 2.1.5 | ||||||
|  | Requires:       python-graphene-django | ||||||
|  | Requires:       python-grimoirelab-toolkit >= 0.3 | ||||||
|  | Requires:       python-importlib-resources | ||||||
|  | Requires:       python-mysqlclient >= 2.0 | ||||||
|  | Requires:       python-numpy | ||||||
|  | Requires:       python-pandas >= 1.3 | ||||||
|  | Requires:       python-python-dateutil >= 2.8.0 | ||||||
|  | Requires:       python-requests >= 2.7 | ||||||
|  | Requires:       python-rq | ||||||
|  | Requires:       python-setuptools | ||||||
|  | Requires:       python-sgqlc | ||||||
|  | Requires(post): update-alternatives | ||||||
|  | Requires(postun): update-alternatives | ||||||
|  | BuildArch:      noarch | ||||||
|  | # SECTION test requirements | ||||||
|  | BuildRequires:  %{python_module Jinja2 >= 3.1} | ||||||
|  | BuildRequires:  %{python_module Django >= 4.2} | ||||||
|  | BuildRequires:  %{python_module PyMySQL >= 0.7.0} | ||||||
|  | BuildRequires:  %{python_module PyYAML >= 3.12} | ||||||
|  | BuildRequires:  %{python_module SQLAlchemy >= 1.2} | ||||||
|  | BuildRequires:  %{python_module click >= 7.1} | ||||||
|  | BuildRequires:  %{python_module django-cors-headers >= 3.7} | ||||||
|  | BuildRequires:  %{python_module django-graphql-jwt >= 0.3} | ||||||
|  | BuildRequires:  %{python_module django-rq >= 2.3} | ||||||
|  | BuildRequires:  %{python_module django-treebeard >= 4.5} | ||||||
|  | BuildRequires:  %{python_module fakeredis} | ||||||
|  | BuildRequires:  %{python_module graphene >= 2.1.5} | ||||||
|  | BuildRequires:  %{python_module grimoirelab-toolkit >= 0.3} | ||||||
|  | BuildRequires:  %{python_module httpretty >= 0.9.5} | ||||||
|  | BuildRequires:  %{python_module importlib-resources} | ||||||
|  | BuildRequires:  %{python_module mysqlclient >= 2.0} | ||||||
|  | BuildRequires:  %{python_module numpy} | ||||||
|  | BuildRequires:  %{python_module pandas >= 1.3} | ||||||
|  | BuildRequires:  %{python_module pytest} | ||||||
|  | BuildRequires:  %{python_module python-dateutil >= 2.8.0} | ||||||
|  | BuildRequires:  %{python_module requests >= 2.7} | ||||||
|  | BuildRequires:  %{python_module rq} | ||||||
|  | BuildRequires:  %{python_module sgqlc} | ||||||
|  | BuildRequires:  mariadb-rpm-macros | ||||||
|  | # /SECTION | ||||||
|  | %python_subpackages | ||||||
|  |  | ||||||
|  | %description | ||||||
|  | A tool to manage identities. | ||||||
|  |  | ||||||
|  | Sorting Hat maintains an SQL database with identities coming | ||||||
|  | (potentially) from different sources. Identities corresponding to the | ||||||
|  | same real person can be merged in the same unique identity, with a | ||||||
|  | unique uuid. For each unique identity, a profile can be defined, with | ||||||
|  | the name and other data to show for the corresponding person by default. | ||||||
|  |  | ||||||
|  | In addition, each unique identity can be related to one or more | ||||||
|  | affiliations, for different time periods. This will usually correspond | ||||||
|  | to different organizations in which the person was employed during those | ||||||
|  | time periods. | ||||||
|  |  | ||||||
|  | Sorting Hat is a part of the GrimoireLab | ||||||
|  | toolset <https://grimoirelab.github.io>, which provides for Python | ||||||
|  | modules and scripts to analyze data sources with information about | ||||||
|  | software development, and allows to produce interactive dashboards to | ||||||
|  | visualize that information. | ||||||
|  |  | ||||||
|  | In the context of GrimoireLab, Sorting Hat is usually run after data is | ||||||
|  | retrieved with Perceval <https://github.com/grimmoirelab/perceval>, | ||||||
|  | to store the identities obtained into its database, and later merge them | ||||||
|  | into unique identities (and maybe affiliate them). | ||||||
|  |  | ||||||
|  | %prep | ||||||
|  | %autosetup -p1 -n grimoirelab-sortinghat-%{version} | ||||||
|  |  | ||||||
|  | %build | ||||||
|  | %pyproject_wheel | ||||||
|  |  | ||||||
|  | %install | ||||||
|  | %pyproject_install | ||||||
|  | %python_clone -a %{buildroot}%{_bindir}/sortinghat | ||||||
|  | %python_clone -a %{buildroot}%{_bindir}/sortinghat-admin | ||||||
|  | %python_clone -a %{buildroot}%{_bindir}/sortinghatw | ||||||
|  | %python_clone -a %{buildroot}%{_bindir}/sortinghatd | ||||||
|  | %python_expand %fdupes %{buildroot}%{$python_sitelib} | ||||||
|  |  | ||||||
|  | %check | ||||||
|  | exit_code=0 | ||||||
|  | user='auth_db_user' | ||||||
|  | pass='auth_db_pass' | ||||||
|  | port=63306 | ||||||
|  | run_dir=/tmp/mysql | ||||||
|  | # | ||||||
|  | # start the mariadb server | ||||||
|  | # | ||||||
|  | %mysql_testserver_start -u $user -p $pass -t $port | ||||||
|  | # | ||||||
|  | # running the test | ||||||
|  | # | ||||||
|  | export TEST_SORTINGHAT_DB_PORT=$port | ||||||
|  | export TEST_SORTINGHAT_DB_USER=$user | ||||||
|  | export TEST_SORTINGHAT_DB_PASSWORD=$pass | ||||||
|  | # Broken tests | ||||||
|  | rm tests/test_jobs.py | ||||||
|  | %python_exec manage.py test --settings=config.settings.config_testing | ||||||
|  | %python_exec manage.py test --settings=config.settings.config_testing_tenant | ||||||
|  | # | ||||||
|  | # stopping mariadb | ||||||
|  | # | ||||||
|  | %mysql_testserver_stop | ||||||
|  | exit $exit_code | ||||||
|  |  | ||||||
|  | %post | ||||||
|  | %python_install_alternative sortinghat sortinghat-admin sortinghatw sortinghatd | ||||||
|  |  | ||||||
|  | %postun | ||||||
|  | %python_uninstall_alternative sortinghat sortinghat-admin sortinghatw sortinghatd | ||||||
|  |  | ||||||
|  | %files %{python_files} | ||||||
|  | %doc NEWS README.md | ||||||
|  | %python_alternative %{_bindir}/sortinghat | ||||||
|  | %python_alternative %{_bindir}/sortinghatw | ||||||
|  | %python_alternative %{_bindir}/sortinghatd | ||||||
|  | %python_alternative %{_bindir}/sortinghat-admin | ||||||
|  | %{python_sitelib}/sortinghat | ||||||
|  | %{python_sitelib}/sortinghat-%{version}.dist-info | ||||||
|  |  | ||||||
|  | %changelog | ||||||
							
								
								
									
										3
									
								
								sortinghat-0.19.1.tar.gz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								sortinghat-0.19.1.tar.gz
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | version https://git-lfs.github.com/spec/v1 | ||||||
|  | oid sha256:20ec93c4c5951bfeb2cbd5f750209eaf1aa3ab57228676c98ebc00e2f92abc05 | ||||||
|  | size 2441873 | ||||||
							
								
								
									
										3
									
								
								sortinghat-1.2.1.tar.gz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								sortinghat-1.2.1.tar.gz
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | version https://git-lfs.github.com/spec/v1 | ||||||
|  | oid sha256:e524a0ff1dccca14decfa9231a6e531fa94225ad1ffa7d491f3f9c728b223ffe | ||||||
|  | size 2255793 | ||||||
							
								
								
									
										3
									
								
								sortinghat-1.4.0.tar.gz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								sortinghat-1.4.0.tar.gz
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | version https://git-lfs.github.com/spec/v1 | ||||||
|  | oid sha256:3f05891207a8bad8e2c8b5d11b007e29ad3a12fea43cbb9d5b62cd736f481319 | ||||||
|  | size 2270815 | ||||||
							
								
								
									
										53
									
								
								use-correct-assertion-methods.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								use-correct-assertion-methods.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | |||||||
|  | From ad69dc80b8e8b4df49a3fe14e4a05ec31c7a67e8 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Steve Kowalik <steven@wedontsleep.org> | ||||||
|  | Date: Tue, 6 Feb 2024 15:22:33 +1100 | ||||||
|  | Subject: [PATCH] Switch to self.assertRaisesRegex() | ||||||
|  |  | ||||||
|  | assertRaisesRegexp() is a deprecated (and as of Python 3.12, removed) | ||||||
|  | alias of assertRaisesRegex(). Switch to it to avoid future problems. | ||||||
|  |  | ||||||
|  | Signed-off-by: Steve Kowalik <steven@wedontsleep.org> | ||||||
|  | --- | ||||||
|  |  tests/test_aux.py | 8 ++++---- | ||||||
|  |  1 file changed, 4 insertions(+), 4 deletions(-) | ||||||
|  |  | ||||||
|  | diff --git a/tests/test_aux.py b/tests/test_aux.py | ||||||
|  | index 86e421422..91a1c29c3 100644 | ||||||
|  | --- a/tests/test_aux.py | ||||||
|  | +++ b/tests/test_aux.py | ||||||
|  | @@ -338,7 +338,7 @@ def test_dates_out_of_bounds(self): | ||||||
|  |   | ||||||
|  |          expected = DATE_OUT_OF_BOUNDS_ERROR.format(type='start', | ||||||
|  |                                                     date=r'1800-01-01 00:00:00\+00:00') | ||||||
|  | -        with self.assertRaisesRegexp(ValueError, expected): | ||||||
|  | +        with self.assertRaisesRegex(ValueError, expected): | ||||||
|  |              _ = [r for r in merge_datetime_ranges(dates)] | ||||||
|  |   | ||||||
|  |          # Case 2 | ||||||
|  | @@ -349,7 +349,7 @@ def test_dates_out_of_bounds(self): | ||||||
|  |   | ||||||
|  |          expected = DATE_OUT_OF_BOUNDS_ERROR.format(type='end', | ||||||
|  |                                                     date=r'2100-02-01 00:00:00\+00:00') | ||||||
|  | -        with self.assertRaisesRegexp(ValueError, expected): | ||||||
|  | +        with self.assertRaisesRegex(ValueError, expected): | ||||||
|  |              _ = [r for r in merge_datetime_ranges(dates)] | ||||||
|  |   | ||||||
|  |      def test_dates_no_timezone(self): | ||||||
|  | @@ -361,7 +361,7 @@ def test_dates_no_timezone(self): | ||||||
|  |              (datetime.datetime(1800, 1, 1, tzinfo=UTC), datetime.datetime(2010, 1, 1, tzinfo=UTC)) | ||||||
|  |          ] | ||||||
|  |   | ||||||
|  | -        with self.assertRaisesRegexp(TypeError, CANT_COMPARE_DATES_ERROR): | ||||||
|  | +        with self.assertRaisesRegex(TypeError, CANT_COMPARE_DATES_ERROR): | ||||||
|  |              _ = [r for r in merge_datetime_ranges(dates)] | ||||||
|  |   | ||||||
|  |          # Case 2 | ||||||
|  | @@ -370,7 +370,7 @@ def test_dates_no_timezone(self): | ||||||
|  |              (datetime.datetime(1900, 1, 1, tzinfo=UTC), datetime.datetime(2010, 1, 1)) | ||||||
|  |          ] | ||||||
|  |   | ||||||
|  | -        with self.assertRaisesRegexp(TypeError, CANT_COMPARE_DATES_ERROR): | ||||||
|  | +        with self.assertRaisesRegex(TypeError, CANT_COMPARE_DATES_ERROR): | ||||||
|  |              _ = [r for r in merge_datetime_ranges(dates)] | ||||||
|  |   | ||||||
|  |   | ||||||
		Reference in New Issue
	
	Block a user