haskell / filepath

Haskell FilePath core library
BSD 3-Clause "New" or "Revised" License
66 stars 33 forks source link

Split OsString into separate package #203

Closed hasufell closed 7 months ago

hasufell commented 8 months ago

Since https://github.com/haskell/filepath/pull/202 introduces significant new API that really doesn't belong into filepath anymore, I want to split out the packages

This means GHC will need a new boot package os-string: https://github.com/haskell/os-string

@bgamari @mpickering @Bodigrim

hasufell commented 8 months ago

I don't have bandwidth to look into details, but the split sounds good to me.

The caveat is this: if a user adds both filepath and os-string to their dependencies they may get compile error if using modules that exist in both, due to deprecation period. That can easily be fixed with PackageImports. But it isn't a breaking change, technically.

In order to push people into using os-string, I'd prefer to not release the bytestring API in filepath.

hasufell commented 8 months ago

It also means: after the deprecation period, we'll have to do a major PVP bump to filepath, incurring some maintenance cost to stackage etc.

hasufell commented 8 months ago

The other options is to rename all module prefixes System.OsString to Data.OsString in os-string package. That way there won't be module name clash. But it's debatable which one is more annoying.