You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One of the blockers to landing @let-def's syntax PR is that we need a way to gracefully upgrade people, right? (context: it would be awesome to be on the new syntax by late october when the ReactiveConf workshops + talk happen)
Here are some thoughts about what we can do
ship multiple versions of the reason parser with bucklescript, and allow you to select which one you want via a reason-flags attribute. We'd gradually phase out the old versions, but that would help give people time to move over gradually
we only ship the current + previous versions of the parser as part of bucklescript, and add a command --upgrade-syntax that does an upgrade a la reup.sh. It might be interesting to, if we encounter a syntax error when parsing w/ the current version, to auto-fallback to the previous version in case it can parse it successfully
We just expect people to use reup.sh when they're upgrading to a new version of reason
I can see us doing 1 + 2, or 2 alone, or 3.
1+2 pros/cons
pros:
lowest barrier to upgrading bucklescript - don't have to do anything if you don't want to
working on an old tutorial w/ a newer version of bs-platform is OK as long as the reason-syntax version is specified in bsconfig.json
cons:
fatter install (not sure how much heavier it would be, maybe totally reasonable)
would take some work to implement into bucklescript
2 pros/cons
pros:
lighter weight than shipping a bunch of versions of reason-parser
cons:
can't easily upgrade from "2 versions behind" to "current version"
also would take some work to implement in bucklescript
3 pros/cons
pros:
no work
cons:
ppl might want to upgrade to get new bucklescript features/bugfixes but not want to put in the effort to do the syntax upgrade yet. If we make refmt a ton better, then maybe this becomes less of an issue because upgrading would be pretty painless.
reup won't be good enough, as your third-party dep might not have been upgraded yet.
We can ship a new version with BS, just like we did with the ppx transform. cc @bobzhang. @let-def and I are working to make reason output lightweight enough that shipping two refmt isn't too expensive to BS.
The conversion script, I already have it =)
I will go through reasonml-community and do a one-time upgrade. It'll take like 10 mins. I also have prominent blog posts in mind whose authors I'll contact. cc you and @jsdf
One of the blockers to landing @let-def's syntax PR is that we need a way to gracefully upgrade people, right? (context: it would be awesome to be on the new syntax by late october when the ReactiveConf workshops + talk happen)
Here are some thoughts about what we can do
reason-flags
attribute. We'd gradually phase out the old versions, but that would help give people time to move over gradually--upgrade-syntax
that does an upgrade a la reup.sh. It might be interesting to, if we encounter a syntax error when parsing w/ the current version, to auto-fallback to the previous version in case it can parse it successfullyI can see us doing 1 + 2, or 2 alone, or 3.
1+2 pros/cons
pros:
cons:
2 pros/cons
pros:
cons:
3 pros/cons
pros:
cons:
cc @chenglou @jordwalke
The text was updated successfully, but these errors were encountered: