(command.CommandList
  children: [
    (C {<echo>} {(DQ <'MicroPython change log'>)})
    (command.ForEach
      iter_name: t
      iter_words: [
        {
          (command_sub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.Pipeline
                children: [(C {<git>} {<tag>}) (C {<grep>} {<-v>} {<v1.0-rc1>}) (C {<sort>} {<-rV>})]
                negated: F
              )
          )
        }
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<echo>} {(SQ )})
            (C {<echo>} {(SQ <'========'>)})
            (C {<echo>} {(SQ )})
            (C {<git>} {<show>} {<-s>} {<--format> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <cD>} 
              {
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  child: 
                    (C {<git>} {<rev-list>} {($ Id.VSub_DollarName '$t')} 
                      {<--max-count> <Id.Lit_Equals '='> <1>}
                    )
                )
              }
            )
            (C {<echo>} {(SQ )})
            (C {<git>} {<tag>} {<-l>} {($ Id.VSub_DollarName '$t')} {<-n9999>})
          ]
        )
    )
  ]
)