DEV Community

Cover image for ⏳ Managing EOLs w. geol: the impossible 1' Mux demo
adriens
adriens

Posted on

⏳ Managing EOLs w. geol: the impossible 1' Mux demo

DEV's Worldwide Show and Tell Challenge Submission 🎥

This is a submission for the DEV's Worldwide Show and Tell Challenge Presented by Mux

❔ What I Built

We have built and maintain geol a cli to help manage, report and survey software EOLs (end-of-life), both for:

  • Interactive cli UX
  • Automates DEVOPS CI/CD pipelines

See below for previous Hacktoberfest hackathon :

⏱️ My 1' Pitch Video

📑 Demo

💭 The Story Behind It

Since a long time now (December 2022), I started to work on following software technical debt, security, ... at scale with:

  • DEVOPS in mind
  • Datascience & dataengineering
  • Datavisualizations
  • DEVSECOPS

Then I discovered endoflife.date website, its API.
Since that day, I contributed almost 200 PRs to add/enhance products.

Also, on a daily basis, I used hugovk/norwegianblue (aka. eol) to efficiently browse products end of lifes, for example with markdown to efficiently produce Github issues of html reports:

Then, years later I wondered what if I could try to push it harder and build a brand new Go based version of eol,... which I did during a 48h hours hackathon :

The result was pretty nice, I like the feeling... especially :

  • The "Eat your own dog food approach" (aka. Dogfeeding)
  • Freedom to design a brand new client, with a dedicated UX
  • Remove the need for Python runtime
  • Try some exciting new ideas
  • Improve productivity and talk about technical debt around me

Finally we officially created geol :

⚙️ Technical Highlights

We wanted to learn as much and take as much profit as possible from Go ecosystem, to adopt the same stack of some tools we love - and admire - to use on a daily basis :

  • Language : Golang
  • Delivery : brew to deliver/install efficiently as fast - and yet secure - as we want
  • Release Management : goreleaser/goreleaser
  • spf13/cobra for CLI
  • charmbracelet/fang on top of Cobra to give glamour to our cli
  • charmbracelet/lipgloss for styish terminal outputs : colors, arrays, links, markdown display and redirection t files
  • duckdb as primary export format
  • osv.dev to continuously check for vulnerabilities in our base code
  • Code QL as part of our CI to ensure our tool does not bring security issues
  • Docusaurus for nice professional website (work in progress)
  • crush and gemini-cli to evaluate the design of our cli
  • pandoc for document post-processing (eg. transform output markdown into html or pdf...)
  • LaTeX to build the cheetsheat
  • The way we an put together geol and trivy (with crush or gemini-cli) at work together to build efficient and nice looking technical debt and security reports
  • distrobox to test install and binaries on various OS and architectures
  • Now, I'm starting to focus on what can be done around geol outputs to automate reporting, with a professional data-stack, like Rmarkdown or quarto to make professional looking technical debt reports
  • Also, I'm thinking about the most efficient way to share EOL's datas into other systems to make technical debt easier to monitor

🐦 Some Tweets showcasing what's achieved and how

distrobox

Putting geol, trivy, gemini & latex to work

Building cheetsheat with pure code w. LaTeX

Build a website with docusaurus

Top comments (1)

Collapse
 
adriens profile image
adriens