Updating a (still) private project to Julia 0.7/1.0

I was a little slow on my package development and would like to upgrade these days from 0.6 to 0.7; I am still trying to get it properly working and have two problems that I looked for today for the last hour

  1. I started with Pkg3 and did
develop ~/myPackage.jl/

that I worked on for some time and that uses (as kind of only dependency SimpleTraits.
Now when doing using myPackage in REPL I get

┌ Warning: Package Manopt does not have SimpleTraits in its dependencies:
│ - If you have myPackage checked out for development and have
│   added SimpleTraits as a dependency but haven't updated your primary
│   environment's manifest file, try `Pkg.resolve()`.
│ - Otherwise you may need to report an issue with Manopt
└ Loading SimpleTraits into Manopt from project dependency, future warnings for Manopt are suppressed.

But Pkg.resove does not change anything, and I could not figure out how to add that as a dependency (just add SimpleTraits in pkg>did not do the Job, that was the only thing I could find)…
Hot do I permanently and consistently add this dependency?

  1. I have a lot of documentation using LaTeX since some of my documentation is easier to describe using formulae. Something like
    doc"""
    A documentation containing for example LateX like $\mathcal M$ to keep global information on a specific manifold
    """

worked fine in Julia 0.6 and I used it a lot.

Not in Julia 0.7 I get the deprecation warning

Deprecated syntax `doc" "` at /Users/bergmann/Repositories/Software/Manopt.jl/src/manifolds/Manifold.jl:17.
│ Use `@doc doc" "` instead.

But If I replace docwith @doc doc in the first line above (that’s how I understand that message) I get

WARNING: importing deprecated binding Base.@doc_str into MyPackage.
WARNING: Base.@doc_str is deprecated, use `Markdown` instead
  likely near /Users/bergmann/Repositories/Software/Manopt.jl/src/manifolds/Manifold.jl:14
ERROR: LoadError: LoadError: syntax: invalid interpolation syntax: "$ "

So it does not like my $ anymore and I haven’t found any documentation how to solve that. Why do I want to use $? Well that makes it easy to copy a few explaning formulae from my original markdown and latex files describing the theory in papers/talks. So: How can I keep the format of my docstrings?

Do you have SimpleTraits in your REQUIRE file? If you do that and resolve afterwards, the issue will go away.

1 Like

Thanks, Haven’t found that in the documentation.

yea, the current process is only documented in this forum. Once REQUIRE is obsolete the process will hopefully get more clear.

1 Like

you can quote the dollar sign \$ but I am not sure if this is what you want. The doc then does not render the latex code.

Yes, but I’d also have to escape every latex commands \to \\and instead of that I could also use the Julia-style-mardkown `` `` to encapsulate LaTeX without escaping commands – that would all still mean to change the text. That’s what I liked about doc"""..."""

Did you try to add using Markdown to your imports?

Haven’t heard of it and did not understand the deprecation warning that way; Does that package directly interpreted strings as Markdown then?

Markdown is one of the standard library packages and it seems that the function is now defined there

I don’t use this personally, but other packages seem to use this now this way:

1 Like

Thanks, that looks neat, couldn’t find that notation in the Markdown package. I will try to use it when I get my Atom back to accepting Julia. It just decided to automatically update to the Julia-Atom 0.17.0 that now crashes Julia on start -.-

So, I tested the Markdown.doc idea – it does compile fine (already on Julia 1.0 since I resolved all deprecation warnings) – but while all non-Markdown strings nicely show up in ?FctName a FctWithMarkdownfunction just yields no documentation found.

While somehow neither md""" nor Markdown.doc"""does seem to work on Julia 0.7, after I fixed all other Deprecation warnings now the tip of using @doc doc"""actually does work; I am just not sure why it did not in the first place.