René's URL Explorer Experiment


Title: chore: Remove unused jsonschema dependency, declare attrs by lukehsiao · Pull Request #6599 · feast-dev/feast · GitHub

Open Graph Title: chore: Remove unused jsonschema dependency, declare attrs by lukehsiao · Pull Request #6599 · feast-dev/feast

X Title: chore: Remove unused jsonschema dependency, declare attrs by lukehsiao · Pull Request #6599 · feast-dev/feast

Description: What this PR does / why we need it: jsonschema's last consumer was the pre-0.10 repo_config.py, which used it to validate feature_store.yaml. That file was rewritten on pydantic for the 0.10 release in April 2021, so the dependency has been carried unused for roughly five years, surviving the setup.py to pyproject.toml consolidation along the way. Dropping it exposed a real bug: feature_view_projection.py and openlineage/facets.py import attr directly, but attrs was never declared and only arrived transitively via jsonschema -> referencing -> attrs. A clean install without jsonschema fails at import feast. This patch declares attrs explicitly rather than migrating those files to stdlib dataclasses, which would change the runtime behavior of a core class and belongs in its own change. The lock files were recompiled preserving existing pins instead of with make lock-python-dependencies-all, which re-resolves everything to latest and would bury this removal in unrelated churn. jsonschema stays in the minimal and ci locks because mcp requires it; the base locks drop jsonschema, jsonschema-specifications, referencing, and rpds-py. The ci locks also pick up scylla-driver, which the ci extra has required since the ScyllaDB online store landed but was never locked. Tested: recompiled all 12 uv lock files with uv 0.9.25 targeting aarch64-apple-darwin (MACOSX_DEPLOYMENT_TARGET=15.0) to match the platform the checked-in locks were compiled on. The pybuild-deps build locks are untouched because the minimal-sdist package set is unchanged. In a fresh py3.12 venv, feast installs without jsonschema, import feast succeeds, and feast init followed by feast apply works end to end. Checks I've made sure the tests are passing. My commits are signed off (git commit -s) My PR title follows conventional commits format Testing Strategy Unit tests Integration tests Manual tests Testing is not required for this change

Open Graph Description: What this PR does / why we need it: jsonschema's last consumer was the pre-0.10 repo_config.py, which used it to validate feature_store.yaml. That file was rewritten on pydantic for the 0.10 re...

X Description: What this PR does / why we need it: jsonschema's last consumer was the pre-0.10 repo_config.py, which used it to validate feature_store.yaml. That file was rewritten on pydantic for the 0.1...

Opengraph URL: https://github.com/feast-dev/feast/pull/6599

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:8a7d9254-649a-bb2a-ed67-12c0ab6736fe
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idA43E:199BE7:4747F:5DABA:6A567365
html-safe-noncee3c67f5f625a8ecf57b702c1f0878a8cae0713a589fa6e055ce3187cf718707e
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBNDNFOjE5OUJFNzo0NzQ3Rjo1REFCQTo2QTU2NzM2NSIsInZpc2l0b3JfaWQiOiIyMjU2ODU3OTY4Mzg5MDI2NjYxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmace9d6483606c8e73d6660f13d3d262ab048c8f52a83ed6b37e1ef38b2ba2d3b86
hovercard-subject-tagpull_request:4040083356
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/feast-dev/feast/pull/6599/files
twitter:imagehttps://avatars.githubusercontent.com/u/7573542?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/7573542?s=400&v=4
og:image:altWhat this PR does / why we need it: jsonschema's last consumer was the pre-0.10 repo_config.py, which used it to validate feature_store.yaml. That file was rewritten on pydantic for the 0.10 re...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None19b5ee9431dcfce15ab4b001d626e4e3a6ba1acb7be814813a52bbebd9a86ef5
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/feast-dev/feast git https://github.com/feast-dev/feast.git
octolytics-dimension-user_id57027613
octolytics-dimension-user_loginfeast-dev
octolytics-dimension-repository_id161133770
octolytics-dimension-repository_nwofeast-dev/feast
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id161133770
octolytics-dimension-repository_network_root_nwofeast-dev/feast
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releaseafc01ffdb045f4ff81c6122091366ade7b6166b7
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/feast-dev/feast/pull/6599/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeast-dev%2Ffeast%2Fpull%2F6599%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeast-dev%2Ffeast%2Fpull%2F6599%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=feast-dev%2Ffeast
Reloadhttps://github.com/feast-dev/feast/pull/6599/files
Reloadhttps://github.com/feast-dev/feast/pull/6599/files
Reloadhttps://github.com/feast-dev/feast/pull/6599/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6599/files
feast-dev https://github.com/feast-dev
feasthttps://github.com/feast-dev/feast
Notifications https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Fork 1.4k https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Star 7.1k https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Code https://github.com/feast-dev/feast
Issues 214 https://github.com/feast-dev/feast/issues
Pull requests 177 https://github.com/feast-dev/feast/pulls
Discussions https://github.com/feast-dev/feast/discussions
Actions https://github.com/feast-dev/feast/actions
Security and quality 1 https://github.com/feast-dev/feast/security
Insights https://github.com/feast-dev/feast/pulse
Code https://github.com/feast-dev/feast
Issues https://github.com/feast-dev/feast/issues
Pull requests https://github.com/feast-dev/feast/pulls
Discussions https://github.com/feast-dev/feast/discussions
Actions https://github.com/feast-dev/feast/actions
Security and quality https://github.com/feast-dev/feast/security
Insights https://github.com/feast-dev/feast/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Ffeast-dev%2Ffeast%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Ffeast-dev%2Ffeast%2Fissues%2Fnew%2Fchoose
franciscojavierarceohttps://github.com/franciscojavierarceo
feast-dev:masterhttps://github.com/feast-dev/feast/tree/master
lukehsiao-forks:masterhttps://github.com/lukehsiao-forks/feast/tree/master
Conversation 0 https://github.com/feast-dev/feast/pull/6599
Commits 1 https://github.com/feast-dev/feast/pull/6599/commits
Checks 26 https://github.com/feast-dev/feast/pull/6599/checks
Files changed https://github.com/feast-dev/feast/pull/6599/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6599/files
chore: Remove unused jsonschema dependency, declare attrs https://github.com/feast-dev/feast/pull/6599/files#top
Show all changes 1 commit https://github.com/feast-dev/feast/pull/6599/files
5080fd5 chore: Remove unused jsonschema dependency, declare attrs lukehsiao Jul 12, 2026 https://github.com/feast-dev/feast/pull/6599/commits/5080fd551e19d3c7cdfd9797201dba39cb68d823
Clear filters https://github.com/feast-dev/feast/pull/6599/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6599/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6599/files
pyproject.toml https://github.com/feast-dev/feast/pull/6599/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
py3.10-ci-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
py3.10-minimal-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-df0272aa3c56cda34322f237ff5ed561ac8e815832c340e1d2acaaa6ce61450d
py3.10-minimal-sdist-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-b1d6f75f21900b80c03b0e4850384d5603b39cdb8d2a543895561c51f03d98cd
py3.10-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
py3.11-ci-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-ac522b324e71653909b38058afeaa909c1cdc7bb28cbd9be89e2bcdb7094268f
py3.11-minimal-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-8c61d5abea6475cd26349393df6f517c6618327698d6dcf28c6661c1a47fde91
py3.11-minimal-sdist-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-436575176564cadc81bc2c16d7bd34810cb84386c7906240b976c4a323bdc30a
py3.11-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-cd4b041d55377e823df0abebbe3e5d502f38bd51dba4778c4b7d9c3916d582ee
py3.12-ci-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-390aad293f22ff0984dbc3cf8286e53d656f7596a5a600dd1d4e3762e24d799a
py3.12-minimal-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-d9a06f0b5fdecd0d80cabbc35a442eedef974d11bfa446161633e0e7b05b4c6e
py3.12-minimal-sdist-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-cbdfea8ade942eb947a984fad5caeea800af2232ed4b8128a1cbc77a22ca1df9
py3.12-requirements.txt https://github.com/feast-dev/feast/pull/6599/files#diff-83b6c7317626b1028f2d03534311f6f902642e7df32f8d1cf03a474215e2a835
pyproject.tomlhttps://github.com/feast-dev/feast/pull/6599/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
View file https://github.com/lukehsiao-forks/feast/blob/5080fd551e19d3c7cdfd9797201dba39cb68d823/pyproject.toml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6599/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6599/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
https://github.com/feast-dev/feast/pull/6599/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
https://github.com/feast-dev/feast/blob/master/CODEOWNERS#L10
sdk/python/requirements/py3.10-ci-requirements.txthttps://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
View file https://github.com/lukehsiao-forks/feast/blob/5080fd551e19d3c7cdfd9797201dba39cb68d823/sdk/python/requirements/py3.10-ci-requirements.txt
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6599/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/pull/6599/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
https://github.com/feast-dev/feast/blob/master/CODEOWNERS#L10
sdk/python/requirements/py3.10-minimal-requirements.txthttps://github.com/feast-dev/feast/pull/6599/files#diff-df0272aa3c56cda34322f237ff5ed561ac8e815832c340e1d2acaaa6ce61450d
View file https://github.com/lukehsiao-forks/feast/blob/5080fd551e19d3c7cdfd9797201dba39cb68d823/sdk/python/requirements/py3.10-minimal-requirements.txt
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6599/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6599/files#diff-df0272aa3c56cda34322f237ff5ed561ac8e815832c340e1d2acaaa6ce61450d
https://github.com/feast-dev/feast/pull/6599/files#diff-df0272aa3c56cda34322f237ff5ed561ac8e815832c340e1d2acaaa6ce61450d
https://github.com/feast-dev/feast/pull/6599/files#diff-df0272aa3c56cda34322f237ff5ed561ac8e815832c340e1d2acaaa6ce61450d
https://github.com/feast-dev/feast/pull/6599/files#diff-df0272aa3c56cda34322f237ff5ed561ac8e815832c340e1d2acaaa6ce61450d
https://github.com/feast-dev/feast/blob/master/CODEOWNERS#L10
sdk/python/requirements/py3.10-minimal-sdist-requirements.txthttps://github.com/feast-dev/feast/pull/6599/files#diff-b1d6f75f21900b80c03b0e4850384d5603b39cdb8d2a543895561c51f03d98cd
View file https://github.com/lukehsiao-forks/feast/blob/5080fd551e19d3c7cdfd9797201dba39cb68d823/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6599/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6599/files#diff-b1d6f75f21900b80c03b0e4850384d5603b39cdb8d2a543895561c51f03d98cd
https://github.com/feast-dev/feast/pull/6599/files#diff-b1d6f75f21900b80c03b0e4850384d5603b39cdb8d2a543895561c51f03d98cd
https://github.com/feast-dev/feast/pull/6599/files#diff-b1d6f75f21900b80c03b0e4850384d5603b39cdb8d2a543895561c51f03d98cd
https://github.com/feast-dev/feast/pull/6599/files#diff-b1d6f75f21900b80c03b0e4850384d5603b39cdb8d2a543895561c51f03d98cd
https://github.com/feast-dev/feast/blob/master/CODEOWNERS#L10
sdk/python/requirements/py3.10-requirements.txthttps://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
View file https://github.com/lukehsiao-forks/feast/blob/5080fd551e19d3c7cdfd9797201dba39cb68d823/sdk/python/requirements/py3.10-requirements.txt
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6599/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
https://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
https://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
https://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
https://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
https://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
https://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
https://github.com/feast-dev/feast/pull/6599/files#diff-a2d86f872be8d7589d5f03f369eabfd754c101fbd7bebd2793cbd560f5b981f5
Please reload this pagehttps://github.com/feast-dev/feast/pull/6599/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6599/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.