haskell / haskell/filepath

Deprecation of System.OsString in `1.4.200.1`

Open
#228 12 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
74
Forks
38
PR merge metrics
No merged PRs in 30d

Description

At the risk that this will turn into a rant...

When migrating form GHC 9.8.1 to 9.8.2 I'm confronted with:

```
Deprecated: Use System.OsString from os-string >= 2.0.0 package instead. This module will be removed in filepath >= 1.5.
```

So yeah, moving stuff into separate packages can make sense. But wait, why doesn't `filepath` just, re-expose that module from `os-string`? Probably because they wanted to add the deprecation message? But this means that we will end up with clashing module names, uhhh... whatever, do I really care? Just use `PackageImports` and be done with it... oh, wait, WHAAAAAT, `filepath` does not even depend on `os-path`???

So what exactly am I going to do with this deprecation warning, except for ignoring it?

And how useful is a deprecation warning that provides a "course of action" that will result in compilation errors in all but the most exotic cases. How useful is a deprecation warning that you can only ignore, where there is no sensible action to take?

So what I'm going to do is add a `OPTIONS_GHC` to every affected module, to ignore the warning. This is mostly harmless, except for that it maps any other deprecation warnings, deprecation warnings that may provide actual value... and then, down the road, when I transition to a newer version of GHC / filepath I'll have to remember to remove those
`OPTIONS_GHC`s again...

Sounds like a lot of wasted effort to me... for what?

Contributor guide

No contributing guide indexed for this repository

Research direction

Read the issue discussion around System.OsString, filepath, os-string, and the proposed OPTIONS_GHC workaround first. Determine whether the project has settled on a deprecation or compatibility direction; done would require an agreed course of action, since the issue currently describes a design problem rather than a specific file or test change.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.