This page lists the operational governance model of this project, as well as the recommendations and requirements for how to best contribute to datacloud-customcode-python-sdk. We strive to obey these as best as possible. As always, thanks for contributing – we hope these guidelines make it easier and shed some light on our approach and processes.
The intent and goal of open sourcing this project is because it may contain useful or interesting code/concepts that we wish to share with the larger open source community. Although occasional work may be done on it, we will not be looking for or soliciting contributions.
Use GitHub Issues page to submit issues, enhancement requests and discuss ideas.
- If you find a bug, please search for it in the Issues, and if it isn't already tracked, create a new issue. Fill out the "Bug Report" section of the issue template. Even if an Issue is closed, feel free to comment and add details, it will still be reviewed.
- Issues that have already been identified as a bug (note: able to reproduce) will be labelled
bug.
- If you'd like new functionality added to this project, describe the problem you want to solve in a new Issue.
- Issues that have been identified as a feature request will be labelled
enhancement.
We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue.
Please follow our Code of Conduct.
See the Prerequisites section in README.md for complete setup requirements.
-
Clone the repository
git clone <repository-url> cd datacloud-customcode-python-sdk
-
Set up virtual environment and install dependencies
Note: If you need to set a specific Python version, use
pyenv local 3.11.xin the project directory.python3.11 -m venv .venv source .venv/bin/activate pip install poetry make develop -
Verify installation
datacustomcode version
-
Install the SF CLI and plugin
The SF CLI is how you test your SDK changes end-to-end (
init,scan,zip,run,deploy).# Install the Salesforce CLI (requires Node.js) npm install -g @salesforce/cli # Install the Data Cloud Code Extension plugin sf plugins install @salesforce/plugin-data-code-extension
-
Build and install your local SDK changes
The SF CLI plugin resolves templates from the installed package path. After making changes, build a wheel and install it:
poetry build $(poetry env info --path)/bin/pip install dist/*.whl --force-reinstall --no-deps
Re-run these two commands each time you make SDK changes you want to test via the SF CLI.
-
Test your changes
# Create a new directory for your test project mkdir my-test-project cd my-test-project # Initialize, scan, zip, run sf data-code-extension script init --package-dir . sf data-code-extension script scan --entrypoint payload/entrypoint.py sf data-code-extension script zip --package-dir . sf data-code-extension script run --entrypoint payload/entrypoint.py -o <your-org-alias>
This project uses PEP 440 version syntax. Versions are derived automatically from git tags via poetry-dynamic-versioning.
- Stable releases use tags like
v4.1.0→ published as4.1.0on PyPI. - Pre-releases use tags like
v4.1.0.dev1,v4.1.0rc1→ published as4.1.0.dev1,4.1.0rc1on PyPI.
Pre-release versions are never resolved by pip install salesforce-data-customcode unless the user explicitly passes --pre. This ensures customers always get stable releases by default.
A Github Action (Released Version Check) runs after every publish to verify that bare pip install still resolves to a stable version.
# Clean build artifacts, caches and temporary files
make clean
# Build package distribution
make package
# Install main dependencies only
make install
# Install dependencies for full development setup
make develop
# Run code quality checks
make lint
# Perform static type checking
make mypy
# Run complete test suite
make test