algorithmiaio/dev-center

Describe how to test a new version of Algorithm before publishing

Opened this issue · 1 comments

http://developers.algorithmia.com/algorithm-development/basic-guides/ tells us how to build and, to some degree, how to version and manage public vs private algorithms.

However, it is not very clear about the fact that, since many client devs will not version-lock their API calls, you can easily break an algorithm by publishing a newer, untested version.

There are two ways to handle this problem: 1. publish a private version, test, then publish a(nother) public version (yuck). 2. save but don't re-publish, and use the hash key instead of the version key in your test calls.

Let's add a section to http://developers.algorithmia.com/algorithm-development/basic-guides/ called "version management and testing" or somesuch, and spec this out in a nice guide.

@mkiser asked "If we were to rethink the algorithm creation process, what's the preferred way of doing this?"

My short answer: have a "publish as beta" option, and allow something like "/beta" as a version in API calls. So if a user is willing to tolerate versions that may have new features but aren't quite production-ready, they can use "someAlgorithmName/beta" instead of "someAlgorithmName/" (latest production-ready version).

IMO, some developers will never use version-locked calls, even if advised to, b/c they'll always want the latest-and-greatest. This gives them a way to distinguish between stable and non-stable latest version.

PS we may also want to add "/latest", and eventually disallow "/". This would at least force implementors to acknowledge that they aren't on a specific version.