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
Factory
entrypoint 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
master
andv*
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.Z
will publish to Maven central.
master
representsvNext
and corresponds to SNAPSHOT releasesv1.x
is a major version branch. Each major version has its own branch.vX.Y.Z
as 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.x
where2
is the new major version. - Create a GitHub Release for
v2.0.0
targeting thev2.x
branch
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-feature
a. NOTE: branches can't begin withv
- In github, create a pull request from
my-feature
->v1.x
- Create a pull request from
my-feature
->master
to 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