Skip to content

Commit

Permalink
Update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
amotl committed Oct 10, 2023
1 parent b407ad7 commit a85a2c0
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 8 deletions.
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@

## About

An adapter wrapper for [MLflow] to use [CrateDB] as a storage database
for [MLflow Tracking].
An adapter for [MLflow] to use [CrateDB] as a storage database for [MLflow
Tracking]. MLflow is an open source platform to manage the whole ML lifecycle,
including experimentation, reproducibility, deployment, and a central model
registry.

[MLflow] is an open source platform to manage the ML lifecycle, including
experimentation, reproducibility, deployment, and a central model registry.

## Setup

Expand All @@ -33,11 +33,14 @@ mlflow-cratedb cratedb --version
```


## Usage
## Documentation

The [MLflow Tracking] subsystem is about recording and querying experiments, across
code, data, config, and results.

The MLflow adapter for CrateDB can be used in different ways. Please refer
to the [handbook] and the documentation about
[container usage].
to the [handbook], the documentation about [container usage], and the
[hands-on guidelines].


## Development
Expand All @@ -54,7 +57,6 @@ how to [install a development sandbox].
- [Python Package Index (PyPI)](https://pypi.org/project/mlflow-cratedb/)

### Contributions

This library is an open source project, and is [managed on GitHub].
Every kind of contribution, feedback, or patch, is much welcome. [Create an
issue] or submit a patch if you think we should include a new feature, or to
Expand Down Expand Up @@ -87,6 +89,7 @@ which is using [Merlion].
[Create an issue]: https://github.com/crate-workbench/mlflow-cratedb/issues
[development sandbox]: https://github.com/crate-workbench/mlflow-cratedb/blob/main/docs/development.md
[handbook]: https://github.com/crate-workbench/mlflow-cratedb/blob/main/docs/handbook.md
[hands-on guidelines]: https://github.com/crate/cratedb-examples/blob/main/framework/mlflow/readme.md
[Harutaka Kawamura]: https://github.com/harupy
[install a development sandbox]: https://github.com/crate-workbench/mlflow-cratedb/blob/main/docs/development.md
[LICENSE]: https://github.com/crate-workbench/mlflow-cratedb/blob/main/LICENSE
Expand Down
11 changes: 11 additions & 0 deletions docs/backlog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
# Backlog

## Iteration +1

### Documentation
- Write a few words about schema/table structure:
Data tables are in `doc`, while MLflow tables are in `mlflow`.

- Write a few words about standalone programs, and the need to import `mlflow_cratedb` there,
see, for example, tracking_dummy.py#L53-L55.
Alternatively, find an "autoload" solution for Python?

## Iteration +2
- Apply database schema at connection time already. In this spirit, it does not need to be addresses everywhere by hand.
- Bug: Fix SQL DDL files, see https://github.com/crate-workbench/mlflow-cratedb/issues/17
- Other than the "MLflow Tracking" subsystem, is it sensible to unlock the "MLflow Model
Registry" subsystem as well, when possible at all?
Expand Down
5 changes: 5 additions & 0 deletions docs/container.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ For building your own images, see the [development documentation](./development.
On GHCR, other than `latest` images for releases, there are also images for
each PR, as well as `nightly` ones.

On GHCR, you will find the following image tags:
- `latest`: Points to the most recent release.
- `main`: Builds of `main`, when pushing to this branch.
- `nightly`: Builds of `main`, each morning a 4 o'clock CEST.


## Docker and Podman

Expand Down
1 change: 1 addition & 0 deletions tests/test_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def store_empty(store):
session.query(SqlExperiment).delete()
for mapper in Base.registry.mappers:
session.query(mapper.class_).delete()
# FIXME: `testdrive` is hardcoded here.
sql = f"REFRESH TABLE testdrive.{mapper.class_.__tablename__};"
session.execute(sa.text(sql))
yield store
Expand Down

0 comments on commit a85a2c0

Please sign in to comment.