[ANN] Stack 2.15.3 and earlier's default source for list of Stackage snapshots not up to date

EDIT: Advised URL now updated to reflect Stack 2.15.5 and avoid redirection.

EDIT2: Stack users are recommended to upgrade to Stack 2.15.5. (For people using GHCup to manage versions of Stack, an update to GHCup’s metadata is in hand.)

Users of Stack 2.15.3 or earlier should update their config.yaml file to set the configuration option:

urls:
  latest-snapshot: https://stackage-haddock.haskell.org/snapshots.json

Following the handover of the Stackage project to the Haskell Foundation the file at Stack’s default URL is no longer up to date.

stack init uses this file to decide which snapshots to try when creating a stack.yaml file. stack new uses stack init by default.

EDIT: Stack 2.15.5 and later have an updated default.

5 Likes

Thanks @mpilgrem. Is there a command for doing this, a stack config set ...?

There is no command. For people not familar with config.yaml its location is reported by stack path --global-config. It can be edited like any other text file.

My intention is that the next release of Stack will have a sensible default URL once again and this need for a configuration will soon pass.

1 Like

Thankfully @mpilgrem was on hand to figure this out. I overlooked the fact that stack relies directly on the old url when planning the migration.

I will be able to look at this in more detail next week.

Stack users: how much of an impact does this have on you? I will fix things up so that the old url continues working, but it will need to be shut down eventually. What is a reasonable time frame? Keeping in mind that it is already configurable and future releases will have a functional default.

Update: I am considering not fixing up the old url. So far, the only people who have spoken to me have been able to use the workaround. Feel free to comment here or at The default snapshot.json url has stopped being updated · Issue #7349 · commercialhaskell/stackage · GitHub if you do want me to do something about it.

Relatedly, I am still waiting for the data migration to complete, so I would not be able to do anything yet, anyway.

I would say really please fix it: it is quite a breaking change.

eg currently stack-all uses http://haddock.stackage.org/snapshots.json

Perhaps stack could warning about it in the future?

Also the url in the linked stack documentation is still out of date.

3 Likes

Roger that! I’ll fix up the data at the old URLs.

The next version of stack will use an updated URL. I hope to have the correct URL determined by tomorrow, then @mpilgrem can cut a release.

Hm! That URL is under our control and could probably be (permanently) updated to point to the new data source. I’ll look into that.

The data migration has completed now! That means I can start working on fixing up the old URLs very soon. There were a few errors during the process that I need to understand first, however.

1 Like

BTW I released stack-all-0.5.1 which uses the new url, for stack-all users.

1 Like

FYI the question I want to answer is whether or not I should stick with stackage-haddock.haskell.org as the hostname to use, or if I should pick a name that reflects the specific use case.

1 Like

The linked documentation is for the ‘stable’ version of Stack (being 2.15.3), is accurate for that version and includes the interim work-around. The documentation for the ‘latest’ version of Stack (being the master branch of the repository) is at: Configuration (project and global) - The Haskell Tool Stack. The plan of action is this:

  • @chreekat confirms the most appropriate URL, when things are settled at Stackage’s end
  • A Stack 2.15.5 is released as a bug fix (perhaps also with some other bug fixes)
  • This post (and others elsewhere) are updated to reflect developments.
  • The GHCup project is encouraged to view Stack 2.15.5 as its current ‘recommendation’.

What is the reason any URL was changed at all?

GHCup has done this once with the metadata URLs, but:

  • there was a clear advantage: fetch times went down from ~400ms to ~150ms
  • the old locations are still being updated (at least ocassionally)
1 Like

The existing URL is an s3.amazonaws.com URL that points at a bucket owned by FP Complete. As part of the Stackage handover, the content has moved to a new bucket so that FP Complete can eventually remove theirs. The new bucket isn’t even on S3, so I just assumed there was no way to point the old URL at the new bucket.

2 Likes

@mpilgrem , let’s stick with stackage-haddock.haskell.org/snapshots.json.

  1. It already works.
  2. It is similar to the existing haddock.stackage.org
  3. It’s novel and can’t be confused for the old URL, whether by humans or machines.
1 Like

The original issue in this thread should now be resolved. The old URL for snapshots.json should now work for the rest of the transition period. I sync snapshots.json back to the old bucket whenever it gets updated.

Let me know if any other problems come up!

1 Like

@chreekat, thanks. I plan to release Stack 2.15.5 very soon. @hasufell and I are discussing something unrelated (Stack #6526) which I would like to include in the same bug fix release, but if that causes any significant delay it can wait.

1 Like

First release candidate for Stack 2.15.5 (being Stack 2.15.4.1) is now available.

Just out of curiosity, where is the new Stackage data hosted?

It’s on Cloudflare’s R2.

1 Like

I think Stack new and stack init failing ... missing AWS asset "NoSuchBucket"? is the latest user running into this. This will keep happening, hurting stack’s reputation for reliability.

Is there any way to keep things “just working”, including for stack users who haven’t upgraded ?
Like keep haddock.stack.org/snapshots.json existing or redirecting ?
I assume FP Complete owns stack.org, and would be willing to point haddock.stack.org to stackage-haddock.haskell.org - would that do it ?

1 Like

Is there any way to keep things “just working”, including for stack users who haven’t upgraded ?

Presumably until the official ending of support for the last version of Stack to use the old FP Complete URL.

(Since searching with haskell stack old version support window isn’t working: how long are older Stack versions supported for?)