Issue #6770 has been updated by Daniel Pittman.

Assignee deleted (Daniel Pittman)

----------------------------------------
Feature #6770: Interfaces don't support versioning
https://projects.puppetlabs.com/issues/6770#change-92318

* Author: Paul Berry
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: Faces
* Target version: 2.7.0
* Affected Puppet version: 
* Keywords: 
* Branch: 
----------------------------------------
In order to provide for better backward compatibility if a specific interface 
changes in the future, we should have a versioning scheme for interfaces.

For example, the writer of an interface action should be able to specify which 
version of that action they are writing, e.g.:

    Puppet::Interface::Foo.action :bar, :version => '1.3.5' do |args|
      ...
    end

And, when calling an interface, the caller should be able to specify which 
version of the action they are trying to invoke:

    Puppet::Interface::Foo.bar('x', 'y', :version => '2.4')

* If the requested version cannot be found, it's a fatal error.
* If a different version exists, that should be noted in the error message.
* We should use semantic versioning (as per semver.org) as the default approach 
for specifying the versions of interface actions.   This would also allow us to 
permit version patterns for the callers (e.g. "give me anything in the 2.x 
series")
* Invoking an action without a version (including from the command line) always 
implicitly invokes the most recent version installed.

If we don't address versioning concerns from the outset, they will be difficult 
to address in the future, because users of the interface API will already exist 
in the field that do not specify their versions, and it will be difficult to be 
backward-compatible in any meaningful way.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to