{"id":17099984,"url":"https://github.com/bergmark/base-compat-migrate","last_synced_at":"2025-03-23T18:28:04.856Z","repository":{"id":56842884,"uuid":"129623636","full_name":"bergmark/base-compat-migrate","owner":"bergmark","description":null,"archived":false,"fork":false,"pushed_at":"2020-03-25T16:43:34.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-09T15:36:52.756Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bergmark.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-15T15:29:47.000Z","updated_at":"2020-03-25T16:40:11.000Z","dependencies_parsed_at":"2022-09-01T06:31:46.472Z","dependency_job_id":null,"html_url":"https://github.com/bergmark/base-compat-migrate","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergmark%2Fbase-compat-migrate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergmark%2Fbase-compat-migrate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergmark%2Fbase-compat-migrate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergmark%2Fbase-compat-migrate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bergmark","download_url":"https://codeload.github.com/bergmark/base-compat-migrate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245147832,"owners_count":20568579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T15:11:55.226Z","updated_at":"2025-03-23T18:28:04.814Z","avatar_url":"https://github.com/bergmark.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# base-compat-migrate [![Hackage](https://img.shields.io/hackage/v/base-compat-migrate.svg)](https://hackage.haskell.org/package/base-compat-migrate) [![Build Status](https://travis-ci.org/bergmark/base-compat-migrate.svg)](https://travis-ci.org/bergmark/base-compat-migrate)\n\nThis library is meant as a temporary migration library when moving a\nlibrary to\n[base-compat](http://hackage.haskell.org/package/base-compat) or\nupgrading it. Replace `base-compat` with\n[base-compat-batteries](https://hackage.haskell.org/package/base-compat-batteries)\nin the rest of the README if you want to use that library instead.\n\n`base-compat` defines backwards compatible versions of some base\nmodules; If you for example want to make sure `import Prelude` does\nthe same thing on all GHC versions you can instead `import\nPrelude.Compat`. If a Compat module exists it means it has some\nbackwards compatibility fix, it also re-exports everything that is\nunchanged from the corresponding base module.\n\nbase-compat notably does not have Compat modules for every base module\nso you often need to depend on both base and base-compat. The standard\nrecommended work-flow is to build your project with the oldest GHC you\nwant to support and add Compat imports accordingly.\n\nIf you don't have quick access to old GHCs it can be error-prone to\nmigrate to upgrade base-compat since you need to look through all base\nimports to see if you should be using Compat versions instead.\n\n## Workflow\n\nThis library offers a different work flow:\n\n1. Make sure you are using a GHC version compatible with this project\n   (At the time of writing it is GHC 8.4.1)\n1. Replace any `base` and `base-compat` dependencies in your project\n   with `base-compat-migrate`.\n1. Add `default-extensions: NoImplicitPrelude` to each build component\n   (libraries, executables, test suites, benchmarks).\n1. Compile your project and fix issues:\n  * Add any needed `Prelude.Compat` imports\n  * If a `base` module can't be found change the import to the\n    `Compat` version instead.\n1. Finally, replace the `base-compat-migrate` dependency with `base`\n   and `base-compat`.\n\nWhenever you wish to support newer versions of `base` or `base-compat`\nyou can repeat these steps.\n\n### Common Issues with Solutions\n\n* If your package declares Paths modules it won't compile without\n  access to base. You can drop the Paths module until the affected\n  component builds, and then add it again along with the base\n  dependency.\n\n## Dependencies\n\nSince `base-compat-migrate` re-exports modules, we depend on minor\nversions of `base` and `base-compat`. A new minor version of either\nmay require a new release of this library. This project's cabal file\nis generated by compiling this package with `-fexe` with\ncabal-install, or `stack build` with stack and then running the\ngenerated executable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbergmark%2Fbase-compat-migrate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbergmark%2Fbase-compat-migrate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbergmark%2Fbase-compat-migrate/lists"}