haskell / haskell/hackage-server

Create permanent urls to latest hackage package documentation

Open
#979 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
467
Forks
225
PR merge metrics
No merged PRs in 30d

Description

For frequently used Haskell packages, i like to bookmark the documentation pages. That's why i would like to propose having urls pointing to the newest hackage package documentation version. Currently, urls contain the package version like
```
https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Traversable.html
```
I know there is the possibility to remove the version number from the url like
```
https://hackage.haskell.org/package/base/docs/Data-Traversable.html
```
but this needs manual work when bookmarking and redirects back to an url with a package version. So the bookmarked url and the page url are never the same, so you can't see which hackage page is already bookmarked, and everytime a package updates, it requires manual new bookmarks (this is not frequent with stable `base` packages, but painful with newer, still evolving packages).

Instead it would be good to have permanent urls like
```
https://hackage.haskell.org/package/base-latest/docs/Data-Traversable.html (preferred)
https://hackage.haskell.org/package/base/latest/docs/Data-Traversable.html
```
that don't redirect like for `ghc` documentation, e.g. `https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/template_haskell.html`. Those urls could be promoted in search engines to avoid having long outdated package versions showing up in the top results.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing how hackage-server handles package documentation URLs, including the unversioned /package/base/docs/... form and the existing GHC latest-documentation URL behavior mentioned in the issue. Confirm how versioned package documentation is selected, then define done as stable latest URLs that remain usable without redirecting to a versioned URL and cover the proposed examples.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.