[ANN] Introducing Upgradathon Fridays

I have just tried migrating a package but still have the issue that travis does not pass:

The package passes locally though. The package is a registered one.

I think you shouldn’t have added NFFT to the deps section. In any case, it is not yet recommended to add a Project.toml to packages.

Also, if this is a library (i.e. something you expect other people to use in their code), not an application, it should probably not have a Manifest.toml.

I have not done that. Just tried following
https://docs.julialang.org/en/latest/stdlib/Pkg/#Generating-files-for-a-package-1

Ok thanks, removed both files and travis is green now:

Can you elaborate on this? I would have thought 0.7-compatible packages should specify their dependencies in the 0.7 manner. Why not add a Project.toml, and when will that recommendation change?

1 Like

If your package has a Project.toml, so do all your dependencies. Since the ecosystem as a whole has not gone there yet, if you add one without your dependencies having done so, things will break. At some point in the near future, there will be a mass PR to all registered packages to add a Project.toml. At that point the recommendation will change.

3 Likes

I always wondered about this constraint. Since the information in REQUIRE can be mapped to a Project.toml, while require the latter recursively in the transition phase?

Once I’ve upgraded my package so that it is compatible with 0.7 (only), how do I tag it with a version number and release it?

I know that the Pkg developers have been really busy working on it, but one thing that I think would make the upgrade process much smoother would be really complete, ironclad documentation on Pkg. There seems to be a fair amount of confusion and I’m still confused on some points myself.

3 Likes

I am under the impression that some details are still being hashed out. There is a trade-off between providing very detailed documentation early, and the cost of continuously revising it.

1 Like

The registration procedure has not changed since Julia 0.6. If you are hosting the package on GitHub you can use GitHub - attobot/attobot: Julia package release bot

5 Likes

and use a REQUIRE having “julia 0.7-beta”. (thanks to Keno for helping me out)

3 Likes

I thought that

julia 0.7-

was OK too, is it not?

I suppose thats fine too. Or even more accurate.

0.7- means “any 0.7 prerelease”. That makes it installable on versions before 0.7 alpha (or beta). However, femtocleaner won’t apply deprecations from the 0.7 cycle (since it’s still declared as installable on prior 0.7 prereleases).

3 Likes

A tip:

Femtocleaner prints the diff to the terminal. If your platform is using less to display the diff, you can save the diff to a file by typing s femtocleaner.log in the terminal (in which less is running). The log file is written to the top level of the cloned package. This is especially useful if you are “cleaning” a very large package.

1 Like

Is it still recommended to run FemtoCleaner from Julia 0.6? I’m getting the following error:

julia> import FemtoCleaner
INFO: Precompiling module Revise.
INFO: Precompiling module GitHub.
ERROR: LoadError: UndefVarError: Checks not defined
Stacktrace:
 [1] include_from_node1(::String) at ./loading.jl:576
 [2] eval(::Module, ::Any) at ./boot.jl:235
 [3] _require(::Symbol) at ./loading.jl:490
 [4] require(::Symbol) at ./loading.jl:405
while loading /home/dfdx/.julia/v0.6/FemtoCleaner/src/FemtoCleaner.jl, in expression starting on line 8

Complete log is here.

EDIT: I also wasn’t able to run FemtoCleaner on my repository by opening an issue. Permissions are already updated and previously (during 0.5 → 0.6 migration) FemtoCleaner worked fine. Am I missing something obvious? Should I open an issue?

1 Like

I had similar problems. To solve them, I restarted and did import FemtoCleaner several times. I also did Pkg.update() a few times. The errors and warnings kept changing, occurring often when compiling GitHub. Eventually, it converged to importing Femtocleaner quietly and correctly.

1 Like

I did not save my logs, but at one point I got exactly the same error
you got:

ERROR: LoadError: UndefVarError: Checks not defined

with the same symbol Checks. I got several UndefVarErrors with varying undefined symbols. I wish I could say exactly what I did. For the most part exiting Julia, starting, import FemtoCleaner; and repeat. Maybe I did import GitHub at one point… don’t recall. I was amazed that it finally worked. But, it reminded me of trying to update an unstable debian distribution. Each pass would push it a little further before erroring out.

It would be better to hear from someone who understands why this is.