Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hide very old releases by default #50

Closed
captn3m0 opened this issue Jun 2, 2019 · 12 comments · Fixed by #2594
Closed

Hide very old releases by default #50

captn3m0 opened this issue Jun 2, 2019 · 12 comments · Fixed by #2594
Labels
enhancement New feature or request Hacktoberfest Issues that are good first picks for Hacktoberfest participants

Comments

@captn3m0
Copy link
Member

captn3m0 commented Jun 2, 2019

Previous discussion:#41 (comment)

Write a bit of JS to hide any releases that have a end-of-life date more than 5 years in the past by default. Add a new button on the site that can be used to "show old releases".

@kraigu
Copy link
Contributor

kraigu commented Aug 29, 2021

I was going to add older Debian and Ubuntu releases as well, is it worth waiting on something happening with this before I do? Since I have my own uses for this API-wise (see the discussion on the FreeBSD releases request) I'm fine with adding them for my own purposes and keeping a separate branch, but it'd be better otherwise. I'd offer to do this myself but my JS skills are not up to doing so quickly.

@captn3m0
Copy link
Member Author

Do file the PRs, if they're too much - we can always wait on merging them (and you keep them on your local branch).

I'll try to prioritize this issue meanwhile.

@captn3m0
Copy link
Member Author

If you'd like to work on this:

  • Setup the project locally, as per HACKING.md
  • Add a special class to old releases (that have gone EoL 5+ years ago) via post.html. Look at these 3 variables and create a new one similarly. Hide these rows by default in CSS.
  • Add a well-designed button/link to show the extra hidden rows. The easiest and cleanest representation would be to have a final row with a single td colspan=4 that shows up at the bottom if there are hidden rows.

And finally, we have a very helpful guide for new contributors during Hacktoberfest as well.

@captn3m0 captn3m0 added the Hacktoberfest Issues that are good first picks for Hacktoberfest participants label Sep 30, 2021
@captn3m0
Copy link
Member Author

captn3m0 commented Feb 4, 2022

A good inspiration is the haproxy website:

screenshot of the releases table on the haproxy website

@captn3m0
Copy link
Member Author

captn3m0 commented May 30, 2022

Tried out a few approaches on how to configure this, the one that seems to work best would be:

  1. Show top 5 or 6 releases always
  2. Always show any non-red release (any column holds any date in the future, or in some cases, still supported)
  3. Hide everything else - this would be unsupported releases that aren't in the top 5/6.

The "top n" is defined as per the sorting order (as defined by the sortReleasesBy field). Current WIP screenshot:

Current WIP screenshot

I tried a few other approaches that let us configure which releases to show/hide on a per-product basis, but it seems to be adding too much complexity for too little benefit.

@BiNZGi
Copy link
Member

BiNZGi commented May 31, 2022

Nice work @captn3m0 👍 Details and the screenshot look very good for me. I would go with your current version and don't add more options for the moment.

@Evernow
Copy link
Contributor

Evernow commented Jun 14, 2022

I prefer an approach where unsupported release is hidden and there is a checkbox at the top a user can uncheck to show. However this behavior should be able to be controlled by a flag like we can already decide if to show eol and support columns.

@ravage84
Copy link
Contributor

It would be useful to have an optional URL query parameter, such as show to toggle the behavior & to make it possible to ink to a product page with or without old releases:

For example:

https://endoflife.date/cakephp => old releases hidden by default
https://endoflife.date/cakephp?show=all => all releases including the old ones
https://endoflife.date/cakephp?show=recent => same as default behavior, but explicitly
https://endoflife.date/cakephp?show=old => just old releases

These could be used to link to an ever automatically up-to-date list of recent or old of releaeses for a given product, depending on the need.

marcwrobel added a commit that referenced this issue Feb 26, 2023
This field indicates whether a release cycle is still maintained, meaning at least one of the active support / eol / discontinued / extended support dates is in the future (or is true).

This new field was primarily declared to help implementing #50, but could be used elsewhere. For example, making it available in the API would make API usage simpler, because clients would not have to implement any logic to know whether a given release cycle is still maintained.
marcwrobel added a commit that referenced this issue Feb 26, 2023
Hide oldest unmaintained release cycles by default, letting the users display them if necessary.

In this version, a cycle can be hidden only if:

- it is not the first cycle,
- it is unmaintained (see set_is_maintained below),
- the previous cycle is still maintained,
- all next cycles are unmaintained.

This approach allows reducing the number of releases displayed on most pages, without concealing too much information.

This is also the first try at hiding releases: more approach has been discussed on #50, and we may want to test them in the future.
@marcwrobel marcwrobel linked a pull request Feb 26, 2023 that will close this issue
@marcwrobel
Copy link
Member

I gave it a shot on #2594.

I read all you said, but I took another approach : I only hid all but the most recent unmaintained version at the bottom of the table. I find it interesting:

  • to show at least the most recent unmaintained release cycle (it's only one more line),
  • to show intermediate unmaintained release cycle, if there is such cycles (it gives information about the release policy of the product).

I think this works well in most situation, by hiding a lot of releases without concealing too much information. What do you think of this approach ?

marcwrobel added a commit that referenced this issue Mar 5, 2023
This field indicates whether a release cycle is still maintained, meaning at least one of the active support / eol / discontinued / extended support dates is in the future (or is true).

This new field was primarily declared to help implementing #50, but could be used elsewhere. For example, making it available in the API would make API usage simpler, because clients would not have to implement any logic to know whether a given release cycle is still maintained.
marcwrobel added a commit that referenced this issue Mar 5, 2023
This implementation hides only a single run of rows, at the very end, if they are all unmaintained. The criteria picked here for hiding unmaintained releases is one which is simple enough to understand and gives the least surprise to users (the table only gets appended, no new rows show up in the middle). Release cycles are also only hidden if there is at least 6 release cycles in total, with at least 3 of of them that can be hidden. There is no need to hide anything if the table is small or if the number of hidden releases is too low.

This implementation works great for most of the current products, but may be useless for products where there are old maintained release cycles (such as Microsoft products or Ubuntu).

A button has been used instead of a link because to improve accessibility (https://www.a11y-101.com/design/button-vs-link).

See #50 if you want to know more about the reason why this solution was implemented.
marcwrobel added a commit that referenced this issue Mar 7, 2023
This implementation hides only a single run of rows, at the very end, if they are all unmaintained. The criteria picked here for hiding unmaintained releases is one which is simple enough to understand and gives the least surprise to users (the table only gets appended, no new rows show up in the middle). Release cycles are also only hidden if there is at least 6 release cycles in total, with at least 3 of of them that can be hidden. There is no need to hide anything if the table is small or if the number of hidden releases is too low.

This implementation works great for most of the current products, but may be useless for products where there are old maintained release cycles (such as Microsoft products or Ubuntu).

A button has been used instead of a link because to improve accessibility (https://www.a11y-101.com/design/button-vs-link).

See #50 if you want to know more about the reason why this solution was implemented.
marcwrobel added a commit that referenced this issue Mar 10, 2023
This field indicates whether a release cycle is still maintained, meaning at least one of the active support / eol / discontinued / extended support dates is in the future (or is true).

This new field was primarily declared to help implementing #50, but could be used elsewhere. For example, making it available in the API would make API usage simpler, because clients would not have to implement any logic to know whether a given release cycle is still maintained.
marcwrobel added a commit that referenced this issue Mar 10, 2023
This implementation hides only a single run of rows, at the very end, if they are all unmaintained. The criteria picked here for hiding unmaintained releases is one which is simple enough to understand and gives the least surprise to users (the table only gets appended, no new rows show up in the middle). Release cycles are also only hidden if there is at least 6 release cycles in total, with at least 3 of of them that can be hidden. There is no need to hide anything if the table is small or if the number of hidden releases is too low.

This implementation works great for most of the current products, but may be useless for products where there are old maintained release cycles (such as Microsoft products or Ubuntu).

A button has been used instead of a link because to improve accessibility (https://www.a11y-101.com/design/button-vs-link).

See #50 if you want to know more about the reason why this solution was implemented.
@marcwrobel
Copy link
Member

Reopening, a first implementation was done in #2594 but :

@marcwrobel marcwrobel reopened this Mar 10, 2023
@marcwrobel
Copy link
Member

marcwrobel commented Mar 10, 2023

I am also wondering if the old releases should not be visible by default and hidden using JavaScript when the page is loaded. Currently users using a browser with JavaScript disabled cannot see older releases.

marcwrobel added a commit that referenced this issue Mar 22, 2023
I don't know if it makes things more accessible, but at least people that disabled JavaScript on their browser can now see all release cycles.

A small glitch can sometime be observed on page load (for example on API Platform page) but that's not systematic and I didn't consider that to be an issue.
marcwrobel added a commit that referenced this issue Mar 28, 2023
I don't know if it makes things more accessible, but at least people that disabled JavaScript on their browser can now see all release cycles.

A small glitch can sometime be observed on page load (for example on API Platform page) but that's not systematic and I didn't consider that to be an issue.
@captn3m0
Copy link
Member Author

Since we hide old releases fairly well now, closing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Hacktoberfest Issues that are good first picks for Hacktoberfest participants
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants