diff --git a/charmcraft/config.py b/charmcraft/config.py
index ad62de2..79262ec 100644
--- a/charmcraft/config.py
+++ b/charmcraft/config.py
@@ -343,6 +343,17 @@ class Config(ModelConfigDefaults, validate_all=False):
         validate_part(item)
         return item
 
+    @pydantic.validator("bases", pre=True)
+    def validate_bases_presence(cls, bases, values):
+        """Forbid 'bases' in bundles.
+
+        This is to avoid a posible confusion of expecting the bundle
+        to be built in a specific environment
+        """
+        if values.get("type") == "bundle":
+            raise ValueError("Field not allowed when type=bundle")
+        return bases
+
     @classmethod
     def expand_short_form_bases(cls, bases: List[Dict[str, Any]]) -> None:
         """Expand short-form base configuration into long-form in-place."""
@@ -390,7 +401,8 @@ class Config(ModelConfigDefaults, validate_all=False):
             # type will simplify user facing errors.
             bases = obj.get("bases")
             if bases is None:
-                notify_deprecation("dn03")
+                if obj["type"] in (None, "charm"):
+                    notify_deprecation("dn03")
                 # Set default bases to Ubuntu 20.04 to match strict snap's
                 # effective behavior.
                 bases = [

diff --git a/tests/test_config.py b/tests/test_config.py
index 30a73dd..6b6db1b 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -537,6 +537,40 @@ def test_no_bases_defaults_to_ubuntu_20_04_with_dn03(caplog, create_config, tmp_
     ]
 
 
+def test_no_bases_is_ok_for_bundles(caplog, create_config, tmp_path):
+    """Do not send a deprecation message if it is a bundle."""
+    caplog.set_level(logging.WARNING, logger="charmcraft")
+    create_config(
+        """
+        type: bundle
+    """
+    )
+
+    load(tmp_path)
+    assert not caplog.records
+
+
+def test_bases_forbidden_for_bundles(create_config, check_schema_error):
+    """Do not allow a bases configuration for bundles."""
+    create_config(
+        """
+        type: bundle
+        bases:
+          - build-on:
+              - name: test-build-name
+                channel: test-build-channel
+    """
+    )
+
+    check_schema_error(
+        dedent(
+            """\
+            Bad charmcraft.yaml content:
+            - Field not allowed when type=bundle in field 'bases'"""
+        )
+    )
+
+
 def test_bases_minimal_long_form(create_config):
     tmp_path = create_config(
         """

The control of `bases` in `charmcraft.yaml` should be different for bundles
Currently it complains that there's no `bases`:

```
$ charmcraft revisions facutest-bundle-1
DEPRECATED: Bases configuration is now required.
See https://discourse.charmhub.io/t/4652#heading--dn03 for more information.
Revision    Version    Created at    Status
1           1          2021-02-03    released
```

But bundles do NOT have bases. So this check should be removed. And ANOTHER check should be implemented, to actually error out if the bundle's config has `bases` included (to avoid confusions).

Thanks!
tests/test_config.py::test_no_bases_is_ok_for_bundles tests/test_config.py::test_bases_forbidden_for_bundles
tests/test_config.py::test_load_current_directory tests/test_config.py::test_load_managed_mode_directory tests/test_config.py::test_load_specific_directory_ok tests/test_config.py::test_load_optional_charmcraft_missing tests/test_config.py::test_load_optional_charmcraft_bad_directory tests/test_config.py::test_load_specific_directory_resolved tests/test_config.py::test_load_specific_directory_expanded tests/test_config.py::test_schema_top_level_no_extra_properties tests/test_config.py::test_schema_type_missing tests/test_config.py::test_schema_type_bad_type tests/test_config.py::test_schema_type_limited_values tests/test_config.py::test_schema_charmhub_api_url_bad_type tests/test_config.py::test_schema_charmhub_api_url_bad_format tests/test_config.py::test_schema_charmhub_storage_url_bad_type tests/test_config.py::test_schema_charmhub_storage_url_bad_format tests/test_config.py::test_schema_charmhub_registry_url_bad_type tests/test_config.py::test_schema_charmhub_registry_url_bad_format tests/test_config.py::test_schema_charmhub_no_extra_properties tests/test_config.py::test_schema_basicprime_bad_init_structure tests/test_config.py::test_schema_basicprime_bad_bundle_structure tests/test_config.py::test_schema_basicprime_bad_prime_structure tests/test_config.py::test_schema_basicprime_bad_prime_type tests/test_config.py::test_schema_basicprime_bad_prime_type_empty tests/test_config.py::test_schema_basicprime_bad_content_format tests/test_config.py::test_schema_additional_part tests/test_config.py::test_charmhub_frozen tests/test_config.py::test_charmhub_underscore_backwards_compatibility tests/test_config.py::test_no_bases_defaults_to_ubuntu_20_04_with_dn03 tests/test_config.py::test_bases_minimal_long_form tests/test_config.py::test_bases_extra_field_error tests/test_config.py::test_bases_underscores_error tests/test_config.py::test_channel_is_yaml_number tests/test_config.py::test_minimal_long_form_bases tests/test_config.py::test_complex_long_form_bases tests/test_config.py::test_multiple_long_form_bases tests/test_config.py::test_bases_minimal_short_form tests/test_config.py::test_bases_short_form_extra_field_error tests/test_config.py::test_bases_short_form_missing_field_error tests/test_config.py::test_bases_mixed_form_errors tests/test_config.py::test_schema_analysis_missing tests/test_config.py::test_schema_analysis_full_struct_just_empty tests/test_config.py::test_schema_analysis_ignore_attributes tests/test_config.py::test_schema_analysis_ignore_linters tests/test_config.py::test_schema_analysis_ignore_attribute_missing tests/test_config.py::test_schema_analysis_ignore_linter_missing