JuliaDocs / Documenter.jl

A documentation generator for Julia.
https://documenter.juliadocs.org
MIT License
814 stars 480 forks source link

Lapidary says skipping docs deployment. #26

Closed TransGirlCodes closed 8 years ago

TransGirlCodes commented 8 years ago

Hi,

I've set up a Lapidary docs system on the master branch at BioJulia/Bio.jl, with a make.jl file and I've followed the instructions to get travis.yml set up appropriately, and I've given Travis CI a personal access token I've generated. I've also set up mkdocs.yml, and made sure make.jl also includes the deploydocs(repo = "github.com/BioJulia/Bio.jl.git") function. However pushing to master does not auto-generate new documentation. In addition, if I navigate to the docs directory, and do julia make.jl I get the following output:

LAPIDARY: setting up build directory.
LAPIDARY: copying assets to build directory.
LAPIDARY: parsing markdown templates.
LAPIDARY: expanding parsed template files.
LAPIDARY: generating cross-reference links.
LAPIDARY: running doctests.
LAPIDARY: checking document consistency.
LAPIDARY: writing document to file.
LAPIDARY: skipping docs deployment.

I'd like to know why would it skip deployment on the last step. It makes the /build directory and make splices in the doctoring and such brilliantly, I just don't know why it's not doing the mkdocs and deployment steps at the last stage of the process.

Any help with this is greatly appreciated.

Best, Ben W. BioJulia.

MichaelHatherly commented 8 years ago

By default deploydocs will deploy on the Linux nightly travis build bot. Looks as though Bio.jl is failing on nightly, so what you can do is change the deploydocs call to

deploydocs(
    repo  = "github.com/BioJulia/Bio.jl.git",
    julia = "0.4",
)

and that should do the trick I should think.

MichaelHatherly commented 8 years ago

Also, to change which OS you want to deploy the docs from you can use the osname keyword

deploydocs(
    repo   = "github.com/BioJulia/Bio.jl.git",
    julia  = "0.4",
    osname = "osx",
)

These are mentioned briefly in the docs, but perhaps a more prominent section in the hosting documentation page would be useful too.

TransGirlCodes commented 8 years ago

I've changed the deploydocs function to use 0.4 and OS X, but it still tells me it's skipping docs deployment.

MichaelHatherly commented 8 years ago

Locally deploydocs will always skip deploying the docs, currently it's only designed to work on travis. On the 0.4 travis build for Bio.jl make.jl is throwing an error since Lapidary isn't installed. Until the package is registered you'll need to add a Pkg.clone call to install it. Something like

after_success:
  - julia -e 'cd(Pkg.dir("Bio")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())'
  - julia -e 'cd(Pkg.dir("Bio")); Pkg.add("Coverage"); using Coverage; Codecov.submit(process_folder())'
  - julia -e 'cd(Pkg.dir("Bio")); Pkg.clone("https://github.com/MichaelHatherly/Lapidary.jl"); include(joinpath("docs", "make.jl"))'

should work.

TransGirlCodes commented 8 years ago

Ok it's now showing that it is going through the build and deployment process. But it errors:

ERROR: LoadError: could not spawn `mkdocs build`: no such file or directory (ENOENT)
 in _jl_spawn at process.jl:262
 in anonymous at process.jl:415
 in setup_stdio at /Users/travis/julia/lib/julia/sys.dylib
 in __spawn#58__ at /Users/travis/julia/lib/julia/sys.dylib
 in run at /Users/travis/julia/lib/julia/sys.dylib
 in anonymous at /Users/travis/.julia/v0.4/Lapidary/src/Lapidary.jl:298
 in anonymous at /Users/travis/.julia/v0.4/Lapidary/src/Lapidary.jl:329
 in cd at /Users/travis/julia/lib/julia/sys.dylib
 in deploydocs at /Users/travis/.julia/v0.4/Lapidary/src/Lapidary.jl:368
 in include at /Users/travis/julia/lib/julia/sys.dylib
 in include_from_node1 at /Users/travis/julia/lib/julia/sys.dylib
 in process_options at /Users/travis/julia/lib/julia/sys.dylib
 in _start at /Users/travis/julia/lib/julia/sys.dylib
while loading /Users/travis/.julia/v0.4/Bio/docs/make.jl, in expression starting on line 4

Which maybe something to do with my mkdocs.yml, although I think I left most of it as is in the docs. Lapidary, puts stuff in the docs/build folder, and mkdocs.yml has 'build' set for it's docs_dir.

MichaelHatherly commented 8 years ago

Does mkdocs build work locally?

The error looks like mkdocs isn't being found. Perhaps pip on OSX installs mkdocs somewhere other than .local/bin. Not sure where that would be. Perhaps stick to deploying from Linux rather than OSX for the moment.

TransGirlCodes commented 8 years ago

That's awesome, it working now. Thank you!

MichaelHatherly commented 8 years ago

Excellent, glad to hear that!