hugovk / norwegianblue

CLI to show end-of-life dates for a number of products.
https://endoflife.date
MIT License
72 stars 4 forks source link

:bulb: Feature request > Please add xml (or yaml) output format :nerd_face: #137

Closed adriens closed 1 year ago

adriens commented 1 year ago

:grey_question: About

Actually there is:

:heavy_check_mark: a rich collection of output formats :heavy_check_mark: multiple products command line options

The multiple product option is a very porwerful, which can make a huge difference on productivity, for example, the possibility to make human readable report on whole stacks within a single command line :

For example, for Java developers it can be:

eol java quarkus maven graalvm -f md

:thinking: Improvement

As mentionned by you :

I'm not keen on a report title, you can do something like echo "# My Java stack\n"; eol java quarkus --format md, but the product titles makes sense.

So I stared to think about enterprise grade solutions that would respect eol philosophy to perform integrations without having to impact too much eol with new kind of datas. For product collection, I may need a consistent data driven output.

:pray: Feature request

Producing such an xml would do the trick:

<?xml version="1.0" encoding="UTF-8" ?>
<eols>
  <eol product = "java">
    <cycle id = "19">
      <cycle>19</cycle>
      <support>2023-03-21</support>
      <eol>2023-03-21</eol>
      <latest>19.0.2</latest>
      <releaseDate>2022-09-20</releaseDate>
      <latestReleaseDate>2023-01-17</latestReleaseDate>
      <lts>false</lts>
    </cycle>
    <cycle id = "18">
      <cycle>18</cycle>
      <support>2022-09-20</support>
      <eol>2022-09-20</eol>
      <latest>18.0.2.1</latest>
      <releaseDate>2022-03-22</releaseDate>
      <latestReleaseDate>2022-08-18</latestReleaseDate>
      <lts>false</lts>
    </cycle>
  </eol>
<eol prodct = "jenkins">
<cycle id = "2">
    <cycle>2</cycle>
    <releaseLabel>Regular</releaseLabel>
    <support>true</support>
    <eol>false</eol>
    <latest>2.390</latest>
    <latestReleaseDate>2023-02-07</latestReleaseDate>
    <releaseDate>2016-04-20</releaseDate>
    <lts>false</lts>
</cycle>
  <cycle id = "2.361">
    <cycle>2.361</cycle>
    <lts>true</lts>
    <support>true</support>
    <eol>false</eol>
    <latest>2.361.4</latest>
    <latestReleaseDate>2022-11-14</latestReleaseDate>
    <releaseDate>2022-07-26</releaseDate>
  </cycle>
  <cycle id = "2.346">
    <cycle>2.346</cycle>
    <lts>true</lts>
    <support>2022-09-07</support>
    <eol>2022-09-07</eol>
    <latest>2.346.3</latest>
    <latestReleaseDate>2022-08-10</latestReleaseDate>
    <releaseDate>2022-05-03</releaseDate>
  </cycle>
  </eol>
  </eols>

Therefore, the following formats could be added :

:moneybag: Benefits

:point_right: Piping eol with template engines that may defacto implement the "-title" option and many other cool things (timestamp injection, additional rest calls,....)

:tickets: Related issues

hugovk commented 1 year ago

XML is a bit tricky and I'd rather not touch it (it could be post-processed from one of the other output formats) but https://github.com/hugovk/norwegianblue/pull/140 adds support for YAML 🚀

adriens commented 1 year ago

:clap:

adriens commented 1 year ago

It will lead to a lot of template engine opportunities... :star_struck: gomplate