New Contributors
- @retacg made their first contribution in #1134
- @lisamessier made their first contribution in #1141
Welcome and thank you! 🎉🎊🥳
And of course, huge thanks to all our returning contributors: @austinweisgrau @KasiaHinkson @strangeways @anzelpwj @sharinetmc @sjwmoveon @SorenSpicknall @ydamit @bmos @shaunagm @IanRFerguson @willyraedy @codygordon and @salice
What's Changed
Breaking changes
- Parsons no longer supports Python 3.8. Your Parsons scripts may still run on 3.8 but we strongly recommend updating. More in #1192
- Allow ActionNetwork upsert_person to not change mobile opt-in status by @austinweisgrau in #1212
- We've added a ten minute timeout for calls to the CatalistMatch sftp server. More in #1149
Prior behavior opted-in all phone numbers by default, and the only alternative would be to opt-out phone numbers sent to the API. This update allows for not changing the opt-in status of the number, and changes the default from opt-in to no change. This is a more reasonable and legally compliant default behavior than opting-in.
This causes a change in behavior! If users are currently relying on the default opt-in behavior of this connector's upsert_person method, this change will break their workflow. However, it is generally not legally compliant to opt-in by default, and more likely is that many users are unknowingly setting opt-in status to "subscribed" by default in a legally non-compliant way. The new configuration will require users to explicitly pass opt-in status if they want that status to be changed in ActionNetwork.
- We incorporated a patch in Python that changes how email addresses are validated. If your Parsons script starts giving you weird email validation errors please reach out and we'll help you debug. More in #1146
- This is technically not a breaking change either, but a heads up: newmode has made major changes to their API and is deprecating their old API next month. @sharinetmc has updated our connector accordingly in #1227 - if you use newmode with Parsons (or any API) watch out for this change!
User-facing
New connectors
- Kasiah/community dot com connector by @KasiaHinkson in #1112
- Kasiah/empower connector by @KasiaHinkson in #1191
- Airmeet Event Details connector with tests and documentation by @strangeways in #1077
Other enhancements and features
- Allow to_gcs_csv function to accept a gcs instance instead of creating one by @KasiaHinkson in #1109
- SFTP utility can include timeout by @austinweisgrau in #1081
- Enable GZIP on BigQuery extract to GCS by @austinweisgrau in #1110
- Add skipMatching to apply_response() by @retacg in #1134
- BigQuery copy method can convert dict column to JSON string by @austinweisgrau in #1143
- Allow setting gcs_tmp_bucket on GoogleBigQuery class by @austinweisgrau in #1147
- Allow passing google auth Credentials directly to GCS connector by @austinweisgrau in #1148
- Postgres copy explicates columns and column order by @austinweisgrau in #1137
- Add email and contact notes to NGPVAN docs by @anzelpwj in #1131
- Update Dockerfile by @KasiaHinkson in #1186
- add method and test webinar report by @sharinetmc in #1213
- Add unique ID list creation to ActionNetwork handler by @sjwmoveon in #1241
- Add newmode v2 by @sharinetmc in #1227
Bugfixes and other changes
- Update old reference to Parsons API key type by @SorenSpicknall in #1103
- Restore functionality of Google Sheets API tests by @SorenSpicknall in #1104
- Bug fix: pass custom delimiter from Table.from_csv to BigQuery load by @austinweisgrau in #1083
- updated README with correct instructions for installing from Github by @lisamessier in #1141
- email parse depends on python patch version by @austinweisgrau in #1146
- Remove entity from campaign method by @ydamit in #1140
- Fix NGPVAN _people_search arbitrary fields feature by @austinweisgrau in #1150
Not user-facing (ideally! things can always go wrong!)
Internal infrastructure changes
- Restore minimal CONTRIBUTING.md that treats website as source of truth by @SorenSpicknall in #1106
- Step security changes by @anzelpwj in #1120
- Implement Windows testing by @bmos in #1119
- circleci updates by @bmos in #1122
- #1091 ruff added to pre-commit, pyproject.toml, requirements-dev.txt, ruff linting differences by @salice in #1108
- Use UV for package install and dependency resolution by @bmos in #1016
- Create security_scorecard.yml by @shaunagm in #1116
- Use ruff's recommended github output format by @bmos in #1117
- Update Dockerfile with uv by @bmos in #1135
- Github Actions Rebuild by @bmos in #1132
Dependency updates
- Version bump for certain packages by @anzelpwj in #1121
- Update requests version by @anzelpwj in #1130
- Bump github/codeql-action from 3.26.6 to 3.26.12 by @dependabot in #1151
- Bump actions/checkout from 4.1.1 to 4.2.1 by @dependabot in #1152
- Bump google-cloud-bigquery from 3.23.1 to 3.26.0 in /docs by @dependabot in #1153
- Bump xmltodict from 0.11.0 to 0.14.1 in /docs by @dependabot in #1155
- Bump install-pinned/uv from de03c60d508703a83d3f8f49afcf1249590ecda1 to 03a68782c27167b267490a9392ac24d6b93a2f14 by @dependabot in #1154
- Bump step-security/harden-runner from 2.9.1 to 2.10.1 by @dependabot in #1156
- Bump pygithub from 1.51 to 2.4.0 by @dependabot in #1157
- Revert "Bump install-pinned/uv from de03c60d508703a83d3f8f49afcf1249590ecda1 to 03a68782c27167b267490a9392ac24d6b93a2f14" by @shaunagm in #1168
- Bump ossf/scorecard-action from 2.3.1 to 2.4.0 by @dependabot in #1158
- Update sqlalchemy requirement from !=1.4.33,<2.0.0,>=1.4.22 to >=1.4.22,!=1.4.33,<3.0.0 by @dependabot in #1164
- Bump censusgeocode from 0.4.3.post1 to 0.5.2 by @dependabot in #1165
- Bump mysql-connector-python from 8.0.18 to 9.1.0 by @dependabot in #1169
- Bump gspread from 3.7.0 to 6.1.4 in /docs by @dependabot in #1172
- Bump suds-py3 from 1.4.4.1 to 1.4.5.0 in /docs by @dependabot in #1171
- Bump actions/checkout from 4.2.1 to 4.2.2 by @dependabot in #1178
- Bump actions/setup-python from 5.2.0 to 5.3.0 by @dependabot in #1176
- Bump github/codeql-action from 3.26.12 to 3.27.5 by @dependabot in #1194
- Bump install-pinned/uv from de03c60d508703a83d3f8f49afcf1249590ecda1 to ffec6b0ac55e0000217a14a4b1f838c941e88ce3 by @dependabot in #1197
- Bump grpcio from 1.62.2 to 1.68.1 in /docs by @dependabot in #1196
- Remove google-resumable-media from requirements.txt by @shaunagm in #1209
- Bump twilio from 8.2.1 to 9.3.8 by @dependabot in #1200
- Bump braintree from 4.17.1 to 4.31.0 in /docs by @dependabot in #1202
- Bump google-api-core from 2.19.2 to 2.23.0 in /docs by @dependabot in #1203
- Bump bs4 from 0.0.1 to 0.0.2 in /docs by @dependabot in #1204
- Bump install-pinned/uv from ffec6b0ac55e0000217a14a4b1f838c941e88ce3 to 79cef4cccc47c7fb191b653a4184e34d83437a8b by @dependabot in #1205
- Bump github/codeql-action from 3.27.5 to 3.27.6 by @dependabot in #1206
- Bump actions/dependency-review-action from 4.3.4 to 4.5.0 by @dependabot in #1207
- Bump step-security/harden-runner from 2.10.1 to 2.10.2 by @dependabot in #1208
- Bump google-cloud-storage from 2.16.0 to 2.18.2 by @dependabot in #1162
- Remove docutils from requirements.txt by @shaunagm in #1210
- Update Sphinx to 8.1.3, sphinx-rtd-theme to 3.0.0 and myst-parser to 4.0.0 by @shaunagm in #1211
- Bump xmltodict from 0.14.1 to 0.14.2 by @dependabot in #1214
- Bump requests-oauthlib from 1.3.0 to 2.0.0 by @dependabot in #1215
- Bump google-auth from 2.29.0 to 2.37.0 by @dependabot in #1216
- Bump bandit[toml] from 1.7.10 to 1.8.0 by @dependabot in #1217
- Bump facebook-business from 13.0.0 to 21.0.5 by @dependabot in #1218
- Bump github/codeql-action from 3.27.6 to 3.27.9 by @dependabot in #1219
- Bump install-pinned/uv from 79cef4cccc47c7fb191b653a4184e34d83437a8b to 79408d4e43d557f731ba612bec337d5414737a70 by @dependabot in #1220
- Bump paramiko from 3.4.0 to 3.5.0 in /docs by @dependabot in #1222
- Bump google-api-core from 2.23.0 to 2.24.0 in /docs by @dependabot in #1223
- Bump dbt-redshift from 1.4.0 to 1.9.0 in /docs by @dependabot in #1224
- Bump setuptools from 70.0.0 to 75.6.0 in /docs by @dependabot in #1225
- Bump simple-salesforce from 1.11.6 to 1.12.6 by @dependabot in #1231
- Bump python-dateutil from 2.8.2 to 2.9.0.post0 by @dependabot in #1232
- Bump google-cloud-storage from 2.18.2 to 2.19.0 in /docs by @dependabot in #1234
- Bump twilio from 9.3.8 to 9.4.3 by @dependabot in #1245
- Bump twilio from 9.3.8 to 9.4.3 in /docs by @dependabot in #1246
- Bump step-security/harden-runner from 2.10.2 to 2.10.4 by @dependabot in #1247
- Bump actions/upload-artifact from 4.4.3 to 4.6.0 by @dependabot in #1249
- Bump install-pinned/uv from 79408d4e43d557f731ba612bec337d5414737a70 to 42b3e2a67abaefa8cd01c6f53ac3e86b4b420d4a by @dependabot in #1252
- Bump github/codeql-action from 3.27.9 to 3.28.5 by @dependabot in #1253
- Bump azure-storage-blob from 12.13.0 to 12.24.1 in /docs by @dependabot in #1254
- Use environment markers to handle more recent versions of python-civis by @shaunagm in #1255
Full Changelog: v3.2.0...v3.2.1