Welcome to release 6.0.0. This is a major release with one big breaking change, a few smaller breaking changes, and a couple really minor ones that we're flagging just to be safe.
The big change: if you have been installing Parsons with pip install parsons that will no longer install all dependencies! Instead you will install only core dependencies and will need to install additional dependencies with commands like pip install parsons[ngpvan]. You can learn more about the changes here and please reach out to us via the Parsons Slack or email (parsons@movementcooperative.org) if you have any questions or issues.
This release also removes support for Python 3.9.
Also, shout out to @crusopaul who made their first contribution in #1735 and to all our contributors to this release: @bmos @matthewkrausse @sharinetmc @codybraun @NirTatcher @shaunagm
What's Changed
Breaking Changes
Major
- As mentioned above, we've changed the default behavior of the command
pip install parsonsin #1721 - We've removed support for python 3.9 in #1618
Minor
- The Box constructor now only takes an access token, the client id & secret have been removed. See by @crusopaul in #1723
- We've changed how the 'Person' and 'Service' parent classes in the TargetSmart connector get instantiated, which hopefully will not trip anyone up but is technically a breaking change in #1804
- If you are using the (currently undocumented)
credential_tools.pyyou will need to import fromparsons.utilitiesinstead of fromparsons.tools- that change was made in #1812 - We've updated the dockerignore for our docker image which may cause some (non-code) files to no longer be copied into the Parsons Docker image - see #1816
New Features
- Survey methods have been added to the ActionNetwork connector by @NirTatcher in #1647
- "Delete objects in sync to copy bucket" has been added to Google conncetor by @sharinetmc in #1708
get_meetingmethod has been added to the Zoom connector by @sharinetmc in #1798- The Box connector has been updated to use a newer library, and the
upload_fileandupload_file_to_folder_idmethods have been added by @crusopaul in #1723 - The Parsons Table now supports initialization from Generator, Iterator, and list[OrderedDict] a by @bmos in #1815
- The GitHub connector has been updated to use PyGithub's Auth class by @bmos in #1809
- Updates to our dbt tooling by @bmos in #1707
Bug fixes
- catch empty blob in gcs delete_blob method by @sharinetmc in #1754
- Block unexpected http requests during testing by @bmos in #1749
- Install Deps on System Python by @codybraun in #1777
- Docs redirect by @bmos in #1778
- Cody/tmp/ci checks by @codybraun in #1799
- add else to gcs delete_blob method by @sharinetmc in #1763
Documentation Updates
- Documentation data flow image redesign by @bmos in #1779
- Add functions from parsons/utilities to our documentation by @bmos in #1813
- Document and restructure setup.py by @bmos in #1653
- update van api retrieval docs by @sharinetmc in #1702
- Documentation / Docstring Syntax Fixes by @bmos in #1719
- autoclass documentation for Newmode, NewmodeV1, and NewmodeV2 by @bmos in #1741
- Documentation Tooling Updates by @bmos in #1718
Testing Updates
- Pytest-native marking of live tests / selective enabling of live tests by @bmos in #1781
- Modular pytesting for individual extras by @bmos in #1701
- Extend etl tests by @bmos in #1739
- Test cleanup by @bmos in #1750
Misc
- re-use live test decorator by @bmos in #1691
- Add label checker workflow For Breaking/Non-Breaking Changes by @matthewkrausse in #1782
- Clarify confusing workflow steps by adding names by @bmos in #1808
- Expose connector classes to static analysis tools by @bmos in #1810
- Fix actions/cache key syntax by @bmos in #1780
- Automatic PR labeling based on modified files and breaking/non-breaking checkboxes by @bmos in #1811
- Remove 'uv run' from Python checks workflow by @bmos in #1807
- Comment out requirements instructions in requirements.txt by @bmos in #1820
- import Table from parsons directly by @bmos in #1692
- Add xmltodict to mobilecommons dependencies by @bmos in #1699
- remove vendored censusgeocode in favor of new version! by @bmos in #1710
- Update box dependency to exclude version 4.4.0 by @bmos in #1720
- add type hints for most literals by @bmos in #1732
- Fix dependency-review workflow by @bmos in #1733
- Add breaking changes section list to pull request template by @crusopaul in #1735
- Don't modify the iterator we're looping over in etl by @bmos in #1737
- Eliminate tmp_file fixture by @bmos in #1736
- Fix circleci deployment by @bmos in #1751
- Remove unnecessary list comprehensions by @bmos in #1738
- Simplify existing ci workflow by @bmos in #1764
- Standardize development dependency location + use uv more by @bmos in #1734
Dependency Updates
- Bump step-security/harden-runner from 2.14.0 to 2.14.1 by @dependabot[bot] in #1697
- Bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in #1696
- Bump actions/setup-python from 6.1.0 to 6.2.0 by @dependabot[bot] in #1694
- Bump google-cloud-bigquery from 3.38.0 to 3.40.0 by @dependabot[bot] in #1693
- Bump urllib3 from 1.26.19 to 2.6.3 by @dependabot[bot] in #1678
- Bump joblib from 1.2.0 to 1.5.3 by @dependabot[bot] in #1681
- Bump setuptools from 80.9.0 to 80.10.2 by @dependabot[bot] in #1703
- Bump install-pinned/uv from 259f91feb61b6e94766d7a1dbcd5f17335370e64 to 0590ea0c73b1fdb765847c94975e71c97d9ad0b1 by @dependabot[bot] in #1705
- Bump actions/cache from 5.0.2 to 5.0.3 by @dependabot[bot] in #1706
- Bump step-security/harden-runner from 2.14.1 to 2.14.2 by @dependabot[bot] in #1717
- Bump install-pinned/uv from 0590ea0c73b1fdb765847c94975e71c97d9ad0b1 to fa468aced1ea5737b7cbaba356dd97587bc27f7f by @dependabot[bot] in #1716
- Bump github/codeql-action from 4.31.10 to 4.32.2 by @dependabot[bot] in #1715
- Bump civis from 2.4.3 to 2.7.1 by @dependabot[bot] in #1713
- Bump coverage from 7.10.7 to 7.13.3 by @dependabot[bot] in #1712
- Bump twilio from 9.9.0 to 9.10.1 by @dependabot[bot] in #1711
- Bump google-cloud-bigquery from 3.40.0 to 3.40.1 by @dependabot[bot] in #1724
- Bump fastavro from 1.10.0 to 1.12.1 by @dependabot[bot] in #1725
- Bump actions/cache from 5.0.2 to 5.0.3 by @dependabot[bot] in #1731
- Bump step-security/harden-runner from 2.14.1 to 2.14.2 by @dependabot[bot] in #1730
- Bump sphinx-rtd-theme from 3.0.2 to 3.1.0 by @dependabot[bot] in #1743
- Bump httplib2 from 0.30.0 to 0.31.2 by @dependabot[bot] in #1744
- Bump google-api-core from 2.28.1 to 2.30.0 by @dependabot[bot] in #1745
- Bump actions/dependency-review-action from 4.8.2 to 4.8.3 by @dependabot[bot] in #1746
- Bump github/codeql-action from 4.32.2 to 4.32.4 by @dependabot[bot] in #1747
- Bump install-pinned/uv from c57eeccb84c14c060f224d6b4dcef7b645f05277 to 05d9162df91b0a72301801afd144d0b8b525e0b3 by @dependabot[bot] in #1748
- Update install-pinned/uv requirement to c57eeccb84c14c060f224d6b4dcef7b645f05277 by @dependabot[bot] in #1728
- Bump google-auth from 2.40.3 to 2.48.0 by @dependabot[bot] in #1755
- Bump pre-commit from 4.3.0 to 4.5.1 by @dependabot[bot] in #1757
- Bump github/codeql-action from 4.32.4 to 4.32.5 by @dependabot[bot] in #1759
- Bump actions/download-artifact from 7.0.0 to 8.0.0 by @dependabot[bot] in #1760
- Bump actions/upload-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in #1761
- Bump step-security/harden-runner from 2.14.2 to 2.15.0 by @dependabot[bot] in #1762
- Bump install-pinned/uv from 05d9162df91b0a72301801afd144d0b8b525e0b3 to 4d66dd6355704140c330bc2a2e6291cbf3bcb67f by @dependabot[bot] in #1758
- Bump google-api-python-client from 2.187.0 to 2.190.0 by @dependabot[bot] in #1756
- remove unused noqa lines by @bmos in #1742
- Bump pyairtable from 3.2.0 to 3.3.0 by @dependabot[bot] in #1766
- Bump github/codeql-action from 4.32.5 to 4.32.6 by @dependabot[bot] in #1769
- Bump step-security/harden-runner from 2.15.0 to 2.15.1 by @dependabot[bot] in #1770
- Bump actions/download-artifact from 8.0.0 to 8.0.1 by @dependabot[bot] in #1773
- Bump astral-sh/setup-uv from 7.3.1 to 7.5.0 by @dependabot[bot] in #1774
- Bump google-auth from 2.48.0 to 2.49.1 by @dependabot[bot] in #1775
- Bump twilio from 9.10.1 to 9.10.3 by @dependabot[bot] in #1776
- Bump simplejson from 3.20.1 to 3.20.2 by @dependabot[bot] in #1783
- Bump google-cloud-storage-transfer from 1.18.0 to 1.19.0 by @dependabot[bot] in #1784
- Bump braintree from 4.41.0 to 4.42.0 by @dependabot[bot] in #1785
- Bump github/codeql-action from 4.32.6 to 4.33.0 by @dependabot[bot] in #1786
- Bump astral-sh/setup-uv from 7.5.0 to 7.6.0 by @dependabot[bot] in #1787
- Bump step-security/harden-runner from 2.15.1 to 2.16.0 by @dependabot[bot] in #1788
- Bump requests from 2.32.5 to 2.33.0 by @dependabot[bot] in #1797
- Bump github/codeql-action from 4.33.0 to 4.34.1 by @dependabot[bot] in #1796
- Bump twilio from 9.10.3 to 9.10.4 by @dependabot[bot] in #1800
- Bump actions/deploy-pages from 4.0.5 to 5.0.0 by @dependabot[bot] in #1801
- Bump github/codeql-action from 4.34.1 to 4.35.1 by @dependabot[bot] in #1802
- Bump step-security/harden-runner from 2.13.2 to 2.16.1 by @dependabot[bot] in #1803
- Bump actions/cache from 5.0.3 to 5.0.4 by @dependabot[bot] in #1795
Full Changelog: v5.4.0...v6.0.0