Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 10 additions & 11 deletions .github/workflows/build-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,23 +34,22 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: '.python-version'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Build ${{ matrix.component }}
run: |
cd ${{ matrix.component }}
python -m build
if [ "${{ matrix.component }}" = "gooddata-api-client" ]; then
cd ${{ matrix.component }}
else
cd packages/${{ matrix.component }}
fi
uv build --out-dir dist
- name: Persist ${{ matrix.component }} artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts_${{ matrix.component }}
path: ${{ matrix.component }}/dist/
path: |
${{ matrix.component == 'gooddata-api-client' && format('{0}/dist/', matrix.component) || format('packages/{0}/dist/', matrix.component) }}
if-no-files-found: error
github_release:
name: Create GitHub release
Expand Down
10 changes: 3 additions & 7 deletions .github/workflows/bump-version.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,12 @@ jobs:
with:
token: ${{ secrets.TOKEN_GITHUB_YENKINS_ADMIN }} # needed to push to the protected branch

- uses: actions/setup-python@v5
with:
python-version-file: '.python-version'
cache: 'pip'
cache-dependency-path: |
release-requirements.txt
- name: Install uv
uses: astral-sh/setup-uv@v5

- name: Install dependencies
run: |
pip install -r release-requirements.txt
uv sync --group release

- name: Bump version
id: bump
Expand Down
23 changes: 12 additions & 11 deletions .github/workflows/dev-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,25 @@ jobs:
uses: actions/checkout@v4
with:
ref: ${{ inputs.BRANCH_NAME }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: '.python-version'
- name: Install pip & tbump
run: python -m pip install --upgrade pip tbump
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install dependencies
run: |
uv sync --group release
- name: Bump to dev
run: tbump --only-patch --non-interactive $(./scripts/next_dev.sh)
- name: Install dependencies
run: pip install build
- name: Build ${{ matrix.component }}
run: |
cd ${{ matrix.component }}
python -m build
if [ "${{ matrix.component }}" = "gooddata-api-client" ]; then
cd ${{ matrix.component }}
else
cd packages/${{ matrix.component }}
fi
uv build --out-dir dist
- name: Push ${{ matrix.component}} to pypi
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
packages_dir: ${{ matrix.component }}/dist
packages_dir: ${{ matrix.component == 'gooddata-api-client' && format('{0}/dist', matrix.component) || format('packages/{0}/dist', matrix.component) }}
verbose: true
13 changes: 3 additions & 10 deletions .github/workflows/rw-collect-changes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,11 @@ jobs:
base: ${{ inputs.commit-branch }}
filters: |
docs:
- 'gooddata-pandas/**'
- 'gooddata-sdk/**'
- 'packages/gooddata-pandas/**'
- 'packages/gooddata-sdk/**'
- 'docs/**'
python-modules:
- '.docker/**'
- 'gooddata-fdw/**'
- 'gooddata-pandas/**'
- 'gooddata-sdk/**'
- 'packages/**'
- '*.mk'
- 'Makefile'
- 'gooddata-api-client/**'
- 'gooddata-dbt/**'
- 'gooddata-flight-server/**'
- 'gooddata-flexconnect/**'
- 'gooddata-pipelines/**'
19 changes: 7 additions & 12 deletions .github/workflows/rw-python-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,21 @@ jobs:
if: ${{ matrix.python_version == 'py313' }}
uses: codecov/codecov-action@v3
with:
files: ./gooddata-sdk/coverage.xml,./gooddata-pandas/coverage.xml,./gooddata-fdw/coverage.xml,./gooddata-flight-server/coverage.xml,./gooddata-flexconnect/coverage.xml
files: ./packages/gooddata-sdk/coverage.xml,./packages/gooddata-pandas/coverage.xml,./packages/gooddata-fdw/coverage.xml,./packages/gooddata-flight-server/coverage.xml,./packages/gooddata-flexconnect/coverage.xml
lint-and-format-check:
runs-on: ubuntu-latest
if: ${{inputs.changed-python-modules == 'true'}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up python 3.13
uses: actions/setup-python@v5
uses: astral-sh/setup-uv@v6
with:
python-version-file: '.python-version'
cache: 'pip'
cache-dependency-path: |
fmt-requirements.txt
python-version: 3.13
- name: Install dependencies
run: |
make dev
uv venv
uv pip install --group lint
- name: pep8 and formatting check
run: |
make format
Expand All @@ -54,13 +52,10 @@ jobs:
uses: actions/setup-python@v5
with:
python-version-file: '.python-version'
cache: 'pip'
cache-dependency-path: |
tox-requirements.txt
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r tox-requirements.txt
python -m pip install uv
uv pip install --group tox --group type --system
- name: mypy check
run: |
make mypy
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
.env.test
.venv
test_clients.py
gooddata-sdk/tests/catalog/store
gooddata-sdk/tests/catalog/translate
packages/gooddata-sdk/tests/catalog/store
packages/gooddata-sdk/tests/catalog/translate
.DS_Store
.vscode
.ruff_cache
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ repos:
args: [ '--maxkb=890' ]
- id: check-case-conflict
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.9.1
rev: v0.9.5
hooks:
# Run the linter.
- id: ruff
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,12 +143,12 @@ Here are the options how to run the tests:
- run tests for one sub-project - drill down to sub-project's directory
- use `make test` to trigger tests
```bash
cd gooddata-sdk
cd packages/gooddata-sdk
make test
```
- or execute `tox` command with arguments of your choice
```bash
cd gooddata-sdk
cd packages/gooddata-sdk
tox -e py39
```
- run tests for all non-client projects using `make test` in project root directory
Expand Down Expand Up @@ -210,7 +210,7 @@ venv automatically. So when docker tox tests are executed after localhost tests
```
- run all tests for all supported python environments and for one project
```bash
cd gooddata-sdk
cd packages/gooddata-sdk
make test-ci
```
- run all tests containing `http_headers` in name for py310 and py39 for all projects
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ RUN set -x \
ENV PYTHON_TOX_VERSION=4.14.1
ENV PYTHON_TOX_UV_VERSION=1.7.0
RUN set -x \
&& pip3 install tox==${PYTHON_TOX_VERSION} tox-uv==${PYTHON_TOX_UV_VERSION}\
&& pip3 install uv tox==${PYTHON_TOX_VERSION} tox-uv==${PYTHON_TOX_UV_VERSION}\
&& true

COPY .docker/entrypoint.sh /entrypoint.sh
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2022-2024 GoodData Corporation
Copyright (c) 2022-2025 GoodData Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
14 changes: 6 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# (C) 2021 GoodData Corporation
# list all full paths to files and directories in CWD containing "gooddata", filter out ones ending by "client"
NO_CLIENT_GD_PROJECTS_ABS = $(filter-out %client, $(wildcard $(CURDIR)/*gooddata*))
NO_CLIENT_GD_PROJECTS_ABS = $(filter-out %client, $(wildcard $(CURDIR)/packages/*gooddata*))
# for each path, take only the base name of the path
NO_CLIENT_GD_PROJECTS_DIRS = $(foreach dir, $(NO_CLIENT_GD_PROJECTS_ABS), $(notdir $(dir)))
# TODO: replace API_VERSION in the future by call to API
Expand All @@ -18,9 +18,7 @@ all:

.PHONY: dev
dev:
rm -rf .venv
python3.13 -m venv .venv --upgrade-deps
.venv/bin/pip3 install -r dev-requirements.txt
uv sync --all-groups
.venv/bin/pre-commit install

.PHONY: lint
Expand Down Expand Up @@ -72,13 +70,13 @@ download:
.PHONY: mypy
mypy:
RESULT=0; \
for project in $(NO_CLIENT_GD_PROJECTS_DIRS); do $(MAKE) -C $${project} $@ || RESULT=$$?; done; \
for project in $(NO_CLIENT_GD_PROJECTS_DIRS); do $(MAKE) -C packages/$${project} $@ || RESULT=$$?; done; \
exit $$RESULT

.PHONY: test
test:
RESULT=0; \
for project in $(NO_CLIENT_GD_PROJECTS_DIRS); do $(MAKE) -C $${project} test || RESULT=$$?; done; \
for project in $(NO_CLIENT_GD_PROJECTS_DIRS); do $(MAKE) -C packages/$${project} test || RESULT=$$?; done; \
exit $$RESULT

.PHONY: release
Expand All @@ -98,13 +96,13 @@ check-copyright:
.PHONY: docs
docs:
RESULT=0; \
for project in gooddata-fdw gooddata-pandas; do $(MAKE) -C $${project} $@ || RESULT=$$?; done; \
for project in gooddata-fdw gooddata-pandas; do $(MAKE) -C packages/$${project} $@ || RESULT=$$?; done; \
exit $$RESULT

.PHONY: remove-cassettes
remove-cassettes:
RESULT=0; \
for project in $(NO_CLIENT_GD_PROJECTS_DIRS); do $(MAKE) -C $${project} $@ || RESULT=$$?; done; \
for project in $(NO_CLIENT_GD_PROJECTS_DIRS); do $(MAKE) -C packages/$${project} $@ || RESULT=$$?; done; \
exit $$RESULT

.PHONY: new-docs
Expand Down
2 changes: 1 addition & 1 deletion OSS LICENSES/LICENSE (gooddata-api-client).txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2022-2024 GoodData Corporation
Copyright (c) 2022-2025 GoodData Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
1 change: 0 additions & 1 deletion OSS LICENSES/LICENSE (gooddata-pipelines).txt

This file was deleted.

10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,26 +16,26 @@ Python. Learn more about the clients in their [dedicated readme](./clients_READM

### GoodData Python SDK

The [gooddata-sdk](./gooddata-sdk) package provides a clean and convenient Python API to interact with GoodData.CN.
The [gooddata-sdk](./packages/gooddata-sdk) package provides a clean and convenient Python API to interact with GoodData.CN.

Check out the GoodData Python SDK [documentation](https://www.gooddata.com/docs/python-sdk) to learn more and get started.

### GoodData Pandas

The [gooddata-pandas](./gooddata-pandas) package is a thin layer that utilizes Python SDK and allows you to conveniently
The [gooddata-pandas](./packages/gooddata-pandas) package is a thin layer that utilizes Python SDK and allows you to conveniently
create pandas series and data frames.

Check out the GoodData Pandas [documentation](https://gooddata-pandas.readthedocs.io/en/latest/) to learn more and get started.

### GoodData Pipelines

The [gooddata-pipelines](./gooddata-pipelines/) package provides easy ways to manage the lifecycle of GoodData Cloud.
The [gooddata-pipelines](./packages/gooddata-pipelines/) package provides easy ways to manage the lifecycle of GoodData Cloud.

Check out the GoodData Pipelines [documentation](https://www.gooddata.com/docs/python-sdk/latest/pipelines-overview/) to learn more and get started.

### GoodData FlexConnect

The [gooddata-flexconnect](./gooddata-flexconnect) package is the foundation for writing custom FlexConnect data sources.
The [gooddata-flexconnect](./packages/gooddata-flexconnect) package is the foundation for writing custom FlexConnect data sources.

Check out the GoodData FlexConnect [documentation](https://www.gooddata.com/docs/cloud/connect-data/create-data-sources/flexconnect/) to learn more and get started.

Expand All @@ -44,7 +44,7 @@ Check out the GoodData FlexConnect [documentation](https://www.gooddata.com/docs
> [!WARNING]
> GoodData Foreign Data Wrapper is currently deprecated.

The [gooddata-fdw](./gooddata-fdw) package provides a way
The [gooddata-fdw](./packages/gooddata-fdw) package provides a way
to map GoodData Cloud semantic layer and/or visualizations stored in your GoodData Cloud
into PostgreSQL as foreign tables that you can then query using SQL.

Expand Down
2 changes: 1 addition & 1 deletion ci_tests.mk
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ endif
# to the project directory so that only tests for given project are executed
DOCKER_COMMAND =
ifdef TEST_CI_PROJECT
DOCKER_COMMAND = make -C $(TEST_CI_PROJECT) test
DOCKER_COMMAND = make -C packages/$(TEST_CI_PROJECT) test
endif


Expand Down
22 changes: 0 additions & 22 deletions dev-requirements.txt

This file was deleted.

4 changes: 2 additions & 2 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ services:
gooddata-fdw:
build:
context: .
dockerfile: gooddata-fdw/Dockerfile
dockerfile: packages/gooddata-fdw/Dockerfile
ports:
- "2543:5432"
environment:
Expand All @@ -42,7 +42,7 @@ services:
upload-layout:
build:
context: .
dockerfile: tests-support/Dockerfile
dockerfile: packages/tests-support/Dockerfile
environment:
FIXTURES_DIR: /app/fixtures
HOST: "http://gooddata-cn-ce:3000"
Expand Down
4 changes: 2 additions & 2 deletions docs/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ COPY scripts/script-requirements.txt /scripts/script-requirements.txt
COPY docs docs
COPY scripts/docs/ /docs
COPY gooddata-api-client /gooddata-api-client
COPY gooddata-sdk /gooddata-sdk
COPY gooddata-pandas /gooddata-pandas
COPY packages/gooddata-sdk /gooddata-sdk
COPY packages/gooddata-pandas /gooddata-pandas

RUN pip install --no-cache-dir -r /scripts/script-requirements.txt

Expand Down
1 change: 0 additions & 1 deletion fmt-requirements.txt

This file was deleted.

1 change: 0 additions & 1 deletion gooddata-dbt/LICENSE.txt

This file was deleted.

5 changes: 0 additions & 5 deletions gooddata-dbt/requirements.txt

This file was deleted.

Loading
Loading