endoflife-date / endoflife.date

Informative site with EoL dates of everything
https://endoflife.date
MIT License
2.41k stars 737 forks source link

Add Last Modified date #70

Closed brianyulke closed 1 year ago

brianyulke commented 4 years ago

When checking this site for the EOL information for a given tool, it's unclear when the page was last modified and thus if the information is current or out of date which seems somewhat antithetical to the purpose of this project.

Ideally the Last Modified date would be generated programmatically, but at the very least could be hard coded on each page and made a requirement for merging any pull request that updates a tool's info.

captn3m0 commented 4 years ago

Thanks for this. I was looking into a few jekyll last updated plugins: https://github.com/gjtorikian/jekyll-last-modified-at.

One issue with doing it programatically (from git commit date for eg) is that minor edits (such as typo fixes) will also bump the date and make the page appear fresher than it is.

The other alternative that I was considering was adding a "latestReleaseDate" column on each release cycle row. That way, it is forcefully updated alongside every version bump. This also helps a lot with setting up a calendar feed (#59). Thoughts?

pradipta commented 3 years ago

@captn3m0 Why hasn't this been done yet? I am with the second option. The PR will only be merged if the date has been updated in cases where it should be.

sooraj-gk commented 2 years ago

Sir, Can I work on this issue, please assign me

captn3m0 commented 2 years ago

@sooraj-gk Feel free to file a PR 👍🏽. I'd prefer the jekyll-last-modified-at approach, and would like to see the results before we take a call on how to best go with this.

sooraj-gk commented 2 years ago

released three years ago

captn3m0 commented 2 years ago

The last release on RubyGems is last year (1.3.0), it's just not tagged on GitHub: https://rubygems.org/gems/jekyll-last-modified-at/versions/1.3.0

devNan0 commented 1 year ago

Which of this two options is the preferred way?

captn3m0 commented 1 year ago

I wrote a long comment here for a dual-approach (use the highest latestReleaseDate, and fallback to the last updated date for the page). But then realized that if a new release is ever made, the corresponding page is also updated automatically due to how our automation works. So we can just use the latter.

As an example, Angular released 14.2.8 on 2022-10-26. But the corresponding angular.md page was updated the next day (27th Oct): https://github.com/endoflife-date/endoflife.date/commit/69acc0d6d626416f87bdcd58cc42b8c008f1cdbb for this new release.

Even our sitemap uses the latter automatically: https://endoflife.date/sitemap.xml

<url>
  <loc>https://endoflife.date/angular</loc>
  <lastmod>2022-10-27T12:32:58+00:00</lastmod>
</url>

As a result, we can just use the last_modified_at date, which is already set by Jekyll. You can see the sitemap as a reference.

This still has the issue that I'd mentioned above:

One issue with doing it programatically (from git commit date for eg) is that minor edits (such as typo fixes) will also bump the date and make the page appear fresher than it is.

But looking at history of popular pages, I think it's okay for us to use this data as-is, and not worry about minor bumps being annoying - the data is mostly used by search engines. Such changes are not that often made to stable pages, and many of them will actually be relevant (such as policy or changelog changes).

2 Additional Requirements:

For confirmation's sake, I checked the latestReleaseDate for all pages (wherever available). This is the data:

Table of products with the latestReleaseDate Newest Release was how many days ago | Page Last Modified Date | Product ---|---|--- 4 | 3 | composer 4 | 3 | ffmpeg 4 | 3 | ios 4 | 3 | ipados 5 | 2 | linuxkernel 5 | 3 | firefox 5 | 3 | nomad 5 | 4 | amazon-linux 5 | 4 | angular 5 | 4 | couchbase-server 6 | 12 | kdeplasma 6 | 5 | docker-engine 6 | 5 | elasticsearch 6 | 5 | laravel 6 | 5 | nodejs 6 | 5 | php 7 | 6 | drush 7 | 6 | gitlab 7 | 6 | macos 7 | 6 | python 7 | 6 | watchos 7 | 7 | apache-airflow 8 | 7 | apache-cassandra 11 | 10 | perl 11 | 10 | powershell 11 | 10 | ubuntu 12 | 11 | electron 12 | 11 | nginx 12 | 11 | terraform 12 | 5 | consul 13 | 12 | rabbitmq 13 | 12 | wagtail 14 | 13 | emberjs 14 | 13 | wordpress 17 | 14 | vue 18 | 12 | libreoffice 18 | 14 | ansible 18 | 14 | nutanix-prism 19 | 14 | kubernetes 19 | 14 | numpy 19 | 14 | nutanix-aos 19 | 14 | symfony 20 | 13 | ansible-core 20 | 14 | mssharepoint 20 | 19 | typo3 20 | 1 | dotnet 20 | 1 | openssl 20 | 8 | vmware-esxi 20 | 8 | vmware-srm 20 | 8 | vmware-vcenter 21 | 14 | postgresql 21 | 1 | hashicorp-vault 21 | 20 | elixir 23 | 21 | postfix 24 | 21 | api-platform 25 | 23 | drupal 25 | 23 | nextcloud 26 | 15 | blender 27 | 19 | mongodb 27 | 23 | django 27 | 23 | go 28 | 19 | tomcat 28 | 23 | bootstrap 28 | 23 | openzfs 28 | 5 | telegraf 29 | 23 | redmine 30 | 7 | cakephp 31 | 23 | opensearch 31 | 23 | tarantool 32 | 23 | mediawiki 33 | 14 | nutanix-files 33 | 14 | twig 33 | 23 | godot 33 | 23 | haproxy 33 | 23 | qt 35 | 23 | kotlin 40 | 12 | eks 40 | 23 | redis 40 | 23 | zabbix 41 | 19 | mysql 42 | 23 | mariadb 46 | 21 | nix 46 | 21 | varnish 46 | 23 | spring-framework 48 | 23 | log4j 51 | 23 | debian 51 | 6 | moodle 52 | 14 | ruby-on-rails 54 | 23 | splunk 60 | 23 | pan-gp 61 | 6 | hbase 66 | 23 | jquery 83 | 18 | msexchange 83 | 23 | alpinelinux 91 | 23 | magento 98 | 15 | roundcube 99 | 6 | pan-xdr 109 | 23 | rockylinux 117 | 23 | oraclelinux 122 | 15 | cfengine 136 | 23 | solr 136 | 23 | unrealircd 139 | 23 | eurolinux 139 | 23 | react 155 | 23 | zookeeper 158 | 23 | almalinux 167 | 21 | redhat 174 | 14 | fedora 202 | 23 | ruby 246 | 21 | pan-os 382 | 1 | devuan 891 | 21 | ros
captn3m0 commented 1 year ago

This is now done with #2061