Parts of the Algorithmia system can be customized by introducing jar files containing alternative implementations. This module provides interfaces for creating those jar files.
Building a plugin will require importing interfaces.
<dependency>
<groupId>com.algorithmia</groupId>
<artifactId>plugin-sdk</artifactId>
<version>[1.0,2.0)</version>
</dependency>libraryDependencies += "com.algorithmia" % "plugin-sdk" % "1.0.0"
- Plugins have a
Factoryentrypoint that you should start with to implement the desired module.- Implement e.g.
MySecretProvider extends secrets.SecretProviderFactory
- Implement e.g.
- Export your project as a fat jar file
- Upload via the algorithmia API or admin panel, following the documentation on the developer center.
CI will publish the plugin a new version under the following conditions:
- The
masterandv*branches will publish a SNAPSHOT for all commits. This is accessible only to internal developers. - A semantic version in the form of a git tag,
vX.Y.Zwill publish to Maven central.
masterrepresentsvNextand corresponds to SNAPSHOT releasesv1.xis a major version branch. Each major version has its own branch.vX.Y.Zas a tag targets the corresponding major version branch.
To create a new major version:
- Start with
git checkout master - Create the new release branch:
git checkout -b v2.xwhere2is the new major version. - Create a GitHub Release for
v2.0.0targeting thev2.xbranch
To publish a minor or patch version:
- Start from the corresponding major version
git checkout v1.x - Create a feature branch
git checkout -b my-featurea. NOTE: branches can't begin withv - In github, create a pull request from
my-feature->v1.x - Create a pull request from
my-feature->masterto ensure inclusion in future major versions. - Merge the pull request
- Create a new GitHub Release with a new SemVer tag e.g.
v1.1.1, targeting branchv1.x - Include any changes in the release notes