{"push_id":758884188,"size":3,"distinct_size":3,"ref":"refs/heads/stable-1.9.3-rc1-edx","head":"59193ccfd6e4453b028ec15856d8d9f215939e30","before":"e8a9cdbec13627928c10f48f735d7d3f2e71ffc5","commits":[{"sha":"bde7b7c3fd34d65f46745defdb0dbd1399f79d59","author":{"email":"4096627f7f15ff4a699390b891d0abc6ee8b0819@edx.org","name":"Feanil Patel"},"message":"Don't convert numbers and booleans to strings.\n\nBefore this change if a variable was of type int or bool and the variable was referenced\nby another variable, the type would change to string.\n\neg. defaults/main.yml\n```\nPORT: 4567\nOTHER_CONFIG:\n  secret1: \"so_secret\"\n  secret2: \"even_more_secret\"\n\nCONFIG:\n  hostname: \"some_hostname\"\n  port: \"{{ PORT }}\"\n  secrets: \"{{ OTHER_CONFIG }}\"\n```\n\nIf you output `CONFIG` to json or yaml, the port would get represented in the output as a\nstring instead of as a number, but secrets would get represented as a dictionary.  This is\na mis-match in behaviour where some \"types\" are retained and others are not.  This change\nshould fix the issue.\n\nUpdate template test to also test var retainment.\n\nMake the template changes in v2.\nUpdate to only short-circuit for booleans and numbers.\n\nAdded an entry to the changelog.","distinct":true,"url":"https://api.github.com/repos/edx/ansible/commits/bde7b7c3fd34d65f46745defdb0dbd1399f79d59"},{"sha":"c32b8335c38ce252c68ecbbf43279eb7a50a3f2f","author":{"email":"4096627f7f15ff4a699390b891d0abc6ee8b0819@edx.org","name":"Feanil Patel"},"message":"Don't convert nulls to strings.\n\nThis change is similar to https://github.com/ansible/ansible/pull/10465\n\nIt extends the logic there to also support none types.  Right now if you have\na '!!null' in yaml, and that var gets passed around, it will get converted to\na string.\n\neg. defaults/main.yml\n```\nENABLE_AWESOME_FEATURE: !!null # Yaml Null\nOTHER_CONFIG:\n  secret1: \"so_secret\"\n  secret2: \"even_more_secret\"\n\nCONFIG:\n  hostname: \"some_hostname\"\n  features:\n    awesame_feature: \"{{ ENABLE_AWESOME_FEATURE}}\"\n  secrets: \"{{ OTHER_CONFIG }}\"\n```\n\nIf you output `CONFIG` to json or yaml, the feature flag would get represented in the output\nas a string instead of as a null, but secrets would get represented as a dictionary.  This is\na mis-match in behaviour where some \"types\" are retained and others are not.  This change\nshould fix the issue.\n\nI also updated the template test to test for this and made the changes to v2.\n\nAdded a changelog entry specifically for the change from empty string to null as the default.\n\nMade the null representation configurable.\n\nIt still defaults to the python NoneType but can be overriden to be an emptystring by updating\nthe DEFAULT_NULL_REPRESENTATION config.\n\nConflicts:\n\tlib/ansible/constants.py\n\nThe way get_config is implemented change from 1.9 to devel.  I matched my code to what was there.","distinct":true,"url":"https://api.github.com/repos/edx/ansible/commits/c32b8335c38ce252c68ecbbf43279eb7a50a3f2f"},{"sha":"59193ccfd6e4453b028ec15856d8d9f215939e30","author":{"email":"4096627f7f15ff4a699390b891d0abc6ee8b0819@edx.org","name":"Feanil Patel"},"message":"Change version number to not conflict with the existing ansible versions.","distinct":true,"url":"https://api.github.com/repos/edx/ansible/commits/59193ccfd6e4453b028ec15856d8d9f215939e30"}]}