Skip to content

Commit

Permalink
Renamed feature flag and added release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
sfc-gh-astus committed Nov 14, 2024
1 parent a2a877f commit 7735817
Show file tree
Hide file tree
Showing 14 changed files with 40 additions and 40 deletions.
2 changes: 2 additions & 0 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
* `--follow (-f)`: Stream logs in real-time.
* `--follow-interval`: Set custom polling intervals during log streaming.
* `snow connection add` supports `--no-interactive` flag to skip interactive prompts.
* Added support for glob pattern in artifact paths in snowflake.yml for Streamlit.
* Added support for glob pattern in artifact paths in snowflake.yml for Snowpark, requires ENABLE_SNOWPARK_GLOB_SUPPORT feature flag.

## Fixes and improvements
* `snow --info` callback returns information about `SNOWFLAKE_HOME` variable.
Expand Down
2 changes: 1 addition & 1 deletion src/snowflake/cli/_plugins/snowpark/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ def build(

artifacts = set()
with cli_console.phase("Preparing artifacts for source code"):
if FeatureFlag.ENABLE_SNOWPARK_BUNDLE_MAP_BUILD.is_enabled():
if FeatureFlag.ENABLE_SNOWPARK_GLOB_SUPPORT.is_enabled():
for entity in get_snowpark_entities(pd).values():
for artifact in entity.artifacts:
artifacts.add(project_paths.get_artefact_dto(artifact))
Expand Down
4 changes: 2 additions & 2 deletions src/snowflake/cli/_plugins/snowpark/snowpark_entity_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ def _convert_artifacts(cls, artifacts: Union[dict, str]):
if (
(isinstance(artifact, str) and glob.has_magic(artifact))
or (isinstance(artifact, PathMapping) and glob.has_magic(artifact.src))
) and FeatureFlag.ENABLE_SNOWPARK_BUNDLE_MAP_BUILD.is_disabled():
) and FeatureFlag.ENABLE_SNOWPARK_GLOB_SUPPORT.is_disabled():
raise ValueError(
"If you want to use glob patterns in artifacts, you need to enable the Snowpark new build feature flag (ENABLE_SNOWPARK_BUNDLE_MAP_BUILD=true)"
"If you want to use glob patterns in artifacts, you need to enable the Snowpark new build feature flag (ENABLE_SNOWPARK_GLOB_SUPPORT=true)"
)
if isinstance(artifact, PathMapping):
_artifacts.append(artifact)
Expand Down
6 changes: 3 additions & 3 deletions src/snowflake/cli/_plugins/snowpark/snowpark_project_paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def path_relative_to_root(self, artifact_path: Path) -> Path:
return (self.project_root / artifact_path).resolve()

def get_artefact_dto(self, artifact_path: PathMapping) -> Artefact:
if FeatureFlag.ENABLE_SNOWPARK_BUNDLE_MAP_BUILD.is_enabled():
if FeatureFlag.ENABLE_SNOWPARK_GLOB_SUPPORT.is_enabled():
return Artefact(
project_root=self.project_root,
dest=artifact_path.dest,
Expand All @@ -55,7 +55,7 @@ def get_artefact_dto(self, artifact_path: PathMapping) -> Artefact:
)

def get_dependencies_artefact(self) -> Artefact:
if FeatureFlag.ENABLE_SNOWPARK_BUNDLE_MAP_BUILD.is_enabled():
if FeatureFlag.ENABLE_SNOWPARK_GLOB_SUPPORT.is_enabled():
return Artefact(
project_root=self.project_root, dest=None, path=Path("dependencies.zip")
)
Expand Down Expand Up @@ -179,7 +179,7 @@ def _path_until_asterisk(self) -> Path:
# parts = Path(before_wildcard).parts[:-1]
return Path(*path[:-1])

# Can be removed after removing ENABLE_SNOWPARK_BUNDLE_MAP_BUILD feature flag.
# Can be removed after removing ENABLE_SNOWPARK_GLOB_SUPPORT feature flag.
def build(self) -> None:
raise NotImplementedError("Not implemented in Artefact class.")

Expand Down
4 changes: 1 addition & 3 deletions src/snowflake/cli/api/feature_flags.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,4 @@ class FeatureFlag(FeatureFlagMixin):
ENABLE_STREAMLIT_VERSIONED_STAGE = BooleanFlag(
"ENABLE_STREAMLIT_VERSIONED_STAGE", False
)
ENABLE_SNOWPARK_BUNDLE_MAP_BUILD = BooleanFlag(
"ENABLE_SNOWPARK_BUNDLE_MAP_BUILD", False
)
ENABLE_SNOWPARK_GLOB_SUPPORT = BooleanFlag("ENABLE_SNOWPARK_GLOB_SUPPORT", False)
2 changes: 1 addition & 1 deletion tests/snowpark/__snapshots__/test_models.ambr
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
| For field entities.hello_procedure.procedure.artifacts you provided |
| '['src/*']'. This caused: Value error, If you want to use glob patterns in |
| artifacts, you need to enable the Snowpark new build feature flag |
| (ENABLE_SNOWPARK_BUNDLE_MAP_BUILD=true) |
| (ENABLE_SNOWPARK_GLOB_SUPPORT=true) |
+------------------------------------------------------------------------------+

'''
Expand Down
4 changes: 2 additions & 2 deletions tests/snowpark/test_artifacts.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def test_build_and_deploy_with_artifacts(
artifacts,
local_path,
stage_path,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_om_describe.side_effect = ProgrammingError(
errno=DOES_NOT_EXIST_OR_NOT_AUTHORIZED
Expand Down Expand Up @@ -164,7 +164,7 @@ def test_build_and_deploy_with_artifacts_run_from_other_directory(
artifact,
local_path,
stage_path,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_om_describe.side_effect = ProgrammingError(
errno=DOES_NOT_EXIST_OR_NOT_AUTHORIZED
Expand Down
2 changes: 1 addition & 1 deletion tests/snowpark/test_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def test_snowpark_build_no_deprecated_warnings_by_default(
)
def test_build_with_glob_patterns_in_artifacts(
runner,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
project_directory,
alter_snowflake_yml,
artifacts,
Expand Down
16 changes: 8 additions & 8 deletions tests/snowpark/test_function.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ def test_deploy_function_secrets_without_external_access(
mock_ctx,
project_directory,
os_agnostic_snapshot,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_object_manager.return_value.show.return_value = [
{"name": "external_1", "type": "EXTERNAL_ACCESS"},
Expand Down Expand Up @@ -183,7 +183,7 @@ def test_deploy_function_no_changes(
mock_ctx,
mock_cursor,
project_directory,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
rows = [
Expand Down Expand Up @@ -230,7 +230,7 @@ def test_deploy_function_needs_update_because_packages_changes(
mock_ctx,
mock_cursor,
project_directory,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
rows = [
Expand Down Expand Up @@ -287,7 +287,7 @@ def test_deploy_function_needs_update_because_handler_changes(
mock_ctx,
mock_cursor,
project_directory,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
rows = [
Expand Down Expand Up @@ -350,7 +350,7 @@ def test_deploy_function_fully_qualified_name_duplicated_database(
project_directory,
alter_snowflake_yml,
os_agnostic_snapshot,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
number_of_functions_in_project = 6
Expand Down Expand Up @@ -391,7 +391,7 @@ def test_deploy_function_fully_qualified_name_duplicated_schema(
project_directory,
alter_snowflake_yml,
os_agnostic_snapshot,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
number_of_functions_in_project = 6
Expand Down Expand Up @@ -437,7 +437,7 @@ def test_deploy_function_fully_qualified_name(
project_directory,
alter_snowflake_yml,
os_agnostic_snapshot,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
number_of_functions_in_project = 6
Expand Down Expand Up @@ -493,7 +493,7 @@ def test_deploy_function_with_empty_default_value(
alter_snowflake_yml,
parameter_type,
default_value,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
mock_object_manager.return_value.describe.side_effect = ProgrammingError(
Expand Down
22 changes: 11 additions & 11 deletions tests/snowpark/test_procedure.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def test_deploy_procedure(
runner,
mock_ctx,
project_directory,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
mock_om_describe.side_effect = ProgrammingError(
Expand Down Expand Up @@ -148,7 +148,7 @@ def test_deploy_procedure_with_external_access(
runner,
mock_ctx,
project_directory,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
mock_om_describe.side_effect = ProgrammingError(
Expand Down Expand Up @@ -225,7 +225,7 @@ def test_deploy_procedure_secrets_without_external_access(
mock_ctx,
project_directory,
os_agnostic_snapshot,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
ctx = mock_ctx()
Expand Down Expand Up @@ -274,7 +274,7 @@ def test_deploy_procedure_fails_if_integration_does_not_exists(
mock_ctx,
project_directory,
os_agnostic_snapshot,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
ctx = mock_ctx()
Expand Down Expand Up @@ -327,7 +327,7 @@ def test_deploy_procedure_fails_if_object_exists_and_no_replace(
mock_ctx,
project_directory,
os_agnostic_snapshot,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
mock_om_describe.return_value = mock_cursor(
Expand Down Expand Up @@ -374,7 +374,7 @@ def test_deploy_procedure_replace_nothing_to_update(
mock_ctx,
project_directory,
caplog,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
mock_om_describe.side_effect = [
Expand Down Expand Up @@ -444,7 +444,7 @@ def test_deploy_procedure_replace_updates_single_object(
mock_cursor,
mock_ctx,
project_directory,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
mock_om_describe.side_effect = [
Expand Down Expand Up @@ -513,7 +513,7 @@ def test_deploy_procedure_replace_creates_missing_object(
mock_cursor,
mock_ctx,
project_directory,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
mock_om_describe.side_effect = [
Expand Down Expand Up @@ -575,7 +575,7 @@ def test_deploy_procedure_fully_qualified_name(
project_directory,
alter_snowflake_yml,
os_agnostic_snapshot,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
number_of_procedures_in_projects = 6
Expand Down Expand Up @@ -616,7 +616,7 @@ def test_deploy_procedure_fully_qualified_name_duplicated_schema(
project_directory,
alter_snowflake_yml,
os_agnostic_snapshot,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
number_of_procedures_in_projects = 6
Expand Down Expand Up @@ -673,7 +673,7 @@ def test_deploy_procedure_with_empty_default_value(
alter_snowflake_yml,
parameter_type,
default_value,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
mock_download.return_value = DownloadUnavailablePackagesResult()
mock_om_describe.side_effect = ProgrammingError(
Expand Down
4 changes: 2 additions & 2 deletions tests/testing_utils/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -462,9 +462,9 @@ def mock_procedure_description(mock_cursor):


@pytest.fixture
def enable_snowpark_bundle_map_build_feature_flag():
def enable_snowpark_glob_support_feature_flag():
with mock.patch(
f"snowflake.cli.api.feature_flags.FeatureFlag.ENABLE_SNOWPARK_BUNDLE_MAP_BUILD.is_enabled",
f"snowflake.cli.api.feature_flags.FeatureFlag.ENABLE_SNOWPARK_GLOB_SUPPORT.is_enabled",
return_value=True,
):
yield
4 changes: 2 additions & 2 deletions tests_integration/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,9 +262,9 @@ def resource_suffix(request):


@pytest.fixture
def enable_snowpark_bundle_map_build_feature_flag():
def enable_snowpark_glob_support_feature_flag():
with mock.patch(
f"snowflake.cli.api.feature_flags.FeatureFlag.ENABLE_SNOWPARK_BUNDLE_MAP_BUILD.is_enabled",
f"snowflake.cli.api.feature_flags.FeatureFlag.ENABLE_SNOWPARK_GLOB_SUPPORT.is_enabled",
return_value=True,
):
yield
6 changes: 3 additions & 3 deletions tests_integration/test_snowpark.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def test_snowpark_flow(
project_directory,
alter_snowflake_yml,
test_database,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
database = test_database.upper()
with project_directory("snowpark") as tmp_dir:
Expand Down Expand Up @@ -1241,7 +1241,7 @@ def test_snowpark_flow_v2(
project_directory,
alter_snowflake_yml,
test_database,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
database = test_database.upper()
with project_directory("snowpark_v2") as tmp_dir:
Expand Down Expand Up @@ -1388,7 +1388,7 @@ def test_snowpark_with_glob_patterns(
project_directory,
alter_snowflake_yml,
test_database,
enable_snowpark_bundle_map_build_feature_flag,
enable_snowpark_glob_support_feature_flag,
):
database = test_database.upper()
with project_directory("snowpark_glob_patterns"):
Expand Down
2 changes: 1 addition & 1 deletion tests_integration/testing_utils/snowpark_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ def snowpark_build_should_zip_files(
additional_files = []

if not no_dependencies:
if FeatureFlag.ENABLE_SNOWPARK_BUNDLE_MAP_BUILD.is_enabled():
if FeatureFlag.ENABLE_SNOWPARK_GLOB_SUPPORT.is_enabled():
additional_files.append(Path("output") / "dependencies.zip")
else:
additional_files.append(Path("dependencies.zip"))
Expand Down

0 comments on commit 7735817

Please sign in to comment.