Change Log
This page documents the additions, changes, fixes, deprecations and removals made in each release.
v1.4.0
Release Date: 2026-02-04
Added
Primary Modules
Additions to the primary modules are listed below.
Added the salespyforce.api.delete() function to perform DELETE API requests
Added the salespyforce.api._construct_full_query_url() function to evaluate and construct the URL to
utilize during an API call
Added the salespyforce.knowledge.delete_article_draft() function to delete knowledge article drafts
- Created the
salespyforce.decorators module containing the following decorators: -
General
Created the .readthedocs.yaml file to manage the integration with the ReadTheDocs documentation
Added the new .github/workflows/ci.yml CI workflow to follow best practices and improve deployments
Added the docs/ci.md Markdown document with CI-related instructions and notes
Added the .github/scripts/decrypt_helper_local.sh script to assist with pytest and CI
Added the AGENTS.md file to define agent guidelines with the package
Changed
Primary Modules
Changes to the primary modules are listed below.
Updated the functions below to support full URLs to be passed as the endpoint with the URLs being
evaluated to ensure they are valid Salesforce URLs:
- Updated the functions below to use a global constant for the
timeout parameter value default: -
Updated the salespyforce.knowledge.get_article_details() function to fix a logic issue and to
introduce the optional use_knowledge_articles_endpoint parameter with respective functionality
Updated the salespyforce.knowledge.get_articles_list() function to log errors using the
logger rather than to stderr in the console
Updated the salespyforce.knowledge.get_article_id_from_number() function to resolve a logic issue
and to make the function more robust and stable
Updated the primary modules to add some type hints and make other minor improvements
Supporting Modules
Changes to the supporting modules are listed below.
Completely refactored the salespyforce.utils.version module to retrieve the version
from the package metadata and using it to define the __version__ special variable
Updated the HELPER_FILE_NAME value in the salespyforce.utils.tests.resources module
- Updated the following unit test modules to leverage the new pytest configuration:
-
Updated the salespyforce.utils.log_utils module to always define a default logging level
Added a comment to skip assert checks by bandit in the modules used by pytest
General
Updated the Sphinx configuration (docs/conf.py) to follow recommendations and best practices
- Updated the
pyproject.toml file to follow best practices and to include the following changes:
Changed the minimum supported Python version to be 3.9
Added hyperlinks to available resources and documentation
Added Trove classifiers for PyPI
Moved pytest to a dev dependency group
Removed setuptools and urllib3 from runtime dependencies
- Updated dependency versions to mitigate known vulnerabilities found in earlier versions
Explicitly pinned urllib3 to require version 1.26.19 or above (below v3) in order
to avoid CVE-2024-37891
Explicitly pinned idna to require version 3.7 or above (below v4) in order
to avoid CVE-2024-3651
Explicitly pinned certifi to require version 2024.7.4 or above in order to
mitigate CA removals (e-Tugra, GLOBALTRUST) per CVE-2023-37920 and CVE-2024-39689
Added bandit with SARIF support to the dev dependencies
- Updated the
requirements.txt file to be runtime-only and mirror the pyproject.toml file
Added urllib3 to requirements.txt to require version 1.26.19 or above (below v3) in order
to avoid CVE-2024-37891
Added idna to requirements.txt to require version 3.7 or above (below v4) in order
to avoid CVE-2024-3651
Added certifi to requirements.txt to require version 2024.7.4 or above in order to
mitigate CA removals (e-Tugra, GLOBALTRUST) per CVE-2023-37920 and CVE-2024-39689
Replaced the .github/workflows/pythonpackage.yml workflow with .github/workflows/ci.yml
which has several improvements over the original file, including:
Dropping Python 3.6-3.8 and testing 3.9–3.12 on ubuntu-latest and macos-latest
Using actions/checkout@v4 and actions/setup-python@v5
Installing Poetry via pipx and using poetry install --with dev
Building wheel/sdist with poetry build
Running Bandit only on Ubuntu (to save time)
Caching Poetry/pip downloads for speed
Removing the obsolete macOS target matrix
Completely refactored the .github/scripts/encrypt_secret.sh script to add features and functionality
Added a new helper file in .github/encrypted/ for use with CI and unit testing with pytest
Updated the .github/scripts/decrypt_helper.sh script to use the new helper file
Removed
General
Removed .github/workflows/pythonpackage.yml (replaced by .github/workflows/ci.yml)
Removed the obsolete .github/encrypted/helper_shurt.yml.old.gpg helper file
Removed the setup.py file as it is no longer needed for this package
v1.3.0
Release Date: 2025-11-11
v1.2.2
Release Date: 2023-11-14
v1.2.1
Release Date: 2023-09-01
v1.2.0
Release Date: 2023-08-31
v1.1.2
Release Date: 2023-06-05
Changed
General
Only the version was changed in this release to address an issue with PyPI distribution.
v1.1.1
Release Date: 2023-06-05
Changed
General
Only the version was changed in this release to address an issue with PyPI distribution.
v1.1.0
Release Date: 2023-05-29
Added
Supporting Modules
Additions to the supporting modules are listed below.
- Added the
salespyforce.utils.tests.resources module with the following functions and classes:
salespyforce.utils.tests.resources.MockResponse
salespyforce.utils.tests.resources.mock_success_post()
salespyforce.utils.tests.resources.mock_error_post()
salespyforce.utils.tests.resources.mock_sosl_get()
salespyforce.utils.tests.resources.set_package_path()
salespyforce.utils.tests.resources.import_modules()
salespyforce.utils.tests.resources.secrets_helper_exists()
salespyforce.utils.tests.resources.local_helper_exists()
salespyforce.utils.tests.resources.get_core_object()
salespyforce.utils.tests.resources.instantiate_with_secrets_helper()
salespyforce.utils.tests.resources.instantiate_with_local_helper()
- Added the
salespyforce.utils.tests.test_instantiate_object module with the following functions: -
- Added the
salespyforce.utils.tests.test_sobjects module with the following functions:
salespyforce.utils.tests.test_sobjects.test_get_all_sobjects()
salespyforce.utils.tests.test_sobjects.test_get_and_describe_sobject()
salespyforce.utils.tests.test_sobjects.test_create_record()
- Added the
salespyforce.utils.tests.test_soql module with the following functions: -