Re: [openstack-dev] [Heat] Upwards-compatibility for HOT

2014-07-08 Thread Sergey Kraynev
On 8 July 2014 01:25, Zane Bitter zbit...@redhat.com wrote:

 With the Icehouse release we announced that there would be no further
 backwards-incompatible changes to HOT without a revision bump. However, I
 notice that we've already made an upward-incompatible change in Juno:

 https://review.openstack.org/#/c/102718/

 So a user will be able to create a valid template for a Juno (or later)
 version of Heat with the version

   heat_template_version: 2013-05-23

 but the same template may break on an Icehouse installation of Heat with
 the stable HOT parser. IMO this is almost equally as bad as breaking
 backwards compatibility, since a user moving between clouds will generally
 have no idea whether they are going forward or backward in version terms.

 (Note: AWS don't use the version field this way, because there is only one
 AWS and therefore in theory they don't have this problem. This implies that
 we might need a more sophisticated versioning system.)

 I'd like to propose a policy that we bump the revision of HOT whenever we
 make a change from the previous stable version, and that we declare the new
 version stable at the end of each release cycle. Maybe we can post-date it
 to indicate the policy more clearly. (I'd also like to propose that the
 Juno version drops cfn-style function support.)

 +1 for idea creating new version for each release cycle. I think it will
help to modify format and additional features easier without backward
compatibility problems.

+1 for rejecting cfn functions in HOT. Sometimes it leads to confusing
situation (F.e. when user try to use Fn::GetAtt instead of get_attr in HOT,
where we have not such function).
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Heat] Upwards-compatibility for HOT

2014-07-08 Thread Zane Bitter

On 07/07/14 20:02, Steve Baker wrote:

On 08/07/14 09:25, Zane Bitter wrote:

With the Icehouse release we announced that there would be no further
backwards-incompatible changes to HOT without a revision bump.
However, I notice that we've already made an upward-incompatible
change in Juno:

https://review.openstack.org/#/c/102718/

So a user will be able to create a valid template for a Juno (or
later) version of Heat with the version

   heat_template_version: 2013-05-23

but the same template may break on an Icehouse installation of Heat
with the stable HOT parser. IMO this is almost equally as bad as
breaking backwards compatibility, since a user moving between clouds
will generally have no idea whether they are going forward or backward
in version terms.

(Note: AWS don't use the version field this way, because there is only
one AWS and therefore in theory they don't have this problem. This
implies that we might need a more sophisticated versioning system.)

I'd like to propose a policy that we bump the revision of HOT whenever
we make a change from the previous stable version, and that we declare
the new version stable at the end of each release cycle. Maybe we can
post-date it to indicate the policy more clearly. (I'd also like to
propose that the Juno version drops cfn-style function support.)


+1 on setting the juno release date as the latest heat_template_version,
and putting list_join in that.

It seems reasonable to remove cfn-style functions from latest
heat_template_version as long as they are still registered in 2013-05-23


I'm hearing consensus on this general approach, so I put up an 
implementation for further comment:


https://review.openstack.org/105558

cheers,
Zane.

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Heat] Upwards-compatibility for HOT

2014-07-07 Thread Clint Byrum
Excerpts from Zane Bitter's message of 2014-07-07 14:25:50 -0700:
 With the Icehouse release we announced that there would be no further 
 backwards-incompatible changes to HOT without a revision bump. However, 
 I notice that we've already made an upward-incompatible change in Juno:
 
 https://review.openstack.org/#/c/102718/
 
 So a user will be able to create a valid template for a Juno (or later) 
 version of Heat with the version
 
heat_template_version: 2013-05-23
 
 but the same template may break on an Icehouse installation of Heat with 
 the stable HOT parser. IMO this is almost equally as bad as breaking 
 backwards compatibility, since a user moving between clouds will 
 generally have no idea whether they are going forward or backward in 
 version terms.

Sounds like a bug in Juno that we need to fix. I agree, this is a new
template version.

 
 (Note: AWS don't use the version field this way, because there is only 
 one AWS and therefore in theory they don't have this problem. This 
 implies that we might need a more sophisticated versioning system.)
 

A good manual with a this was introduced in version X and this was
changed in version Y would, IMO be enough, to help users not go crazy
and help us know whether something is a bug or not. We can probably
achieve this entirely in the in-code template guide.

 I'd like to propose a policy that we bump the revision of HOT whenever 
 we make a change from the previous stable version, and that we declare 
 the new version stable at the end of each release cycle. Maybe we can 
 post-date it to indicate the policy more clearly. (I'd also like to 
 propose that the Juno version drops cfn-style function support.)

Agreed. I'm also curious if we're going to reject a template with
version 2013-05-23 that includes list_join. If we don't reject it, we
probably need to look at how to show the user warnings about
version/feature skew.

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Heat] Upwards-compatibility for HOT

2014-07-07 Thread Zane Bitter

On 07/07/14 18:13, Clint Byrum wrote:

Excerpts from Zane Bitter's message of 2014-07-07 14:25:50 -0700:


I'd like to propose a policy that we bump the revision of HOT whenever
we make a change from the previous stable version, and that we declare
the new version stable at the end of each release cycle. Maybe we can
post-date it to indicate the policy more clearly. (I'd also like to
propose that the Juno version drops cfn-style function support.)


Agreed. I'm also curious if we're going to reject a template with
version 2013-05-23 that includes list_join. If we don't reject it, we
probably need to look at how to show the user warnings about
version/feature skew.


To be clear, my proposal is that we would reject it.

- ZB

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Heat] Upwards-compatibility for HOT

2014-07-07 Thread Steve Baker
On 08/07/14 09:25, Zane Bitter wrote:
 With the Icehouse release we announced that there would be no further
 backwards-incompatible changes to HOT without a revision bump.
 However, I notice that we've already made an upward-incompatible
 change in Juno:

 https://review.openstack.org/#/c/102718/

 So a user will be able to create a valid template for a Juno (or
 later) version of Heat with the version

   heat_template_version: 2013-05-23

 but the same template may break on an Icehouse installation of Heat
 with the stable HOT parser. IMO this is almost equally as bad as
 breaking backwards compatibility, since a user moving between clouds
 will generally have no idea whether they are going forward or backward
 in version terms.

 (Note: AWS don't use the version field this way, because there is only
 one AWS and therefore in theory they don't have this problem. This
 implies that we might need a more sophisticated versioning system.)

 I'd like to propose a policy that we bump the revision of HOT whenever
 we make a change from the previous stable version, and that we declare
 the new version stable at the end of each release cycle. Maybe we can
 post-date it to indicate the policy more clearly. (I'd also like to
 propose that the Juno version drops cfn-style function support.)

+1 on setting the juno release date as the latest heat_template_version,
and putting list_join in that.

It seems reasonable to remove cfn-style functions from latest
heat_template_version as long as they are still registered in 2013-05-23

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Heat] Upwards-compatibility for HOT

2014-07-07 Thread Steve Baker
On 08/07/14 10:13, Clint Byrum wrote:
 Excerpts from Zane Bitter's message of 2014-07-07 14:25:50 -0700:
 With the Icehouse release we announced that there would be no further 
 backwards-incompatible changes to HOT without a revision bump. However, 
 I notice that we've already made an upward-incompatible change in Juno:

 https://review.openstack.org/#/c/102718/

 So a user will be able to create a valid template for a Juno (or later) 
 version of Heat with the version

heat_template_version: 2013-05-23

 but the same template may break on an Icehouse installation of Heat with 
 the stable HOT parser. IMO this is almost equally as bad as breaking 
 backwards compatibility, since a user moving between clouds will 
 generally have no idea whether they are going forward or backward in 
 version terms.
 Sounds like a bug in Juno that we need to fix. I agree, this is a new
 template version.

 (Note: AWS don't use the version field this way, because there is only 
 one AWS and therefore in theory they don't have this problem. This 
 implies that we might need a more sophisticated versioning system.)

 A good manual with a this was introduced in version X and this was
 changed in version Y would, IMO be enough, to help users not go crazy
 and help us know whether something is a bug or not. We can probably
 achieve this entirely in the in-code template guide.

Intrinsic functions are manually documented, but it would be great to be
able to generate this for resource types, properties and attributes. The
SupportStatus structures are all there, it just takes someone to go
through the release history and populate them. Users often trip over
attempting to use a documented new thing on an older heat release.

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev