Code Monkey home page Code Monkey logo

Comments (2)

markpeek avatar markpeek commented on September 15, 2024

Yes, you are correct about some of the naming of the objects. The short answer is "historical" and "backward compatibility".

The longer answer is more convoluted. This project started in 2012 by hand-writing the code from the CloudFormation (CF) docs. This took time to figure out the new objects and track changes to the existing items. And as new things were added by to CF, there were objects (with different attributes) with the same name being used. This caused us to then use our historical naming even if it wasn't as clear and use different names for the new objects.

Over time AWS refined their docs and created a resource specification to more accurately specify the object names and types. But it wasn't until troposphere 4.0.0 in early 2022 that the main troposphere code was auto-generated from the specification. One of the goals for 4.0.0 was to make as few breaking changes as possible to be able to validate the new auto-generated code and allow for easier transition for existing scripts. There are a large number of backward compatibility patches such as the NetworkInterfaces one you mentioned and a lot of these changes are to the early CF resources such as EC2.

At some point it might make sense to remove as many of the backward compatible changes in a new major revision but I would want to hear from the community before proceeding on that endeavor. It would likely break all existing scripts and that could cause adoption issues for the new version. I'm just not sure whether the community would think this is worth the significant renaming involved. I hope this helped explain the issue you raised.

from troposphere.

pdpol avatar pdpol commented on September 15, 2024

Thanks @markpeek that all makes sense. I appreciate hearing the backstory!

from troposphere.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.