-
Couldn't load subscription status.
- Fork 4.9k
chore(source-facebook-marketing): Upgrade to Python 3.13 #68617
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
chore(source-facebook-marketing): Upgrade to Python 3.13 #68617
Conversation
- Update Python version constraint from ^3.10,<3.12 to >=3.10,<3.14 - Update base image to python-connector-base:4.1.0 (Python 3.13) - Regenerate poetry.lock for Python 3.13 compatibility - All 262 unit tests pass successfully - Add detailed upgrade documentation in PYTHON_313_UPGRADE.md Co-Authored-By: David Gold <32782137+dbgold17@users.noreply.github.com>
Original prompt from David Gold |
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. Helpful Resources
PR Slash CommandsAirbyte Maintainers (that's you!) can execute the following slash commands on your PR:
|
|
Co-Authored-By: David Gold <32782137+dbgold17@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit
markdownlint
[markdownlint] reported by reviewdog 🐶
MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```diff"]
airbyte/airbyte-integrations/connectors/source-facebook-marketing/PYTHON_313_UPGRADE.md
Line 125 in 018e5e4
| ```diff |
[markdownlint] reported by reviewdog 🐶
MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### 2. metadata.yaml"]
airbyte/airbyte-integrations/connectors/source-facebook-marketing/PYTHON_313_UPGRADE.md
Line 131 in 018e5e4
| ### 2. metadata.yaml |
[markdownlint] reported by reviewdog 🐶
MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```diff"]
airbyte/airbyte-integrations/connectors/source-facebook-marketing/PYTHON_313_UPGRADE.md
Line 132 in 018e5e4
| ```diff |
[markdownlint] reported by reviewdog 🐶
MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### 3. poetry.lock"]
airbyte/airbyte-integrations/connectors/source-facebook-marketing/PYTHON_313_UPGRADE.md
Line 138 in 018e5e4
| ### 3. poetry.lock |
[markdownlint] reported by reviewdog 🐶
MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- Regenerated with Python 3.13..."]
airbyte/airbyte-integrations/connectors/source-facebook-marketing/PYTHON_313_UPGRADE.md
Line 139 in 018e5e4
| - Regenerated with Python 3.13 compatibility |
[markdownlint] reported by reviewdog 🐶
MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Conclusion"]
airbyte/airbyte-integrations/connectors/source-facebook-marketing/PYTHON_313_UPGRADE.md
Line 142 in 018e5e4
| ## Conclusion |
[markdownlint] reported by reviewdog 🐶
MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- ✅ Installs successfully with..."]
airbyte/airbyte-integrations/connectors/source-facebook-marketing/PYTHON_313_UPGRADE.md
Line 144 in 018e5e4
| - ✅ Installs successfully with Python 3.13 |
…ON_313_UPGRADE.md
|
Deploy preview for airbyte-docs ready! ✅ Preview Built with commit 3365d0e. |
airbyte-integrations/connectors/source-facebook-marketing/pyproject.toml
Outdated
Show resolved
Hide resolved
| python = "^3.10,<3.14" | ||
| airbyte-cdk = "^7" | ||
| facebook-business = "^23.0.0" | ||
| facebook-business = "23.0.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I pinned the exact version of the facebook business API because it seems that new version add in new ads insights breakdowns and I figured we'd want to control that given the unit tests we have.
If I unpin it, unit tests need to be updated since we apparently compare the list of ads insights from their API with a static list we have locally. If we feel comfortable unpinning, it isn't clear what value that unit test is adding and I can remove it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ads breakdowns have very specific setups and i think can actually lead to missing records and other painful bugs. I would recommend we err on the side of keeping these types of tests if we're not sure their use because it was probably there for a reason in a previous painful OC issue
How many tests break from this out of curiosity. I'm fine with a pin just so we don't combine too many changes into a single release. But 2 points of due diligence we should note:
- When does v23 deprecate? how much time do we have before it does. If its soon we need to prioritize
- If there is no version upgrade GH issue, we should create it. If it already exists, then can you add a note about the impact to the unit tests and that you pinned it here during the 3.13 upgrade
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
v24 of the API seems like it was just released (v24 of the Python library doesn't exist yet) and so we have some time. I added a note to this issue
A nice side effect of pinning the patch version of this package is that the up-to-date pipeline will be more likely to succeed in updating other dependencies automatically.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
similar to salesforce, have we run some regression tests on this?
pending that, but not going to block on approval
| python = "^3.10,<3.14" | ||
| airbyte-cdk = "^7" | ||
| facebook-business = "^23.0.0" | ||
| facebook-business = "23.0.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ads breakdowns have very specific setups and i think can actually lead to missing records and other painful bugs. I would recommend we err on the side of keeping these types of tests if we're not sure their use because it was probably there for a reason in a previous painful OC issue
How many tests break from this out of curiosity. I'm fine with a pin just so we don't combine too many changes into a single release. But 2 points of due diligence we should note:
- When does v23 deprecate? how much time do we have before it does. If its soon we need to prioritize
- If there is no version upgrade GH issue, we should create it. If it already exists, then can you add a note about the impact to the unit tests and that you pinned it here during the 3.13 upgrade
|
@dbgold17 pinned the facebook-business version to The test at line 768 in Regarding your questions:
The pin makes sense for this PR to keep the scope focused on the Python 3.13 upgrade without introducing additional changes from a facebook-business library update. |
|
regression test run: https://github.com/airbytehq/airbyte/actions/runs/18793289999 |
What
Upgrades the source-facebook-marketing connector to support Python 3.13 and bumps the version to 4.2.0. This addresses the need to modernize the connector's Python runtime support.
Related to session: https://app.devin.ai/sessions/8746815748ba4a248da87379be2700dd
Requested by: David Gold (@dbgold17)
How
pyproject.tomlfrom^3.10,<3.12to>=3.10,<3.14<3.14is required because airbyte-cdk currently only supports up to Python 3.13metadata.yamltopython-connector-base:4.1.0(includes Python 3.13 support)Review guide
airbyte-integrations/connectors/source-facebook-marketing/pyproject.toml- Review Python constraint change (line 19)airbyte-integrations/connectors/source-facebook-marketing/metadata.yaml- Verify base image update (line 9) and version bump (line 13)docs/integrations/sources/facebook-marketing.md- Check changelog entry format and placement (line 359)PYTHON_313_UPGRADE.md- Documentation of upgrade process (informational)User Impact
Can this PR be safely reverted and rolled back?
This is a dependency update with no functional changes. Reverting would restore Python 3.10-3.11 support only.