haskell / haskell/hackage-server
Create permanent urls to latest hackage package documentation
- 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