Skip to content

Commit 9adaea0

Browse files
committed
Initial commit
0 parents  commit 9adaea0

26 files changed

+2014
-0
lines changed

.github/workflows/CI.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: CI
2+
on:
3+
push:
4+
branches:
5+
- main
6+
tags: '*'
7+
pull_request:
8+
concurrency:
9+
# Skip intermediate builds: always.
10+
# Cancel intermediate builds: only if it is a pull request build.
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
13+
jobs:
14+
test:
15+
16+
services:
17+
mlflow:
18+
image: adacotechjp/mlflow:1.21.0
19+
ports:
20+
- 5000:5000
21+
22+
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
23+
runs-on: ${{ matrix.os }}
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
version:
28+
# - '1.0'
29+
# - '1.7'
30+
- 'nightly'
31+
os:
32+
- ubuntu-latest
33+
arch:
34+
- x64
35+
steps:
36+
- uses: actions/checkout@v2
37+
- uses: julia-actions/setup-julia@v1
38+
with:
39+
version: ${{ matrix.version }}
40+
arch: ${{ matrix.arch }}
41+
- uses: actions/cache@v1
42+
env:
43+
cache-name: cache-artifacts
44+
with:
45+
path: ~/.julia/artifacts
46+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
47+
restore-keys: |
48+
${{ runner.os }}-test-${{ env.cache-name }}-
49+
${{ runner.os }}-test-
50+
${{ runner.os }}-
51+
- uses: julia-actions/julia-buildpkg@v1
52+
- uses: julia-actions/julia-runtest@v1
53+
- uses: julia-actions/julia-processcoverage@v1
54+
- uses: codecov/codecov-action@v2
55+
with:
56+
files: lcov.info
57+
docs:
58+
name: Documentation
59+
runs-on: ubuntu-latest
60+
steps:
61+
- uses: actions/checkout@v2
62+
- uses: julia-actions/setup-julia@v1
63+
with:
64+
version: '1'
65+
- uses: julia-actions/julia-buildpkg@v1
66+
- uses: julia-actions/julia-docdeploy@v1
67+
env:
68+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
69+
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
70+
- run: |
71+
julia --project=docs -e '
72+
using Documenter: DocMeta, doctest
73+
using MLFlowClient
74+
DocMeta.setdocmeta!(MLFlowClient, :DocTestSetup, :(using MLFlowClient); recursive=true)
75+
doctest(MLFlowClient)'

.github/workflows/CompatHelper.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: CompatHelper
2+
on:
3+
schedule:
4+
- cron: 0 0 * * *
5+
workflow_dispatch:
6+
jobs:
7+
CompatHelper:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Pkg.add("CompatHelper")
11+
run: julia -e 'using Pkg; Pkg.add("CompatHelper")'
12+
- name: CompatHelper.main()
13+
env:
14+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
15+
COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }}
16+
run: julia -e 'using CompatHelper; CompatHelper.main()'

.github/workflows/TagBot.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: TagBot
2+
on:
3+
issue_comment:
4+
types:
5+
- created
6+
workflow_dispatch:
7+
jobs:
8+
TagBot:
9+
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: JuliaRegistries/TagBot@v1
13+
with:
14+
token: ${{ secrets.GITHUB_TOKEN }}
15+
ssh: ${{ secrets.DOCUMENTER_KEY }}

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
*.jl.*.cov
2+
*.jl.cov
3+
*.jl.mem
4+
/Manifest.toml
5+
/docs/build/
6+
mlruns

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2021-2021 @deyandyankov and contributors
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Project.toml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name = "MLFlowClient"
2+
uuid = "64a0f543-368b-4a9a-827a-e71edb2a0b83"
3+
authors = ["@deyandyankov and contributors"]
4+
version = "0.1.0"
5+
6+
[deps]
7+
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
8+
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
9+
HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3"
10+
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
11+
URIs = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"
12+
UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
13+
14+
[compat]
15+
Documenter = "0.27"
16+
HTTP = "0.9"
17+
JSON = "0.21"
18+
URIs = "1"
19+
julia = "1"
20+
21+
[extras]
22+
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
23+
24+
[targets]
25+
test = ["Test"]

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# MLFlowClient
2+
3+
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://juliaai.github.io/MLFlowClient.jl/stable)
4+
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://juliaai.github.io/MLFlowClient.jl/dev)
5+
[![Build Status](https://github.com/JuliaAI/MLFlowClient.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/JuliaAI/MLFlowClient.jl/actions/workflows/CI.yml?query=branch%3Amain)
6+
[![Coverage](https://codecov.io/gh/JuliaAI/MLFlowClient.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/JuliaAI/MLFlowClient.jl)
7+
8+
9+
Julia client for [MLFlow](https://www.mlflow.org/)
10+
11+
This package is still under development and interfaces may change. See the documentation for current features and limitations.

docs/Project.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[deps]
2+
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
3+
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
4+
HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3"
5+
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
6+
MLFlowClient = "64a0f543-368b-4a9a-827a-e71edb2a0b83"
7+
URIs = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"
8+
UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"

docs/make.jl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using MLFlowClient
2+
using Documenter
3+
4+
DocMeta.setdocmeta!(MLFlowClient, :DocTestSetup, :(using MLFlowClient); recursive=true)
5+
6+
makedocs(;
7+
modules=[MLFlowClient],
8+
authors="@deyandyankov and contributors",
9+
repo="https://github.com/JuliaAI.jl/blob/{commit}{path}#{line}",
10+
sitename="MLFlowClient.jl",
11+
format=Documenter.HTML(;
12+
prettyurls=get(ENV, "CI", "false") == "true",
13+
canonical="https://deyandyankov.github.io/MLFlowClient.jl",
14+
assets=String[],
15+
),
16+
pages=[
17+
"Home" => "index.md",
18+
"Tutorial" => "tutorial.md",
19+
"Reference" => "reference.md"
20+
],
21+
)
22+
23+
deploydocs(;
24+
repo="github.com/deyandyankov/MLFlowClient.jl",
25+
devbranch="main",
26+
)

docs/src/index.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
```@meta
2+
CurrentModule = MLFlowClient
3+
```
4+
5+
# MLFlowClient
6+
7+
[MLFlowClient](https://github.com/JuliaAI/MLFlowClient.jl) is a [Julia](https://julialang.org/) package for working with [MLFlow](https://mlflow.org/) using the REST [API v2.0](https://www.mlflow.org/docs/latest/rest-api.html).
8+
9+
`MLFlowClient` allows you to create and manage `MLFlow` experiments, runs, and log metrics and artifacts. If you are not familiar with `MLFlow` and its concepts, please refer to [MLFlow documentation](https://mlflow.org/docs/latest/index.html).
10+
11+
## Limitations
12+
- no authentication support.
13+
- when storing artifacts, the assumption is that MLFlow and this library run on the same server. Artifacts are stored using plain filesystem operations. Therefore, `/mlruns` or the specified `artifact_location` must be accessible to both the MLFlow server (read), and this library (write).
14+
15+
## Installation
16+
17+
To install [MLFlowClient](https://github.com/JuliaAI/MLFlowClient.jl), start a `julia` session and run the following:
18+
19+
``` julia-repl
20+
julia> import Pkg
21+
22+
julia> Pkg.add("MLFlowClient")
23+
```
24+
25+
or simply:
26+
27+
``` julia-repl
28+
]add MLFlowClient
29+
```

0 commit comments

Comments
 (0)