From 2aac36196ef53616c9b6c14909559cd2eeda3027 Mon Sep 17 00:00:00 2001 From: "Anthony D. Blaom" Date: Fri, 11 Sep 2026 14:03:27 +1200 Subject: [PATCH 1/4] Simplify doc generation --- .github/workflows/ci.yml | 80 ---------------------------------------- 1 file changed, 80 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 894db38..f8d86d5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,83 +45,3 @@ jobs: - uses: codecov/codecov-action@v7 with: file: lcov.info - docs: - name: Documentation - runs-on: ubuntu-latest - env: - JULIA_PKG_SERVER: "" - steps: - - uses: actions/checkout@v7 - - uses: julia-actions/setup-julia@v3 - with: - version: '1' - - name: Check build conditions - run: | - julia -e ' - function set_environment_variable(name::AbstractString, value::AbstractString) - github_env = ENV["GITHUB_ENV"] - touch(github_env) - open(github_env, "a") do io - println(io, "$(name)=$(value)") - end - end - event_name = "${{ github.event_name }}" - if event_name == "pull_request" - base_ref = "${{ github.base_ref }}" - head_ref = "${{ github.head_ref }}" - base_repository = "${{ github.repository }}" - head_repository = "${{ github.event.pull_request.head.repo.full_name }}" - build_docs = (base_ref == "master") && (head_ref == "dev") && (base_repository == head_repository) - elseif event_name == "push" - ref = "${{ github.ref }}" - build_docs = (ref == "refs/heads/master") || (startswith(ref, "refs/tags/")) - elseif event_name == "schedule" - build_docs = ref == "refs/heads/master" - elseif event_name == "workflow_dispatch" - build_docs = ref == "refs/heads/master" - else - build_docs = false - end - if build_docs - @info("We will build the docs") - set_environment_variable("BUILD_DOCS", "true") - if event_name == "pull_request" - set_environment_variable("GITHUB_EVENT_NAME", "pull_request") - else - set_environment_variable("GITHUB_EVENT_NAME", "push") - end - else - @info("We will NOT build the docs") - set_environment_variable("BUILD_DOCS", "false") - end' - - name: Install dependencies - run: | - julia --project=docs -e ' - if ENV["BUILD_DOCS"] == "true" - using Pkg - Pkg.develop(PackageSpec(path=pwd())) - Pkg.instantiate() - end' - - name: Doctest - run: | - julia --project=docs -e ' - if ENV["BUILD_DOCS"] == "true" - using Documenter: doctest - using NearestNeighborModels, MLJBase - @info "attempting to run the doctests" - doctest(NearestNeighborModels) - else - @info "skipping the doctests" - end' - - name: Build and deploy - run: julia --project=docs -e ' - if ENV["BUILD_DOCS"] == "true" - @info "attempting to build and deploy docs" - run(`julia --project=docs --color=yes docs/make.jl`) - @info "successfully built and deployed docs" - else - @info "skipping doc build and deploy" - end' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} From 8a46068c36677cbc2aaed80117dab0870dc1023c Mon Sep 17 00:00:00 2001 From: "Anthony D. Blaom" Date: Fri, 11 Sep 2026 14:05:45 +1200 Subject: [PATCH 2/4] add forgotten file --- .github/workflows/docs.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..bb97901 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,34 @@ +name: Generate and Deploy Documentation +on: + push: + branches: + - dev + tags: [v*] + pull_request: + +jobs: + build: + permissions: + contents: write + actions: write + pull-requests: write + statuses: write + runs-on: ubuntu-latest + steps: + - uses: julia-actions/cache@v3 + - uses: actions/checkout@v7 + - uses: julia-actions/setup-julia@v3 + with: + version: '1' + show-versioninfo: true + - run: | + julia --project=docs -e ' + using Pkg + Pkg.develop(PackageSpec(path=joinpath(pwd(), "NearestNeighborModels")))' + - uses: julia-actions/julia-docdeploy@v1 + with: + install-package: false # because we manually installed above + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} + DOCUMENTER_DEBUG: "true" From 91d9ef00eb66c218b9999c91f7bf1999d259e446 Mon Sep 17 00:00:00 2001 From: "Anthony D. Blaom" Date: Fri, 11 Sep 2026 14:38:00 +1200 Subject: [PATCH 3/4] tweaks --- .github/workflows/docs.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index bb97901..a004cfa 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,14 +21,15 @@ jobs: with: version: '1' show-versioninfo: true - - run: | - julia --project=docs -e ' - using Pkg - Pkg.develop(PackageSpec(path=joinpath(pwd(), "NearestNeighborModels")))' + - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-docdeploy@v1 - with: - install-package: false # because we manually installed above env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} - DOCUMENTER_DEBUG: "true" + - name: Run doctests + shell: julia --color=yes --project=docs {0} + run: | + using Documenter: DocMeta, doctest + using NearestNeighborModels + DocMeta.setdocmeta!(NearestNeighborModels, :DocTestSetup, :(using NearestNeighborModels); recursive=true) + doctest(NearestNeighborModels) From dc7e24fca2b745f491a4ab399122a8e5450b970b Mon Sep 17 00:00:00 2001 From: "Anthony D. Blaom" Date: Fri, 11 Sep 2026 14:58:29 +1200 Subject: [PATCH 4/4] fix a benign doctest fail --- docs/src/index.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/src/index.md b/docs/src/index.md index a00b5ef..735e9de 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -53,26 +53,26 @@ end ```jldoctest ex1 julia> predict(knnc_mach, rows=test_inds) 60-element CategoricalDistributions.UnivariateFiniteVector{ScientificTypesBase.Multiclass{2}, String, UInt32, Float64}: - UnivariateFinite{Multiclass{2}}(B=>0.315, O=>0.685) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>0.315, O=>0.685) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) ⋮ - UnivariateFinite{Multiclass{2}}(B=>0.613, O=>0.387) - UnivariateFinite{Multiclass{2}}(B=>0.83, O=>0.17) - UnivariateFinite{Multiclass{2}}(B=>0.361, O=>0.639) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>0.824, O=>0.176) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) - UnivariateFinite{Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>0.613, O=>0.387) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>0.83, O=>0.17) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>0.361, O=>0.639) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>0.824, O=>0.176) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) + UnivariateFinite{ScientificTypesBase.Multiclass{2}}(B=>1.0, O=>0.0) ``` Alternatively categorical predictions may be obtained using `predict_mode` as shown below. ```jldoctest ex1