DEV Community

Cover image for โŒ› Manage EoLs like a boss with endoflife.date ๐Ÿ›‘
adriens for opt-nc

Posted on • Edited on

โŒ› Manage EoLs like a boss with endoflife.date ๐Ÿ›‘

โ” About

Product lifecycle, EoL (End of Life) and more generally obsolescence is a very hot topic for both :

  • ๐Ÿ›ก๏ธ Security
  • ๐Ÿค— Customer & Developer Experience
  • โŒ› Durable time to market performances

Still,... managing these can be a tedious activity... and it's not always as easy to at least manage that, have metrics.

๐Ÿ‘‰ What you'll learn

This post will introduce you a very concrete API driven approach that makes these data interoperable (through APIs) so you can build effective dashboard with pretty very few efforts.

โ” endoflife.date

Why endoflife.date exists :

๐Ÿฟ Demos

Below are some integrations we cloud do thanks to endoflife.date's API

Image description

๐Ÿ˜Ž Get EOL from your terminal with eol

๐Ÿ“Š EoL in Neo4J dashboards

After API-driven integrations We could start to implement these kind of dashboards (Neodash)

Image description

... or visualizations (Bloom):

Image description

๐Ÿ•น๏ธ "Playing" with dependencies and EoLs

Below, a demo on neo4J Neodash:

โ™จ๏ธ Interact Java EoLs roadmap

Once imported into Neo4J, you can run cypher queries:

MATCH (m:JavaEOL)
WITH m,
     CASE 
     WHEN date(m.support)> date() THEN 'True'
     ELSE 'False'
     END AS supported 
RETURN supported, 
       count(supported) as total,
       m.cycle as version
ORDER BY supported 
Enter fullscreen mode Exit fullscreen mode

Image description

๐Ÿ•ธ๏ธ Report apps that rely on deprecated Java

MATCH
  (a:Application)-[ra:HAS_GITLAB_REPOSITORY]->(g:GitlabRepository)-[rg:HAS_JAVA_VERSION]->(j:JavaEOL)
WITH a,g,j,

CASE
   WHEN date(j.support) > date()
   THEN 'True'
   ELSE 'False'
END as supported
RETURN supported,
       count(supported) as total,
       a.name as name
ORDER BY supported
Enter fullscreen mode Exit fullscreen mode

Image description

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Our contributions (so far)

I have started to contributed to get the best coverage as possible for our current stack so anyone can take benit of it (including ourselves ๐Ÿ˜…) :

๐Ÿงฐ cli Tooling

eol CLI to show end-of-life dates for a number of products. :

You can export EoLs in very various ways (csv, tsv, markdown,...) :

๐Ÿ™ Feature Request > Please add csv to your output options ๐Ÿ“Š #110

โ” Context

Currently,

โฏ eol --version
eol 0.9.0 (Python 3.10.6)

The available output options are

-f {html,json,markdown,rst,tsv}, --format {html,json,markdown,rst,tsv}

But most ETL (and other tools) support csv as input format... and often make the load of csv the default mode.

๐Ÿ™ Feature request

Please add csv output option, respecting rfc4180

For example, the following command :

norwegianblue spring-framework -f csv

Would return :

"cycle","release","latest","latest release","support","eol"
"5.3","2020-10-27","5.3.23","2022-09-15","True","False"
"5.2","2019-09-30","5.2.22","2022-05-11","True","2021-12-31"
"5.1","2018-09-21","5.1.20","2020-12-09","False","2020-12-09"
"5.0","2017-09-28","5.0.20","2020-12-09","False","2020-12-09"
"4.3","2016-06-10","4.3.30","2020-12-09","False","2020-12-31"
"3.2","2012-12-13","3.2.18","2016-12-21","False","2016-12-31"

Thank you in advance and thanks a lot for your tool ๐Ÿ‘

Image description

๐Ÿ“‘ Related tools

  • endoflife.date : Informative site with EoL dates of everything
  • cicada : Long Term Support Analyzer
  • norwegianblue : CLI to show end-of-life dates for a number of products.

Top comments (10)

Collapse
 
adriens profile image
adriens
Collapse
 
adriens profile image
adriens • Edited

Neo4j Graph Tech Weekly (E:12)

This Week in Neo4j: Website Analysis, Conversational AI, Graph Machine Learning, Facial Recognition, Graph Tutorial, and More KNOWLEDGE GRAPH: Analyze Your Website With NLP Tomaz Bratanic implements an NLP pipeline to parse a website for useful, unstructured data to construct a knowledge graph. Anal

favicon linkedin.com

Image description

Collapse
 
adriens profile image
adriens
Collapse
 
adriens profile image
adriens

Collapse
 
adriens profile image
adriens
Collapse
 
adriens profile image
adriens
Collapse
 
adriens profile image
adriens
Collapse
 
adriens profile image
adriens
Collapse
 
adriens profile image
adriens

Spotted in the wild:

Collapse
 
adriens profile image
adriens