Skip to content

Commit

Permalink
feat: define the public interface
Browse files Browse the repository at this point in the history
  • Loading branch information
awadell1 committed Jul 16, 2024
1 parent 0399fa4 commit 7534020
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 23 deletions.
4 changes: 3 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ version = "0.6.0"
BSON = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0"
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
CodecZlib = "944b1d66-785c-5afd-91f1-9de20f533193"
Compat = "34da2185-b29b-5c13-b0c7-acf172513d20"
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433"
Expand All @@ -28,13 +29,14 @@ BSON = "0.3"
BenchmarkTools = "1.5"
CUDA = "5"
CodecZlib = "0.7"
Compat = "4.11, 4.15"
Dates = "1.9"
JSON = "0.21"
LibGit2 = "1.9"
Revise = "3"
NVTX = "0.3"
Pkg = "1.9"
Profile = "1.9"
Revise = "3"
Statistics = "1.9"
Test = "1.9"
UUIDs = "1.9"
Expand Down
1 change: 0 additions & 1 deletion docs/src/ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,5 +70,4 @@ PkgJogger.@test_benchmarks

```@docs
PkgJogger.ci
PkgJogger.JOGGER_PKGS
```
18 changes: 2 additions & 16 deletions src/PkgJogger.jl
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,10 @@ using LibGit2
using Statistics
using Test
using Profile
using Compat

export @jog, @test_benchmarks

import Base: PkgId
"""
Packages that are required by modules created with [`@jog`](@ref)
Generated modules will access these via `Base.loaded_modules`
"""
const JOGGER_PKGS = [
Base.identify_package(@__MODULE__, string(@__MODULE__)),
PkgId(UUID("6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"), "BenchmarkTools"),
PkgId(UUID("cf7118a7-6976-5b1a-9a39-7adc72f591a4"), "UUIDs"),
]

const PKG_JOGGER_VER = VersionNumber(
Base.parsed_toml(joinpath(@__DIR__, "..", "Project.toml"))["version"]
)
@compat public judge, ci, load_benchmarks, save_benchmarks, locate_benchmarks, tune!, getsuite

include("utils.jl")
include("profile.jl")
Expand Down
2 changes: 1 addition & 1 deletion src/ci.jl
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ function save_benchmarks(filename, results::BenchmarkTools.BenchmarkGroup)
"datetime" => Dates.now(),
"benchmarks" => results,
"git" => git_info(filename),
"pkgjogger" => PkgJogger.PKG_JOGGER_VER,
"pkgjogger" => pkgversion(@__MODULE__),
)

# Write benchmark to disk
Expand Down
14 changes: 10 additions & 4 deletions src/jogger.jl
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,13 @@ macro jog(pkg)
quote
@eval module $modname
using $pkg
$(using_statements...)
using Compat: @public
using UUIDs: uuid4
using PkgJogger: PkgJogger
using BenchmarkTools: BenchmarkTools

# The public interface of a Jogger
@public suite, benchmark, run, profile, save_benchmarks, load_benchmarks, judge, BENCHMARK_DIR

# Set Revise Mode and put submodules here
__revise_mode__ = :eval
Expand Down Expand Up @@ -195,7 +201,7 @@ macro jog(pkg)
"""
function save_benchmarks(results)
filename = joinpath(BENCHMARK_DIR, "trial", "$(UUIDs.uuid4()).bson.gz")
filename = joinpath(BENCHMARK_DIR, "trial", "$(uuid4()).bson.gz")
PkgJogger.save_benchmarks(filename, results)
filename
end
Expand Down Expand Up @@ -240,13 +246,13 @@ macro jog(pkg)
```julia
# Judge results by UUID
$($mod_str).judge("$(UUIDs.uuid4())", "$(UUIDs.uuid4())")
$($mod_str).judge("$(uuid4())", "$(uuid4())")
[...]
```
```julia
# Judge using the minimum, instead of the median, time
$($mod_str).judge("path/to/results.bson.gz", "$(UUIDs.uuid4())"; metric=minimum)
$($mod_str).judge("path/to/results.bson.gz", "$(uuid4())"; metric=minimum)
[...]
```
"""
Expand Down

0 comments on commit 7534020

Please sign in to comment.