Expected Behavior
A repository successfully created by feast init should work with its generated configuration, or the CLI should reject a project name that is incompatible with the selected template.
Current Behavior
The default local template accepts a hyphenated repository/project name:
feast init feast-smoke -t local
The command exits successfully and generates a repository whose feature_store.yaml contains:
However, loading that generated repository fails because the local template uses the SQLite online store:
Value error, Project names for SQLite online stores cannot contain hyphens because they are used in table names.
at feature_store.yaml
This means feast init successfully generates a repository that cannot be used without manually editing its configuration.
Steps to Reproduce
feast init feast-smoke -t local
cd feast-smoke/feature_repo
python test_workflow.py
The failure occurs when FeatureStore(repo_path=".") loads the generated configuration.
Using an underscore succeeds through the complete local workflow:
feast init feast_smoke -t local
cd feast_smoke/feature_repo
python test_workflow.py
Existing Test Behavior
sdk/python/tests/unit/test_repo_operations_validate_feast_project_name.py explicitly considers hyphen-name valid, while the generated SQLite-backed local repository rejects it later.
Related History
Possible Solutions
Either:
- Make SQLite table-name generation safely support hyphenated Feast project names; or
- Reject hyphenated names early when
feast init uses a SQLite-backed template, with a clear error; or
- Preserve the requested directory name while normalizing the generated Feast project name (for example,
feast-smoke → feast_smoke).
I would be happy to contribute the fix once maintainers confirm the preferred behavior.
Environment
- Feast:
0.66.1.dev6+g5ad559239
- Python:
3.10.12
- OS: Ubuntu 22.04.5 LTS
Expected Behavior
A repository successfully created by
feast initshould work with its generated configuration, or the CLI should reject a project name that is incompatible with the selected template.Current Behavior
The default local template accepts a hyphenated repository/project name:
feast init feast-smoke -t localThe command exits successfully and generates a repository whose
feature_store.yamlcontains:However, loading that generated repository fails because the local template uses the SQLite online store:
This means
feast initsuccessfully generates a repository that cannot be used without manually editing its configuration.Steps to Reproduce
The failure occurs when
FeatureStore(repo_path=".")loads the generated configuration.Using an underscore succeeds through the complete local workflow:
Existing Test Behavior
sdk/python/tests/unit/test_repo_operations_validate_feast_project_name.pyexplicitly considershyphen-namevalid, while the generated SQLite-backed local repository rejects it later.Related History
Possible Solutions
Either:
feast inituses a SQLite-backed template, with a clear error; orfeast-smoke→feast_smoke).I would be happy to contribute the fix once maintainers confirm the preferred behavior.
Environment
0.66.1.dev6+g5ad5592393.10.12