Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
c46eef5
py: anticipate bump to v0.3.4 (#1866)
Al-Pragliola Nov 10, 2025
d464ef6
Feat: Add workload type column (#1816)
claudialphonse78 Nov 10, 2025
a230d99
chore: remove the pre-release section from RELEASE doc (#1867)
Al-Pragliola Nov 11, 2025
cbdbc36
ci(docker): enable multi-arch builds for arm64 and amd64 (#1790)
chambridge Nov 11, 2025
5b0296e
feat: parallelize stateless fuzz tests (#1847)
Al-Pragliola Nov 11, 2025
0626239
build(deps): bump golangci/golangci-lint-action from 8 to 9 (#1861)
dependabot[bot] Nov 11, 2025
21db77b
Created Model Catalog Sttings Page skeleton (#1865)
YuliaKrimerman Nov 12, 2025
3b3b6a3
feat: add filterQuery to artifacts endpoint (#1849)
Al-Pragliola Nov 13, 2025
9e2d164
Merge remote-tracking branch 'origin/main' into al-pragliola-20251113…
Al-Pragliola Nov 13, 2025
8f546ef
Merge pull request #746 from Al-Pragliola/al-pragliola-20251113-sync
openshift-merge-bot[bot] Nov 13, 2025
269ae31
docs: py `--pre` on install no longer required (#1871)
tarilabs Nov 13, 2025
c324c97
chore: bump kserve dep to 0.16 (#1869)
Al-Pragliola Nov 17, 2025
79d45eb
feat: add custom orderBy to catalog artifacts endpoint (#1873)
Al-Pragliola Nov 17, 2025
0975871
feat(catalog): add models and enhance validated models with metrics (…
chambridge Nov 17, 2025
cecc371
Remove Flex layout from toolbar (#1872)
ppadti Nov 17, 2025
b42af1f
Update the model catalog types to use it from models (#1877)
ppadti Nov 17, 2025
9fd5e6d
build(deps): bump pydantic from 2.12.3 to 2.12.4 in /clients/python (…
dependabot[bot] Nov 18, 2025
2789aec
build(deps): bump huggingface-hub from 1.0.1 to 1.1.2 in /clients/pyt…
dependabot[bot] Nov 18, 2025
19e0c39
build(deps-dev): bump types-python-dateutil from 2.9.0.20251008 to 2.…
dependabot[bot] Nov 18, 2025
d3a4f34
build(deps): bump boto3 from 1.40.64 to 1.40.69 in /clients/python (#…
dependabot[bot] Nov 18, 2025
204970d
ci: amend Welcome 1st time contrib Beta2 (#1843)
tarilabs Nov 18, 2025
1f9305f
build(deps): bump pydantic from 2.12.1 to 2.12.4 in /jobs/async-uploa…
dependabot[bot] Nov 18, 2025
df52725
build(deps): bump huggingface-hub from 1.0.1 to 1.1.2 in /jobs/async-…
dependabot[bot] Nov 18, 2025
b5dcaeb
feat(catalog): extend filter_options (#1875)
pboyd Nov 18, 2025
6942727
enforce type-checking with mypy (#1874)
jonburdo Nov 18, 2025
f203723
Merge pull request #748 from kubeflow/main
openshift-merge-bot[bot] Nov 18, 2025
f7d0994
Refactor use case filter to use multi-select instead of single-select…
manaswinidas Nov 18, 2025
e5fa69f
"Community and custom models" section should be hidden if there are n…
YuliaKrimerman Nov 18, 2025
e73e95c
Add manaswinidas to UI owners list (#1882)
manaswinidas Nov 19, 2025
35bb6dc
A couple small fixes (#1883)
pboyd Nov 19, 2025
9450f1a
Add OpenAPI spec and STUB endpoints for model catalog settings (#1878)
ppadti Nov 19, 2025
2eee042
feat(catalog): allow source label name to be null (#1879)
pboyd Nov 19, 2025
d3c3924
Slider Issues for Hardware Configuration (#1835)
claudialphonse78 Nov 19, 2025
847b9d8
Add Openapi spec and STUB endpoint for source_preview (#1884)
ppadti Nov 20, 2025
cf19d4f
build(deps): bump golang.org/x/crypto from 0.41.0 to 0.45.0 (#1888)
dependabot[bot] Nov 20, 2025
60a3226
build(deps): bump golang.org/x/crypto from 0.35.0 to 0.45.0 in /gorm-…
dependabot[bot] Nov 20, 2025
f01c5b0
Bumping some indirect dependencies (#1892)
ederign Nov 20, 2025
eed2288
build(deps): bump koa and @module-federation/enhanced in /clients/ui/…
dependabot[bot] Nov 20, 2025
ad4a41c
Initial Api state for Model Catalog Admins Section Page (#1886)
YuliaKrimerman Nov 20, 2025
6359c80
feat: bump go to 1.25.3 (#1894)
Al-Pragliola Nov 20, 2025
591d8b8
fix(catalog): preserve historical timestamps from YAML catalog import…
chambridge Nov 20, 2025
1ae75bb
Initial Model Catalog Settings Modal (#1880)
YuliaKrimerman Nov 20, 2025
fb2564f
feat: general include exclude models field in sources file (#1885)
Al-Pragliola Nov 21, 2025
be92b73
ci: use defaults for actions/first-interaction (#1897)
tarilabs Nov 21, 2025
7b01b10
Merge pull request #749 from kubeflow/main
openshift-merge-bot[bot] Nov 21, 2025
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
28 changes: 12 additions & 16 deletions .github/workflows/build-and-push-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ env:
PUSH_IMAGE: true
DOCKER_USER: ${{ secrets.QUAY_USERNAME }}
DOCKER_PWD: ${{ secrets.QUAY_PASSWORD }}
PLATFORMS: linux/arm64,linux/amd64

permissions: # set contents: read at top-level, per OpenSSF ScoreCard rule TokenPermissionsID
contents: read
Expand All @@ -41,7 +42,13 @@ jobs:
if: github.head_ref == '' && github.ref == 'refs/heads/main'
run: echo "BUILD_CONTEXT=main" >> $GITHUB_ENV
# checkout branch
- uses: actions/checkout@v5
- uses: actions/checkout@v5.0.0
# Set up QEMU for multi-architecture builds
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
# Set up Docker Buildx
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# set image version
- name: Set main-branch environment
if: env.BUILD_CONTEXT == 'main'
Expand All @@ -68,23 +75,12 @@ jobs:
- name: Attach SBOM to Image
run: |
cosign attach sbom --sbom model-registry-server-${{ env.VERSION }}-sbom.spdx.json "${{ env.IMG_REGISTRY }}/${{ env.IMG_ORG }}/${{ env.IMG_REPO }}:${{ env.VERSION }}"
- name: Tag Latest
- name: Tag Latest and Main
if: env.BUILD_CONTEXT == 'main'
shell: bash
env:
IMG: "${{ env.IMG_REGISTRY }}/${{ env.IMG_ORG }}/${{ env.IMG_REPO }}"
BUILD_IMAGE: false # image is already built in "Build and Push Image" step
run: |
docker tag ${{ env.IMG }}:$VERSION ${{ env.IMG }}:latest
# BUILD_IMAGE=false skip the build, just push the tag made above
VERSION=latest ./scripts/build_deploy.sh
- name: Tag Main
if: env.BUILD_CONTEXT == 'main'
shell: bash
env:
IMG: "${{ env.IMG_REGISTRY }}/${{ env.IMG_ORG }}/${{ env.IMG_REPO }}"
BUILD_IMAGE: false # image is already built in "Build and Push Image" step
run: |
docker tag ${{ env.IMG }}:$VERSION ${{ env.IMG }}:main
# BUILD_IMAGE=false skip the build, just push the tag made above
VERSION=main ./scripts/build_deploy.sh
# Create manifest tags for multi-arch images
docker buildx imagetools create -t ${{ env.IMG }}:latest ${{ env.IMG }}:$VERSION
docker buildx imagetools create -t ${{ env.IMG }}:main ${{ env.IMG }}:$VERSION
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: "1.24"
go-version: "1.25.3"
- name: Build
run: make build/compile
- name: Registry unit tests
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/check-db-schema-structs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: "1.24.4"
go-version: "1.25.3"
- name: Generate MySQL DB schema structs
run: make gen/gorm/mysql
- name: Check if there are uncommitted file changes
Expand All @@ -38,7 +38,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: "1.24.4"
go-version: "1.25.3"
- name: Generate PostgreSQL DB schema structs
run: make gen/gorm/postgres
- name: Check if there are uncommitted file changes
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/controller-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: '1.24'
go-version: "1.25.3"

- name: Running Tests
run: |
Expand Down
112 changes: 73 additions & 39 deletions .github/workflows/first-time-contributor-pr.yml
Original file line number Diff line number Diff line change
@@ -1,51 +1,85 @@
# goal: this is meant to remind maintainers/approvers to add labels to ensure all tests are executed before merging
# and avoid merging without realizing that required tests has not been run; complementary to bulletpoint in template: https://github.com/kubeflow/model-registry/blame/de5f225d96a4daeca77506d233082b1c4ea5afa3/.github/pull_request_template.md#L21
name: Welcome first-time contributors (Beta)
name: Welcome first-time contributors (Beta2)

on:
pull_request_target:
pull_request:
types:
- opened
- synchronize
- reopened
issues:
types:
- opened

permissions: # set contents: read at top-level, per OpenSSF ScoreCard rule TokenPermissionsID
contents: read

# do NOT: add actions/checkout to this flow, add-third party scripts, or auto-trigger CI jobs
jobs:
welcome:
runs-on: ubuntu-latest
permissions:
pull-requests: write
runs-on: ubuntu-latest
issues: write
steps:
- name: Check contributor status
id: check_1st_time_contrib
uses: actions/github-script@v8
with:
script: |
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number
});
const isFirstTimeContributor = pr.user.contributions === 0;
console.log(`First-time contributor status: ${isFirstTimeContributor}`);
core.setOutput('isFirstTimeContributor', isFirstTimeContributor.toString());

- name: Log contributor status (isFirstTimeContributor true)
if: steps.check_1st_time_contrib.outputs.isFirstTimeContributor == 'true'
run: echo "First-time contributor status is ${{ steps.check_1st_time_contrib.outputs.isFirstTimeContributor }}"

- name: Log contributor status (isFirstTimeContributor false)
if: steps.check_1st_time_contrib.outputs.isFirstTimeContributor == 'false'
run: echo "First-time contributor status is ${{ steps.check_1st_time_contrib.outputs.isFirstTimeContributor }}"

- name: Add a comment to the PR if first time contributor
if: steps.check_1st_time_contrib.outputs.isFirstTimeContributor == 'true'
uses: actions/github-script@v8
- name: Checkout repository
uses: actions/checkout@v4

- name: Install PyYAML
run: pip3 install pyyaml

- name: Extract approvers from OWNERS file
id: set-approvers
run: |
python3 << 'EOF'
import yaml
import os

with open('OWNERS', 'r') as f:
data = yaml.safe_load(f)

approvers = data.get('approvers', [])
result = ' '.join([f'@{approver}' for approver in approvers])

with open(os.environ['GITHUB_OUTPUT'], 'a') as f:
f.write(f'approvers={result}\n')

print(f'Extracted approvers: {result}')
EOF
- name: Log approvers
run: |
echo "Approvers: ${{ steps.set-approvers.outputs.approvers }}"

- name: Welcome first-time contributors message
uses: actions/first-interaction@v3
continue-on-error: true
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: "Maintainers: let's ensure the label `ok-to-test` has been maintained and all the tests have been executed before merging.<br/><br/>Thank you for your first Pull Request! 🎉🎉"
})
# do NOT: add actions/checkout to this flow, add-third party scripts, or auto-trigger CI jobs
issue_message: |
🎉 **Welcome to the Kubeflow Model Registry!** 🎉
Thanks for opening your first issue! We're happy to have you as part of our community 🚀

**Here's what happens next:**
- If you'd like to contribute to this issue, check out our [Contributing Guide](https://github.com/kubeflow/model-registry/blob/main/CONTRIBUTING.md) for repo-specific guidelines and the [Kubeflow Contributor Guide](https://www.kubeflow.org/docs/about/contributing/) for general community standards
- Our team will review your issue soon!

**Join the community:**
- **Slack**: Join our [Slack channels](https://www.kubeflow.org/docs/about/community/#slack-channels)
- **Meetings**: Attend the [Kubeflow](https://www.kubeflow.org/docs/about/community/#list-of-available-meetings) online calls

Feel free to ask questions in the comments if you need any help or clarification!
Thanks again for contributing to Kubeflow! 🙏
pr_message: |
🎉 **Welcome to the Kubeflow Model Registry!** 🎉
Thanks for opening your first PR! We're happy to have you as part of our community 🚀

**Here's what happens next:**
- If you haven't already, please check out our [Contributing Guide](https://github.com/kubeflow/model-registry/blob/main/CONTRIBUTING.md) for repo-specific guidelines and the [Kubeflow Contributor Guide](https://www.kubeflow.org/docs/about/contributing/) for general community standards
- Our team will review your PR soon!

**Join the community:**
- **Slack**: Join our [Slack channels](https://www.kubeflow.org/docs/about/community/#slack-channels)
- **Meetings**: Attend the [Kubeflow](https://www.kubeflow.org/docs/about/community/#list-of-available-meetings) online calls

Feel free to ask questions in the comments if you need any help or clarification!
Thanks again for contributing to Kubeflow! 🙏

Note for: ${{ steps.set-approvers.outputs.approvers }}
Kindly ensure the label `ok-to-test` has been added to the PR, and all the tests have been executed before merging!
2 changes: 1 addition & 1 deletion .github/workflows/go-mod-tidy-diff-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.24'
go-version: "1.25.3"

- name: Cache Go modules
uses: actions/cache@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prepare.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: "1.24"
go-version: "1.25.3"
- name: Prepare
run: make clean build/prepare
- name: Check if there are uncommitted file changes
Expand Down
13 changes: 4 additions & 9 deletions .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,7 @@ jobs:
- name: Nox lint
working-directory: clients/python
run: |
if [[ ${{ matrix.session }} == "mypy" ]]; then
nox --python=${{ matrix.python }} ||\
echo "::error title='mypy failure'::Check the logs for more details"
else
nox --python=${{ matrix.python }}
fi
nox --python=${{ matrix.python }}

check-autogen:
name: Check autogenerated code is in sync
Expand Down Expand Up @@ -252,9 +247,9 @@ jobs:
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || (github.event_name == 'pull_request' && steps.check-openapi-changed.outputs.openapi == 'true')
working-directory: clients/python
run: |
kubectl port-forward -n ${{ env.MR_NAMESPACE }} service/model-registry-service 8080:8080 &
kubectl port-forward -n minio svc/minio 9000:9000 &
kubectl port-forward service/distribution-registry-test-service 5001:5001 &
kubectl port-forward -n ${{ env.MR_NAMESPACE }} service/model-registry-service 8080:8080 > /dev/null 2>&1 &
kubectl port-forward -n minio svc/minio 9000:9000 > /dev/null 2>&1 &
kubectl port-forward service/distribution-registry-test-service 5001:5001 > /dev/null 2>&1 &
sleep 2
nox --python=${{ matrix.python }} --session=fuzz

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ui-bff-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
run: make clean

- name: Lint
uses: golangci/golangci-lint-action@v8
uses: golangci/golangci-lint-action@v9
with:
version: v2.1.0
working-directory: clients/ui/bff/
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Build the model-registry binary
FROM --platform=$BUILDPLATFORM registry.access.redhat.com/ubi9/go-toolset:1.24 AS common
FROM --platform=$BUILDPLATFORM registry.access.redhat.com/ubi9/go-toolset:1.25 AS common
ARG TARGETOS
ARG TARGETARCH

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.odh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Build the model-registry binary
FROM registry.access.redhat.com/ubi9/go-toolset:1.24 AS builder
FROM registry.access.redhat.com/ubi9/go-toolset:1.25 AS builder

WORKDIR /workspace
# Copy the Go Modules manifests and workspace file
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,11 @@ bin/envtest:

GOLANGCI_LINT ?= ${PROJECT_BIN}/golangci-lint
bin/golangci-lint:
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(PROJECT_BIN) v2.0.2
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(PROJECT_BIN) v2.6.2

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

YQ ?= ${PROJECT_BIN}/yq
bin/yq:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Model registry provides a central repository for model developers to store and m
8. [UI](clients/ui/README.md)

## Pre-requisites:
- go >= 1.24
- go >= 1.25
- protoc v24.3 - [Protocol Buffers v24.3 Release](https://github.com/protocolbuffers/protobuf/releases/tag/v24.3)
- npm >= 10.2.0 - [Installing Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
- Java >= 11.0
Expand Down
3 changes: 1 addition & 2 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,7 @@ git push --set-upstream origin mr_maintainer-$TDATE-upstreamSync

- optional. if you create the tag from local git (see point below); await GHA complete that push Container images to docker.io or any other KF registry: https://github.com/kubeflow/model-registry/actions
- create [the Release from GitHub](https://github.com/kubeflow/model-registry/releases/new), ⚠️ select the _release branch_ ⚠️ , input the _new tag_<br/>(in this example the tag is created from GitHub; alternatively, you could just do the tag manually by checking out the release branch locally--remember to pull!!--and issuing the tag from local machine).
Encouraging in upstream to mark it as a non-production release (in the github screen).
Encouraging to use the "alpha" version policy of KF in the beginning of the release markdown (see previous pre-releases).
- encouraging to use the "alpha" version policy of KF in the beginning of the release markdown (see previous releases).

It is helpful to prefix this in the release notes:

Expand Down
Loading
Loading