Skip to content

BREAKING CHANGE: drop all sqlite support#1986

Open
grokspawn wants to merge 1 commit into
operator-framework:masterfrom
grokspawn:proto-v2
Open

BREAKING CHANGE: drop all sqlite support#1986
grokspawn wants to merge 1 commit into
operator-framework:masterfrom
grokspawn:proto-v2

Conversation

@grokspawn

@grokspawn grokspawn commented May 15, 2026

Copy link
Copy Markdown
Contributor

Description of the change:
A view of how opm would look if we drop all SQLite support (which has been deprecated for 4+ years).
An earlier iteration of this PR also dropped the model intermetiate package, but findings of current bugs as well as the added complexity suggest we'd be better off doing a separate PR for it.

Motivation for the change:

Reviewer Checklist

  • Implementation matches the proposed design, or proposal is updated to match implementation
  • Sufficient unit test coverage
  • Sufficient end-to-end test coverage
  • Docs updated or added to /docs
  • Commit messages sensible and descriptive

Copilot AI review requested due to automatic review settings May 15, 2026 14:58
@openshift-ci

openshift-ci Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 15, 2026
@openshift-ci

openshift-ci Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign camilamacedo86 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the long-deprecated SQLite-based catalog/index path from operator-registry and drops the (internal/alpha) channel priority property support, leaving the file-based catalog (FBC / declarative config) path as the supported workflow.

Changes:

  • Remove SQLite implementation code, migrations, testdata, and sqlite-backed CLI surfaces (opm index, opm registry, standalone servers, sqlite migration command).
  • Remove channel priority property construction in the alpha property layer.
  • Adjust build configuration/dependencies to reflect the removal (tags/CGO changes, module dependency cleanup).

Reviewed changes

Copilot reviewed 115 out of 163 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
test/e2e/opm_test.go Removes sqlite/indexer imports (but file still contains sqlite/indexer usages; currently breaks compilation).
pkg/sqlite/testdata/test_db_migrations/valid/200412250000_fake_migration.up.sql Removes sqlite migration testdata.
pkg/sqlite/testdata/test_db_migrations/valid/200412250000_fake_migration.down.sql Removes sqlite migration testdata.
pkg/sqlite/testdata/test_db_migrations/valid/200112250000_fake_migration.up.sql Removes sqlite migration testdata.
pkg/sqlite/testdata/test_db_migrations/valid/200112250000_fake_migration.down.sql Removes sqlite migration testdata.
pkg/sqlite/testdata/test_db_migrations/invalid/randomscript.sql Removes sqlite migration testdata.
pkg/sqlite/testdata/strandedbundles/prometheus.0.22.2/metadata/dependencies.yaml Removes sqlite stranded-bundle test fixture.
pkg/sqlite/testdata/strandedbundles/prometheus.0.22.2/metadata/annotations.yaml Removes sqlite stranded-bundle test fixture.
pkg/sqlite/testdata/strandedbundles/prometheus.0.22.2/manifests/prometheusrule.crd.yaml Removes sqlite stranded-bundle test fixture.
pkg/sqlite/testdata/strandedbundles/prometheus.0.15.0/metadata/annotations.yaml Removes sqlite stranded-bundle test fixture.
pkg/sqlite/testdata/strandedbundles/prometheus.0.15.0/manifests/prometheusrule.crd.yaml Removes sqlite stranded-bundle test fixture.
pkg/sqlite/testdata/strandedbundles/prometheus.0.14.0/metadata/annotations.yaml Removes sqlite stranded-bundle test fixture.
pkg/sqlite/testdata/strandedbundles/prometheus.0.14.0/manifests/prometheusrule.crd.yaml Removes sqlite stranded-bundle test fixture.
pkg/sqlite/testdata/loader_data/prometheus/prometheus.package.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/prometheus/0.22.2/servicemonitor.crd.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/prometheus/0.22.2/prometheusrule.crd.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/prometheus/0.15.0/servicemonitor.crd.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/prometheus/0.15.0/prometheusrule.crd.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/prometheus/0.14.0/prometheusrule.crd.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/etcd/etcd.package.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/etcd/0.9.2/etcdrestore.crd.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/etcd/0.9.2/etcdcluster.crd.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/etcd/0.9.2/etcdbackup.crd.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/loader_data/etcd/0.6.1/etcdcluster.crd.yaml Removes sqlite loader test fixture.
pkg/sqlite/testdata/incorrectbundle/3scale-community-operator/3scale-community-operator.package.yaml Removes sqlite incorrect-bundle test fixture.
pkg/sqlite/testdata/incorrectbundle/3scale-community-operator/0.3.0/tenants.capabilities.3scale.net.crd.yaml Removes sqlite incorrect-bundle test fixture.
pkg/sqlite/testdata/incorrectbundle/3scale-community-operator/0.3.0/plans.capabilities.3scale.net.crd.yaml Removes sqlite incorrect-bundle test fixture.
pkg/sqlite/testdata/incorrectbundle/3scale-community-operator/0.3.0/metrics.capabilities.3scale.net.crd.yaml Removes sqlite incorrect-bundle test fixture.
pkg/sqlite/testdata/incorrectbundle/3scale-community-operator/0.3.0/mappingrules.capabilities.3scale.net.crd.yaml Removes sqlite incorrect-bundle test fixture.
pkg/sqlite/testdata/incorrectbundle/3scale-community-operator/0.3.0/limits.capabilities.3scale.net.crd.yaml Removes sqlite incorrect-bundle test fixture.
pkg/sqlite/testdata/incorrectbundle/3scale-community-operator/0.3.0/bindings.capabilities.3scale.net.crd.yaml Removes sqlite incorrect-bundle test fixture.
pkg/sqlite/testdata/incorrectbundle/3scale-community-operator/0.3.0/apimanagers.apps.3scale.net.crd.yaml Removes sqlite incorrect-bundle test fixture.
pkg/sqlite/testdata/.gitignore Removes sqlite testdata ignore rules.
pkg/sqlite/stranded.go Removes sqlite stranded bundle remover implementation.
pkg/sqlite/stranded_test.go Removes sqlite stranded bundle remover tests.
pkg/sqlite/sqlitefakes/fake_rowscanner.go Removes generated fakes tied to sqlite interfaces.
pkg/sqlite/sqlitefakes/fake_querier.go Removes generated fakes tied to sqlite interfaces.
pkg/sqlite/remove.go Removes sqlite package removal implementation.
pkg/sqlite/remove_test.go Removes sqlite package removal tests.
pkg/sqlite/migrator.go Removes sqlite migrator implementation.
pkg/sqlite/migrations/migrations.go Removes sqlite migrations registry/types.
pkg/sqlite/migrations/013_rm_truncated_deprecations.go Removes sqlite migration.
pkg/sqlite/migrations/013_rm_truncated_deprecations_test.go Removes sqlite migration test.
pkg/sqlite/migrations/012_deprecated.go Removes sqlite migration.
pkg/sqlite/migrations/012_deprecated_test.go Removes sqlite migration test.
pkg/sqlite/migrations/011_susbtitutes_for.go Removes sqlite migration.
pkg/sqlite/migrations/010_set_bundlepath_pkg_property.go Removes sqlite migration.
pkg/sqlite/migrations/009_properties.go Removes sqlite migration.
pkg/sqlite/migrations/008_dependencies.go Removes sqlite migration.
pkg/sqlite/migrations/007_replaces_skips.go Removes sqlite migration.
pkg/sqlite/migrations/005_version_skiprange.go Removes sqlite migration.
pkg/sqlite/migrations/003_required_apis.go Removes sqlite migration.
pkg/sqlite/migrations/002_bundle_path.go Removes sqlite migration.
pkg/sqlite/migrations/002_bundle_path_test.go Removes sqlite migration test.
pkg/sqlite/migrations/001_related_images.go Removes sqlite migration.
pkg/sqlite/migrations/000_init.go Removes sqlite schema initialization migration.
pkg/sqlite/loadprocs.go Removes sqlite loader helper procedures.
pkg/sqlite/graphloader.go Removes sqlite graph loader implementation.
pkg/sqlite/graphloader_test.go Removes sqlite graph loader tests.
pkg/sqlite/directory.go Removes sqlite directory loader implementation.
pkg/sqlite/deprecationmessage.go Removes sqlite deprecation message helper.
pkg/sqlite/deprecate.go Removes sqlite deprecate/truncate logic.
pkg/sqlite/db.go Removes sqlite DB open helpers and driver import.
pkg/sqlite/db_options.go Removes sqlite DB options.
pkg/sqlite/conversion.go Removes sqlite->model conversion path.
pkg/sqlite/conversion_test.go Removes sqlite conversion tests.
pkg/sqlite/configmap.go Removes sqlite configmap loader implementation.
pkg/mirror/options.go Removes mirror options (tied to sqlite DB extraction path).
pkg/mirror/mirror.go Removes index image mirroring implementation (sqlite DB driven).
pkg/mirror/mirror_test.go Removes mirror tests.
pkg/lib/registry/registryfakes/fake_registry_deleter.go Removes generated fakes for sqlite registry updater flow.
pkg/lib/registry/registryfakes/fake_registry_adder.go Removes generated fakes for sqlite registry updater flow.
pkg/lib/registry/interfaces.go Removes registry updater interfaces used by sqlite registry commands.
pkg/lib/indexer/testdata/package.yaml Removes indexer testdata.
pkg/lib/indexer/interfaces.go Removes indexer interfaces (sqlite-based index command plumbing).
pkg/lib/indexer/indexerfakes/fake_index_exporter.go Removes generated fakes for indexer.
pkg/lib/indexer/indexerfakes/fake_index_deleter.go Removes generated fakes for indexer.
pkg/lib/indexer/indexerfakes/fake_index_adder.go Removes generated fakes for indexer.
pkg/lib/indexer/indexer_test.go Removes indexer tests.
Makefile Drops sqlite-related build tag; changes cross-build to CGO disabled.
go.mod Removes direct sqlite-related deps, but still includes go-sqlite3 indirectly (may need cleanup).
cmd/registry-server/main.go Removes deprecated standalone sqlite registry server binary.
cmd/opm/root/cmd.go Removes opm index, opm registry, and opm migrate from root command.
cmd/opm/render/cmd.go Removes sqlite from opm render help/behavior.
cmd/opm/registry/serve.go Removes sqlite-backed opm registry serve.
cmd/opm/registry/rm.go Removes sqlite-backed opm registry rm.
cmd/opm/registry/prunestranded.go Removes sqlite-backed opm registry prune-stranded.
cmd/opm/registry/prune.go Removes sqlite-backed opm registry prune.
cmd/opm/registry/mirror.go Removes unused mirror command (sqlite-based).
cmd/opm/registry/deprecatetruncate.go Removes sqlite-backed deprecate/truncate command.
cmd/opm/registry/cmd.go Removes opm registry command group.
cmd/opm/registry/add.go Removes sqlite-backed opm registry add.
cmd/opm/migrate/cmd.go Removes sqlite->FBC migration command.
cmd/opm/index/prunestranded.go Removes sqlite-backed opm index prune-stranded.
cmd/opm/index/prune.go Removes sqlite-backed opm index prune.
cmd/opm/index/export.go Removes sqlite-backed opm index export.
cmd/opm/index/deprecatetruncate.go Removes sqlite-backed opm index deprecatetruncate.
cmd/opm/index/delete.go Removes sqlite-backed opm index rm.
cmd/opm/index/cmd.go Removes opm index command group.
cmd/opm/alpha/render-graph/cmd.go Removes sqlite refs from alpha render-graph allowed ref set.
cmd/initializer/main.go Removes deprecated initializer binary (manifests -> sqlite DB).
cmd/configmap-server/main.go Removes configmap-server (configmap -> sqlite DB -> gRPC).
alpha/property/property.go Drops channel priority property fields/builders.
alpha/action/render.go Removes sqlite rendering support; now only supports declcfg images/dirs and bundles.
alpha/action/migrate.go Disallows migrating sqlite refs (only declcfg image/dir).
alpha/action/migrate_test.go Skips sqlite migration tests.
alpha/action/list.go Disallows listing via sqlite refs (only declcfg image/dir).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/e2e/opm_test.go
Comment thread alpha/action/render.go Outdated
Comment thread go.mod Outdated
@codecov

codecov Bot commented May 15, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 63.63636% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 59.55%. Comparing base (fc2ca91) to head (ab34cf1).

Files with missing lines Patch % Lines
alpha/action/render.go 61.29% 11 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1986      +/-   ##
==========================================
+ Coverage   58.81%   59.55%   +0.74%     
==========================================
  Files         141       99      -42     
  Lines       13434     8155    -5279     
==========================================
- Hits         7901     4857    -3044     
+ Misses       4323     2723    -1600     
+ Partials     1210      575     -635     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI review requested due to automatic review settings May 15, 2026 15:48

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 111 out of 170 changed files in this pull request and generated 3 comments.

Comment thread test/e2e/opm_test.go
Comment thread go.mod
Comment thread cmd/opm/render/cmd.go Outdated
Copilot AI review requested due to automatic review settings May 15, 2026 18:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 18, 2026
Copilot AI review requested due to automatic review settings May 18, 2026 14:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 18, 2026
Copilot AI review requested due to automatic review settings May 18, 2026 15:05

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

@grokspawn grokspawn changed the title drop all sqlite support (and channel priority properties) drop all sqlite support, model package, and channel priority properties May 18, 2026
@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 20, 2026
@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 23, 2026
Copilot AI review requested due to automatic review settings June 29, 2026 21:18
grokspawn added a commit to grokspawn/operator-registry that referenced this pull request Jun 29, 2026
Signed-off-by: grokspawn <jordan@nimblewidget.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 108 out of 171 changed files in this pull request and generated 2 comments.

Comment thread upstream-builder.Dockerfile
Comment thread cmd/opm/root/cmd.go
grokspawn added a commit to grokspawn/operator-registry that referenced this pull request Jul 8, 2026
Signed-off-by: grokspawn <jordan@nimblewidget.com>
@grokspawn

Copy link
Copy Markdown
Contributor Author

codecov/project results are misleading, because there are at least a couple of areas where we went 75% --> 100%, but the delta is captured as 0%.

@grokspawn grokspawn changed the title drop all sqlite support BREAKING CHANGE: drop all sqlite support Jul 8, 2026
grokspawn added a commit to grokspawn/operator-registry that referenced this pull request Jul 8, 2026
Signed-off-by: grokspawn <jordan@nimblewidget.com>
Comment thread pkg/server/server_test.go
@joelanford

Copy link
Copy Markdown
Member

We may be able to drastically simplify our github release workflows now that the CGO dependency is no more!

Totally do-able in a follow-up, but don't want that to be overlooked!

grokspawn added a commit to grokspawn/operator-registry that referenced this pull request Jul 8, 2026
Signed-off-by: grokspawn <jordan@nimblewidget.com>
Copilot AI review requested due to automatic review settings July 8, 2026 21:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 108 out of 172 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

Makefile:71

  • The static target injects its own -tags "json1" via extra_flags, but the build recipes already pass -tags=$(TAGS). That results in two -tags flags, where the latter (json1) can override $(TAGS) and unintentionally drop required build tags like containers_image_openpgp during make static (used by upstream-builder.Dockerfile). Since this PR removes SQLite support, the extra json1 tag should be removed (or appended to TAGS if still truly needed).
.PHONY: static
static: extra_flags=-ldflags '-w -extldflags "-static"' -tags "json1"
static: build

Copilot AI review requested due to automatic review settings July 8, 2026 21:36

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 108 out of 172 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

README.md:103

  • This section still refers to an "index" even though the preceding steps now describe building and serving a file-based catalog (FBC) image. Updating the heading/text helps avoid confusion for users now that SQLite/index workflows are removed.
# Using the index with Operator Lifecycle Manager

To add an index packaged with `operator-registry` to your cluster for use with [Operator Lifecycle Manager](https://github.com/operator-framework/operator-lifecycle-manager) (OLM) create a `CatalogSource` referencing the image you created and pushed above:

Comment thread pkg/cache/pkgs.go
Comment thread go.mod
@grokspawn

Copy link
Copy Markdown
Contributor Author

We may be able to drastically simplify our github release workflows now that the CGO dependency is no more!

Totally do-able in a follow-up, but don't want that to be overlooked!

Agreed. There are a few things we can iterate on after this lands.

@rashmigottipati rashmigottipati left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes look good to me overall, will wait for others to review as well

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 10, 2026
Copilot AI review requested due to automatic review settings July 10, 2026 16:52
@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 10, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 108 out of 172 changed files in this pull request and generated 2 comments.

Comment thread Makefile
Comment thread README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants