DEV Community

Cover image for ⌛ Manage EoLs like a boss with endoflife.date 🛑
adriens
adriens

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

😎 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)

... or visualizations (Bloom):

🕹️ "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

🕸️ 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

🧑‍🤝‍🧑 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 👏

📑 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 (14)

Collapse
 
adriens profile image
adriens •
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 •

Spotted in the wild:

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

Collapse
 
adriens profile image
adriens •