Skip to content

Instantly share code, notes, and snippets.

@gotoken
Last active January 25, 2023 23:39
Show Gist options
  • Save gotoken/125c84ac8456b6fcee9277b2c34098b3 to your computer and use it in GitHub Desktop.
Save gotoken/125c84ac8456b6fcee9277b2c34098b3 to your computer and use it in GitHub Desktop.

Benchmarks for the branch lifecycle timelines

This memo is concerning on the issue: ruby/www.ruby-lang.org#2965.

Features (requester) Ubuntu Node Python PHP (proposal)
order (unak) descending ascending ascending ascending ascending
shows EOL branch (unak) (interim only)
today line (znz)
multi phase color (unak)
EOL timeline color
alters branch name style
future color
text label in timeline
phase color legend
media browser SVG static SVG browser SVG server SVG browser SVG
technology D3.js D3.js Mermaid PHP Google or vis-timeline
product generator
Ubuntu https://github.com/canonical/ubuntu.com/blob/main/static/js/src/release-chart.js
Node.js https://github.com/nodejs/lts-schedule
Python https://devguide.python.org/versions/index.html
PHP https://github.com/php/web-php/blob/master/images/supported-versions.php

Technologies

Screenshots

Ubuntu

Click me

https://ubuntu.com/about/release-cycle

image

Python

Click me

https://devguide.python.org/versions/index.html

image

Node.js

Click me

https://github.com/nodejs/Release

image

PHP

Click me

https://www.php.net/supported-versions.php

image

Coloring proposal

CodePen: timeline coloring proposal

image

Prototype

These use Google Charts timelines. A self-hosted library (e.g., vis-timeline) is perhaps better.

The page /ja/downloads/branches/ should be added, IMHO.

Design note

  • I want to be able to see at a glance the current state of the branches that are maintained. Green for safe, orange for warning, vivid for available.
  • Text on the timeline cannot be neatly arranged in short sections. Especially in mobile browsers.
  • Legend is not user friendly at least for this level of complexity.
  • The today-line may be impossible with Google Charts.
  • Consideration for low vision may not be enough. I picked these base colors from Google Charts default coloring set.

Implementation note

  • branches.yml has no security_maintenace_date
  • A liquid-includable JSON format data on the source tree may help efficiency and security. A current prototype uses liquid generated inline JSON but it has no suitable escaping so that way may be fragile. With liquid, suitable JSON escaping is very complicated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment