Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from kubeflow:main #84

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .github/workflows/ui-frontend-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: UI - Frontend - Test and Build
on:
push:
branches:
- 'main'
pull_request:
paths-ignore:
- 'LICENSE*'
- 'DOCKERFILE*'
- '**.gitignore'
jobs:
test-and-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20'

- name: Install dependencies
working-directory: clients/ui/frontend
run: npm install

- name: Run tests
working-directory: clients/ui/frontend
run: npm run test:coverage

- name: Clean
working-directory: clients/ui/frontend
run: npm run clean

- name: Build
working-directory: clients/ui/frontend
run: npm run build

- name: Check if there are uncommitted file changes
working-directory: clients/ui/frontend
run: |
clean=$(git status --porcelain)
if [[ -z "$clean" ]]; then
echo "Empty git status --porcelain: $clean"
else
echo "Uncommitted file changes detected: $clean"
git diff
exit 1
fi
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,6 @@ __pycache__
# Protoc files
include/
readme.txt

#OSX files
**/.DS_Store
45 changes: 45 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Read the Docs configuration file for Sphinx projects
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.9"
# You can also specify other tool versions:
# nodejs: "20"
# rust: "1.70"
# golang: "1.20"
jobs:
post_create_environment:
# Install poetry
# https://python-poetry.org/docs/#installing-manually
- python -m pip install poetry
post_install:
# Install dependencies with 'docs' dependency group
# https://python-poetry.org/docs/managing-dependencies/#dependency-groups
- VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH poetry -C clients/python install --with docs

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: clients/python/docs/conf.py
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
# builder: "dirhtml"
# Fail on all warnings to avoid broken references
# fail_on_warning: true
# Optionally build your docs in additional formats such as PDF and ePub
# formats:
# - pdf
# - epub

# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
# python:
# install:
# - requirements: clients/python/docs/requirements.txt
# - method: pip
# path: clients/python
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ bin/golangci-lint:

GOVERTER ?= ${PROJECT_BIN}/goverter
bin/goverter:
GOBIN=$(PROJECT_PATH)/bin ${GO} install github.com/jmattheis/goverter/cmd/goverter@v1.1.1
GOBIN=$(PROJECT_PATH)/bin ${GO} install github.com/jmattheis/goverter/cmd/goverter@v1.4.1

OPENAPI_GENERATOR ?= ${PROJECT_BIN}/openapi-generator-cli
NPM ?= "$(shell which npm)"
Expand Down
153 changes: 76 additions & 77 deletions clients/python/poetry.lock

Large diffs are not rendered by default.

11 changes: 8 additions & 3 deletions clients/python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "model-registry"
version = "0.2.1a1"
version = "0.2.2a1"
description = "Client for Kubeflow Model Registry"
authors = ["Isabella Basso do Amaral <[email protected]>"]
license = "Apache-2.0"
Expand All @@ -25,14 +25,19 @@ requests = { version = "^2.32.2", optional = true }
[tool.poetry.extras]
hf = ["huggingface-hub"]

[tool.poetry.group.dev.dependencies]
[tool.poetry.group.docs]
optional = true

[tool.poetry.group.docs.dependencies]
sphinx = "^7.2.6"
furo = ">=2023.9.10,<2025.0.0"
myst-parser = { extras = ["linkify"], version = ">=2,<4" }
sphinx-autobuild = ">=2021.3.14,<2025.0.0"

[tool.poetry.group.dev.dependencies]
pytest = ">=7.4.2,<9.0.0"
coverage = { extras = ["toml"], version = "^7.3.2" }
pytest-cov = ">=4.1,<6.0"
sphinx-autobuild = ">=2021.3.14,<2025.0.0"
ruff = "^0.4.4"
mypy = "^1.7.0"
testcontainers = "^4.5.0"
Expand Down
8 changes: 8 additions & 0 deletions clients/ui/frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
**/node_modules
dist
yarn-error.log
yarn.lock
stats.json
coverage
.idea
.env
38 changes: 38 additions & 0 deletions clients/ui/frontend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Kubeflow Model Registry UI

The Kubeflow Model Registry UI is a standalone web app for Kubeflow Model Registry.

## Pre-requisites:

TBD

## Development

```sh
# Install development/build dependencies
npm install

# Start the development server
npm run start:dev

# Run a production build (outputs to "dist" dir)
npm run build

# Run the test suite
npm run test

# Run the test suite with coverage
npm run test:coverage

# Run the linter
npm run lint

# Run the code formatter
npm run format

# Launch a tool to inspect the bundle size
npm run bundle-profile:analyze

# Start the express server (run a production build first)
npm run start
```
1 change: 1 addition & 0 deletions clients/ui/frontend/__mocks__/styleMock.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = {};
32 changes: 32 additions & 0 deletions clients/ui/frontend/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// For a detailed explanation regarding each configuration property, visit:
// https://jestjs.io/docs/en/configuration.html

module.exports = {
// Automatically clear mock calls and instances between every test
clearMocks: true,

// Indicates whether the coverage information should be collected while executing the test
collectCoverage: false,

// The directory where Jest should output its coverage files
coverageDirectory: 'coverage',

// An array of directory names to be searched recursively up from the requiring module's location
moduleDirectories: [
'node_modules',
'<rootDir>/src'
],

// A map from regular expressions to module names that allow to stub out resources with a single module
moduleNameMapper: {
'\\.(css|less)$': '<rootDir>/__mocks__/styleMock.js',
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/__mocks__/fileMock.js',
'@app/(.*)': '<rootDir>/src/app/$1'
},

// A preset that is used as a base for Jest's configuration
preset: 'ts-jest/presets/js-with-ts',

// The test environment that will be used for testing.
testEnvironment: 'jsdom'
};
Loading