femtocleaner is gradually gaining knowledge of all the 0.7 deprecations. At this point it should already be helpful in upgrading packages to 0.7, so I figured I’d put together a quick tutorial for how to go about using femtocleaner to upgrade a package to 0.7. As an example, I will use the StructIO package (relevant PR here: Bump REQUIRE to 0.7-alpha by Keno · Pull Request #17 · JuliaIO/StructIO.jl · GitHub).
Make sure femtocleaner is set up on the repository of intrest
Create a new pull request that bumps julia to 0.7-alpha.
Go to the Checks tab of the pull request. After a few seconds, a femtocleaner summary should appear:
Click the “Fix it” button to ask femtocleaner to push a commit fixing the deprecations it found to this PR.
If necessary, check out the PR locally to do any remaining deprecations manually, update the README, remove Compat (if appropriate), update CI scripts.
Merge the PR (You may want to squash merge it, to do everything in one go)
We have a femtocleaner channel on Slack. Please join us for any questions or problems. Please note that femtocleaner for 0.7 is still experimental, so there may be bugs. If you encounter any, please let me know so we can get them fixed.
More or less, yes. However, it’s a bit tricky to get it set up correctly right now since things are in transition. Since the focus for the moment is on getting the ecosystem upgraded, I’d recommend waiting until FemtoCleaner has settled down enough that you can just install it locally and use it.
ERROR: MethodError: no method matching get_sig(::CSTParser.UnarySyntaxOpCall)
Closest candidates are:
get_sig(::CSTParser.BinarySyntaxOpCall) at /Users/goretkin/repos/update_polyhedra/jl_pkg/v0.6/CSTParser/src/interface.jl:266
get_sig(::CSTParser.EXPR{CSTParser.Macro}) at /Users/goretkin/repos/update_polyhedra/jl_pkg/v0.6/CSTParser/src/interface.jl:264
get_sig(::CSTParser.EXPR{CSTParser.FunctionDef}) at /Users/goretkin/repos/update_polyhedra/jl_pkg/v0.6/CSTParser/src/interface.jl:263
...
I thought I might try to find the offending line of syntax that is causing the parser to fail, but I wasn’t able to instrument Deprecations/CSTAnalyzer.jl to print out line numbers that were currently being processed.