Skip to content

Releases: move-coop/parsons

v5.2.0

24 Jul 18:17
8fc6d9b

Choose a tag to compare

Thanks to @fgregg @bmos @codybraun @anzelpwj for their contributions to this release!

What's Changed

  • Updates to the release process by @shaunagm @fgregg and @bmos, the most important of which fixes an issue where requirements.txt wasn't included in 5.1.0, breaking installs. That's fixed in #1531 (other release updates in #1505 #1506 #1507)
  • Don't refresh NewMode Oauth by @codybraun in #1517
  • Update some docs with column names by @anzelpwj in #1522

Dependency updates

  • Update install-pinned/uv requirement to 05389e8b8c79922b1376aee8c2d598b3219da230 by @dependabot[bot] in #1513
  • Bump curlify from 2.2.1 to 3.0.0 by @dependabot[bot] in #1511
  • Bump braintree from 4.31.0 to 4.37.0 by @dependabot[bot] in #1510
  • Bump github/codeql-action from 3.29.1 to 3.29.2 by @dependabot[bot] in #1508
  • Bump pytest-datadir from 1.6.1 to 1.7.2 by @dependabot[bot] in #1514
  • Bump pytest-mock from 3.14.0 to 3.14.1 by @dependabot[bot] in #1524
  • Bump coverage from 7.8.0 to 7.9.2 by @dependabot[bot] in #1525
  • Bump google-api-core from 2.24.2 to 2.25.1 by @dependabot[bot] in #1526
  • Bump py-cov-action/python-coverage-comment-action from 3.34 to 3.35 by @dependabot[bot] in #1528
  • Bump step-security/harden-runner from 2.12.2 to 2.13.0 by @dependabot[bot] in #1533
  • Bump install-pinned/uv from 05389e8b8c79922b1376aee8c2d598b3219da230 to 3aec1379ab70bb5b1be041748d52f765e3a3dc74 by @dependabot[bot] in #1532

Full Changelog: v5.1.0...v5.2.0

v5.1.0

03 Jul 19:24
584eb08

Choose a tag to compare

As part of updating our release process to use Github Actions, we're cutting a new release relatively soon after the last one (5.0.0, released June 24 2025). There are a number of infrastructure updates that will hopefully be invisible to end users, as well as a new method in the Zoom connector (fetch webinar occurences) and some improvements to the NewMode connector.

Thank you to @codybraun @matthewkrausse @bmos and @austinweisgrau for their contributions to this release and to @bmos @fgregg and @sharinetmc for their help getting the new release process set up!

New Features

Infrastructure & Others

Full Changelog: v5.0.0...v5.1.0

v5.0.0

24 Jun 18:18
f2bb807

Choose a tag to compare

New Contributors

Welcome and thank you! 🎉🎊🥳

And of course a big thanks to all our returning contributors @austinweisgrau @Charlie-Kramer @matthewkrausse @SorenSpicknall @sharinetmc @KasiaHinkson @bmos @IanRFerguson @sjwmoveon @NirTatcher @anzelpwj @shaunagm @jeffjrodriguez @dannyboy15

What's Changed

Breaking Changes

There are a few small changes we've made that nonetheless may cause issues for end users. These are:

  • #1181 - Previously, when Hustle returned more than a thousand rows, it would return a list of lists. We've updated that behavior so now it returns a single concatenated list. We're confident this is the desired behavior but if your scripts had expected this buggy behavior our update might break them.
  • #1294 - renames a parameter in the Google BigQuery connector from convert_dict_columns_to_json to convert_dict_list_columns_to_json
  • #1357 - update pagination parameters from 'per_page' to 'limit' across various API functions in the QuickBooks connector
  • #1345 - removes deprecated parameters for VAN connector initialization auth_name and raise_for_status

Please not that other changes may also cause issues - the changes listed above are just ones we're aware of ahead of time.

Other Big Changes

New Features

Bug Fixes

Internal Changes (Tests, Ops, Refactoring, etc)

Full Changelog: v4.0.0...v5.0.0

v4.0.0

28 Jan 19:36
6ecdf73

Choose a tag to compare

New Contributors

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

Other enhancements and features

Bugfixes and other changes

Not user-facing (ideally! things can always go wrong!)

Internal infrastructure changes

Dependency updates

Read more

v3.2.0

22 Jul 21:50
72b2ee4

Choose a tag to compare

What's Changed

This release includes enhancements to existing connectors, including our Action Network, NGPVAN, and Google Sheets connectors, bug fixes, a few updates, and a change in our base image to Python 3.8!

Also, a special shout-out to @anzelpwj, @jdw25, @strangeways, and @jeffjrodriguez for contributing their first parsons PR!

Enhancements and New Features

  • Adding a data paste function to Google Sheets by @anzelpwj in #1045
  • Allow passing google auth Credentials directly to BQ connector by @austinweisgrau in #1042
  • EveryAction: Add email endpoint methods to retrieve email stats from TargetedEmail by @matthewkrausse in #1003
  • Update GET helper function, add custom columns to create profile by @cmdelrio in #1055
  • added encoding to s3_copy function in redshift class by @sharinetmc in #827
  • New Feature: DBSync can upsert or append updated rows by @austinweisgrau in #1029
  • [Enhancement] - Adding Create Ticket Function To Freshdesk by @NirTatcher in #1057
  • Add option to disaggregate A/B test emails by @anzelpwj in #1065
  • Add methods to update phone, order user detail, and import action by @technicalex in #1074
  • Add ActionKit methods to add a phone number, create and update event fields, and search events in a campaign by @strangeways in #1076
  • BigQuery extract table method by @austinweisgrau in #1041
  • Features - ActionNetwork API - Unique ID Lists routes support + SQL Mirror support by @NirTatcher in #1025
  • adding unique id lists support in ActionNetwork module by @NirTatcher in #1101
  • ActionNetwork SQL Mirror querying support + general SSH util to query any db through ssh by @NirTatcher in #1102
  • VAN Bulk Import Additions by @codygordon in #1078
  • Add campaignId parameter to apply_responses method in People class by @matthewkrausse in #1089

Bug Fixes

Documentation

Other Changes

New Contributors

Full Changelog: v3.1.0...v3.2.0

v3.1.0

05 Mar 21:07
8dd24a2

Choose a tag to compare

What's Changed

New Connectors

New Features

Bugfixes and other Changes

New Contributors

Full Changelog: v3.0.0...v3.1.0

v3.0.0

08 Dec 21:06
626edc7

Choose a tag to compare

What's Changed

Breaking Changes

3.0.0 is a major release, which means there are some breaking changes. You can see a full list of all PRs included in this release which have implications for breaking changes here.

  1. We now parse boolean types by default instead of coercing them into strings by default. We detect boolean column types when copying a parsons Table to a database and create a boolean column in the database. If you want to maintain the old behavior, to convert the boolean columns in the table to strings before uploading it to the database, like this: table = table.convert(['bool', 'columns', 'here', ...], str) More: #943

  2. We've made some major updates to the BigQuery and GoogleCloudStorage connecters:

GoogleBigQuery

The GoogleBigQuery connector was written with compatibility in mind, and utilizes many of the same functions as the Amazon Redshift connector in order to minimize the user experience between the two cloud service providers. GoogleBigQuery is authenticated with a service account JSON file, which can be generated in the GCP user interface and stored locally.

There are several subtle differences between GoogleBigQuery and Redshift, most notably in the .query() function, which runs asynchronously in Google. We recommend using the .delete_table() function rather than sending a DELETE TABLE SQL query through the .query() function for this reason, as the connector will raise an exception when the asynchronous task completes and the table no longer exists; alternatively, the user can pass in .query(sql=sql, return_values=False) to prevent this exception from raising.

In addition to the familiar .copy() function, the GoogleBigQuery connector includes a .copy_large_compressed_file_from_gcs() function to handle large files in cloud storage, such as the voter file. BigQuery streams large uncompressed files in batches, but cannot do so when a file in compressed. This function decompresses the file in question using the correct compression type parameter (gzip is default but zip is also accepted), copies the file to BigQuery, then deletes the decompressed file from cloud storage.

GoogleCloudStorage

Similarly, the GoogleCloudStorage connector provides an API to view and manipulate blobs in cloud storage with compatibility to Amazon's S3 connector. Users can create new storage buckets, load blobs into buckets, list their contents, acquire blob metadata, and download blobs from cloud storage to their local environments. This connector handles the decompression steps outlined above in the . copy_large_compressed_file_from_gcs() function outlined above, and also includes helpful utilities to aid in moving data to and from Google Cloud Storage.

New Connectors

Big thanks to @cmdelrio for adding the new MobileCommons connector (#896) and to @austinweisgrau for the new Catalist Match API connector (#912)!

Other Changes

New Contributors

Cheers to our newest contributors! 🎉 Thanks so much for your help.

Full Changelog: v2.1.0...v3.0.0

v2.1.0

26 Sep 17:27
4b24f40

Choose a tag to compare

What's Changed

Documentation

  • Update example VAN apply_response JSON to reflect accurate keys by @ydamit in #884

Other Changes

New Contributors

Full Changelog: v2.0.0...v2.1.0

v2.0.0

30 Aug 17:33
3e1001b

Choose a tag to compare

What's Changed

This release addresses a breaking change to the Zoom connector. Starting on September 1st, 2023 JWT authentication will no longer be accepted when querying Zoom's REST API; this release moves the Zoom connector a server-to-server OAuth based authentication.

To query the Zoom API moving forward, users will need to:

  • Setup an OAuth application in Zoom's app marketplace, including defining relevant endpoint scopes (meetings, users, etc.)
  • Use the client ID, account ID, and account secret values to validate API access

Other Changes

Full Changelog: v1.2.0...v2.0.0

v1.2.0 - New connectors, updates to testing, updates on our dependencies, and many more!

17 Aug 17:49
553b0ed

Choose a tag to compare

New Features

Automated Testing

Dependencies

Others

New Contributors