Kotaimen / awscfncli

Friendly AWS CloudFormation CLI
MIT License
58 stars 12 forks source link

Semantic version changes raised "Unspported config version" #81

Closed michalguszpit closed 5 years ago

michalguszpit commented 5 years ago

Hi,

Latest changes to library semantic-version https://pypi.org/project/semantic-version throw an error when validating yaml file during execution of any cfn-cli option.

Note: we added some logging code to formats.py to generate variable v.

Two cases where tested.

  1. "Version: 3" passed as Integer: bash-4.2$ cfn-cli -f ./config.yaml stack sync v=[3.None.None.None.None] v=[3.0.0.().()] Unspported config version Aborted!

  2. "Version: 3.0.0" passed as String: bash-4.2$ cfn-cli -f ./config.yaml stack sync v=[3.0.0.None.None] v=[3.0.0.().()] '3.0.0' is not of type 'integer'

Failed validating 'type' in schema['properties']['Version']: {'title': 'Version Number', 'type': 'integer'}

On instance['Version']: '3.0.0' Aborted!

My software versions list: Requirement already up-to-date: awscfncli2 in /usr/local/lib/python3.6/site-packages (2.1.17) Requirement already up-to-date: semantic-version in /usr/local/lib/python3.6/site-packages (2.8.1) Requirement already satisfied, skipping upgrade: awscli<2six>=1.10.0,>=1.16.0 in /usr/local/lib/python3.6/site-packages (from awscfncli2) (1.16.230) Requirement already satisfied, skipping upgrade: boto3<2,>=1.9.0 in /usr/local/lib/python3.6/site-packages (from awscfncli2) (1.9.220) Requirement already satisfied, skipping upgrade: jsonschema>=2.6.0 in /usr/local/lib/python3.6/site-packages (from awscfncli2) (3.0.2) Requirement already satisfied, skipping upgrade: botocore<2,>=1.12.0 in /usr/local/lib/python3.6/site-packages (from awscfncli2) (1.12.220) Requirement already satisfied, skipping upgrade: click<8,>=6.0 in /usr/local/lib64/python3.6/site-packages (from awscfncli2) (7.0) Requirement already satisfied, skipping upgrade: PyYAML<=5.1,>=3.10 in /usr/local/lib64/python3.6/site-packages (from awscfncli2) (3.13) Requirement already satisfied, skipping upgrade: s3transfer<0.3.0,>=0.2.0 in /usr/local/lib/python3.6/site-packages (from awscli<2six>=1.10.0,>=1.16.0->awscfncli2) (0.2.1) Requirement already satisfied, skipping upgrade: colorama<=0.3.9,>=0.2.5 in /usr/local/lib/python3.6/site-packages (from awscli<2six>=1.10.0,>=1.16.0->awscfncli2) (0.3.9) Requirement already satisfied, skipping upgrade: rsa<=3.5.0,>=3.1.2 in /usr/local/lib/python3.6/site-packages (from awscli<2six>=1.10.0,>=1.16.0->awscfncli2) (3.4.2) Requirement already satisfied, skipping upgrade: docutils<0.16,>=0.10 in /usr/local/lib/python3.6/site-packages (from awscli<2six>=1.10.0,>=1.16.0->awscfncli2) (0.15.2) Requirement already satisfied, skipping upgrade: jmespath<1.0.0,>=0.7.1 in /usr/local/lib/python3.6/site-packages (from boto3<2,>=1.9.0->awscfncli2) (0.9.4) Requirement already satisfied, skipping upgrade: pyrsistent>=0.14.0 in /usr/local/lib64/python3.6/site-packages (from jsonschema>=2.6.0->awscfncli2) (0.15.4) Requirement already satisfied, skipping upgrade: attrs>=17.4.0 in /usr/local/lib/python3.6/site-packages (from jsonschema>=2.6.0->awscfncli2) (19.1.0) Requirement already satisfied, skipping upgrade: setuptools in /usr/lib/python3.6/site-packages (from jsonschema>=2.6.0->awscfncli2) (39.2.0) Requirement already satisfied, skipping upgrade: six>=1.11.0 in /usr/local/lib/python3.6/site-packages (from jsonschema>=2.6.0->awscfncli2) (1.12.0) Requirement already satisfied, skipping upgrade: python-dateutil<3.0.0,>=2.1; python_version >= "2.7" in /usr/local/lib/python3.6/site-packages (from botocore<2,>=1.12.0->awscfncli2) (2.8.0) Requirement already satisfied, skipping upgrade: urllib3<1.26,>=1.20; python_version >= "3.4" in /usr/local/lib/python3.6/site-packages (from botocore<2,>=1.12.0->awscfncli2) (1.25.3) Requirement already satisfied, skipping upgrade: pyasn1>=0.1.3 in /usr/local/lib/python3.6/site-packages (from rsa<=3.5.0,>=3.1.2->awscli<2six>=1.10.0,>=1.16.0->awscfncli2) (0.4.7)

Current workaround is to downgrade semantic-version to 2.6.0: pip install semantic-version==2.6.0

Kotaimen commented 5 years ago

Hi,

Thanks for reporting this... I just encounter same issue today. Seem semantic version's update somehow broken the existing version check -- which is kinda of ironic given the change is not a major version....

I'm not sure what's happing here but given cfn-cli version is plain integer I'll remove the dependency and fix the issue, as for now, please use version<=2.6.0, thanks!