Declare extra actions deprecated in favor of aspects.

RELNOTES: None.
PiperOrigin-RevId: 361088277
diff --git a/site/docs/user-manual.html b/site/docs/user-manual.html
index 8a03130..142d93c 100644
--- a/site/docs/user-manual.html
+++ b/site/docs/user-manual.html
@@ -566,6 +566,11 @@
   <code class='flag'>--experimental_action_listener=<var>label</var></code>
 </h4>
 <p>
+  <b>WARNING:</b> Extra actions are deprecated. Use
+  <a href="https://docs.bazel.build/versions/master/skylark/aspects.html">aspects</a>
+  instead.
+</p>
+<p>
   The <code>experimental_action_listener</code> option instructs Bazel to use
   details from the <a href="be/extra-actions.html#action_listener"
   ><code>action_listener</code></a> rule specified by <var>label</var> to
@@ -577,6 +582,11 @@
   <code class='flag'>--[no]experimental_extra_action_top_level_only</code>
 </h4>
 <p>
+  <b>WARNING:</b> Extra actions are deprecated. Use
+  <a href="https://docs.bazel.build/versions/master/skylark/aspects.html">aspects</a>
+  instead.
+</p>
+<p>
   If this option is set to true, extra actions specified by the
   <a href='#flag--experimental_action_listener'> <code>
   --experimental_action_listener</code></a> command line option will only be
@@ -587,6 +597,11 @@
   <code class='flag'>--experimental_extra_action_filter=<var>regex</var></code>
 </h4>
 <p>
+  <b>WARNING:</b> Extra actions are deprecated. Use
+  <a href="https://docs.bazel.build/versions/master/skylark/aspects.html">aspects</a>
+  instead.
+</p>
+<p>
   The <code>experimental_extra_action_filter</code> option instructs Bazel to
   filter the set of targets to schedule <code>extra_actions</code> for.
 </p>
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisOptions.java
index 9f82f3b..73a44ea 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisOptions.java
@@ -63,22 +63,21 @@
   public int maxConfigChangesToShow;
 
   @Option(
-    name = "experimental_extra_action_filter",
-    defaultValue = "",
-    converter = RegexFilter.RegexFilterConverter.class,
-    documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
-    effectTags = {OptionEffectTag.UNKNOWN},
-    help = "Filters set of targets to schedule extra_actions for."
-  )
+      name = "experimental_extra_action_filter",
+      defaultValue = "",
+      converter = RegexFilter.RegexFilterConverter.class,
+      documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+      effectTags = {OptionEffectTag.UNKNOWN},
+      help =
+          "Deprecated in favor of aspects. Filters set of targets to schedule extra_actions for.")
   public RegexFilter extraActionFilter;
 
   @Option(
-    name = "experimental_extra_action_top_level_only",
-    defaultValue = "false",
-    documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
-    effectTags = {OptionEffectTag.UNKNOWN},
-    help = "Only schedules extra_actions for top level targets."
-  )
+      name = "experimental_extra_action_top_level_only",
+      defaultValue = "false",
+      documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+      effectTags = {OptionEffectTag.UNKNOWN},
+      help = "Deprecated in favor of aspects. Only schedules extra_actions for top level targets.")
   public boolean extraActionTopLevelOnly;
 
   @Option(
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
index ae8f08f4..3aa55bc 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
@@ -528,7 +528,9 @@
       documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
       effectTags = {OptionEffectTag.EXECUTION},
       metadataTags = {OptionMetadataTag.EXPERIMENTAL},
-      help = "Use action_listener to attach an extra_action to existing build actions.")
+      help =
+          "Deprecated in favor of aspects. Use action_listener to attach an extra_action to"
+              + " existing build actions.")
   public List<Label> actionListeners;
 
   @Option(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListenerRule.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListenerRule.java
index 987c6cb..b35e355 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListenerRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListenerRule.java
@@ -65,9 +65,9 @@
 /*<!-- #BLAZE_RULE (NAME = action_listener, FAMILY = Extra Actions)[GENERIC_RULE] -->
 
 <p>
-  <b>DISCLAIMER:</b>
-  This is an experimental feature, expect breaking changes when
-  implementing an <code>action_listener</code>/<code>extra_action</code>.
+  <b>WARNING:</b> Extra actions are deprecated. Use
+  <a href="https://docs.bazel.build/versions/master/skylark/aspects.html">aspects</a>
+  instead.
 </p>
 
 <p>
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionRule.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionRule.java
index 8299638..30f29aa 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionRule.java
@@ -131,6 +131,12 @@
 /*<!-- #BLAZE_RULE (NAME = extra_action, FAMILY = Extra Actions)[GENERIC_RULE] -->
 
 <p>
+  <b>WARNING:</b> Extra actions are deprecated. Use
+  <a href="https://docs.bazel.build/versions/master/skylark/aspects.html">aspects</a>
+  instead.
+</p>
+
+<p>
   An <code>extra_action</code> rule doesn't produce any meaningful output
   when specified as a regular build target. Instead, it allows tool developers
   to insert additional actions into the build graph that shadow existing actions.