From c9fc1fee069c735618ee120693b71ee0863a16c6 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Fri, 27 Dec 2024 10:41:13 +0100 Subject: [PATCH 01/31] fix: collection is not always searchable --- .../collection_customizer.py | 16 ++++++++++++++++ .../decorators/search/collections.py | 11 ++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/datasource_toolkit/forestadmin/datasource_toolkit/datasource_customizer/collection_customizer.py b/src/datasource_toolkit/forestadmin/datasource_toolkit/datasource_customizer/collection_customizer.py index 54498f96f..e0da61b7b 100644 --- a/src/datasource_toolkit/forestadmin/datasource_toolkit/datasource_customizer/collection_customizer.py +++ b/src/datasource_toolkit/forestadmin/datasource_toolkit/datasource_customizer/collection_customizer.py @@ -573,6 +573,22 @@ async def _replace_search(): self.stack.queue_customization(_replace_search) return self + def disable_search(self) -> Self: + """Disable the search bar + + Documentation: + https://docs.forestadmin.com/developer-guide-agents-python/agent-customization/search + + Example: + .disable_search() + """ + + async def _disable_search(): + cast(SearchCollectionDecorator, self.stack.search.get_collection(self.collection_name)).disable_search() + + self.stack.queue_customization(_disable_search) + return self + def add_chart(self, name: str, definition: CollectionChartDefinition) -> Self: """Create a new API chart diff --git a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py index 91bf8ec37..1078338a3 100644 --- a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py +++ b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py @@ -32,12 +32,21 @@ class SearchCollectionDecorator(CollectionDecorator): def __init__(self, collection: Collection, datasource: Datasource[BoundCollection]): super().__init__(collection, datasource) self._replacer: SearchDefinition = None + self._disable_search = False + + def disable_search(self): + self._disable_search = True def replace_search(self, replacer: SearchDefinition): self._replacer = replacer def _refine_schema(self, sub_schema: CollectionSchema) -> CollectionSchema: - return {**sub_schema, "searchable": True} + + return { + **sub_schema, + "searchable": not self._disable_search + and len(self._get_searchable_fields(self.child_collection, False)) > 0, + } def _default_replacer(self, search: str, extended: bool) -> ConditionTree: searchable_fields = self._get_searchable_fields(self.child_collection, extended) From 256928782c5c4ac4433e6731c2132e082aa22e88 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 30 Dec 2024 14:12:53 +0100 Subject: [PATCH 02/31] chore: get searchable fields wasn't checkin the operators --- .../decorators/search/collections.py | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py index 1078338a3..81f6677d0 100644 --- a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py +++ b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py @@ -86,18 +86,14 @@ async def _refine_filter( return _filter def _build_condition(self, field: str, schema: Column, search: str) -> Union[ConditionTree, None]: - if ( - schema["column_type"] == PrimitiveType.NUMBER - and search.isnumeric() - and Operator.EQUAL in schema.get("filter_operators", []) - ): + if schema["column_type"] == PrimitiveType.NUMBER and search.isnumeric(): try: value = int(search) except ValueError: value = float(search) return ConditionTreeLeaf(field, Operator.EQUAL, value) - if schema["column_type"] == PrimitiveType.ENUM and Operator.EQUAL in schema.get("filter_operators", []): + if schema["column_type"] == PrimitiveType.ENUM: search_value = self.lenient_find(schema["enum_values"], search) if search_value is not None: return ConditionTreeLeaf(field, Operator.EQUAL, search_value) @@ -112,17 +108,11 @@ def _build_condition(self, field: str, schema: Column, search: str) -> Union[Con operator = Operator.CONTAINS elif support_equal: operator = Operator.EQUAL - else: - operator = None if operator: return ConditionTreeLeaf(field, operator, search) - if ( - schema["column_type"] == PrimitiveType.UUID - and is_valid_uuid(search) - and Operator.EQUAL in schema.get("filter_operators", []) - ): + if schema["column_type"] == PrimitiveType.UUID and is_valid_uuid(search): return ConditionTreeLeaf(field, Operator.EQUAL, search) def lenient_find(self, haystack: List[str], needle: str) -> Union[str, None]: @@ -135,14 +125,14 @@ def _get_searchable_fields(self, collection: Collection, extended: bool) -> List fields: List[Tuple[str, ColumnAlias]] = [] for name, field in collection.schema["fields"].items(): - if is_column(field): + if is_column(field) and self._is_searchable_field(field): fields.append((name, field)) if extended and (is_many_to_one(field) or is_one_to_one(field) or is_polymorphic_one_to_one(field)): related = collection.datasource.get_collection(field["foreign_collection"]) for sub_name, sub_field in related.schema["fields"].items(): - if is_column(sub_field): + if is_column(sub_field) and self._is_searchable_field(sub_field): fields.append((f"{name}:{sub_name}", sub_field)) if extended and is_polymorphic_many_to_one(field): @@ -154,3 +144,16 @@ def _get_searchable_fields(self, collection: Collection, extended: bool) -> List ) return fields + + def _is_searchable_field(self, field: Column) -> bool: + operators = field.get("filter_operators", []) + + return ( + ( + field["column_type"] == PrimitiveType.STRING + and (Operator.CONTAINS in operators or Operator.EQUAL in operators) + ) + or (field["column_type"] == PrimitiveType.UUID and (Operator.EQUAL in operators)) + or (field["column_type"] == PrimitiveType.ENUM and (Operator.EQUAL in operators)) + or (field["column_type"] == PrimitiveType.NUMBER and (Operator.EQUAL in operators)) + ) From 6c03fd048fe7ddd287c034c37e90a2200c22898c Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 30 Dec 2024 14:13:31 +0100 Subject: [PATCH 03/31] chore: add few tests and fix existents --- .../test_search_collection_decorator.py | 44 +++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py b/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py index 540add6d9..2c4463104 100644 --- a/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py +++ b/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py @@ -52,10 +52,39 @@ def setUpClass(cls) -> None: def setUp(self) -> None: self.datasource: Datasource = Datasource() self.collection_person = Collection("Person", self.datasource) + self.collection_person.add_fields( + { + "id": { + "is_primary_key": True, + "type": FieldType.COLUMN, + "column_type": PrimitiveType.NUMBER, + "filter_operators": set([Operator.EQUAL, Operator.IN]), + } + } + ) + + self.no_searchable_fields_collection = Collection("NotSearchable", self.datasource) + self.no_searchable_fields_collection.add_fields( + { + "id": { + "is_primary_key": True, + "type": FieldType.COLUMN, + "column_type": PrimitiveType.NUMBER, + "filter_operators": set(), + } + } + ) self.datasource.add_collection(self.collection_person) + self.datasource.add_collection(self.no_searchable_fields_collection) self.datasource_decorator = DatasourceDecorator(self.datasource, SearchCollectionDecorator) - self.decorated_collection_person = self.datasource_decorator.get_collection("Person") + self.decorated_collection_person: SearchCollectionDecorator = self.datasource_decorator.get_collection( + "Person" + ) # type:ignore + + self.decorated_not_searchable_collection: SearchCollectionDecorator = self.datasource_decorator.get_collection( + "NotSearchable" + ) # type:ignore def test_replace_search_should_work(self): def replacer(search: Any, search_extended: bool, context: CollectionCustomizationContext): @@ -67,6 +96,13 @@ def replacer(search: Any, search_extended: bool, context: CollectionCustomizatio def test_schema_is_searchable_should_be_true(self): assert self.decorated_collection_person.schema["searchable"] is True + def test_schema_is_searchable_should_be_false_when_no_fields_can_be_searched(self): + assert self.decorated_not_searchable_collection.schema["searchable"] is False + + def test_schema_is_searchable_should_be_false_when_disabling_search(self): + self.decorated_collection_person.disable_search() + assert self.decorated_collection_person.schema["searchable"] is False + def test_refine_filter_should_return_the_given_filter_for_empty_filter(self): filter_ = Filter({"search": None}) @@ -169,6 +205,7 @@ def test_search_must_be_applied_on_all_fields(self): "condition_tree": ConditionTreeBranch( Aggregator.OR, conditions=[ + ConditionTreeLeaf("id", Operator.EQUAL, 1584), ConditionTreeLeaf("number", Operator.EQUAL, 1584), ConditionTreeLeaf("label", Operator.CONTAINS, "1584"), ], @@ -206,11 +243,11 @@ def test_for_enum_value(self): def test_search_number_in_all_field(self): self.collection_person.add_field( "field1", - Column(column_type=PrimitiveType.NUMBER, filter_operators=[Operator.EQUAL], type=FieldType.COLUMN), + Column(column_type=PrimitiveType.NUMBER, filter_operators=set([Operator.EQUAL]), type=FieldType.COLUMN), ) self.collection_person.add_field( "field2", - Column(column_type=PrimitiveType.NUMBER, filter_operators=[Operator.EQUAL], type=FieldType.COLUMN), + Column(column_type=PrimitiveType.NUMBER, filter_operators=set([Operator.EQUAL]), type=FieldType.COLUMN), ) self.collection_person.add_field( @@ -230,6 +267,7 @@ def test_search_number_in_all_field(self): "condition_tree": ConditionTreeBranch( Aggregator.OR, conditions=[ + ConditionTreeLeaf("id", Operator.EQUAL, 1584), ConditionTreeLeaf("field1", Operator.EQUAL, 1584), ConditionTreeLeaf("field2", Operator.EQUAL, 1584), ], From 33b62954ca19abf57d8453441ee560a4b7fb0d9f Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 30 Dec 2024 17:07:01 +0100 Subject: [PATCH 04/31] chore: replacer make the collection searchable --- .../datasource_toolkit/decorators/search/collections.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py index 81f6677d0..35c4a4064 100644 --- a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py +++ b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py @@ -33,19 +33,20 @@ def __init__(self, collection: Collection, datasource: Datasource[BoundCollectio super().__init__(collection, datasource) self._replacer: SearchDefinition = None self._disable_search = False + self._searchable = len(self._get_searchable_fields(self.child_collection, False)) > 0 def disable_search(self): - self._disable_search = True + self._searchable = False def replace_search(self, replacer: SearchDefinition): self._replacer = replacer + self._searchable = True def _refine_schema(self, sub_schema: CollectionSchema) -> CollectionSchema: return { **sub_schema, - "searchable": not self._disable_search - and len(self._get_searchable_fields(self.child_collection, False)) > 0, + "searchable": self._searchable, } def _default_replacer(self, search: str, extended: bool) -> ConditionTree: From b0985693403cf3fc45d25bb82fddd66057f33690 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 30 Dec 2024 17:07:13 +0100 Subject: [PATCH 05/31] chore: refacto --- .../decorators/search/collections.py | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py index 35c4a4064..abf2b0f4c 100644 --- a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py +++ b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py @@ -149,12 +149,14 @@ def _get_searchable_fields(self, collection: Collection, extended: bool) -> List def _is_searchable_field(self, field: Column) -> bool: operators = field.get("filter_operators", []) - return ( - ( - field["column_type"] == PrimitiveType.STRING - and (Operator.CONTAINS in operators or Operator.EQUAL in operators) - ) - or (field["column_type"] == PrimitiveType.UUID and (Operator.EQUAL in operators)) - or (field["column_type"] == PrimitiveType.ENUM and (Operator.EQUAL in operators)) - or (field["column_type"] == PrimitiveType.NUMBER and (Operator.EQUAL in operators)) - ) + if field["column_type"] == PrimitiveType.STRING and ( + Operator.CONTAINS in operators or Operator.EQUAL in operators + ): + return True + + if field["column_type"] in [PrimitiveType.NUMBER, PrimitiveType.UUID, PrimitiveType.ENUM] and ( + Operator.EQUAL in operators + ): + return True + + return False From bf451dff88830511a2204ad2e411307b6aac4bdc Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 30 Dec 2024 17:16:00 +0100 Subject: [PATCH 06/31] chore: add tests --- .../decorators/search/collections.py | 1 - .../search/test_search_collection_decorator.py | 14 +++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py index abf2b0f4c..74d12eb7c 100644 --- a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py +++ b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py @@ -43,7 +43,6 @@ def replace_search(self, replacer: SearchDefinition): self._searchable = True def _refine_schema(self, sub_schema: CollectionSchema) -> CollectionSchema: - return { **sub_schema, "searchable": self._searchable, diff --git a/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py b/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py index 2c4463104..7c0827f86 100644 --- a/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py +++ b/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py @@ -93,12 +93,24 @@ def replacer(search: Any, search_extended: bool, context: CollectionCustomizatio self.decorated_collection_person.replace_search(replacer) assert self.decorated_collection_person._replacer == replacer - def test_schema_is_searchable_should_be_true(self): + def test_schema_is_searchable_should_be_true_by_default_when_fields_can_be_searched(self): assert self.decorated_collection_person.schema["searchable"] is True def test_schema_is_searchable_should_be_false_when_no_fields_can_be_searched(self): assert self.decorated_not_searchable_collection.schema["searchable"] is False + def test_schema_conflict_on_replace_and_disable_apply_the_latest_one(self): + self.decorated_collection_person.mark_schema_as_dirty() + assert self.decorated_collection_person.schema["searchable"] is True + + self.decorated_collection_person.disable_search() + self.decorated_collection_person.mark_schema_as_dirty() + assert self.decorated_collection_person.schema["searchable"] is False + + self.decorated_collection_person.replace_search(None) + self.decorated_collection_person.mark_schema_as_dirty() + assert self.decorated_collection_person.schema["searchable"] is True + def test_schema_is_searchable_should_be_false_when_disabling_search(self): self.decorated_collection_person.disable_search() assert self.decorated_collection_person.schema["searchable"] is False From 4618cbb7b64f1edf5f444d9758b9185dff49397a Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Fri, 3 Jan 2025 13:48:10 +0100 Subject: [PATCH 07/31] chore: remove useless variable --- .../datasource_toolkit/decorators/search/collections.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py index 74d12eb7c..8d9af8f30 100644 --- a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py +++ b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py @@ -32,7 +32,6 @@ class SearchCollectionDecorator(CollectionDecorator): def __init__(self, collection: Collection, datasource: Datasource[BoundCollection]): super().__init__(collection, datasource) self._replacer: SearchDefinition = None - self._disable_search = False self._searchable = len(self._get_searchable_fields(self.child_collection, False)) > 0 def disable_search(self): From 77ae2cb1c7b533273e3457308af187b28d7a25ed Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 11:53:31 +0100 Subject: [PATCH 08/31] chore: debug CI --- .github/actions/coverage/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 45b6b979d..391dad76c 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -29,6 +29,7 @@ runs: uses: actions/download-artifact@v4 with: path: coverage + merge-multiple: true - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From a6e6a5e0bcce37c21e9ddb58676d18fe7e5bdc7e Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 12:08:57 +0100 Subject: [PATCH 09/31] chore: debug CI --- .github/actions/coverage/action.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 391dad76c..27bb25b53 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -24,12 +24,11 @@ runs: - name: Install package dependencies shell: bash working-directory: ./src/datasource_toolkit - run: poetry install --with test + run: poetry install --only test - name: Download all coverage reports uses: actions/download-artifact@v4 with: path: coverage - merge-multiple: true - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From bac1f2785b72380c1e76e036b4e959c8fb8aaff0 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 12:13:05 +0100 Subject: [PATCH 10/31] chore: shortest CI to debug --- .github/workflows/generic.yml | 158 +++++++++++++++++----------------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/.github/workflows/generic.yml b/.github/workflows/generic.yml index 6bf0e61bc..8cc4a447a 100644 --- a/.github/workflows/generic.yml +++ b/.github/workflows/generic.yml @@ -33,85 +33,85 @@ jobs: - uses: actions/checkout@v4 - id: changes uses: ./.github/actions/changes - - lint: - name: Linting - needs: [ changes ] - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ['3.10'] - current_package: ${{ fromJson(inputs.packages) }} - steps: - - name: has change in sub package - id: has_change - run: | - PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) - echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT - shell: bash - env: - PACKAGE: ${{ matrix.current_package }} - CHANGES: ${{ needs.changes.outputs.packages }} - - uses: actions/checkout@v4 - if: ${{ steps.has_change.outputs.has_change != 'false' }} - - id: lint - if: ${{ steps.has_change.outputs.has_change != 'false' }} - uses: ./.github/actions/linting - with: - python-version: ${{ matrix.python-version }} - current_package: ${{ matrix.current_package }} - isort: - name: Isorting - needs: [ changes ] - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ['3.10'] - current_package: ${{ fromJson(inputs.packages) }} - steps: - - name: has change in sub package - id: has_change - run: | - PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) - echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT - shell: bash - env: - PACKAGE: ${{ matrix.current_package }} - CHANGES: ${{ needs.changes.outputs.packages }} - - uses: actions/checkout@v4 - if: ${{ steps.has_change.outputs.has_change != 'false' }} - - id: isort - if: ${{ steps.has_change.outputs.has_change != 'false' }} - uses: ./.github/actions/isort - with: - python-version: ${{ matrix.python-version }} - current_package: ${{ matrix.current_package }} - black: - name: Black - needs: [ changes ] - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ['3.10'] - current_package: ${{ fromJson(inputs.packages) }} - steps: - - name: has change in sub package - id: has_change - run: | - PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) - echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT - shell: bash - env: - PACKAGE: ${{ matrix.current_package }} - CHANGES: ${{ needs.changes.outputs.packages }} - - uses: actions/checkout@v4 - if: ${{ steps.has_change.outputs.has_change != 'false' }} - - id: isort - if: ${{ steps.has_change.outputs.has_change != 'false' }} - uses: ./.github/actions/black - with: - python-version: ${{ matrix.python-version }} - current_package: ${{ matrix.current_package }} + # TODO: uncomment + # lint: + # name: Linting + # needs: [ changes ] + # runs-on: ubuntu-latest + # strategy: + # matrix: + # python-version: ['3.10'] + # current_package: ${{ fromJson(inputs.packages) }} + # steps: + # - name: has change in sub package + # id: has_change + # run: | + # PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) + # echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT + # shell: bash + # env: + # PACKAGE: ${{ matrix.current_package }} + # CHANGES: ${{ needs.changes.outputs.packages }} + # - uses: actions/checkout@v4 + # if: ${{ steps.has_change.outputs.has_change != 'false' }} + # - id: lint + # if: ${{ steps.has_change.outputs.has_change != 'false' }} + # uses: ./.github/actions/linting + # with: + # python-version: ${{ matrix.python-version }} + # current_package: ${{ matrix.current_package }} + # isort: + # name: Isorting + # needs: [ changes ] + # runs-on: ubuntu-latest + # strategy: + # matrix: + # python-version: ['3.10'] + # current_package: ${{ fromJson(inputs.packages) }} + # steps: + # - name: has change in sub package + # id: has_change + # run: | + # PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) + # echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT + # shell: bash + # env: + # PACKAGE: ${{ matrix.current_package }} + # CHANGES: ${{ needs.changes.outputs.packages }} + # - uses: actions/checkout@v4 + # if: ${{ steps.has_change.outputs.has_change != 'false' }} + # - id: isort + # if: ${{ steps.has_change.outputs.has_change != 'false' }} + # uses: ./.github/actions/isort + # with: + # python-version: ${{ matrix.python-version }} + # current_package: ${{ matrix.current_package }} + # black: + # name: Black + # needs: [ changes ] + # runs-on: ubuntu-latest + # strategy: + # matrix: + # python-version: ['3.10'] + # current_package: ${{ fromJson(inputs.packages) }} + # steps: + # - name: has change in sub package + # id: has_change + # run: | + # PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) + # echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT + # shell: bash + # env: + # PACKAGE: ${{ matrix.current_package }} + # CHANGES: ${{ needs.changes.outputs.packages }} + # - uses: actions/checkout@v4 + # if: ${{ steps.has_change.outputs.has_change != 'false' }} + # - id: isort + # if: ${{ steps.has_change.outputs.has_change != 'false' }} + # uses: ./.github/actions/black + # with: + # python-version: ${{ matrix.python-version }} + # current_package: ${{ matrix.current_package }} test: name: Test needs: [isort, lint, black] From b39331ba6a1722d76cc93748c247fda435721854 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 12:15:43 +0100 Subject: [PATCH 11/31] chore: shortest CI to debug --- .github/workflows/generic.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/generic.yml b/.github/workflows/generic.yml index 8cc4a447a..1cf1a780a 100644 --- a/.github/workflows/generic.yml +++ b/.github/workflows/generic.yml @@ -114,7 +114,8 @@ jobs: # current_package: ${{ matrix.current_package }} test: name: Test - needs: [isort, lint, black] + # TODO + # needs: [isort, lint, black] runs-on: ubuntu-latest strategy: matrix: From 1fb814edeb556fc2bc216d918fc1a6365166cb21 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 12:16:23 +0100 Subject: [PATCH 12/31] chore: shortest CI to debug --- .github/workflows/generic.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/generic.yml b/.github/workflows/generic.yml index 1cf1a780a..96827e492 100644 --- a/.github/workflows/generic.yml +++ b/.github/workflows/generic.yml @@ -24,16 +24,16 @@ on: SLACK_WEBHOOK: required: true jobs: - changes: - name: changes - runs-on: ubuntu-latest - outputs: - packages: ${{ steps.changes.outputs.packages }} - steps: - - uses: actions/checkout@v4 - - id: changes - uses: ./.github/actions/changes # TODO: uncomment + # changes: + # name: changes + # runs-on: ubuntu-latest + # outputs: + # packages: ${{ steps.changes.outputs.packages }} + # steps: + # - uses: actions/checkout@v4 + # - id: changes + # uses: ./.github/actions/changes # lint: # name: Linting # needs: [ changes ] From daf92ac4f80e85d81c690004bcdb36bcc71fd32c Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:03:27 +0100 Subject: [PATCH 13/31] chore: debug CI --- .github/actions/coverage/action.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 27bb25b53..1311d64c4 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -29,6 +29,9 @@ runs: uses: actions/download-artifact@v4 with: path: coverage + - name: debug reports + shell: bash + run: pwd && ls -aR ./coverage/ - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 2c194c7067d5ec50827bfce868cac06354afe711 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:16:59 +0100 Subject: [PATCH 14/31] chore: debug CI --- .github/actions/coverage/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 1311d64c4..71ae0e22b 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -31,7 +31,7 @@ runs: path: coverage - name: debug reports shell: bash - run: pwd && ls -aR ./coverage/ + run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run find coverage - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From ada3e925afa47a2629f565b986b64a4ddc5dc0b0 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:19:36 +0100 Subject: [PATCH 15/31] chore: debug CI --- .github/actions/coverage/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 71ae0e22b..8190a2a2d 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -31,7 +31,7 @@ runs: path: coverage - name: debug reports shell: bash - run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run find coverage + run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 5bb08e50269eb8c9a41d8d3ae91bc16e9f988db1 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:23:25 +0100 Subject: [PATCH 16/31] chore: debug CI --- .github/actions/coverage/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 8190a2a2d..f5776caa5 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -31,7 +31,7 @@ runs: path: coverage - name: debug reports shell: bash - run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd + run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit ls -hal ../../coverage/code-coverage-report.agent_toolkit.3.10/.coverage - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From cb4e6e5eb8c1877aecab2c1ee0b59491c6f6760f Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:25:51 +0100 Subject: [PATCH 17/31] chore: debug CI --- .github/actions/coverage/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index f5776caa5..b9e6ba14c 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -31,7 +31,7 @@ runs: path: coverage - name: debug reports shell: bash - run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit ls -hal ../../coverage/code-coverage-report.agent_toolkit.3.10/.coverage + run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/code-coverage-report.agent_toolkit.3.10/.coverage - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From ea6230f33b06219d139145e8d1aae40431ec4282 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:41:20 +0100 Subject: [PATCH 18/31] chore: debug CI --- .github/actions/coverage/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index b9e6ba14c..8fcba9402 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -31,7 +31,7 @@ runs: path: coverage - name: debug reports shell: bash - run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/code-coverage-report.agent_toolkit.3.10/.coverage + run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/code-coverage-report.*/.coverage - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 5b9c62dfefac75d4843b8be082e58251a5a0bca2 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:44:56 +0100 Subject: [PATCH 19/31] chore: debug CI --- .github/actions/coverage/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 8fcba9402..793c064ea 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -31,7 +31,7 @@ runs: path: coverage - name: debug reports shell: bash - run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/code-coverage-report.*/.coverage + run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/* - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 8fcb6fe2f3a150ab27221254431b6ec6bad26f26 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:47:17 +0100 Subject: [PATCH 20/31] chore: debug CI --- .github/actions/coverage/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 793c064ea..f4894be4a 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -31,7 +31,7 @@ runs: path: coverage - name: debug reports shell: bash - run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/* + run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From cccbc78a5e0a53b47f8f7346eec2f02e940174e2 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:50:29 +0100 Subject: [PATCH 21/31] hore: debug CI --- .github/actions/coverage/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index f4894be4a..e63a89f52 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -31,7 +31,7 @@ runs: path: coverage - name: debug reports shell: bash - run: pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ + run: "pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/*" - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 5bd99571ce65f508e7278ac87ce33de98fea13f7 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:53:29 +0100 Subject: [PATCH 22/31] chore: debug CI --- .github/actions/coverage/action.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index e63a89f52..065465797 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -31,7 +31,13 @@ runs: path: coverage - name: debug reports shell: bash - run: "pwd && ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/*" + run: | + pwd && + ls -aR ./coverage/ + && poetry --directory ./src/datasource_toolkit run pwd + && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ + && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/* + && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/*/.coverage - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 45737ba6b7bb9c1036c07b2c8713fc40a472158b Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 14:57:12 +0100 Subject: [PATCH 23/31] chore: debug CI --- .github/actions/coverage/action.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 065465797..82b5ec628 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -33,11 +33,11 @@ runs: shell: bash run: | pwd && - ls -aR ./coverage/ - && poetry --directory ./src/datasource_toolkit run pwd - && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ - && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/* - && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/*/.coverage + ls -aR ./coverage/ && + poetry --directory ./src/datasource_toolkit run pwd && + poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ && + poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/* && + poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/*/.coverage - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 56e28b04ec80a1ce840a7a8e48bf0ac25e5c7d0c Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 15:00:26 +0100 Subject: [PATCH 24/31] chore: debug CI --- .github/actions/coverage/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 82b5ec628..6ac250460 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -37,6 +37,7 @@ runs: poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/* && + poetry --directory ./src/datasource_toolkit run ../../coverage/ | grep .coverage && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/*/.coverage - name: Combine reports shell: bash From fe5521e28957982452b3a1d6d2fc5d181dffb1f4 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 15:02:21 +0100 Subject: [PATCH 25/31] chore: debug CI --- .github/actions/coverage/action.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 6ac250460..f0f36c098 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -36,7 +36,6 @@ runs: ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ && - poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/* && poetry --directory ./src/datasource_toolkit run ../../coverage/ | grep .coverage && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/*/.coverage - name: Combine reports From f0271cadb6bbdf9c98ce9f21820ffcdbb412a44a Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 15:05:36 +0100 Subject: [PATCH 26/31] chore: debug CI --- .github/actions/coverage/action.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index f0f36c098..875eafe4d 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -32,11 +32,9 @@ runs: - name: debug reports shell: bash run: | - pwd && - ls -aR ./coverage/ && poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ && - poetry --directory ./src/datasource_toolkit run ../../coverage/ | grep .coverage && + poetry --directory ./src/datasource_toolkit run find ../../coverage/ | grep .coverage && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/*/.coverage - name: Combine reports shell: bash From 38e35182a1950857297ac210cef2eac669b37a62 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 15:09:53 +0100 Subject: [PATCH 27/31] chore: debug CI --- .github/actions/coverage/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 875eafe4d..69ac9e8b8 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -34,8 +34,8 @@ runs: run: | poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ && - poetry --directory ./src/datasource_toolkit run find ../../coverage/ | grep .coverage && - poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/*/.coverage + poetry --directory ./src/datasource_toolkit run find ../../coverage/ | grep \\.coverage && + poetry --directory ./src/datasource_toolkit run find ../../coverage | xargs ls - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 5571c862e23d0a2565d032613a653057005197f5 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 15:12:22 +0100 Subject: [PATCH 28/31] chore: debug CI --- .github/actions/coverage/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index 69ac9e8b8..d4a5445a0 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -35,7 +35,7 @@ runs: poetry --directory ./src/datasource_toolkit run pwd && poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ && poetry --directory ./src/datasource_toolkit run find ../../coverage/ | grep \\.coverage && - poetry --directory ./src/datasource_toolkit run find ../../coverage | xargs ls + poetry --directory ./src/datasource_toolkit run find ../../coverage | xargs poetry --directory ./src/datasource_toolkit run ls - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 809ca3d9d76118f40ef29b6fc094e636037532fb Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 15:15:05 +0100 Subject: [PATCH 29/31] chore: debug CI --- .github/actions/coverage/action.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/actions/coverage/action.yml b/.github/actions/coverage/action.yml index d4a5445a0..45b6b979d 100644 --- a/.github/actions/coverage/action.yml +++ b/.github/actions/coverage/action.yml @@ -24,18 +24,11 @@ runs: - name: Install package dependencies shell: bash working-directory: ./src/datasource_toolkit - run: poetry install --only test + run: poetry install --with test - name: Download all coverage reports uses: actions/download-artifact@v4 with: path: coverage - - name: debug reports - shell: bash - run: | - poetry --directory ./src/datasource_toolkit run pwd && - poetry --directory ./src/datasource_toolkit run ls -hal ../../coverage/ && - poetry --directory ./src/datasource_toolkit run find ../../coverage/ | grep \\.coverage && - poetry --directory ./src/datasource_toolkit run find ../../coverage | xargs poetry --directory ./src/datasource_toolkit run ls - name: Combine reports shell: bash run: poetry --directory ./src/datasource_toolkit run find ../../coverage | grep \\.coverage | xargs poetry --directory ./src/datasource_toolkit run coverage combine From 456e942e2d25b60944047927f49fb824977acf1e Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Mon, 6 Jan 2025 15:30:30 +0100 Subject: [PATCH 30/31] chore: restore correct values --- .github/workflows/generic.yml | 178 +++++++++++++++++----------------- 1 file changed, 88 insertions(+), 90 deletions(-) diff --git a/.github/workflows/generic.yml b/.github/workflows/generic.yml index 96827e492..46122094d 100644 --- a/.github/workflows/generic.yml +++ b/.github/workflows/generic.yml @@ -24,98 +24,96 @@ on: SLACK_WEBHOOK: required: true jobs: - # TODO: uncomment - # changes: - # name: changes - # runs-on: ubuntu-latest - # outputs: - # packages: ${{ steps.changes.outputs.packages }} - # steps: - # - uses: actions/checkout@v4 - # - id: changes - # uses: ./.github/actions/changes - # lint: - # name: Linting - # needs: [ changes ] - # runs-on: ubuntu-latest - # strategy: - # matrix: - # python-version: ['3.10'] - # current_package: ${{ fromJson(inputs.packages) }} - # steps: - # - name: has change in sub package - # id: has_change - # run: | - # PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) - # echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT - # shell: bash - # env: - # PACKAGE: ${{ matrix.current_package }} - # CHANGES: ${{ needs.changes.outputs.packages }} - # - uses: actions/checkout@v4 - # if: ${{ steps.has_change.outputs.has_change != 'false' }} - # - id: lint - # if: ${{ steps.has_change.outputs.has_change != 'false' }} - # uses: ./.github/actions/linting - # with: - # python-version: ${{ matrix.python-version }} - # current_package: ${{ matrix.current_package }} - # isort: - # name: Isorting - # needs: [ changes ] - # runs-on: ubuntu-latest - # strategy: - # matrix: - # python-version: ['3.10'] - # current_package: ${{ fromJson(inputs.packages) }} - # steps: - # - name: has change in sub package - # id: has_change - # run: | - # PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) - # echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT - # shell: bash - # env: - # PACKAGE: ${{ matrix.current_package }} - # CHANGES: ${{ needs.changes.outputs.packages }} - # - uses: actions/checkout@v4 - # if: ${{ steps.has_change.outputs.has_change != 'false' }} - # - id: isort - # if: ${{ steps.has_change.outputs.has_change != 'false' }} - # uses: ./.github/actions/isort - # with: - # python-version: ${{ matrix.python-version }} - # current_package: ${{ matrix.current_package }} - # black: - # name: Black - # needs: [ changes ] - # runs-on: ubuntu-latest - # strategy: - # matrix: - # python-version: ['3.10'] - # current_package: ${{ fromJson(inputs.packages) }} - # steps: - # - name: has change in sub package - # id: has_change - # run: | - # PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) - # echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT - # shell: bash - # env: - # PACKAGE: ${{ matrix.current_package }} - # CHANGES: ${{ needs.changes.outputs.packages }} - # - uses: actions/checkout@v4 - # if: ${{ steps.has_change.outputs.has_change != 'false' }} - # - id: isort - # if: ${{ steps.has_change.outputs.has_change != 'false' }} - # uses: ./.github/actions/black - # with: - # python-version: ${{ matrix.python-version }} - # current_package: ${{ matrix.current_package }} + changes: + name: changes + runs-on: ubuntu-latest + outputs: + packages: ${{ steps.changes.outputs.packages }} + steps: + - uses: actions/checkout@v4 + - id: changes + uses: ./.github/actions/changes + lint: + name: Linting + needs: [ changes ] + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.10'] + current_package: ${{ fromJson(inputs.packages) }} + steps: + - name: has change in sub package + id: has_change + run: | + PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) + echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT + shell: bash + env: + PACKAGE: ${{ matrix.current_package }} + CHANGES: ${{ needs.changes.outputs.packages }} + - uses: actions/checkout@v4 + if: ${{ steps.has_change.outputs.has_change != 'false' }} + - id: lint + if: ${{ steps.has_change.outputs.has_change != 'false' }} + uses: ./.github/actions/linting + with: + python-version: ${{ matrix.python-version }} + current_package: ${{ matrix.current_package }} + isort: + name: Isorting + needs: [ changes ] + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.10'] + current_package: ${{ fromJson(inputs.packages) }} + steps: + - name: has change in sub package + id: has_change + run: | + PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) + echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT + shell: bash + env: + PACKAGE: ${{ matrix.current_package }} + CHANGES: ${{ needs.changes.outputs.packages }} + - uses: actions/checkout@v4 + if: ${{ steps.has_change.outputs.has_change != 'false' }} + - id: isort + if: ${{ steps.has_change.outputs.has_change != 'false' }} + uses: ./.github/actions/isort + with: + python-version: ${{ matrix.python-version }} + current_package: ${{ matrix.current_package }} + black: + name: Black + needs: [ changes ] + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.10'] + current_package: ${{ fromJson(inputs.packages) }} + steps: + - name: has change in sub package + id: has_change + run: | + PACKAGE_NAME=$(echo $PACKAGE | cut -d'/' -f3) + echo "has_change=$(echo $CHANGES | jq -r .$PACKAGE_NAME)" >> $GITHUB_OUTPUT + shell: bash + env: + PACKAGE: ${{ matrix.current_package }} + CHANGES: ${{ needs.changes.outputs.packages }} + - uses: actions/checkout@v4 + if: ${{ steps.has_change.outputs.has_change != 'false' }} + - id: isort + if: ${{ steps.has_change.outputs.has_change != 'false' }} + uses: ./.github/actions/black + with: + python-version: ${{ matrix.python-version }} + current_package: ${{ matrix.current_package }} test: name: Test - # TODO - # needs: [isort, lint, black] + needs: [isort, lint, black] runs-on: ubuntu-latest strategy: matrix: From e071138a03de9f6444d9862d1a37f43165903de5 Mon Sep 17 00:00:00 2001 From: Julien Barreau Date: Tue, 7 Jan 2025 15:08:29 +0100 Subject: [PATCH 31/31] chore: add mark schema as dirty --- .../decorators/search/collections.py | 2 ++ .../search/test_search_collection_decorator.py | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py index 8d9af8f30..673c5803a 100644 --- a/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py +++ b/src/datasource_toolkit/forestadmin/datasource_toolkit/decorators/search/collections.py @@ -36,10 +36,12 @@ def __init__(self, collection: Collection, datasource: Datasource[BoundCollectio def disable_search(self): self._searchable = False + self.mark_schema_as_dirty() def replace_search(self, replacer: SearchDefinition): self._replacer = replacer self._searchable = True + self.mark_schema_as_dirty() def _refine_schema(self, sub_schema: CollectionSchema) -> CollectionSchema: return { diff --git a/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py b/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py index 7c0827f86..f15e2e2a9 100644 --- a/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py +++ b/src/datasource_toolkit/tests/decorators/search/test_search_collection_decorator.py @@ -622,3 +622,13 @@ async def replacer_fn(value, extended, context): filter_ = Filter({"search": "something", "search_extended": True}) self.loop.run_until_complete(self.decorated_collection_person._refine_filter(self.mocked_caller, filter_)) spy_replacer_fn.assert_awaited_with("something", True, ANY) + + def test_disable_search_should_mark_schema_as_dirty(self): + with patch.object(self.decorated_collection_person, "mark_schema_as_dirty") as mark_schema_as_dirty: + self.decorated_collection_person.disable_search() + mark_schema_as_dirty.assert_called_once() + + def test_replace_search_should_mark_schema_as_dirty(self): + with patch.object(self.decorated_collection_person, "mark_schema_as_dirty") as mark_schema_as_dirty: + self.decorated_collection_person.replace_search(None) + mark_schema_as_dirty.assert_called_once()