aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap

CloudFormation Helper Scripts version 2.0-16 not documented, latest version isn’t latest

Open
#1,376 0 comments 0 reactions 0 assignees View on GitHub
documentation NeedTriage
Dominant language
No language data
Stars
1.1k
Forks
62
PR merge metrics
No merged PRs in 30d

Description

### Name of the resource

Other

### Resource name

_No response_

### Reference Link

Release history page: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/releasehistory-aws-cfn-bootstrap.html

### Details

The current latest version of the scripts do not work with Python 3: #1304. In order to fix this, I’ve updated my install process to apply a post-install patch: https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/1304#issuecomment-1275860521

I'm trying to my process more robust, by pinning my install to the current latest version. This will prevent a new fixed release of cfn-bootstrap breaking my install process.

The [release history page](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/releasehistory-aws-cfn-bootstrap.html) lists 2.0-15 as the latest version. But installing that version is broken with new versions of setuptools, with an error `use_2to3 is invalid` in a dependency:

```
$ pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-2.0-15.tar.gz
Collecting https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-2.0-15.tar.gz
Downloading https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-2.0-15.tar.gz (591 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 591.5/591.5 kB 1.4 MB/s eta 0:00:00
Preparing metadata (setup.py) ... done
Collecting python-daemon<2.2,>=2.1
Using cached python_daemon-2.1.2-py2.py3-none-any.whl (19 kB)
Collecting pystache<=0.5.4
Downloading pystache-0.5.4.tar.gz (75 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 75.1/75.1 kB 1.8 MB/s eta 0:00:00
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [3 lines of output]
pystache: using: version '65.5.0' of
Warning: 'classifiers' should be a list, got type 'tuple'
error in pystache setup command: use_2to3 is invalid.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
```

I was baffled as to why “latest” worked but “2.0-15” didn't, since the docs imply that they’re the same. I tried “2.0-16” in the URL, at a guess, and that’s a real version too! But it’s broken with the same error too.

The `latest` version has a fix for the above issue: it pins `pystache>=0.4.0` in its `setup.py`, rather than setting a hard upper bound: `pystache<=0.5.4`. But it is also missing a bunch of changes from the `2.0-16` release!

The S3 bucket has [public listing]() on - from there I can see that the 2.0-16 release was made August 23rd:

```

aws-cfn-bootstrap-py3-2.0-16.tar.gz
2022-08-23T22:16:24.000Z
...

```

Whilst the “latest” release is from January:

```

aws-cfn-bootstrap-latest.tar.gz
2022-01-18T19:52:14.000Z
...

```

This is really frustrating. I’m layering workaround on workaround due to this tool not being compatible with a year-old Python version and a shoddy release process.

Contributor guide

Open the contributing guide

Research direction

Start with the CloudFormation helper scripts release history page and compare its listed latest version with the published 2.0-16 and latest artifacts described in the issue. Update the documentation so the release history accurately identifies 2.0-16 and the current latest artifact, then verify the version links and installation details.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.