# Releasing a New Versions
New versions of a Function are created automatically when a new GitHub release is created.
For detailed instructions on creating a new GitHub release, refer to GitHub's documentation (opens new window).
# Naming Convention
We recommend using the Semantic Versioning (Semver) (opens new window) naming convention to indicate the nature of changes in your release:
- MAJOR: Breaking changes.
- MINOR: Backward-compatible functionality.
- PATCH: Backward-compatible bug fixes.
# Deployment Process
The associated GitHub action is triggered when you create a release on GitHub. This will:
- Spin up a deployment container.
- Extract your function's input schema and validate it.
- Build your function code.
- Send the validated and compiled function code to the Speckle Automate server via an API call using your credentials.
- Automate validates the payload and reports success.
Only code that completes these build steps successfully will be sent to Automate. Once the release is processed, your function will appear in the functions list.
# Monitoring Release Actions
The release process triggers a GitHub Action (opens new window), which can be monitored in your GitHub repository's Actions tab. If errors occur during the release process, they will be displayed here.
# Troubleshooting
If you encounter issues during deployment:
- Review the error logs in the Actions tab for details.
- Search for solutions or ask for assistance on the Speckle Community Forum (opens new window).
::: note 💡 Advanced Customisation
While the default deployment setup (e.g., Dockerfile
, workflow.yml
) works for most use cases, you can customise these files for advanced scenarios:
Customising the Workflow:
- Adjust the
workflow.yml
file for multipart build steps or additional artefacts. - Ensure all necessary artefacts (e.g.,
functionInputs.json
) are generated.
- Adjust the
Customising the Runtime:
- Modify the
Dockerfile
to include additional dependencies, libraries, or specific runtime versions (e.g., a custom-built Python environment). - These adjustments allow you to tailor the execution runtime for your function.
- Modify the
Customisation is typically unnecessary but highlights Speckle Automate's flexibility for unique requirements. :::
Most authors can deploy their functions effortlessly by leveraging the default setup. Speckle Automate provides the flexibility to adapt workflows and runtimes as needed for those with specialised requirements.