This issue is used to keep track of important tasks to make BuckleScript v7 (OCaml 4.06 based version) the default package on npm.
As soon as BS@6 is live, every user should be able to just use our migration guides to upgrade their existing BS@5 based projects to the newest versions. For the most important tools, there should be an equivalent release for handling 4.06 based compile artifacts.
Those tools are mostly PPXes which are based on the 4.02 Parsetree. Our recommendation for PPX maintainers:
As a proper example, check out genType. GenType introduced a detached It uses the 4_02 branch so it can still provide crucial bug fixes for 4.02 based versions, but it will not provide any new features to make sure users upgrade soon and we can deprecate 4.02 once in for all.v2.* versions for BS@5 releases, and v3.* for BS@6.
Update: Gentype already dropped the workflow for a 4_02 hotfix-branch completely, since it is too much effort rebasing the diffs
This is a non-exhaustive list of tools which need to be handled, otherwise a lot of people will be stuck (please let me know if you know of any other tools):
bs-log](https://github.com/MinimaHQ/bs-log/issues/10)A ticked box means that:
For the official transition, we should prepare a migration guide which communicates:
refmt versionSince v7 comes with the new records-as-objects feature, we will need to update the Object related docs section as well. (See PR).
Pending PR: https://github.com/BuckleScript/bucklescript.github.io/pull/184
Object / Object 2 docs to something more meaningful and communicate We should make sure to communicate the switch on every channel:
\cc @anmonteiro @baransu
PPX Upgrade tasks
Thanks @swuecho. Added above.
@ryb73 has updated their ppx to support (only) BuckleScript 6.x: https://github.com/ryb73/ppx_decco/commit/2d68883a8a8901f4e5f9c5d65626d9a028efa700
Also graphql_ppx being (unofficially) deprecated, we can probably list only graphql_ppx_re (which already supports BuckleScript 5.x and 6.x).
@gaku-sei I have update the description on top.
bs-log](https://github.com/MinimaHQ/bs-log/issues/10)Thanks @alexfedoseev , added.
@Coobaha thank -- added above.
Btw would you know how extensive the plugin is? Asking as it might be more complex than a little PPX.
@Coobaha thank -- added above.
Btw would you know how extensive the plugin is? Asking as it might be more complex than a little PPX.
Cc @giraud
I guess it should just work, but thought that it is worth to add it to the list. Will also be happy to test things out
@cristianoc plugin is ready since v0.76 (although I found there is a small update to release to adapt it to bs-6.2.1)
@giraud great thanks. Once a version compatible with bs 6.2.1 is released, I'll update the description on top.
PPX Upgrade tasks
- [ ] bs-deriving
bs-deriving works with BuckleScript v6 (tested with version "44.1.0")
Side note: Same version of reason-macros works with both v5 and v6. I'm curious how this works? Until now I was never able to use the same ppx binary on different AST versions
@osener thanks for the uppdate.
For reason-macros see ocaml-migrate-parsetree in https://github.com/jaredly/reason-macros/blob/master/src/dune#L5.
Ah thanks. I had forward-compatibility in mind when I wrote that, but of course OCaml 4.06 AST is nothing new.
let_anything is now bs-let and is advertised as an experimental ppx. Thanks to @mrmurphy for relocating the repo to a shared organisation! Thanks to @anmonteiro for making it BS6 ready!
decco has been moved to @reasonml-labs to share responsibility: https://github.com/reasonml-labs/decco
https://github.com/MinimaHQ/bs-log/pull/12
bs-log is updated and published as bs-log@next. The only thing that stops me from publishing it as latest is that I can't test installation on Windows machine. I'd really appreciate if anyone could help me with it.
lenses-ppx might be worth mentioning in the upgrade guide, as it is used in the beautiful ReForm library. According to their Readme, I think they support v7.
There is also ppx6 for https://github.com/jsiebern/bs-material-ui/tree/master/public/bs-material-ui-ppx
Most helpful comment
let_anythingis nowbs-letand is advertised as an experimental ppx. Thanks to @mrmurphy for relocating the repo to a shared organisation! Thanks to @anmonteiro for making it BS6 ready!