[gnome-builder/wip/gtk4-port] Removed Since:-gtk-doc



commit b7418e29827e65bf61464cbc74e26dc66156a95e
Author: JCWasmx86 <JCWasmx86 t-online de>
Date:   Wed May 25 00:00:47 2022 +0200

    Removed Since:-gtk-doc

 src/libide/code/ide-buffer-addin.c                 |  20 ---
 src/libide/code/ide-buffer-change-monitor.c        |   4 -
 src/libide/code/ide-buffer.c                       | 140 ---------------------
 src/libide/code/ide-code-action-provider.c         |   2 -
 src/libide/code/ide-code-index-entries.c           |  12 --
 src/libide/code/ide-code-index-entry.c             |   8 --
 src/libide/code/ide-code-indexer.c                 |  10 --
 src/libide/code/ide-diagnostic-provider.c          |  10 --
 src/libide/code/ide-diagnostic.c                   |  24 ----
 src/libide/code/ide-diagnostics-manager.c          |  10 --
 src/libide/code/ide-diagnostics.c                  |   8 --
 src/libide/code/ide-diagnostics.h                  |   2 -
 src/libide/code/ide-file-settings.c                |   6 -
 src/libide/code/ide-highlight-engine.c             |  10 --
 src/libide/code/ide-highlight-index.c              |   4 -
 src/libide/code/ide-highlighter.c                  |   2 -
 src/libide/code/ide-highlighter.h                  |   2 -
 src/libide/code/ide-location.c                     |  16 ---
 src/libide/code/ide-range.c                        |   8 --
 src/libide/code/ide-rename-provider.c              |   4 -
 src/libide/code/ide-symbol-node.c                  |   2 -
 src/libide/code/ide-symbol-resolver.c              |  14 ---
 src/libide/code/ide-symbol-tree.c                  |   4 -
 src/libide/code/ide-symbol.c                       |   8 --
 src/libide/code/ide-text-edit.c                    |   8 --
 src/libide/code/ide-text-iter.c                    |  14 ---
 src/libide/code/ide-unsaved-file.c                 |   4 -
 src/libide/code/ide-unsaved-files.c                |   6 -
 src/libide/core/ide-build-ident.h.in               |   2 -
 src/libide/core/ide-context-addin.c                |  12 --
 src/libide/core/ide-context.c                      |  40 ------
 src/libide/core/ide-debug.h.in                     |  16 ---
 src/libide/core/ide-global.c                       |   8 --
 src/libide/core/ide-notification.c                 |  58 ---------
 src/libide/core/ide-notifications.c                |  18 ---
 src/libide/core/ide-object-box.c                   |  12 --
 src/libide/core/ide-object-notify.c                |   4 -
 src/libide/core/ide-object.c                       |  60 ---------
 src/libide/core/ide-settings.c                     |   4 -
 src/libide/core/ide-transfer-manager.c             |  18 ---
 src/libide/core/ide-transfer.c                     |   2 -
 src/libide/core/ide-version-macros.h               |   4 -
 src/libide/debugger/ide-debug-manager.c            |  24 ----
 src/libide/debugger/ide-debugger-address-map.c     |  10 --
 src/libide/debugger/ide-debugger-breakpoint.c      |  66 ----------
 src/libide/debugger/ide-debugger-breakpoints.c     |   8 --
 src/libide/debugger/ide-debugger-library.c         |   4 -
 src/libide/debugger/ide-debugger-types.h           |  12 --
 src/libide/debugger/ide-debugger.c                 | 130 -------------------
 src/libide/editor/ide-editor-page-addin.c          |   2 -
 src/libide/foundry/ide-build-manager.c             |  56 ---------
 src/libide/foundry/ide-build-system-discovery.c    |   2 -
 src/libide/foundry/ide-build-system.c              |  14 ---
 src/libide/foundry/ide-build-target-provider.c     |   4 -
 src/libide/foundry/ide-build-target.c              |  18 ---
 src/libide/foundry/ide-compile-commands.c          |  12 --
 src/libide/foundry/ide-config-manager.c            |  12 --
 src/libide/foundry/ide-config-provider.c           |  22 ----
 src/libide/foundry/ide-config.c                    |  34 -----
 src/libide/foundry/ide-deploy-strategy.c           |  12 --
 src/libide/foundry/ide-device-info.c               |   8 --
 src/libide/foundry/ide-device-manager.c            |  18 ---
 src/libide/foundry/ide-device-provider.c           |  14 ---
 src/libide/foundry/ide-device.c                    |  14 ---
 src/libide/foundry/ide-fallback-build-system.c     |   4 -
 src/libide/foundry/ide-foundry-compat.c            |  18 ---
 src/libide/foundry/ide-pipeline-addin.c            |   4 -
 src/libide/foundry/ide-pipeline-stage-launcher.c   |  12 --
 src/libide/foundry/ide-pipeline-stage.c            |  28 -----
 src/libide/foundry/ide-pipeline-stage.h            |  10 --
 src/libide/foundry/ide-pipeline.c                  | 102 ---------------
 src/libide/foundry/ide-run-manager.c               |   8 --
 src/libide/foundry/ide-runner.c                    |  34 -----
 src/libide/foundry/ide-runtime-manager.c           |   2 -
 src/libide/foundry/ide-runtime-provider.c          |   4 -
 src/libide/foundry/ide-runtime.c                   |  14 ---
 .../foundry/ide-simple-build-system-discovery.c    |   6 -
 src/libide/foundry/ide-simple-toolchain.c          |   2 -
 src/libide/foundry/ide-test-manager.c              |  24 ----
 src/libide/foundry/ide-test-provider.c             |   2 -
 src/libide/foundry/ide-test.c                      |  20 ---
 src/libide/foundry/ide-toolchain-manager.c         |   4 -
 src/libide/foundry/ide-toolchain-provider.c        |  12 --
 src/libide/foundry/ide-toolchain.c                 |  12 --
 src/libide/foundry/ide-triplet.c                   |  24 ----
 src/libide/greeter/ide-greeter-row.c               |   6 -
 src/libide/greeter/ide-greeter-section.c           |   8 --
 src/libide/gtk/ide-cell-renderer-fancy.c           |   2 -
 src/libide/gtk/ide-fancy-tree-view.c               |   4 -
 src/libide/gtk/ide-file-chooser-entry.c            |   2 -
 src/libide/gtk/ide-menu-manager.c                  |   4 -
 src/libide/gui/ide-application-addin.c             |  14 ---
 src/libide/gui/ide-application-addin.h             |   2 -
 src/libide/gui/ide-application-command-line.c      |   6 -
 src/libide/gui/ide-application-open.c              |   2 -
 src/libide/gui/ide-application-plugins.c           |   8 --
 src/libide/gui/ide-application.c                   |  12 --
 src/libide/gui/ide-frame-addin.c                   |   8 --
 src/libide/gui/ide-header-bar.c                    |   4 -
 src/libide/gui/ide-notification-list-box-row.c     |   4 -
 src/libide/gui/ide-omni-bar-addin.c                |   6 -
 src/libide/gui/ide-session.c                       |   4 -
 src/libide/gui/ide-workbench-addin.c               |   4 -
 src/libide/io/ide-content-type.c                   |   2 -
 src/libide/io/ide-directory-reaper.c               |   2 -
 src/libide/io/ide-file-transfer.c                  |   2 -
 src/libide/io/ide-gfile.c                          |  28 -----
 src/libide/io/ide-line-reader.c                    |   2 -
 src/libide/io/ide-marked-content.c                 |  16 ---
 src/libide/io/ide-path.c                           |   6 -
 src/libide/io/ide-persistent-map-builder.c         |   2 -
 src/libide/io/ide-persistent-map.c                 |   4 -
 src/libide/io/ide-pty-intercept.c                  |  14 ---
 src/libide/io/ide-recursive-file-monitor.c         |  10 --
 src/libide/lsp/ide-lsp-client.c                    |  10 --
 src/libide/lsp/ide-lsp-diagnostic.c                |   2 -
 src/libide/lsp/ide-lsp-service.c                   |   2 -
 src/libide/lsp/ide-lsp-util.c                      |   2 -
 src/libide/plugins/ide-extension-adapter.c         |   6 -
 src/libide/plugins/ide-extension-set-adapter.c     |   8 --
 src/libide/plugins/ide-extension-util.c            |   2 -
 src/libide/projects/ide-doap.c                     |   4 -
 src/libide/projects/ide-project-file.c             |  24 ----
 src/libide/projects/ide-project-info.c             |  18 ---
 src/libide/projects/ide-project-template.c         |   8 --
 src/libide/projects/ide-project-tree-addin.c       |   4 -
 src/libide/projects/ide-project.c                  |   2 -
 src/libide/projects/ide-projects-global.c          |   4 -
 src/libide/projects/ide-recent-projects.c          |   4 -
 src/libide/projects/ide-template-base.c            |   4 -
 src/libide/projects/ide-template-provider.c        |   2 -
 src/libide/search/ide-search-engine.c              |   8 --
 src/libide/search/ide-search-provider.c            |   2 -
 src/libide/search/ide-search-reducer.c             |  14 ---
 src/libide/sourceview/archive/ide-source-view.c    |  40 ------
 src/libide/terminal/ide-terminal-launcher.c        |   4 -
 src/libide/terminal/ide-terminal-popover.c         |   2 -
 src/libide/terminal/ide-terminal-search.c          |   7 --
 src/libide/threading/ide-cancellable.c             |   2 -
 src/libide/threading/ide-environment.c             |   6 -
 src/libide/threading/ide-gtask.c                   |   4 -
 src/libide/threading/ide-simple-subprocess.c       |   2 -
 src/libide/threading/ide-subprocess-launcher.c     |  12 --
 src/libide/threading/ide-subprocess-supervisor.c   |   4 -
 src/libide/threading/ide-subprocess.c              |  15 ---
 src/libide/threading/ide-task.c                    |  52 --------
 src/libide/threading/ide-thread-pool.c             |   6 -
 src/libide/threading/ide-thread-pool.h             |   1 -
 src/libide/tree/ide-tree-addin.c                   |   8 --
 src/libide/tree/ide-tree-model.c                   |  20 ---
 src/libide/tree/ide-tree-node.c                    | 102 ---------------
 src/libide/tree/ide-tree-node.h                    |   4 -
 src/libide/tree/ide-tree.c                         |   2 -
 src/libide/vcs/ide-vcs-branch.c                    |   4 -
 src/libide/vcs/ide-vcs-cloner.c                    |   8 --
 src/libide/vcs/ide-vcs-file-info.c                 |   2 -
 src/libide/vcs/ide-vcs-monitor.c                   |  16 ---
 src/libide/vcs/ide-vcs-tag.c                       |   2 -
 src/libide/vcs/ide-vcs-uri.c                       |   2 -
 src/libide/vcs/ide-vcs.c                           |  24 ----
 src/plugins/buildui/gbp-buildui-stage-row.c        |   2 -
 src/plugins/clang/ide-clang-client.c               |   2 -
 src/plugins/clang/ide-clang-completion-item.c      |   4 -
 src/plugins/clang/ide-clang-symbol-tree.c          |   2 -
 src/plugins/clang/ide-clang.c                      |  12 --
 src/plugins/cmake/gbp-cmake-toolchain.c            |   2 -
 .../gb-color-picker-document-monitor.c             |   6 -
 .../color-picker/gb-color-picker-editor-addin.c    |   2 -
 .../command-bar/gbp-command-bar-suggestion.c       |   2 -
 .../gbp-create-project-template-icon.c             |   2 -
 src/plugins/ctags/ide-ctags-index.c                |   2 -
 src/plugins/ctags/ide-ctags-service.c              |   2 -
 src/plugins/ctags/ide-ctags-symbol-tree.c          |   1 -
 .../debuggerui/ide-debugger-breakpoints-view.c     |   4 -
 .../debuggerui/ide-debugger-disassembly-view.c     |   2 -
 .../debuggerui/ide-debugger-libraries-view.c       |   2 -
 src/plugins/debuggerui/ide-debugger-locals-view.c  |   2 -
 .../debuggerui/ide-debugger-registers-view.c       |   2 -
 src/plugins/debuggerui/ide-debugger-threads-view.c |   2 -
 .../debuggerui/ide-debugger-workspace-addin.c      |   2 -
 src/plugins/flatpak/gbp-flatpak-download-stage.c   |   2 -
 src/plugins/gdb/gbp-gdb-debugger.c                 |   4 -
 src/plugins/git/daemon/ipc-git-remote-callbacks.c  |   2 -
 .../gbp-meson-toolchain-edition-preferences-row.c  |   2 -
 src/plugins/meson/gbp-meson-toolchain.c            |   2 -
 src/plugins/omni-gutter/gbp-omni-gutter-renderer.c |   2 -
 src/plugins/project-tree/gbp-new-file-popover.c    |   4 -
 src/plugins/snippets/snippets/gobject.snippets     |   2 -
 src/plugins/todo/gbp-todo-item.c                   |   2 -
 src/plugins/todo/gbp-todo-model.c                  |   6 -
 src/plugins/todo/gbp-todo-panel.c                  |   2 -
 src/plugins/xml-pack/ide-xml-service.c             |   2 -
 192 files changed, 2220 deletions(-)
---
diff --git a/src/libide/code/ide-buffer-addin.c b/src/libide/code/ide-buffer-addin.c
index d9b78b887..756f8db6f 100644
--- a/src/libide/code/ide-buffer-addin.c
+++ b/src/libide/code/ide-buffer-addin.c
@@ -43,8 +43,6 @@
  * may be used by views to show the misspelled words. This is preferrable
  * to adding a spellchecker in each view because it allows for multiple
  * views to share one spellcheker on the underlying buffer.
- *
- * Since: 3.32
  */
 
 G_DEFINE_INTERFACE (IdeBufferAddin, ide_buffer_addin, G_TYPE_OBJECT)
@@ -85,8 +83,6 @@ ide_buffer_addin_default_init (IdeBufferAddinInterface *iface)
  *
  * This calls the load virtual function of #IdeBufferAddin to request
  * that the addin load itself.
- *
- * Since: 3.32
  */
 void
 ide_buffer_addin_load (IdeBufferAddin *self,
@@ -110,8 +106,6 @@ ide_buffer_addin_load (IdeBufferAddin *self,
  *
  * The addin should cancel any in-flight operations and attempt to drop
  * references to the buffer or any other machinery as soon as possible.
- *
- * Since: 3.32
  */
 void
 ide_buffer_addin_unload (IdeBufferAddin *self,
@@ -135,8 +129,6 @@ ide_buffer_addin_unload (IdeBufferAddin *self,
  *
  * It is not guaranteed that this function will be called for addins that were
  * loaded after the buffer already loaded a file.
- *
- * Since: 3.32
  */
 void
 ide_buffer_addin_file_loaded (IdeBufferAddin *self,
@@ -160,8 +152,6 @@ ide_buffer_addin_file_loaded (IdeBufferAddin *self,
  *
  * This function gives a chance for plugins to modify the buffer right before
  * writing to disk.
- *
- * Since: 3.32
  */
 void
 ide_buffer_addin_save_file (IdeBufferAddin *self,
@@ -184,8 +174,6 @@ ide_buffer_addin_save_file (IdeBufferAddin *self,
  * @file: a #GFile
  *
  * This function is called for an addin after a file has been saved to disk.
- *
- * Since: 3.32
  */
 void
 ide_buffer_addin_file_saved (IdeBufferAddin *self,
@@ -209,8 +197,6 @@ ide_buffer_addin_file_saved (IdeBufferAddin *self,
  *
  * This vfunc is called when the source language in the buffer changes. This
  * will only be delivered to addins that support multiple languages.
- *
- * Since: 3.32
  */
 void
 ide_buffer_addin_language_set (IdeBufferAddin *self,
@@ -233,8 +219,6 @@ ide_buffer_addin_language_set (IdeBufferAddin *self,
  * changes provided by the user. It is a convenient way to know when you
  * should perform more background work without having to coalesce work
  * yourself.
- *
- * Since: 3.32
  */
 void
 ide_buffer_addin_change_settled (IdeBufferAddin *self,
@@ -254,8 +238,6 @@ ide_buffer_addin_change_settled (IdeBufferAddin *self,
  *
  * This function is called when the #GtkSourceStyleScheme of the #IdeBuffer
  * has changed.
- *
- * Since: 3.32
  */
 void
 ide_buffer_addin_style_scheme_changed (IdeBufferAddin *self,
@@ -277,8 +259,6 @@ ide_buffer_addin_style_scheme_changed (IdeBufferAddin *self,
  * that provides the addin.
  *
  * Returns: (transfer none) (nullable): An #IdeBufferAddin or %NULL
- *
- * Since: 3.32
  */
 IdeBufferAddin *
 ide_buffer_addin_find_by_module_name (IdeBuffer   *buffer,
diff --git a/src/libide/code/ide-buffer-change-monitor.c b/src/libide/code/ide-buffer-change-monitor.c
index b812bfb65..ae5b7759e 100644
--- a/src/libide/code/ide-buffer-change-monitor.c
+++ b/src/libide/code/ide-buffer-change-monitor.c
@@ -194,8 +194,6 @@ ide_buffer_change_monitor_reload (IdeBufferChangeMonitor *self)
  *
  * Calls @callback for every line between @line_begin and @line_end that have
  * an addition, deletion, or change.
- *
- * Since: 3.32
  */
 void
 ide_buffer_change_monitor_foreach_change (IdeBufferChangeMonitor            *self,
@@ -219,8 +217,6 @@ ide_buffer_change_monitor_foreach_change (IdeBufferChangeMonitor            *sel
  * Gets the #IdeBufferChangeMonitor:buffer property.
  *
  * Returns: (transfer none): an #IdeBuffer
- *
- * Since: 3.32
  */
 IdeBuffer *
 ide_buffer_change_monitor_get_buffer (IdeBufferChangeMonitor *self)
diff --git a/src/libide/code/ide-buffer.c b/src/libide/code/ide-buffer.c
index 0cc53ffcd..333be6406 100644
--- a/src/libide/code/ide-buffer.c
+++ b/src/libide/code/ide-buffer.c
@@ -700,8 +700,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * Sets the "buffer-manager" property, which is used by the buffer to
    * clean-up state when the buffer is no longer in use.
-   *
-   * Since: 3.32
    */
   properties [PROP_BUFFER_MANAGER] =
     g_param_spec_object ("buffer-manager",
@@ -716,8 +714,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * The "change-monitor" property is an #IdeBufferChangeMonitor that will be
    * used to track changes in the #IdeBuffer. This can be used to show line
    * changes in the editor gutter.
-   *
-   * Since: 3.32
    */
   properties [PROP_CHANGE_MONITOR] =
     g_param_spec_object ("change-monitor",
@@ -732,8 +728,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * The "changed-on-volume" property is set to %TRUE when it has been
    * discovered that the file represented by the #IdeBuffer has changed
    * externally to Builder.
-   *
-   * Since: 3.32
    */
   properties [PROP_CHANGED_ON_VOLUME] =
     g_param_spec_boolean ("changed-on-volume",
@@ -748,8 +742,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * The "enable-addins" property determines whether addins will be aware of
    * this buffer. When set to %FALSE no ide_buffer_addin_*() functions will be
    * called on this buffer.
-   *
-   * Since: 41.0
    */
   properties [PROP_ENABLE_ADDINS] =
     g_param_spec_boolean ("enable-addins",
@@ -763,8 +755,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * The "diagnostics" property contains an #IdeDiagnostics that represent
    * the diagnostics found in the buffer.
-   *
-   * Since: 3.32
    */
   properties [PROP_DIAGNOSTICS] =
     g_param_spec_object ("diagnostics",
@@ -778,8 +768,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * The "failed" property is %TRUE when the buffer has entered a failed
    * state such as when loading or saving the buffer to disk.
-   *
-   * Since: 3.32
    */
   properties [PROP_FAILED] =
     g_param_spec_boolean ("failed",
@@ -792,8 +780,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * IdeBuffer:file:
    *
    * The "file" property is the underlying file represented by the buffer.
-   *
-   * Since: 3.32
    */
   properties [PROP_FILE] =
     g_param_spec_object ("file",
@@ -810,8 +796,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * These are automatically discovered and kept up to date based on the
    * #IdeFileSettings extension points.
-   *
-   * Since: 3.32
    */
   properties [PROP_FILE_SETTINGS] =
     g_param_spec_object ("file-settings",
@@ -825,8 +809,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * The "has-diagnostics" property denotes that there are a non-zero number
    * of diangostics registered for the buffer.
-   *
-   * Since: 3.32
    */
   properties [PROP_HAS_DIAGNOSTICS] =
     g_param_spec_boolean ("has-diagnostics",
@@ -840,8 +822,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * The "has-symbol-resolvers" property is %TRUE if there are any symbol
    * resolvers loaded.
-   *
-   * Since: 3.32
    */
   properties [PROP_HAS_SYMBOL_RESOLVERS] =
     g_param_spec_boolean ("has-symbol-resolvers",
@@ -855,8 +835,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * The "highlight-diagnostics" property indicates that diagnostics which
    * are discovered should be styled.
-   *
-   * Since: 3.32
    */
   properties [PROP_HIGHLIGHT_DIAGNOSTICS] =
     g_param_spec_boolean ("highlight-diagnostics",
@@ -874,8 +852,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * to select the destination file.
    *
    * Upon saving the file, the property will change to %FALSE.
-   *
-   * Since: 3.32
    */
   properties [PROP_IS_TEMPORARY] =
     g_param_spec_boolean ("is-temporary",
@@ -889,8 +865,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * The "language-id" property is a convenience property to set the
    * #GtkSourceBuffer:langauge property using a string name.
-   *
-   * Since: 3.32
    */
   properties [PROP_LANGUAGE_ID] =
     g_param_spec_string ("language-id",
@@ -905,8 +879,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * The "read-only" property is set to %TRUE when it has been
    * discovered that the file represented by the #IdeBuffer is read-only
    * on the underlying storage.
-   *
-   * Since: 3.32
    */
   properties [PROP_READ_ONLY] =
     g_param_spec_boolean ("read-only",
@@ -921,8 +893,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * The "state" property can be used to determine if the buffer is
    * currently performing any specific background work, such as loading
    * from or saving a buffer to storage.
-   *
-   * Since: 3.32
    */
   properties [PROP_STATE] =
     g_param_spec_enum ("state",
@@ -938,8 +908,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * The "style-scheme-name" is the name of the style scheme that is used.
    * It is a convenience property so that you do not need to use the
    * #GtkSourceStyleSchemeManager to lookup style schemes.
-   *
-   * Since: 3.32
    */
   properties [PROP_STYLE_SCHEME_NAME] =
     g_param_spec_string ("style-scheme-name",
@@ -953,8 +921,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * The "title" for the buffer which includes some variant of the path
    * to the underlying file.
-   *
-   * Since: 3.32
    */
   properties [PROP_TITLE] =
     g_param_spec_string ("title",
@@ -973,8 +939,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * being edited for a short period of time. This is useful to connect
    * to when you want to perform work as the user is editing, but you
    * don't want to get in the way of their editing.
-   *
-   * Since: 3.32
    */
   signals [CHANGE_SETTLED] =
     g_signal_new ("change-settled",
@@ -995,8 +959,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * The "line-flags-changed" signal is emitted when the buffer has detected
    * ancillary information has changed for lines in the buffer. Such information
    * might include diagnostics or version control information.
-   *
-   * Since: 3.32
    */
   signals [LINE_FLAGS_CHANGED] =
     g_signal_new_class_handler ("line-flags-changed",
@@ -1018,8 +980,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    *
    * This is useful to watch if you want to perform a given action but do
    * not want to interfere with buffer loading.
-   *
-   * Since: 3.32
    */
   signals [LOADED] =
     g_signal_new_class_handler ("loaded",
@@ -1039,8 +999,6 @@ ide_buffer_class_init (IdeBufferClass *klass)
    * Requests that attached views scroll to insert location.
    *
    * This is generally only used when loading a buffer.
-   *
-   * Since: 3.32
    */
   signals [REQUEST_SCROLL_TO_INSERT] =
     g_signal_new_class_handler ("request-scroll-to-insert",
@@ -1288,8 +1246,6 @@ _ide_buffer_attach (IdeBuffer *self,
  * Gets the #IdeBuffer:file property.
  *
  * Returns: (transfer none): a #GFile
- *
- * Since: 3.32
  */
 GFile *
 ide_buffer_get_file (IdeBuffer *self)
@@ -1313,8 +1269,6 @@ ide_buffer_get_file (IdeBuffer *self)
  * Gets the URI for the underlying file and returns a copy of it.
  *
  * Returns: (transfer full): a new string
- *
- * Since: 3.32
  */
 gchar *
 ide_buffer_dup_uri (IdeBuffer *self)
@@ -1333,8 +1287,6 @@ ide_buffer_dup_uri (IdeBuffer *self)
  * when the user requests to save the buffer.
  *
  * Returns: %TRUE if the buffer is for a temporary file
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_get_is_temporary (IdeBuffer *self)
@@ -1354,8 +1306,6 @@ ide_buffer_get_is_temporary (IdeBuffer *self)
  * This will changed while files are loaded or saved to disk.
  *
  * Returns: an #IdeBufferState
- *
- * Since: 3.32
  */
 IdeBufferState
 ide_buffer_get_state (IdeBuffer *self)
@@ -1517,8 +1467,6 @@ _ide_buffer_load_file_async (IdeBuffer            *self,
  * that the completion of signals and addins may be notified.
  *
  * Returns: %TRUE if the file was successfully loaded
- *
- * Since: 3.32
  */
 gboolean
 _ide_buffer_load_file_finish (IdeBuffer     *self,
@@ -1687,8 +1635,6 @@ ide_buffer_save_file_settle_cb (GObject      *object,
  *
  * @callback is executed upon completion and should call
  * ide_buffer_save_file_finish() to get the result of the operation.
- *
- * Since: 3.32
  */
 void
 ide_buffer_save_file_async (IdeBuffer            *self,
@@ -1813,8 +1759,6 @@ set_out_param:
  * ide_buffer_save_file_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_save_file_finish (IdeBuffer     *self,
@@ -1835,8 +1779,6 @@ ide_buffer_save_file_finish (IdeBuffer     *self,
  * A helper to get the language identifier of the buffers current language.
  *
  * Returns: (nullable): a string containing the language id, or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_buffer_get_language_id (IdeBuffer *self)
@@ -1905,8 +1847,6 @@ _ide_buffer_set_failure (IdeBuffer    *self,
  * buffer.
  *
  * Returns: (transfer none): a #GError, or %NULL
- *
- * Since: 3.32
  */
 const GError *
 ide_buffer_get_failure (IdeBuffer *self)
@@ -1925,8 +1865,6 @@ ide_buffer_get_failure (IdeBuffer *self)
  * in some aspect such as loading or saving.
  *
  * Returns: %TRUE if the buffer is in a failed state
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_get_failed (IdeBuffer *self)
@@ -1994,8 +1932,6 @@ ide_buffer_reload_file_settings (IdeBuffer *self)
  * to calling ide_buffer_get_state() and checking for %IDE_BUFFER_STATE_LOADING.
  *
  * Returns: %TRUE if the buffer is loading; otherwise %FALSE.
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_get_loading (IdeBuffer *self)
@@ -2142,8 +2078,6 @@ ide_buffer_insert_text (GtkTextBuffer *buffer,
  * externally from this #IdeBuffer.
  *
  * Returns: %TRUE if @self is known to be modified on storage
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_get_changed_on_volume (IdeBuffer *self)
@@ -2163,8 +2097,6 @@ ide_buffer_get_changed_on_volume (IdeBuffer *self)
  *
  * Set this to %TRUE if the buffer has been discovered to have changed
  * outside of this buffer.
- *
- * Since: 3.32
  */
 void
 _ide_buffer_set_changed_on_volume (IdeBuffer *self,
@@ -2192,8 +2124,6 @@ _ide_buffer_set_changed_on_volume (IdeBuffer *self,
  * the user about saving the file.
  *
  * Returns: %TRUE if the underlying file is read-only
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_get_read_only (IdeBuffer *self)
@@ -2211,8 +2141,6 @@ ide_buffer_get_read_only (IdeBuffer *self)
  *
  * Sets the #IdeBuffer:read-only property, which should be set when the buffer
  * has been discovered to be read-only on disk.
- *
- * Since: 3.32
  */
 void
 _ide_buffer_set_read_only (IdeBuffer *self,
@@ -2238,8 +2166,6 @@ _ide_buffer_set_read_only (IdeBuffer *self,
  * property.
  *
  * Returns: (nullable): a string containing the style scheme or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_buffer_get_style_scheme_name (IdeBuffer *self)
@@ -2262,8 +2188,6 @@ ide_buffer_get_style_scheme_name (IdeBuffer *self)
  *
  * Sets the #IdeBuffer:style-scheme property by locating the style scheme
  * matching @style_scheme_name.
- *
- * Since: 3.32
  */
 void
 ide_buffer_set_style_scheme_name (IdeBuffer   *self,
@@ -2290,8 +2214,6 @@ ide_buffer_set_style_scheme_name (IdeBuffer   *self,
  * make this relative to the project workdir if possible.
  *
  * Returns: (transfer full): a string containing a title
- *
- * Since: 3.32
  */
 gchar *
 ide_buffer_dup_title (IdeBuffer *self)
@@ -2339,8 +2261,6 @@ ide_buffer_dup_title (IdeBuffer *self)
  * Checks if diagnostics should be highlighted.
  *
  * Returns: %TRUE if diagnostics should be highlighted
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_get_highlight_diagnostics (IdeBuffer *self)
@@ -2358,8 +2278,6 @@ ide_buffer_get_highlight_diagnostics (IdeBuffer *self)
  * Sets the #IdeBuffer:highlight-diagnostics property.
  *
  * If set to %TRUE, diagnostics will be styled in the buffer.
- *
- * Since: 3.32
  */
 void
 ide_buffer_set_highlight_diagnostics (IdeBuffer *self,
@@ -2387,8 +2305,6 @@ ide_buffer_set_highlight_diagnostics (IdeBuffer *self,
  * Gets an #IdeLocation for the position represented by @iter.
  *
  * Returns: (transfer full): an #IdeLocation
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_buffer_get_iter_location (IdeBuffer         *self,
@@ -2410,8 +2326,6 @@ ide_buffer_get_iter_location (IdeBuffer         *self,
  * Gets an #IdeRange to represent the current buffer selection.
  *
  * Returns: (transfer full): an #IdeRange
- *
- * Since: 3.32
  */
 IdeRange *
 ide_buffer_get_selection_range (IdeBuffer *self)
@@ -2439,8 +2353,6 @@ ide_buffer_get_selection_range (IdeBuffer *self)
  * Gets the monotonic change count for the buffer.
  *
  * Returns: the change count for the buffer
- *
- * Since: 3.32
  */
 guint
 ide_buffer_get_change_count (IdeBuffer *self)
@@ -2490,8 +2402,6 @@ ide_buffer_delay_settling (IdeBuffer *self)
  * Sets the #IdeDiagnostics for the buffer. These will be used to highlight
  * the buffer for errors and warnings if #IdeBuffer:highlight-diagnostics
  * is %TRUE.
- *
- * Since: 3.32
  */
 void
 ide_buffer_set_diagnostics (IdeBuffer      *self,
@@ -2533,8 +2443,6 @@ ide_buffer_set_diagnostics (IdeBuffer      *self,
  * Gets the #IdeDiagnostics for the buffer if any have been registered.
  *
  * Returns: (transfer none) (nullable): an #IdeDiagnostics or %NULL
- *
- * Since: 3.32
  */
 IdeDiagnostics *
 ide_buffer_get_diagnostics (IdeBuffer *self)
@@ -2552,8 +2460,6 @@ ide_buffer_get_diagnostics (IdeBuffer *self)
  * Returns %TRUE if any diagnostics have been registered for the buffer.
  *
  * Returns: %TRUE if there are a non-zero number of diagnostics.
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_has_diagnostics (IdeBuffer *self)
@@ -2740,8 +2646,6 @@ ide_buffer_apply_diagnostics (IdeBuffer *self)
  * @location: a #IdeLocation
  *
  * Set @iter to the position designated by @location.
- *
- * Since: 3.32
  */
 void
 ide_buffer_get_iter_at_location (IdeBuffer   *self,
@@ -2783,8 +2687,6 @@ ide_buffer_get_iter_at_location (IdeBuffer   *self,
  * Gets the #IdeBuffer:change-monitor for the buffer.
  *
  * Returns: (transfer none) (nullable): an #IdeBufferChangeMonitor or %NULL
- *
- * Since: 3.32
  */
 IdeBufferChangeMonitor *
 ide_buffer_get_change_monitor (IdeBuffer *self)
@@ -2800,8 +2702,6 @@ ide_buffer_get_change_monitor (IdeBuffer *self)
  * @change_monitor: (nullable): an #IdeBufferChangeMonitor or %NULL
  *
  * Sets an #IdeBufferChangeMonitor to use for the buffer.
- *
- * Since: 3.32
  */
 void
 ide_buffer_set_change_monitor (IdeBuffer              *self,
@@ -2872,8 +2772,6 @@ ide_buffer_can_do_newline_hack (IdeBuffer *self,
  * if the content is out of sync.
  *
  * Returns: (transfer full): a #GBytes containing the buffer content.
- *
- * Since: 3.32
  */
 GBytes *
 ide_buffer_dup_content (IdeBuffer *self)
@@ -2987,8 +2885,6 @@ ide_buffer_format_selection_range_cb (GObject      *object,
  * @user_data: user data for @callback
  *
  * Formats the selection using an available #IdeFormatter for the buffer.
- *
- * Since: 3.32
  */
 void
 ide_buffer_format_selection_async (IdeBuffer           *self,
@@ -3062,8 +2958,6 @@ ide_buffer_format_selection_async (IdeBuffer           *self,
  * Completes an asynchronous request to ide_buffer_format_selection_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_format_selection_finish (IdeBuffer     *self,
@@ -3114,8 +3008,6 @@ ide_buffer_query_code_action_cb(GObject      *object,
  * @user_data: user data for @callback
  *
  * Queries for code actions in the current buffer.
- *
- * Since: 42.0
  */
 void
 ide_buffer_code_action_query_async(IdeBuffer           *self,
@@ -3169,8 +3061,6 @@ ide_buffer_code_action_query_async(IdeBuffer           *self,
  * Completes an asynchronous request to ide_buffer_query_code_action_async().
  *
  * Returns: (transfer full) (element-type IdeCodeAction): a #GPtrArray of #IdeCodeAction.
- *
- * Since: 42.0
  */
 GPtrArray*
 ide_buffer_code_action_query_finish(IdeBuffer     *self,
@@ -3196,8 +3086,6 @@ ide_buffer_code_action_query_finish(IdeBuffer     *self,
  * Gets the location of the insert mark as an #IdeLocation.
  *
  * Returns: (transfer full): An #IdeLocation
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_buffer_get_insert_location (IdeBuffer *self)
@@ -3222,8 +3110,6 @@ ide_buffer_get_insert_location (IdeBuffer *self)
  * Gets the word found under the position denoted by @iter.
  *
  * Returns: (transfer full): A newly allocated string.
- *
- * Since: 3.32
  */
 gchar *
 ide_buffer_get_word_at_iter (IdeBuffer         *self,
@@ -3255,8 +3141,6 @@ ide_buffer_get_word_at_iter (IdeBuffer         *self,
  *
  * Returns: (nullable) (transfer none): An #IdeRenameProvider or %NULL if
  *   there is no #IdeRenameProvider that can statisfy the buffer.
- *
- * Since: 3.32
  */
 IdeRenameProvider *
 ide_buffer_get_rename_provider (IdeBuffer *self)
@@ -3280,8 +3164,6 @@ ide_buffer_get_rename_provider (IdeBuffer *self)
  * syntax are chnaged.
  *
  * Returns: (transfer none) (nullable): an #IdeFileSettings or %NULL
- *
- * Since: 3.32
  */
 IdeFileSettings *
 ide_buffer_get_file_settings (IdeBuffer *self)
@@ -3298,8 +3180,6 @@ ide_buffer_get_file_settings (IdeBuffer *self)
  * Locates the #IdeContext for the buffer and returns it.
  *
  * Returns: (transfer full): an #IdeContext
- *
- * Since: 3.32
  */
 IdeContext *
 ide_buffer_ref_context (IdeBuffer *self)
@@ -3562,8 +3442,6 @@ ide_buffer_init_tags (IdeBuffer *self)
  * Gets an #IdeFormatter for the buffer, if any.
  *
  * Returns: (transfer none) (nullable): an #IdeFormatter or %NULL
- *
- * Since: 3.32
  */
 IdeFormatter *
 ide_buffer_get_formatter (IdeBuffer *self)
@@ -3593,8 +3471,6 @@ _ide_buffer_sync_to_unsaved_files (IdeBuffer *self)
  * @self: an #IdeBuffer
  *
  * Force @self to rebuild the highlighted words.
- *
- * Since: 3.32
  */
 void
 ide_buffer_rehighlight (IdeBuffer *self)
@@ -3695,8 +3571,6 @@ ide_buffer_get_symbol_at_location_cb (GObject      *object,
  * @user_data: a #gpointer to hold user data
  *
  * Asynchronously get a possible symbol at @location.
- *
- * Since: 3.32
  */
 void
 ide_buffer_get_symbol_at_location_async (IdeBuffer           *self,
@@ -3777,8 +3651,6 @@ ide_buffer_get_symbol_at_location_async (IdeBuffer           *self,
  * Completes an asynchronous request to locate a symbol at a location.
  *
  * Returns: (transfer full): An #IdeSymbol or %NULL.
- *
- * Since: 3.32
  */
 IdeSymbol *
 ide_buffer_get_symbol_at_location_finish (IdeBuffer     *self,
@@ -3804,8 +3676,6 @@ ide_buffer_get_symbol_at_location_finish (IdeBuffer     *self,
  *
  * Calling gtk_text_iter_order() with the results of this function would be
  * equivalent to calling gtk_text_buffer_get_selection_bounds().
- *
- * Since: 3.32
  */
 void
 ide_buffer_get_selection_bounds (IdeBuffer   *self,
@@ -3857,8 +3727,6 @@ ide_buffer_get_symbol_resolvers_cb (IdeExtensionSetAdapter *set,
  *
  * Returns: (transfer full) (element-type IdeSymbolResolver): a #GPtrArray
  *   of #IdeSymbolResolver.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_buffer_get_symbol_resolvers (IdeBuffer *self)
@@ -3887,8 +3755,6 @@ ide_buffer_get_symbol_resolvers (IdeBuffer *self)
  *
  * Returns: (transfer full) (nullable): a string containing the line's text
  *   or %NULL if the line does not exist.
- *
- * Since: 3.32
  */
 gchar *
 ide_buffer_get_line_text (IdeBuffer *self,
@@ -3998,8 +3864,6 @@ _ide_buffer_cancel_cursor_restore (IdeBuffer *self)
  * When the hold count reaches zero, the buffer will be destroyed.
  *
  * Returns: (transfer full): @self
- *
- * Since: 3.32
  */
 IdeBuffer *
 ide_buffer_hold (IdeBuffer *self)
@@ -4038,8 +3902,6 @@ ide_buffer_release_in_idle (gpointer data)
  *
  * The buffer will be destroyed and unloaded when the hold count
  * reaches zero.
- *
- * Since: 3.32
  */
 void
 ide_buffer_release (IdeBuffer *self)
@@ -4089,8 +3951,6 @@ _ide_buffer_line_flags_changed (IdeBuffer *self)
  * Checks if any symbol resolvers are available.
  *
  * Returns: %TRUE if at least one symbol resolvers is available
- *
- * Since: 3.32
  */
 gboolean
 ide_buffer_has_symbol_resolvers (IdeBuffer *self)
diff --git a/src/libide/code/ide-code-action-provider.c b/src/libide/code/ide-code-action-provider.c
index 4770a6f87..260b0681b 100644
--- a/src/libide/code/ide-code-action-provider.c
+++ b/src/libide/code/ide-code-action-provider.c
@@ -101,8 +101,6 @@ ide_code_action_provider_query_async (IdeCodeActionProvider *self,
  * Completes an asynchronous request to ide_code_action_provider_query_async().
  *
  * Returns: (transfer full) (element-type IdeCodeAction): a #GPtrArray of #IdeCodeAction.
- *
- * Since: 42.0
  */
 GPtrArray*
 ide_code_action_provider_query_finish (IdeCodeActionProvider  *self,
diff --git a/src/libide/code/ide-code-index-entries.c b/src/libide/code/ide-code-index-entries.c
index 08fa2e728..cd19e4406 100644
--- a/src/libide/code/ide-code-index-entries.c
+++ b/src/libide/code/ide-code-index-entries.c
@@ -95,8 +95,6 @@ ide_code_index_entries_default_init (IdeCodeIndexEntriesInterface *iface)
  * When all of the entries have been exhausted, %NULL should be returned.
  *
  * Returns: (nullable) (transfer full): An #IdeCodeIndexEntry.
- *
- * Since: 3.32
  */
 IdeCodeIndexEntry *
 ide_code_index_entries_get_next_entry (IdeCodeIndexEntries *self)
@@ -114,8 +112,6 @@ ide_code_index_entries_get_next_entry (IdeCodeIndexEntries *self)
  * The file that was indexed.
  *
  * Returns: (transfer full): a #GFile
- *
- * Since: 3.32
  */
 GFile *
 ide_code_index_entries_get_file (IdeCodeIndexEntries *self)
@@ -136,8 +132,6 @@ ide_code_index_entries_get_file (IdeCodeIndexEntries *self)
  * Requests the next set of results from the code index asynchronously.
  * This allows implementations to possibly process data off the main thread
  * without blocking the main loop.
- *
- * Since: 3.32
  */
 void
 ide_code_index_entries_next_entries_async (IdeCodeIndexEntries *self,
@@ -162,8 +156,6 @@ ide_code_index_entries_next_entries_async (IdeCodeIndexEntries *self,
  *
  * Returns: (transfer full) (element-type IdeCodeIndexEntry): a #GPtrArray
  *   of #IdeCodeIndexEntry.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_code_index_entries_next_entries_finish (IdeCodeIndexEntries  *self,
@@ -225,8 +217,6 @@ ide_code_index_entries_collect_cb (GObject      *object,
  *
  * Calls ide_code_index_entries_next_entries_async() repeatedly until all
  * entries have been retrieved. After that, the async operation will complete.
- *
- * Since: 3.32
  */
 void
 ide_code_index_entries_collect_async (IdeCodeIndexEntries *self,
@@ -252,8 +242,6 @@ ide_code_index_entries_collect_async (IdeCodeIndexEntries *self,
  *
  * Returns: (transfer full) (element-type IdeCodeIndexEntry): an array of #IdeCodeIndexEntry
  *   or %NULL and @error is set
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_code_index_entries_collect_finish (IdeCodeIndexEntries  *self,
diff --git a/src/libide/code/ide-code-index-entry.c b/src/libide/code/ide-code-index-entry.c
index 70cd5bd95..05490aad3 100644
--- a/src/libide/code/ide-code-index-entry.c
+++ b/src/libide/code/ide-code-index-entry.c
@@ -34,8 +34,6 @@
  * indexed in the code index. It is an immutable data object so that it can be
  * passed between threads where data is indexed. Plugins should use
  * #IdeCodeIndexEntryBuilder to create index entries.
- *
- * Since: 3.32
  */
 
 struct _IdeCodeIndexEntry
@@ -131,8 +129,6 @@ ide_code_index_entry_get_flags (const IdeCodeIndexEntry *self)
  * @begin_line_offset: (out): first line offset
  * @end_line: (out): last line
  * @end_line_offset: (out): last line offset
- *
- * Since: 3.32
  */
 void
 ide_code_index_entry_get_range (const IdeCodeIndexEntry *self,
@@ -239,8 +235,6 @@ ide_code_index_entry_builder_set_kind (IdeCodeIndexEntryBuilder *builder,
  * Creates an immutable #IdeCodeIndexEntry from the builder content.
  *
  * Returns: (transfer full): an #IdeCodeIndexEntry
- *
- * Since: 3.32
  */
 IdeCodeIndexEntry *
 ide_code_index_entry_builder_build (IdeCodeIndexEntryBuilder *builder)
@@ -255,8 +249,6 @@ ide_code_index_entry_builder_build (IdeCodeIndexEntryBuilder *builder)
  * @builder: a #IdeCodeIndexEntryBuilder
  *
  * Returns: (transfer full): a deep copy of @builder
- *
- * Since: 3.32
  */
 IdeCodeIndexEntryBuilder *
 ide_code_index_entry_builder_copy (IdeCodeIndexEntryBuilder *builder)
diff --git a/src/libide/code/ide-code-indexer.c b/src/libide/code/ide-code-indexer.c
index 0c1c903ce..e2251003e 100644
--- a/src/libide/code/ide-code-indexer.c
+++ b/src/libide/code/ide-code-indexer.c
@@ -38,8 +38,6 @@
  * Python source code, you might use:
  *
  *   X-Code-Indexer-Languages=python,python3
- *
- * Since: 3.32
  */
 
 G_DEFINE_INTERFACE (IdeCodeIndexer, ide_code_indexer, IDE_TYPE_OBJECT)
@@ -125,8 +123,6 @@ ide_code_indexer_default_init (IdeCodeIndexerInterface *iface)
  * This function will take index source file and create an array of symbols in
  * @file. @callback is called upon completion and must call
  * ide_code_indexer_index_file_finish() to complete the operation.
- *
- * Since: 3.32
  */
 void
 ide_code_indexer_index_file_async (IdeCodeIndexer      *self,
@@ -163,8 +159,6 @@ ide_code_indexer_index_file_async (IdeCodeIndexer      *self,
  *
  * Returns: (transfer full): an #IdeCodeIndexEntries if successful; otherwise %NULL
  *   and @error is set.
- *
- * Since: 3.32
  */
 IdeCodeIndexEntries *
 ide_code_indexer_index_file_finish (IdeCodeIndexer  *self,
@@ -190,8 +184,6 @@ ide_code_indexer_index_file_finish (IdeCodeIndexer  *self,
  * This function will get key of reference located at #IdeSoureLocation.
  *
  * In 3.30 this function gained the @build_flags parameter.
- *
- * Since: 3.32
  */
 void
 ide_code_indexer_generate_key_async (IdeCodeIndexer      *self,
@@ -218,8 +210,6 @@ ide_code_indexer_generate_key_async (IdeCodeIndexer      *self,
  * Returns key for declaration of reference at a location.
  *
  * Returns: (transfer full) : A string which contains key.
- *
- * Since: 3.32
  */
 gchar *
 ide_code_indexer_generate_key_finish (IdeCodeIndexer  *self,
diff --git a/src/libide/code/ide-diagnostic-provider.c b/src/libide/code/ide-diagnostic-provider.c
index 134901356..5c7bd1475 100644
--- a/src/libide/code/ide-diagnostic-provider.c
+++ b/src/libide/code/ide-diagnostic-provider.c
@@ -42,8 +42,6 @@ ide_diagnostic_provider_default_init (IdeDiagnosticProviderInterface *iface)
    *
    * This signal should be emitted by diagnostic providers when they know their
    * diagnostics have been invalidated out-of-band.
-   *
-   * Since: 3.32
    */
   signals [INVALIDATED] =
     g_signal_new ("invalidated",
@@ -57,8 +55,6 @@ ide_diagnostic_provider_default_init (IdeDiagnosticProviderInterface *iface)
  * @self: a #IdeDiagnosticProvider
  *
  * Loads the provider, discovering any necessary resources.
- *
- * Since: 3.32
  */
 void
 ide_diagnostic_provider_load (IdeDiagnosticProvider *self)
@@ -74,8 +70,6 @@ ide_diagnostic_provider_load (IdeDiagnosticProvider *self)
  * @self: a #IdeDiagnosticProvider
  *
  * Unloads the provider and any allocated resources.
- *
- * Since: 3.32
  */
 void
 ide_diagnostic_provider_unload (IdeDiagnosticProvider *self)
@@ -101,8 +95,6 @@ ide_diagnostic_provider_unload (IdeDiagnosticProvider *self)
  *
  * @callback is executed upon completion, and the caller should call
  * ide_diagnostic_provider_diagnose_finish() to get the result.
- *
- * Since: 3.32
  */
 void
 ide_diagnostic_provider_diagnose_async (IdeDiagnosticProvider *self,
@@ -133,8 +125,6 @@ ide_diagnostic_provider_diagnose_async (IdeDiagnosticProvider *self,
  * Completes an asynchronous request to diagnose a file.
  *
  * Returns: (transfer full): an #IdeDiagnostics or %NULL and @error is set.
- *
- * Since: 3.32
  */
 IdeDiagnostics *
 ide_diagnostic_provider_diagnose_finish (IdeDiagnosticProvider  *self,
diff --git a/src/libide/code/ide-diagnostic.c b/src/libide/code/ide-diagnostic.c
index fdee6b3f4..722073067 100644
--- a/src/libide/code/ide-diagnostic.c
+++ b/src/libide/code/ide-diagnostic.c
@@ -215,8 +215,6 @@ ide_diagnostic_init (IdeDiagnostic *self)
  * See also: ide_diagnostic_get_range().
  *
  * Returns: (transfer none) (nullable): an #IdeLocation or %NULL
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_diagnostic_get_location (IdeDiagnostic *self)
@@ -244,8 +242,6 @@ ide_diagnostic_get_location (IdeDiagnostic *self)
  * Gets the file containing the diagnostic, if any.
  *
  * Returns: (transfer none) (nullable): an #IdeLocation or %NULL
- *
- * Since: 3.32
  */
 GFile *
 ide_diagnostic_get_file (IdeDiagnostic *self)
@@ -273,8 +269,6 @@ ide_diagnostic_get_file (IdeDiagnostic *self)
  *
  * Returns: (transfer full): string containing the text formatted for
  *   display.
- *
- * Since: 3.32
  */
 gchar *
 ide_diagnostic_get_text_for_display (IdeDiagnostic *self)
@@ -306,8 +300,6 @@ ide_diagnostic_get_text_for_display (IdeDiagnostic *self)
  * Returns a string suitable to represent the diagnsotic severity.
  *
  * Returns: a string
- *
- * Since: 3.32
  */
 const gchar *
 ide_diagnostic_severity_to_string (IdeDiagnosticSeverity severity)
@@ -357,8 +349,6 @@ ide_diagnostic_get_n_ranges (IdeDiagnostic *self)
  * function with a value greater or equal to ide_diagnostic_get_n_ranges().
  *
  * Returns: (transfer none) (nullable): An #IdeRange
- *
- * Since: 3.32
  */
 IdeRange *
 ide_diagnostic_get_range (IdeDiagnostic *self,
@@ -396,8 +386,6 @@ ide_diagnostic_get_n_fixits (IdeDiagnostic *self)
  * returned from ide_diagnostic_get_n_fixits().
  *
  * Returns: (transfer none) (nullable): An #IdeTextEdit
- *
- * Since: 3.32
  */
 IdeTextEdit *
 ide_diagnostic_get_fixit (IdeDiagnostic *self,
@@ -468,8 +456,6 @@ ide_diagnostic_get_severity (IdeDiagnostic *self)
  * @range: an #IdeRange
  *
  * Adds a source range to the diagnostic.
- *
- * Since: 3.32
  */
 void
 ide_diagnostic_add_range (IdeDiagnostic *self,
@@ -492,8 +478,6 @@ ide_diagnostic_add_range (IdeDiagnostic *self,
  *
  * Adds a source range to the diagnostic, but does not increment the
  * reference count of @range.
- *
- * Since: 3.32
  */
 void
 ide_diagnostic_take_range (IdeDiagnostic *self,
@@ -515,8 +499,6 @@ ide_diagnostic_take_range (IdeDiagnostic *self,
  * @fixit: an #IdeTextEdit
  *
  * Adds a source fixit to the diagnostic.
- *
- * Since: 3.32
  */
 void
 ide_diagnostic_add_fixit (IdeDiagnostic *self,
@@ -539,8 +521,6 @@ ide_diagnostic_add_fixit (IdeDiagnostic *self,
  *
  * Adds a source fixit to the diagnostic, but does not increment the
  * reference count of @fixit.
- *
- * Since: 3.32
  */
 void
 ide_diagnostic_take_fixit (IdeDiagnostic *self,
@@ -628,8 +608,6 @@ ide_diagnostic_equal (IdeDiagnostic *a,
  * This function will never return a floating variant.
  *
  * Returns: (transfer full): a #GVariant
- *
- * Since: 3.32
  */
 GVariant *
 ide_diagnostic_to_variant (IdeDiagnostic *self)
@@ -699,8 +677,6 @@ ide_diagnostic_to_variant (IdeDiagnostic *self)
  * If @variant is %NULL or Upon failure, %NULL is returned.
  *
  * Returns: (nullable) (transfer full): a #IdeDiagnostic or %NULL
- *
- * Since: 3.32
  */
 IdeDiagnostic *
 ide_diagnostic_new_from_variant (GVariant *variant)
diff --git a/src/libide/code/ide-diagnostics-manager.c b/src/libide/code/ide-diagnostics-manager.c
index a1ee668a0..1d86e3def 100644
--- a/src/libide/code/ide-diagnostics-manager.c
+++ b/src/libide/code/ide-diagnostics-manager.c
@@ -589,8 +589,6 @@ ide_diagnostics_manager_class_init (IdeDiagnosticsManagerClass *klass)
    *
    * This signal is emitted when the diagnostics have changed for any
    * file managed by the IdeDiagnosticsManager.
-   *
-   * Since: 3.32
    */
   signals [CHANGED] =
     g_signal_new ("changed",
@@ -852,8 +850,6 @@ ide_diagnostics_manager_extension_removed (IdeExtensionSetAdapter *adapter,
  * Gets if the diagnostics manager is currently executing a diagnosis.
  *
  * Returns: %TRUE if the #IdeDiagnosticsManager is busy diagnosing.
- *
- * Since: 3.32
  */
 gboolean
 ide_diagnostics_manager_get_busy (IdeDiagnosticsManager *self)
@@ -893,8 +889,6 @@ ide_diagnostics_manager_get_busy (IdeDiagnosticsManager *self)
  * a %NULL value.
  *
  * Returns: (transfer full): A new #IdeDiagnostics.
- *
- * Since: 3.32
  */
 IdeDiagnostics *
 ide_diagnostics_manager_get_diagnostics_for_file (IdeDiagnosticsManager *self,
@@ -974,8 +968,6 @@ ide_diagnostics_manager_get_sequence_for_file (IdeDiagnosticsManager *self,
  *
  * You may want to call this if you changed something that a buffer depends on,
  * and want to seamlessly update its diagnostics with that updated information.
- *
- * Since: 3.32
  */
 void
 ide_diagnostics_manager_rediagnose (IdeDiagnosticsManager *self,
@@ -1001,8 +993,6 @@ ide_diagnostics_manager_rediagnose (IdeDiagnosticsManager *self,
  * Gets the diagnostics manager for the context.
  *
  * Returns: (transfer none): an #IdeDiagnosticsManager
- *
- * Since: 3.32
  */
 IdeDiagnosticsManager *
 ide_diagnostics_manager_from_context (IdeContext *context)
diff --git a/src/libide/code/ide-diagnostics.c b/src/libide/code/ide-diagnostics.c
index af9713787..03f73a87d 100644
--- a/src/libide/code/ide-diagnostics.c
+++ b/src/libide/code/ide-diagnostics.c
@@ -401,8 +401,6 @@ ide_diagnostics_build_caches (IdeDiagnostics *self)
  * This function calls @callback for every line with diagnostics between
  * @begin_line and @end_line. This is useful when drawing information about
  * diagnostics in an editor where a known number of lines are visible.
- *
- * Since: 3.32
  */
 void
 ide_diagnostics_foreach_line_in_range (IdeDiagnostics             *self,
@@ -450,8 +448,6 @@ ide_diagnostics_foreach_line_in_range (IdeDiagnostics             *self,
  * Locates an #IdeDiagnostic in @file at @line.
  *
  * Returns: (transfer none) (nullable): an #IdeDiagnostic or %NULL
- *
- * Since: 3.32
  */
 IdeDiagnostic *
 ide_diagnostics_get_diagnostic_at_line (IdeDiagnostics *self,
@@ -492,8 +488,6 @@ ide_diagnostics_get_diagnostic_at_line (IdeDiagnostics *self,
  * Locates all #IdeDiagnostic in @file at @line.
  *
  * Returns: (transfer full) (element-type IdeDiagnostic) (nullable): an #GPtrArray or %NULL
- *
- * Since: 3.38
  */
 GPtrArray *
 ide_diagnostics_get_diagnostics_at_line (IdeDiagnostics *self,
@@ -537,8 +531,6 @@ ide_diagnostics_get_diagnostics_at_line (IdeDiagnostics *self,
  *   of diagnostics to add.
  *
  * Returns: (transfer full): an #IdeDiagnostics
- *
- * Since: 3.32
  */
 IdeDiagnostics *
 ide_diagnostics_new_from_array (GPtrArray *array)
diff --git a/src/libide/code/ide-diagnostics.h b/src/libide/code/ide-diagnostics.h
index 40041d103..5259555a6 100644
--- a/src/libide/code/ide-diagnostics.h
+++ b/src/libide/code/ide-diagnostics.h
@@ -44,8 +44,6 @@ G_DECLARE_DERIVABLE_TYPE (IdeDiagnostics, ide_diagnostics, IDE, DIAGNOSTICS, Ide
  *
  * This function prototype is used to notify a caller of every line that has a
  * diagnostic, and the most severe #IdeDiagnosticSeverity for that line.
- *
- * Since: 3.32
  */
 typedef void (*IdeDiagnosticsLineCallback) (guint                 line,
                                             IdeDiagnosticSeverity severity,
diff --git a/src/libide/code/ide-file-settings.c b/src/libide/code/ide-file-settings.c
index 10ca1fcca..825ee4137 100644
--- a/src/libide/code/ide-file-settings.c
+++ b/src/libide/code/ide-file-settings.c
@@ -143,8 +143,6 @@ void ide_file_settings_set_##name##_set (IdeFileSettings *self, \
  * implementation might look for ".editorconfig" files.
  *
  * Returns: (transfer none): An #IdeFile.
- *
- * Since: 3.32
  */
 GFile *
 ide_file_settings_get_file (IdeFileSettings *self)
@@ -177,8 +175,6 @@ ide_file_settings_set_file (IdeFileSettings *self,
  * the language identifier known to GtkSourceView such as "c" or "sh".
  *
  * Returns: (nullable): a string containing the language id or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_file_settings_get_language (IdeFileSettings *self)
@@ -219,8 +215,6 @@ ide_file_settings_set_language (IdeFileSettings *self,
  * settled.
  *
  * Returns: %TRUE if all the settings have loaded.
- *
- * Since: 3.32
  */
 gboolean
 ide_file_settings_get_settled (IdeFileSettings *self)
diff --git a/src/libide/code/ide-highlight-engine.c b/src/libide/code/ide-highlight-engine.c
index 9b96d2aaa..5f7cb0df0 100644
--- a/src/libide/code/ide-highlight-engine.c
+++ b/src/libide/code/ide-highlight-engine.c
@@ -426,8 +426,6 @@ ide_highlight_engine_queue_work (IdeHighlightEngine *self)
  *
  * If they return from their update function without advancing, nothing will
  * happen until they call this method to proceed.
- *
- * Since: 3.32
  */
 void
 ide_highlight_engine_advance (IdeHighlightEngine *self)
@@ -1021,8 +1019,6 @@ ide_highlight_engine_new (IdeBuffer *buffer)
  * Gets the IdeHighlightEngine:highlighter property.
  *
  * Returns: (transfer none): An #IdeHighlighter.
- *
- * Since: 3.32
  */
 IdeHighlighter *
 ide_highlight_engine_get_highlighter (IdeHighlightEngine *self)
@@ -1039,8 +1035,6 @@ ide_highlight_engine_get_highlighter (IdeHighlightEngine *self)
  * Gets the IdeHighlightEngine:buffer property.
  *
  * Returns: (transfer none): An #IdeBuffer.
- *
- * Since: 3.32
  */
 IdeBuffer *
 ide_highlight_engine_get_buffer (IdeHighlightEngine *self)
@@ -1098,8 +1092,6 @@ ide_highlight_engine_rebuild (IdeHighlightEngine *self)
  * Updating the invalidated region of the buffer may take some time, as it is
  * important that the highlighter does not block for more than 1-2 milliseconds
  * to avoid dropping frames.
- *
- * Since: 3.32
  */
 void
 ide_highlight_engine_invalidate (IdeHighlightEngine *self,
@@ -1147,8 +1139,6 @@ ide_highlight_engine_invalidate (IdeHighlightEngine *self,
  * A #GtkTextTag for @style_name.
  *
  * Returns: (transfer none): a #GtkTextTag.
- *
- * Since: 3.32
  */
 GtkTextTag *
 ide_highlight_engine_get_style (IdeHighlightEngine *self,
diff --git a/src/libide/code/ide-highlight-index.c b/src/libide/code/ide-highlight-index.c
index 9d3142173..816898f11 100644
--- a/src/libide/code/ide-highlight-index.c
+++ b/src/libide/code/ide-highlight-index.c
@@ -139,8 +139,6 @@ ide_highlight_index_insert (IdeHighlightIndex *self,
  * internal structures or strings they know about to optimize later work.
  *
  * Returns: (transfer none) (nullable): Highlighter specific tag.
- *
- * Since: 3.32
  */
 gpointer
 ide_highlight_index_lookup (IdeHighlightIndex *self,
@@ -199,8 +197,6 @@ ide_highlight_index_dump (IdeHighlightIndex *self)
  * Creates a variant to represent the index. Useful to transport across IPC boundaries.
  *
  * Returns: (transfer full): a #GVariant
- *
- * Since: 3.32
  */
 GVariant *
 ide_highlight_index_to_variant (IdeHighlightIndex *self)
diff --git a/src/libide/code/ide-highlighter.c b/src/libide/code/ide-highlighter.c
index d156dc4da..8a1438b0f 100644
--- a/src/libide/code/ide-highlighter.c
+++ b/src/libide/code/ide-highlighter.c
@@ -64,8 +64,6 @@ ide_highlighter_default_init (IdeHighlighterInterface *iface)
  *
  * If processing the entire range was successful, then @location should be set
  * to @range_end.
- *
- * Since: 3.32
  */
 void
 ide_highlighter_update (IdeHighlighter       *self,
diff --git a/src/libide/code/ide-highlighter.h b/src/libide/code/ide-highlighter.h
index 1bd59a93c..a62d72941 100644
--- a/src/libide/code/ide-highlighter.h
+++ b/src/libide/code/ide-highlighter.h
@@ -62,8 +62,6 @@ struct _IdeHighlighterInterface
    *
    * @location should be set to the position that the highlighter got to
    * before yielding back to the engine.
-   *
-   * Since: 3.32
    */
   void (*update)     (IdeHighlighter       *self,
                       IdeHighlightCallback  callback,
diff --git a/src/libide/code/ide-location.c b/src/libide/code/ide-location.c
index 4de324d1a..2944b03c4 100644
--- a/src/libide/code/ide-location.c
+++ b/src/libide/code/ide-location.c
@@ -231,8 +231,6 @@ ide_location_init (IdeLocation *self)
  * Gets the file within the location.
  *
  * Returns: (transfer none) (nullable): a #GFile or %NULL
- *
- * Since: 3.32
  */
 GFile *
 ide_location_get_file (IdeLocation *self)
@@ -251,8 +249,6 @@ ide_location_get_file (IdeLocation *self)
  * Gets the line within the #IdeLocation:file, or -1 if it is unknown.
  *
  * Returns: the line number, or -1.
- *
- * Since: 3.32
  */
 gint
 ide_location_get_line (IdeLocation *self)
@@ -271,8 +267,6 @@ ide_location_get_line (IdeLocation *self)
  * Gets the offset within the #IdeLocation:line, or -1 if it is unknown.
  *
  * Returns: the line offset, or -1.
- *
- * Since: 3.32
  */
 gint
 ide_location_get_line_offset (IdeLocation *self)
@@ -291,8 +285,6 @@ ide_location_get_line_offset (IdeLocation *self)
  * Gets the offset within the file in characters, or -1 if it is unknown.
  *
  * Returns: the line offset, or -1.
- *
- * Since: 3.32
  */
 gint
 ide_location_get_offset (IdeLocation *self)
@@ -311,8 +303,6 @@ ide_location_get_offset (IdeLocation *self)
  * Makes a deep copy of @self.
  *
  * Returns: (transfer full): a new #IdeLocation
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_location_dup (IdeLocation *self)
@@ -342,8 +332,6 @@ ide_location_dup (IdeLocation *self)
  * This function will never return a variant with a floating reference.
  *
  * Returns: (transfer full): a #GVariant
- *
- * Since: 3.32
  */
 GVariant *
 ide_location_to_variant (IdeLocation *self)
@@ -390,8 +378,6 @@ ide_location_new (GFile *file,
  * @offset: a charcter offset in file starting from 0, or -1 if unknown
  *
  * Returns: (transfer full): an #IdeLocation
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_location_new_with_offset (GFile *file,
@@ -426,8 +412,6 @@ ide_location_new_with_offset (GFile *file,
  *
  * Returns: (transfer full) (nullable): a #GVariant if succesful;
  *   otherwise %NULL.
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_location_new_from_variant (GVariant *variant)
diff --git a/src/libide/code/ide-range.c b/src/libide/code/ide-range.c
index e805f2e12..958646617 100644
--- a/src/libide/code/ide-range.c
+++ b/src/libide/code/ide-range.c
@@ -173,8 +173,6 @@ ide_range_new (IdeLocation *begin,
  * @self: a #IdeRange
  *
  * Returns: (transfer none): the beginning of the range
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_range_get_begin (IdeRange *self)
@@ -191,8 +189,6 @@ ide_range_get_begin (IdeRange *self)
  * @self: a #IdeRange
  *
  * Returns: (transfer none): the end of the range
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_range_get_end (IdeRange *self)
@@ -213,8 +209,6 @@ ide_range_get_end (IdeRange *self)
  * This function will never return a floating variant.
  *
  * Returns: (transfer full): a #GVariant
- *
- * Since: 3.32
  */
 GVariant *
 ide_range_to_variant (IdeRange *self)
@@ -250,8 +244,6 @@ ide_range_to_variant (IdeRange *self)
  * @variant: a #GVariant
  *
  * Returns: (transfer full) (nullable): a new range or %NULL
- *
- * Since: 3.32
  */
 IdeRange *
 ide_range_new_from_variant (GVariant *variant)
diff --git a/src/libide/code/ide-rename-provider.c b/src/libide/code/ide-rename-provider.c
index f8be5c11f..4635e78ea 100644
--- a/src/libide/code/ide-rename-provider.c
+++ b/src/libide/code/ide-rename-provider.c
@@ -84,8 +84,6 @@ ide_rename_provider_default_init (IdeRenameProviderInterface *iface)
  * project to perform the renaming of a symbol found at @location.
  *
  * Use ide_rename_provider_rename_finish() to get the results.
- *
- * Since: 3.32
  */
 void
 ide_rename_provider_rename_async (IdeRenameProvider   *self,
@@ -122,8 +120,6 @@ ide_rename_provider_rename_async (IdeRenameProvider   *self,
  *
  * Returns: %TRUE if successful and @edits is set. Otherwise %FALSE and @error
  *   is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_rename_provider_rename_finish (IdeRenameProvider  *self,
diff --git a/src/libide/code/ide-symbol-node.c b/src/libide/code/ide-symbol-node.c
index d465bc9fd..e4422c9b0 100644
--- a/src/libide/code/ide-symbol-node.c
+++ b/src/libide/code/ide-symbol-node.c
@@ -277,8 +277,6 @@ ide_symbol_node_get_location_async (IdeSymbolNode       *self,
  * Completes the request to gets the location for the symbol node.
  *
  * Returns: (transfer full) (nullable): An #IdeLocation or %NULL.
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_symbol_node_get_location_finish (IdeSymbolNode  *self,
diff --git a/src/libide/code/ide-symbol-resolver.c b/src/libide/code/ide-symbol-resolver.c
index 57cc88ce0..513aca162 100644
--- a/src/libide/code/ide-symbol-resolver.c
+++ b/src/libide/code/ide-symbol-resolver.c
@@ -180,8 +180,6 @@ ide_symbol_resolver_default_init (IdeSymbolResolverInterface *iface)
  * Asynchronously requests that @self determine the symbol existing at the source location
  * denoted by @self. @callback should call ide_symbol_resolver_lookup_symbol_finish() to
  * retrieve the result.
- *
- * Since: 3.32
  */
 void
 ide_symbol_resolver_lookup_symbol_async (IdeSymbolResolver   *self,
@@ -207,8 +205,6 @@ ide_symbol_resolver_lookup_symbol_async (IdeSymbolResolver   *self,
  * ide_symbol_resolver_lookup_symbol_async().
  *
  * Returns: (transfer full) (nullable): An #IdeSymbol if successful; otherwise %NULL.
- *
- * Since: 3.32
  */
 IdeSymbol *
 ide_symbol_resolver_lookup_symbol_finish (IdeSymbolResolver  *self,
@@ -231,8 +227,6 @@ ide_symbol_resolver_lookup_symbol_finish (IdeSymbolResolver  *self,
  * @user_data: user data for @callback
  *
  * Asynchronously fetch an up to date symbol tree for @file.
- *
- * Since: 3.32
  */
 void
 ide_symbol_resolver_get_symbol_tree_async (IdeSymbolResolver   *self,
@@ -256,8 +250,6 @@ ide_symbol_resolver_get_symbol_tree_async (IdeSymbolResolver   *self,
  *
  * Returns: (nullable) (transfer full): An #IdeSymbolTree; otherwise
  *   %NULL and @error is set.
- *
- * Since: 3.32
  */
 IdeSymbolTree *
 ide_symbol_resolver_get_symbol_tree_finish (IdeSymbolResolver  *self,
@@ -323,8 +315,6 @@ ide_symbol_resolver_find_references_async (IdeSymbolResolver   *self,
  *
  * Returns: (transfer full) (element-type IdeRange): a #GPtrArray
  *   of #IdeRange if successful; otherwise %NULL and @error is set.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_symbol_resolver_find_references_finish (IdeSymbolResolver  *self,
@@ -350,8 +340,6 @@ ide_symbol_resolver_find_references_finish (IdeSymbolResolver  *self,
  *
  * See ide_symbol_resolver_find_nearest_scope_finish() for how to
  * complete the operation.
- *
- * Since: 3.32
  */
 void
 ide_symbol_resolver_find_nearest_scope_async (IdeSymbolResolver   *self,
@@ -379,8 +367,6 @@ ide_symbol_resolver_find_nearest_scope_async (IdeSymbolResolver   *self,
  * See ide_symbol_resolver_find_nearest_scope_async() for more information.
  *
  * Returns: (transfer full) (nullable): An #IdeSymbol or %NULL
- *
- * Since: 3.32
  */
 IdeSymbol *
 ide_symbol_resolver_find_nearest_scope_finish (IdeSymbolResolver  *self,
diff --git a/src/libide/code/ide-symbol-tree.c b/src/libide/code/ide-symbol-tree.c
index c96dc6987..2c3595b31 100644
--- a/src/libide/code/ide-symbol-tree.c
+++ b/src/libide/code/ide-symbol-tree.c
@@ -41,8 +41,6 @@ ide_symbol_tree_default_init (IdeSymbolTreeInterface *iface)
  * is assumed.
  *
  * Returns: An unsigned integer containing the number of children.
- *
- * Since: 3.32
  */
 guint
 ide_symbol_tree_get_n_children (IdeSymbolTree *self,
@@ -63,8 +61,6 @@ ide_symbol_tree_get_n_children (IdeSymbolTree *self,
  * Gets the @nth child node of @node.
  *
  * Returns: (transfer full) (nullable): an #IdeSymbolNode or %NULL.
- *
- * Since: 3.32
  */
 IdeSymbolNode *
 ide_symbol_tree_get_nth_child (IdeSymbolTree *self,
diff --git a/src/libide/code/ide-symbol.c b/src/libide/code/ide-symbol.c
index b902aeab2..44c71eaf8 100644
--- a/src/libide/code/ide-symbol.c
+++ b/src/libide/code/ide-symbol.c
@@ -224,8 +224,6 @@ ide_symbol_get_name (IdeSymbol *self)
  * Gets the location, if any.
  *
  * Returns: (transfer none) (nullable): an #IdeLocation or %NULL
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_symbol_get_location (IdeSymbol *self)
@@ -244,8 +242,6 @@ ide_symbol_get_location (IdeSymbol *self)
  * Gets the header location, if any.
  *
  * Returns: (transfer none) (nullable): an #IdeLocation or %NULL
- *
- * Since: 3.32
  */
 IdeLocation *
 ide_symbol_get_header_location (IdeSymbol *self)
@@ -430,8 +426,6 @@ ide_symbol_kind_get_icon_name (IdeSymbolKind kind)
  * This function will never return a floating reference.
  *
  * Returns: (transfer full): a #GVariant
- *
- * Since: 3.32
  */
 GVariant *
 ide_symbol_to_variant (IdeSymbol *self)
@@ -517,8 +511,6 @@ ide_symbol_new_from_variant (GVariant *variant)
  * @header_location: (nullable):
  *
  * Returns: (transfer full): an #IdeSymbol
- *
- * Since: 3.32
  */
 IdeSymbol *
 ide_symbol_new (const gchar    *name,
diff --git a/src/libide/code/ide-text-edit.c b/src/libide/code/ide-text-edit.c
index 5259a2220..89203ae70 100644
--- a/src/libide/code/ide-text-edit.c
+++ b/src/libide/code/ide-text-edit.c
@@ -145,8 +145,6 @@ ide_text_edit_init (IdeTextEdit *self)
  * Gets the text for the edit.
  *
  * Returns: (nullable): the text to replace, or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_text_edit_get_text (IdeTextEdit *self)
@@ -165,8 +163,6 @@ ide_text_edit_get_text (IdeTextEdit *self)
  * Gets the range for the edit.
  *
  * Returns: (transfer none) (nullable): the range for the replacement, or %NULL
- *
- * Since: 3.32
  */
 IdeRange *
 ide_text_edit_get_range (IdeTextEdit *self)
@@ -248,8 +244,6 @@ ide_text_edit_new (IdeRange    *range,
  * This function will never return a floating variant.
  *
  * Returns: (transfer full): a #GVariant
- *
- * Since: 3.32
  */
 GVariant *
 ide_text_edit_to_variant (IdeTextEdit *self)
@@ -279,8 +273,6 @@ ide_text_edit_to_variant (IdeTextEdit *self)
  * If @variant is %NULL, %NULL is returned.
  *
  * Returns: (transfer full) (nullable): an #IdeTextEdit or %NULL
- *
- * Since: 3.32
  */
 IdeTextEdit *
 ide_text_edit_new_from_variant (GVariant *variant)
diff --git a/src/libide/code/ide-text-iter.c b/src/libide/code/ide-text-iter.c
index 541b7df43..d3ab3fc89 100644
--- a/src/libide/code/ide-text-iter.c
+++ b/src/libide/code/ide-text-iter.c
@@ -132,8 +132,6 @@ ide_text_iter_line_is_empty (GtkTextIter *iter)
  * Searches backwards until we find the beginning of a paragraph.
  *
  * Returns: %TRUE if we are not at the beginning of the buffer; otherwise %FALSE.
- *
- * Since: 3.32
  */
 gboolean
 ide_text_iter_backward_paragraph_start (GtkTextIter *iter)
@@ -161,8 +159,6 @@ ide_text_iter_backward_paragraph_start (GtkTextIter *iter)
  * Searches forward until the end of a paragraph has been hit.
  *
  * Returns: %TRUE if we are not at the end of the buffer; otherwise %FALSE.
- *
- * Since: 3.32
  */
 gboolean
 ide_text_iter_forward_paragraph_end (GtkTextIter *iter)
@@ -635,8 +631,6 @@ matches_pred (GtkTextIter              *iter,
  * lets us acces to the iter in the predicate.
  *
  * Returns: %TRUE if found
- *
- * Since: 3.32
  */
 gboolean
 ide_text_iter_forward_find_char (GtkTextIter              *iter,
@@ -667,8 +661,6 @@ ide_text_iter_forward_find_char (GtkTextIter              *iter,
 /**
  * ide_text_iter_backward_find_char:
  * @pred: (scope call):
- *
- * Since: 3.32
  */
 gboolean
 ide_text_iter_backward_find_char (GtkTextIter              *iter,
@@ -704,8 +696,6 @@ ide_text_iter_backward_find_char (GtkTextIter              *iter,
  * Check if @iter position in the buffer is part of @str.
  *
  * Returns: %TRUE if case of succes, %FALSE otherwise.
- *
- * Since: 3.32
  */
 gboolean
 ide_text_iter_in_string (GtkTextIter *iter,
@@ -806,8 +796,6 @@ ide_text_iter_in_string (GtkTextIter *iter,
  * Notice that for @str to be found, @iter need to be at least on the @str last char
  *
  * Returns: %TRUE if case of succes, %FALSE otherwise.
- *
- * Since: 3.32
  */
 gboolean
 ide_text_iter_find_chars_backward (GtkTextIter *iter,
@@ -878,8 +866,6 @@ ide_text_iter_find_chars_backward (GtkTextIter *iter,
  * otherwise, its position is undefined.
  *
  * Returns: %TRUE if case of succes, %FALSE otherwise.
- *
- * Since: 3.32
  */
 gboolean
 ide_text_iter_find_chars_forward (GtkTextIter *iter,
diff --git a/src/libide/code/ide-unsaved-file.c b/src/libide/code/ide-unsaved-file.c
index c371e51b3..c96260a64 100644
--- a/src/libide/code/ide-unsaved-file.c
+++ b/src/libide/code/ide-unsaved-file.c
@@ -147,8 +147,6 @@ ide_unsaved_file_unref (IdeUnsavedFile *self)
  * Gets the contents of the unsaved file.
  *
  * Returns: (transfer none): a #GBytes containing the unsaved file content.
- *
- * Since: 3.32
  */
 GBytes *
 ide_unsaved_file_get_content (IdeUnsavedFile *self)
@@ -165,8 +163,6 @@ ide_unsaved_file_get_content (IdeUnsavedFile *self)
  * Retrieves the underlying file represented by @self.
  *
  * Returns: (transfer none): a #GFile.
- *
- * Since: 3.32
  */
 GFile *
 ide_unsaved_file_get_file (IdeUnsavedFile *self)
diff --git a/src/libide/code/ide-unsaved-files.c b/src/libide/code/ide-unsaved-files.c
index cc4921e97..3dff8a8fb 100644
--- a/src/libide/code/ide-unsaved-files.c
+++ b/src/libide/code/ide-unsaved-files.c
@@ -695,8 +695,6 @@ ide_unsaved_files_update (IdeUnsavedFiles *self,
  *
  * Returns: (transfer full) (element-type Ide.UnsavedFile): a #GPtrArray
  *   containing #IdeUnsavedFile elements.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_unsaved_files_to_array (IdeUnsavedFiles *self)
@@ -765,8 +763,6 @@ ide_unsaved_files_contains (IdeUnsavedFiles *self,
  *
  * Thread safety: you may call this from any thread, as long as you
  *   hold a reference to @self.
- *
- * Since: 3.32
  */
 IdeUnsavedFile *
 ide_unsaved_files_get_unsaved_file (IdeUnsavedFiles *self,
@@ -993,8 +989,6 @@ ide_unsaved_files_reap_finish (IdeUnsavedFiles  *self,
  * Gets the unsaved files object for @context.
  *
  * Returns: (transfer none): an #IdeContext
- *
- * Since: 3.32
  */
 IdeUnsavedFiles *
 ide_unsaved_files_from_context (IdeContext *context)
diff --git a/src/libide/core/ide-build-ident.h.in b/src/libide/core/ide-build-ident.h.in
index 51f0266b5..d63091574 100644
--- a/src/libide/core/ide-build-ident.h.in
+++ b/src/libide/core/ide-build-ident.h.in
@@ -26,8 +26,6 @@ G_BEGIN_DECLS
  * SECTION:ide-build-ident
  * @title: Build Identifier
  * @short_description: Identify a build by unique build identifier
- *
- * Since: 3.22
  */
 
 /**
diff --git a/src/libide/core/ide-context-addin.c b/src/libide/core/ide-context-addin.c
index 3f3071ffc..88f113f9d 100644
--- a/src/libide/core/ide-context-addin.c
+++ b/src/libide/core/ide-context-addin.c
@@ -70,8 +70,6 @@ ide_context_addin_default_init (IdeContextAddinInterface *iface)
    * being successfully loaded first. Every addin's
    * ide_context_addin_load_project_async() will have been called and completed
    * before this signal is emitted.
-   *
-   * Since: 3.32
    */
   signals [PROJECT_LOADED] =
     g_signal_new ("project-loaded",
@@ -97,8 +95,6 @@ ide_context_addin_default_init (IdeContextAddinInterface *iface)
  * Requests to load a project with the #IdeContextAddin.
  *
  * This function is called when the #IdeContext requests loading a project.
- *
- * Since: 3.32
  */
 void
 ide_context_addin_load_project_async (IdeContextAddin     *self,
@@ -126,8 +122,6 @@ ide_context_addin_load_project_async (IdeContextAddin     *self,
  * ide_context_addin_load_project_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_context_addin_load_project_finish (IdeContextAddin  *self,
@@ -150,8 +144,6 @@ ide_context_addin_load_project_finish (IdeContextAddin  *self,
  * This is called when the #IdeContext is created. If you would rather wait
  * until a project is loaded, then use #IdeContextAddin::project-loaded to
  * load runtime features.
- *
- * Since: 3.32
  */
 void
 ide_context_addin_load (IdeContextAddin *self,
@@ -171,8 +163,6 @@ ide_context_addin_load (IdeContextAddin *self,
  *
  * Requests that the #IdeContextAddin unloads any previously loaded
  * resources.
- *
- * Since: 3.32
  */
 void
 ide_context_addin_unload (IdeContextAddin *self,
@@ -193,8 +183,6 @@ ide_context_addin_unload (IdeContextAddin *self,
  * Emits the #IdeContextAddin::project-loaded signal.
  *
  * This is called when the context has completed loading a project.
- *
- * Since: 3.32
  */
 void
 ide_context_addin_project_loaded (IdeContextAddin *self,
diff --git a/src/libide/core/ide-context.c b/src/libide/core/ide-context.c
index 50c373787..ddfe4d471 100644
--- a/src/libide/core/ide-context.c
+++ b/src/libide/core/ide-context.c
@@ -38,8 +38,6 @@
  *
  * The #IdeContext object is the root object for a project. Everything
  * in a project is contained by this object.
- *
- * Since: 3.32
  */
 
 struct _IdeContext
@@ -290,8 +288,6 @@ ide_context_class_init (IdeContextClass *klass)
    *
    * Before any project has loaded, this is "empty" to allow flexibility
    * for non-project use.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROJECT_ID] =
     g_param_spec_string ("project-id",
@@ -304,8 +300,6 @@ ide_context_class_init (IdeContextClass *klass)
    * IdeContext:title:
    *
    * The "title" property is a descriptive name for the project.
-   *
-   * Since: 3.32
    */
   properties [PROP_TITLE] =
     g_param_spec_string ("title",
@@ -320,8 +314,6 @@ ide_context_class_init (IdeContextClass *klass)
    * The "workdir" property is the best guess at the working directory for the
    * context. This may be discovered using a common parent if multiple files
    * are opened without a project.
-   *
-   * Since: 3.32
    */
   properties [PROP_WORKDIR] =
     g_param_spec_object ("workdir",
@@ -340,8 +332,6 @@ ide_context_class_init (IdeContextClass *klass)
    * @message: the log message
    *
    * This signal is emitted when a log item has been added for the context.
-   *
-   * Since: 3.32
    */
   signals [LOG] =
     g_signal_new_class_handler ("log",
@@ -379,8 +369,6 @@ ide_context_init (IdeContext *self)
  * g_async_initable_init_async().
  *
  * Returns: (transfer full): an #IdeContext
- *
- * Since: 3.32
  */
 IdeContext *
 ide_context_new (void)
@@ -423,8 +411,6 @@ ide_context_peek_child_typed_cb (IdeObject *object,
  *
  * Returns: (transfer none) (type IdeObject) (nullable): an #IdeObject that
  *   matches @type if successful; otherwise %NULL
- *
- * Since: 3.32
  */
 gpointer
 ide_context_peek_child_typed (IdeContext *self,
@@ -452,8 +438,6 @@ ide_context_peek_child_typed (IdeContext *self,
  * Copies the project-id and returns it to the caller.
  *
  * Returns: (transfer full): a project-id as a string
- *
- * Since: 3.32
  */
 gchar *
 ide_context_dup_project_id (IdeContext *self)
@@ -478,8 +462,6 @@ ide_context_dup_project_id (IdeContext *self)
  * Sets the project-id for the context.
  *
  * Generally, this should only be done once after loading a project.
- *
- * Since: 3.32
  */
 void
 ide_context_set_project_id (IdeContext  *self,
@@ -508,8 +490,6 @@ ide_context_set_project_id (IdeContext  *self,
  * reference count by one.
  *
  * Returns: (transfer full): a #GFile
- *
- * Since: 3.32
  */
 GFile *
 ide_context_ref_workdir (IdeContext *self)
@@ -536,8 +516,6 @@ ide_context_ref_workdir (IdeContext *self)
  *
  * In future releases, changes may be made to change this in support of
  * git-worktrees or similar workflows.
- *
- * Since: 3.32
  */
 void
 ide_context_set_workdir (IdeContext *self,
@@ -560,8 +538,6 @@ ide_context_set_workdir (IdeContext *self,
  * Like ide_context_cache_filename() but returns a #GFile.
  *
  * Returns: (transfer full): a #GFile for the cache file
- *
- * Since: 3.32
  */
 GFile *
 ide_context_cache_file (IdeContext  *self,
@@ -617,8 +593,6 @@ ide_context_cache_file (IdeContext  *self,
  * of g_get_user_cache_dir().
  *
  * Returns: (transfer full): A new string containing the cache filename
- *
- * Since: 3.32
  */
 gchar *
 ide_context_cache_filename (IdeContext  *self,
@@ -669,8 +643,6 @@ ide_context_cache_filename (IdeContext  *self,
  * - Otherwise, a #GFile child of #IdeContext:workdir is returned.
  *
  * Returns: (transfer full): a #GFile
- *
- * Since: 3.32
  */
 GFile *
 ide_context_build_file (IdeContext  *self,
@@ -701,8 +673,6 @@ ide_context_build_file (IdeContext  *self,
  * loaded project.
  *
  * Returns: (transfer full): a string containing the new path
- *
- * Since: 3.32
  */
 gchar *
 ide_context_build_filename (IdeContext  *self,
@@ -750,8 +720,6 @@ ide_context_build_filename (IdeContext  *self,
  * This creates a new #GSettings instance for the project.
  *
  * Returns: (transfer full): a #GSettings
- *
- * Since: 3.32
  */
 GSettings *
 ide_context_ref_project_settings (IdeContext *self)
@@ -772,8 +740,6 @@ ide_context_ref_project_settings (IdeContext *self)
  * @self: a #IdeContext
  *
  * Returns: (transfer full): a string containing the title
- *
- * Since: 3.32
  */
 gchar *
 ide_context_dup_title (IdeContext *self)
@@ -797,8 +763,6 @@ ide_context_dup_title (IdeContext *self)
  * Sets the #IdeContext:title property. This is used by various
  * components to show the user the name of the project. This may
  * include the omnibar and the window title.
- *
- * Since: 3.32
  */
 void
 ide_context_set_title (IdeContext  *self,
@@ -837,8 +801,6 @@ ide_context_log (IdeContext     *self,
  * Checks to see if a project has been loaded in @context.
  *
  * Returns: %TRUE if a project has been, or is currently, loading.
- *
- * Since: 3.32
  */
 gboolean
 ide_context_has_project (IdeContext *self)
@@ -872,8 +834,6 @@ _ide_context_set_has_project (IdeContext *self)
  * Finds the addin (if any) matching the plugin's @module_name.
  *
  * Returns: (transfer none) (nullable): an #IdeContextAddin or %NULL
- *
- * Since: 3.40
  */
 IdeContextAddin *
 ide_context_addin_find_by_module_name (IdeContext  *context,
diff --git a/src/libide/core/ide-debug.h.in b/src/libide/core/ide-debug.h.in
index 7d6167b02..95d5067be 100644
--- a/src/libide/core/ide-debug.h.in
+++ b/src/libide/core/ide-debug.h.in
@@ -37,8 +37,6 @@ G_BEGIN_DECLS
  * These tracing macros will compile out when Builder is configured for a
  * release build. Otherwise, running Builder with the "-vvvv" command line
  * argument will show tracing output.
- *
- * Since: 3.18
  */
 
 /**
@@ -46,8 +44,6 @@ G_BEGIN_DECLS
  *
  * Traces the entry into a function. Place this at the beginning of your
  * function above pre-condition checks.
- *
- * Since: 3.18
  */
 
 /**
@@ -55,16 +51,12 @@ G_BEGIN_DECLS
  *
  * Traces the exit from a function. Use this instead of "return" to return
  * and log the function exiting.
- *
- * Since: 3.18
  */
 
 /**
  * IDE_RETURN: (skip)
  *
  * Similar to %IDE_EXIT but allows providing a return value.
- *
- * Since: 3.18
  */
 
 /**
@@ -73,8 +65,6 @@ G_BEGIN_DECLS
  *
  * Appends to the jump to label to the tracing log and then jumps
  * to the label @_l.
- *
- * Since: 3.18
  */
 
 /**
@@ -83,24 +73,18 @@ G_BEGIN_DECLS
  *
  * Appends to the tracing log that unsupported code has been
  * reached.
- *
- * Since: 3.18
  */
 
 /**
  * IDE_PROBE: (skip)
  *
  * Appends to the tracing log that a line of code was reached.
- *
- * Since: 3.18
  */
 
 /**
  * IDE_TRACE_MSG: (skip)
  *
  * Similar to %IDE_PROBE but allows specifying a log message.
- *
- * Since: 3.18
  */
 
 #ifndef IDE_ENABLE_TRACE
diff --git a/src/libide/core/ide-global.c b/src/libide/core/ide-global.c
index 5b2e3db6d..07741aab7 100644
--- a/src/libide/core/ide-global.c
+++ b/src/libide/core/ide-global.c
@@ -68,8 +68,6 @@ ide_init_ctor (void)
  * currently running within.
  *
  * Returns: (transfer none): a #GThread
- *
- * Since: 3.32
  */
 GThread *
 ide_get_main_thread (void)
@@ -83,8 +81,6 @@ ide_get_main_thread (void)
  * Gets the kind of process we're running as.
  *
  * Returns: an #IdeProcessKind
- *
- * Since: 3.32
  */
 IdeProcessKind
 ide_get_process_kind (void)
@@ -108,8 +104,6 @@ ide_get_application_id (void)
  * has connected to the D-Bus.
  *
  * The default is "org.gnome.Builder".
- *
- * Since: 3.32
  */
 void
 ide_set_application_id (const gchar *app_id)
@@ -226,8 +220,6 @@ get_base_path (const gchar *name)
  * Gets the path to a resource that may be relocatable at runtime.
  *
  * Returns: (transfer full): a new string containing the path
- *
- * Since: 3.32
  */
 gchar *
 ide_get_relocatable_path (const gchar *path)
diff --git a/src/libide/core/ide-notification.c b/src/libide/core/ide-notification.c
index 4888c0e34..ab1fa943b 100644
--- a/src/libide/core/ide-notification.c
+++ b/src/libide/core/ide-notification.c
@@ -228,8 +228,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    *
    * The "body" property is the main body of text for the notification.
    * Not all notifications need this, but more complex notifications might.
-   *
-   * Since: 3.32
    */
   properties [PROP_BODY] =
     g_param_spec_string ("body",
@@ -243,8 +241,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    *
    * The "has-progress" property denotes the notification will receive
    * updates to the #IdeNotification:progress property.
-   *
-   * Since: 3.32
    */
   properties [PROP_HAS_PROGRESS] =
     g_param_spec_boolean ("has-progress",
@@ -258,8 +254,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    *
    * The "icon" property is an optional icon that may be shown next to
    * the notification title and body under certain senarios.
-   *
-   * Since: 3.32
    */
   properties [PROP_ICON] =
     g_param_spec_object ("icon",
@@ -273,8 +267,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    *
    * The "icon-name" property is a helper to make setting #IdeNotification:icon
    * more convenient.
-   *
-   * Since: 3.32
    */
   properties [PROP_ICON_NAME] =
     g_param_spec_string ("icon-name",
@@ -288,8 +280,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    *
    * The "id" property is an optional identifier that can be used to locate
    * the notification later.
-   *
-   * Since: 3.32
    */
   properties [PROP_ID] =
     g_param_spec_string ("id",
@@ -306,8 +296,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    *
    * You may also use the #IdeNotification:urgent property to raise the
    * importance of a message to the user.
-   *
-   * Since: 3.32
    */
   properties [PROP_PRIORITY] =
     g_param_spec_int ("priority",
@@ -323,8 +311,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    * the operation for which the notification represents.
    *
    * This property is ignored if #IdeNotification:has-progress is unset.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROGRESS] =
     g_param_spec_double ("progress",
@@ -340,8 +326,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    * progress, but it is imprecise.
    *
    * The UI may show a bouncing progress bar if set.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROGRESS_IS_IMPRECISE] =
     g_param_spec_boolean ("progress-is-imprecise",
@@ -355,8 +339,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    *
    * The "title" property is the main text to show the user. It may be
    * displayed more prominently such as in the titlebar.
-   *
-   * Since: 3.32
    */
   properties [PROP_TITLE] =
     g_param_spec_string ("title",
@@ -370,8 +352,6 @@ ide_notification_class_init (IdeNotificationClass *klass)
    *
    * If the notification is urgent. These notifications will be displayed with
    * higher priority than those without the urgent property set.
-   *
-   * Since: 3.32
    */
   properties [PROP_URGENT] =
     g_param_spec_boolean ("urgent",
@@ -403,8 +383,6 @@ ide_notification_init (IdeNotification *self)
  * setup_notification (notify);
  * ide_notification_attach (notif, IDE_OBJECT (some_object));
  * ```
- *
- * Since: 3.32
  */
 IdeNotification *
 ide_notification_new (void)
@@ -419,8 +397,6 @@ ide_notification_new (void)
  *
  * This function will locate the #IdeNotifications object starting from
  * @object and attach @self as a child to that object.
- *
- * Since: 3.32
  */
 void
 ide_notification_attach (IdeNotification *self,
@@ -446,8 +422,6 @@ ide_notification_attach (IdeNotification *self,
  *
  * Copies the id of the notification and returns it to the caller after locking
  * the object. A copy is used to avoid thread-races.
- *
- * Since: 3.32
  */
 gchar *
 ide_notification_dup_id (IdeNotification *self)
@@ -470,8 +444,6 @@ ide_notification_dup_id (IdeNotification *self)
  * @id: (nullable): a string containing the id, or %NULL
  *
  * Sets the #IdeNotification:id property.
- *
- * Since: 3.32
  */
 void
 ide_notification_set_id (IdeNotification *self,
@@ -496,8 +468,6 @@ ide_notification_set_id (IdeNotification *self,
  *
  * Copies the current title and returns it to the caller after locking the
  * object. A copy is used to avoid thread-races.
- *
- * Since: 3.32
  */
 gchar *
 ide_notification_dup_title (IdeNotification *self)
@@ -520,8 +490,6 @@ ide_notification_dup_title (IdeNotification *self)
  * @title: (nullable): a string containing the title text, or %NULL
  *
  * Sets the #IdeNotification:title property.
- *
- * Since: 3.32
  */
 void
 ide_notification_set_title (IdeNotification *self,
@@ -546,8 +514,6 @@ ide_notification_set_title (IdeNotification *self,
  *
  * Copies the current body and returns it to the caller after locking the
  * object. A copy is used to avoid thread-races.
- *
- * Since: 3.32
  */
 gchar *
 ide_notification_dup_body (IdeNotification *self)
@@ -570,8 +536,6 @@ ide_notification_dup_body (IdeNotification *self)
  * @body: (nullable): a string containing the body text, or %NULL
  *
  * Sets the #IdeNotification:body property.
- *
- * Since: 3.32
  */
 void
 ide_notification_set_body (IdeNotification *self,
@@ -598,8 +562,6 @@ ide_notification_set_body (IdeNotification *self,
  * to the #GIcon.
  *
  * Returns: (transfer full) (nullable): a #GIcon or %NULL
- *
- * Since: 3.32
  */
 GIcon *
 ide_notification_ref_icon (IdeNotification *self)
@@ -749,8 +711,6 @@ ide_notification_get_n_buttons (IdeNotification *self)
  * and ide_object_unlock().
  *
  * Returns: %TRUE if @button was found; otherwise %FALSE
- *
- * Since: 3.32
  */
 gboolean
 ide_notification_get_button (IdeNotification  *self,
@@ -798,8 +758,6 @@ ide_notification_get_button (IdeNotification  *self,
  * Adds a new button that may be displayed with the notification.
  *
  * See also: ide_notification_add_button_with_target_value().
- *
- * Since: 3.32
  */
 void
 ide_notification_add_button (IdeNotification *self,
@@ -832,8 +790,6 @@ ide_notification_add_button (IdeNotification *self,
  *
  * Adds a new button, used the parsed #GVariant format for the action
  * target.
- *
- * Since: 3.32
  */
 void
 ide_notification_add_button_with_target_value (IdeNotification *self,
@@ -965,8 +921,6 @@ ide_notification_compare (IdeNotification *a,
  * Gets the progress for the notification.
  *
  * Returns: a value between 0.0 and 1.0
- *
- * Since: 3.32
  */
 gdouble
 ide_notification_get_progress (IdeNotification *self)
@@ -989,8 +943,6 @@ ide_notification_get_progress (IdeNotification *self)
  * @progress: a value between 0.0 and 1.0
  *
  * Sets the progress for the notification.
- *
- * Since: 3.32
  */
 void
 ide_notification_set_progress (IdeNotification *self,
@@ -1018,8 +970,6 @@ ide_notification_set_progress (IdeNotification *self,
  * Gets if the notification supports progress updates.
  *
  * Returns: %TRUE if progress updates are supported.
- *
- * Since: 3.32
  */
 gboolean
 ide_notification_get_has_progress (IdeNotification *self)
@@ -1042,8 +992,6 @@ ide_notification_get_has_progress (IdeNotification *self)
  * @has_progress: if @notification supports progress
  *
  * Set to %TRUE if the notification supports progress updates.
- *
- * Since: 3.32
  */
 void
 ide_notification_set_has_progress (IdeNotification *self,
@@ -1104,8 +1052,6 @@ ide_notification_set_progress_is_imprecise (IdeNotification *self,
  *
  * Withdraws the notification by removing it from the #IdeObject parent it
  * belongs to.
- *
- * Since: 3.32
  */
 void
 ide_notification_withdraw (IdeNotification *self)
@@ -1138,8 +1084,6 @@ do_withdrawal (gpointer data)
  *   sensible default.
  *
  * Withdraws @self from it's #IdeObject parent after @seconds have passed.
- *
- * Since: 3.32
  */
 void
 ide_notification_withdraw_in_seconds (IdeNotification *self,
@@ -1165,8 +1109,6 @@ ide_notification_withdraw_in_seconds (IdeNotification *self,
  *
  * Remember to make sure to unref the #IdeNotification instance with
  * g_object_unref() during the #GDestroyNotify.
- *
- * Since: 3.32
  */
 void
 ide_notification_file_progress_callback (goffset  current_num_bytes,
diff --git a/src/libide/core/ide-notifications.c b/src/libide/core/ide-notifications.c
index 27fa54e22..c619cfde0 100644
--- a/src/libide/core/ide-notifications.c
+++ b/src/libide/core/ide-notifications.c
@@ -168,8 +168,6 @@ ide_notifications_class_init (IdeNotificationsClass *klass)
    *
    * The "has-progress" property denotes if any of the notifications
    * have progress supported.
-   *
-   * Since: 3.32
    */
   properties [PROP_HAS_PROGRESS] =
     g_param_spec_boolean ("has-progress",
@@ -184,8 +182,6 @@ ide_notifications_class_init (IdeNotificationsClass *klass)
    * The "progress" property is the combination of all of the notifications
    * currently monitored. It is updated when child notifications progress
    * changes.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROGRESS] =
     g_param_spec_double ("progress",
@@ -199,8 +195,6 @@ ide_notifications_class_init (IdeNotificationsClass *klass)
    *
    * The "progress-is-imprecise" property indicates that all progress-bearing
    * notifications are imprecise.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROGRESS_IS_IMPRECISE] =
     g_param_spec_boolean ("progress-is-imprecise",
@@ -305,8 +299,6 @@ ide_notifications_init (IdeNotifications *self)
  * #IdeObject will create it automatically.
  *
  * Returns: (transfer full): a newly created #IdeNotifications
- *
- * Since: 3.32
  */
 IdeNotifications *
 ide_notifications_new (void)
@@ -321,8 +313,6 @@ ide_notifications_new (void)
  *
  * Adds @notification as a child of @self, sorting it by priority
  * and urgency.
- *
- * Since: 3.32
  */
 void
 ide_notifications_add_notification (IdeNotifications *self,
@@ -394,8 +384,6 @@ collect_progress_cb (gpointer item,
  * #IdeNotifications object.
  *
  * Returns: A double between 0.0 and 1.0
- *
- * Since: 3.32
  */
 gdouble
 ide_notifications_get_progress (IdeNotifications *self)
@@ -426,8 +414,6 @@ ide_notifications_get_progress (IdeNotifications *self)
  * Gets if any of the notification support progress updates.
  *
  * Returns: %TRUE if any notification has progress
- *
- * Since: 3.32
  */
 gboolean
 ide_notifications_get_has_progress (IdeNotifications *self)
@@ -450,8 +436,6 @@ ide_notifications_get_has_progress (IdeNotifications *self)
  * Checks if all of the notifications with progress are imprecise.
  *
  * Returns: %TRUE if all progress-supporting notifications are imprecise.
- *
- * Since: 3.32
  */
 gboolean
 ide_notifications_get_progress_is_imprecise (IdeNotifications *self)
@@ -496,8 +480,6 @@ find_by_id (gpointer item,
  * #IdeNotification:id of @id.
  *
  * Returns: (transfer full) (nullable): an #IdeNotification or %NULL
- *
- * Since: 3.32
  */
 IdeNotification *
 ide_notifications_find_by_id (IdeNotifications *self,
diff --git a/src/libide/core/ide-object-box.c b/src/libide/core/ide-object-box.c
index 6524c0b8a..08dd2f529 100644
--- a/src/libide/core/ide-object-box.c
+++ b/src/libide/core/ide-object-box.c
@@ -61,8 +61,6 @@ ide_object_box_set_object (IdeObjectBox *self,
  * Create a new #IdeObjectBox.
  *
  * Returns: (transfer full): a newly created #IdeObjectBox
- *
- * Since: 3.32
  */
 IdeObjectBox *
 ide_object_box_new (GObject *object)
@@ -177,8 +175,6 @@ ide_object_box_class_init (IdeObjectBoxClass *klass)
    *
    * The "object" property contains the object that is boxed and
    * placed onto the object graph using this box.
-   *
-   * Since: 3.32
    */
   properties [PROP_OBJECT] =
     g_param_spec_object ("object",
@@ -196,8 +192,6 @@ ide_object_box_class_init (IdeObjectBoxClass *klass)
    *
    * This is useful when you want to force disposal of an external object
    * when @self is removed from the object tree.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROPAGATE_DISPOSAL] =
     g_param_spec_boolean ("propagate-disposal",
@@ -222,8 +216,6 @@ ide_object_box_init (IdeObjectBox *self)
  * Gets the boxed object.
  *
  * Returns: (transfer full) (nullable) (type GObject): a #GObject or %NULL
- *
- * Since: 3.32
  */
 gpointer
 ide_object_box_ref_object (IdeObjectBox *self)
@@ -249,8 +241,6 @@ ide_object_box_ref_object (IdeObjectBox *self)
  * This function may only be called from the main thread.
  *
  * Returns: (transfer none): an #IdeObjectBox
- *
- * Since: 3.32
  */
 IdeObjectBox *
 ide_object_box_from_object (GObject *object)
@@ -269,8 +259,6 @@ ide_object_box_from_object (GObject *object)
  * Checks if @self contains @instance.
  *
  * Returns: %TRUE if #IdeObjectBox:object matches @instance
- *
- * Since: 3.32
  */
 gboolean
 ide_object_box_contains (IdeObjectBox *self,
diff --git a/src/libide/core/ide-object-notify.c b/src/libide/core/ide-object-notify.c
index 42cfe92ed..1b4b37434 100644
--- a/src/libide/core/ide-object-notify.c
+++ b/src/libide/core/ide-object-notify.c
@@ -56,8 +56,6 @@ ide_object_notify_in_main_cb (gpointer data)
  *
  * Like g_object_notify_by_pspec() if the caller is in the main-thread.
  * Otherwise, the request is deferred to the main thread.
- *
- * Since: 3.32
  */
 void
 ide_object_notify_by_pspec (gpointer    instance,
@@ -94,8 +92,6 @@ ide_object_notify_by_pspec (gpointer    instance,
  *
  * This will *always* return to the default main context, and never
  * emit ::notify immediately.
- *
- * Since: 3.32
  */
 void
 ide_object_notify_in_main (gpointer    instance,
diff --git a/src/libide/core/ide-object.c b/src/libide/core/ide-object.c
index 5268428f3..7c40f680a 100644
--- a/src/libide/core/ide-object.c
+++ b/src/libide/core/ide-object.c
@@ -47,8 +47,6 @@
  * called. When the object is destroyed, the #GCancellable::cancel signal
  * is emitted. This allows automatic cleanup of asynchronous operations
  * when used properly.
- *
- * Since: 3.32
  */
 
 typedef struct
@@ -462,8 +460,6 @@ ide_object_class_init (IdeObjectClass *klass)
    * IdeObject:parent:
    *
    * The parent #IdeObject, if any.
-   *
-   * Since: 3.32
    */
   properties [PROP_PARENT] =
     g_param_spec_object ("parent",
@@ -480,8 +476,6 @@ ide_object_class_init (IdeObjectClass *klass)
    *
    * This is convenient when you want operations to automatically be cancelled when
    * part of teh object tree is segmented.
-   *
-   * Since: 3.32
    */
   properties [PROP_CANCELLABLE] =
     g_param_spec_object ("cancellable",
@@ -503,8 +497,6 @@ ide_object_class_init (IdeObjectClass *klass)
    * If you do not want to receive the "destroy" signal, then you must
    * manually remove the object from the tree using ide_object_remove()
    * while holding a reference to the object.
-   *
-   * Since: 3.32
    */
   signals [DESTROY] =
     g_signal_new ("destroy",
@@ -541,8 +533,6 @@ ide_object_init (IdeObject *self)
  * other thread would potentially risk being disposed before returning.
  *
  * Returns: (transfer full) (type IdeObject): a new #IdeObject
- *
- * Since: 3.32
  */
 gpointer
 ide_object_new (GType      type,
@@ -568,8 +558,6 @@ ide_object_new (GType      type,
  * Gets the number of children for an object.
  *
  * Returns: the number of children
- *
- * Since: 3.32
  */
 guint
 ide_object_get_n_children (IdeObject *self)
@@ -596,8 +584,6 @@ ide_object_get_n_children (IdeObject *self)
  * A full reference to the child is returned.
  *
  * Returns: (transfer full) (nullable): an #IdeObject or %NULL
- *
- * Since: 3.32
  */
 IdeObject *
 ide_object_get_nth_child (IdeObject *self,
@@ -626,8 +612,6 @@ ide_object_get_nth_child (IdeObject *self,
  * Gets the position of @self within the parent node.
  *
  * Returns: the position, starting from 0
- *
- * Since: 3.32
  */
 guint
 ide_object_get_position (IdeObject *self)
@@ -660,8 +644,6 @@ ide_object_get_position (IdeObject *self)
  * Call ide_object_unlock() to release the lock.
  *
  * The synchronization used is a #GRecMutex.
- *
- * Since: 3.32
  */
 void
 ide_object_lock (IdeObject *self)
@@ -680,8 +662,6 @@ ide_object_lock (IdeObject *self)
  * Releases a previously acuiqred lock from ide_object_lock().
  *
  * The synchronization used is a #GRecMutex.
- *
- * Since: 3.32
  */
 void
 ide_object_unlock (IdeObject *self)
@@ -700,8 +680,6 @@ ide_object_unlock (IdeObject *self)
  * Gets a #GCancellable for the object.
  *
  * Returns: (transfer none) (not nullable): a #GCancellable
- *
- * Since: 3.32
  */
 GCancellable *
 ide_object_ref_cancellable (IdeObject *self)
@@ -729,8 +707,6 @@ ide_object_ref_cancellable (IdeObject *self)
  * This function may only be called from the main thread.
  *
  * Returns: (transfer none) (nullable): an #IdeObject or %NULL
- *
- * Since: 3.32
  */
 IdeObject *
 ide_object_get_parent (IdeObject *self)
@@ -755,8 +731,6 @@ ide_object_get_parent (IdeObject *self)
  * Gets the parent #IdeObject, if any.
  *
  * Returns: (transfer full) (nullable): an #IdeObject or %NULL
- *
- * Since: 3.32
  */
 IdeObject *
 ide_object_ref_parent (IdeObject *self)
@@ -780,8 +754,6 @@ ide_object_ref_parent (IdeObject *self)
  * Checks if @self is root, meaning it has no parent.
  *
  * Returns: %TRUE if @self has no parent
- *
- * Since: 3.32
  */
 gboolean
 ide_object_is_root (IdeObject *self)
@@ -813,8 +785,6 @@ ide_object_is_root (IdeObject *self)
  *
  * This function is primarily meant for consumers that don't know the
  * relative position they need until runtime.
- *
- * Since: 3.32
  */
 void
 ide_object_add (IdeObject         *self,
@@ -843,8 +813,6 @@ ide_object_add (IdeObject         *self,
  *
  * If @child is a borrowed reference, it may be finalized before this
  * function returns.
- *
- * Since: 3.32
  */
 void
 ide_object_remove (IdeObject *self,
@@ -862,8 +830,6 @@ ide_object_remove (IdeObject *self,
  * @child: an #IdeObject
  *
  * Inserts @child as the last child of @self.
- *
- * Since: 3.32
  */
 void
 ide_object_append (IdeObject *self,
@@ -878,8 +844,6 @@ ide_object_append (IdeObject *self,
  * @child: an #IdeObject
  *
  * Inserts @child as the first child of @self.
- *
- * Since: 3.32
  */
 void
 ide_object_prepend (IdeObject *self,
@@ -897,8 +861,6 @@ ide_object_prepend (IdeObject *self,
  * Inserts @child into @self's children, directly before @sibling.
  *
  * @sibling MUST BE a child of @self.
- *
- * Since: 3.32
  */
 void
 ide_object_insert_before (IdeObject *self,
@@ -917,8 +879,6 @@ ide_object_insert_before (IdeObject *self,
  * Inserts @child into @self's children, directly after @sibling.
  *
  * @sibling MUST BE a child of @self.
- *
- * Since: 3.32
  */
 void
 ide_object_insert_after (IdeObject *self,
@@ -938,8 +898,6 @@ ide_object_insert_after (IdeObject *self,
  *
  * Locates the proper sibling for @child by using @func amongst @self's
  * children #IdeObject. Those objects must already be sorted.
- *
- * Since: 3.32
  */
 void
 ide_object_insert_sorted (IdeObject        *self,
@@ -994,8 +952,6 @@ unlock:
  * @callback is allowed to remove children from @self, but only as long as they are
  * the child passed to callback (or child itself). See g_queue_foreach() for more
  * details about what is allowed.
- *
- * Since: 3.32
  */
 void
 ide_object_foreach (IdeObject *self,
@@ -1034,8 +990,6 @@ get_child_typed_cb (gpointer data,
  * Finds the first child of @self that is of @type.
  *
  * Returns: (transfer full) (type IdeObject) (nullable): an #IdeObject or %NULL
- *
- * Since: 3.32
  */
 gpointer
 ide_object_get_child_typed (IdeObject *self,
@@ -1071,8 +1025,6 @@ get_children_typed_cb (gpointer data,
  *
  * Returns: (transfer full) (element-type IdeObject): a #GPtrArray of
  *   #IdeObject matching @type.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_object_get_children_typed (IdeObject *self,
@@ -1101,8 +1053,6 @@ ide_object_get_children_typed (IdeObject *self,
  * Finds and returns the toplevel object in the tree.
  *
  * Returns: (transfer full): an #IdeObject
- *
- * Since: 3.32
  */
 IdeObject *
 ide_object_ref_root (IdeObject *self)
@@ -1154,8 +1104,6 @@ ide_object_async_init_cb (GObject      *object,
  * @type if it is missing.
  *
  * Returns: (transfer full) (nullable) (type IdeObject): an #IdeObject or %NULL
- *
- * Since: 3.32
  */
 gpointer
 ide_object_ensure_child_typed (IdeObject *self,
@@ -1205,8 +1153,6 @@ ide_object_ensure_child_typed (IdeObject *self,
  * address of your object variable as user data. Then when the object is
  * destroyed, the variable will be set to NULL. Useful for example to avoid
  * multiple copies of the same dialog.
- *
- * Since: 3.32
  */
 void
 ide_object_destroyed (IdeObject **object_pointer)
@@ -1232,8 +1178,6 @@ static gboolean dummy (gpointer p) { return G_SOURCE_REMOVE; }
  * Gets the #IdeContext for the object.
  *
  * Returns: (transfer none) (nullable): an #IdeContext
- *
- * Since: 3.32
  */
 IdeContext *
 ide_object_get_context (IdeObject *object)
@@ -1267,8 +1211,6 @@ ide_object_get_context (IdeObject *object)
  * Gets the root #IdeContext for the object, if any.
  *
  * Returns: (transfer full) (nullable): an #IdeContext or %NULL
- *
- * Since: 3.32
  */
 IdeContext *
 ide_object_ref_context (IdeObject *self)
@@ -1308,8 +1250,6 @@ ide_object_in_destruction (IdeObject *self)
  *
  * Returns: (transfer full): a string containing the string representation
  *   of the #IdeObject
- *
- * Since: 3.32
  */
 gchar *
 ide_object_repr (IdeObject *self)
diff --git a/src/libide/core/ide-settings.c b/src/libide/core/ide-settings.c
index f70798412..1d4a1e552 100644
--- a/src/libide/core/ide-settings.c
+++ b/src/libide/core/ide-settings.c
@@ -41,8 +41,6 @@
  * not, the users preference will be returned. Setting a preference via
  * #IdeSettings will always modify the projects setting, not the users default
  * settings.
- *
- * Since: 3.32
  */
 
 struct _IdeSettings
@@ -555,8 +553,6 @@ ide_settings_bind (IdeSettings        *self,
  * @get_mapping and @set_mapping transformation functions.
  *
  * Call ide_settings_unbind() to unbind the mapping.
- *
- * Since: 3.32
  */
 void
 ide_settings_bind_with_mapping (IdeSettings             *self,
diff --git a/src/libide/core/ide-transfer-manager.c b/src/libide/core/ide-transfer-manager.c
index d4459e062..7a1352959 100644
--- a/src/libide/core/ide-transfer-manager.c
+++ b/src/libide/core/ide-transfer-manager.c
@@ -65,8 +65,6 @@ static guint signals [N_SIGNALS];
  * Gets if there are active transfers.
  *
  * Returns: %TRUE if there are active transfers.
- *
- * Since: 3.32
  */
 gboolean
 ide_transfer_manager_get_has_active (IdeTransferManager *self)
@@ -130,8 +128,6 @@ ide_transfer_manager_class_init (IdeTransferManagerClass *klass)
    * IdeTransferManager:has-active:
    *
    * If there are transfers active, this will be set.
-   *
-   * Since: 3.32
    */
   properties [PROP_HAS_ACTIVE] =
     g_param_spec_boolean ("has-active",
@@ -145,8 +141,6 @@ ide_transfer_manager_class_init (IdeTransferManagerClass *klass)
    *
    * A double between and including 0.0 and 1.0 describing the progress of
    * all tasks.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROGRESS] =
     g_param_spec_double ("progress",
@@ -163,8 +157,6 @@ ide_transfer_manager_class_init (IdeTransferManagerClass *klass)
    * IdeTransferManager::all-transfers-completed:
    *
    * This signal is emitted when all of the transfers have completed or failed.
-   *
-   * Since: 3.32
    */
   signals [ALL_TRANSFERS_COMPLETED] =
     g_signal_new ("all-transfers-completed",
@@ -178,8 +170,6 @@ ide_transfer_manager_class_init (IdeTransferManagerClass *klass)
    * @transfer: An #IdeTransfer
    *
    * This signal is emitted when a transfer has completed successfully.
-   *
-   * Since: 3.32
    */
   signals [TRANSFER_COMPLETED] =
     g_signal_new ("transfer-completed",
@@ -197,8 +187,6 @@ ide_transfer_manager_class_init (IdeTransferManagerClass *klass)
    *
    * This signal is emitted when a transfer has failed to complete
    * successfully.
-   *
-   * Since: 3.32
    */
   signals [TRANSFER_FAILED] =
     g_signal_new ("transfer-failed",
@@ -289,8 +277,6 @@ ide_transfer_manager_cancel_all (IdeTransferManager *self)
  * ide_transfer_manager_clear:
  *
  * Removes all transfers from the manager that are completed.
- *
- * Since: 3.32
  */
 void
 ide_transfer_manager_clear (IdeTransferManager *self)
@@ -436,8 +422,6 @@ notify_properties:
  * manager and execute callback upon completion of the transfer. The success
  * or failure #GError will be propagated to the caller via
  * ide_transfer_manager_execute_finish().
- *
- * Since: 3.32
  */
 void
 ide_transfer_manager_execute_async (IdeTransferManager  *self,
@@ -495,8 +479,6 @@ ide_transfer_manager_execute_finish (IdeTransferManager  *self,
  * Gets the #IdeTransferManager singleton.
  *
  * Returns: (transfer none): an #IdeTransferManager
- *
- * Since: 3.32
  */
 IdeTransferManager *
 ide_transfer_manager_get_default (void)
diff --git a/src/libide/core/ide-transfer.c b/src/libide/core/ide-transfer.c
index c61ba0040..3ffdcdee6 100644
--- a/src/libide/core/ide-transfer.c
+++ b/src/libide/core/ide-transfer.c
@@ -517,8 +517,6 @@ ide_transfer_notification_notify_completed (IdeTransfer     *self,
  * If the transfer has completed, %NULL is returned.
  *
  * Returns: (transfer full) (nullable): an #IdeNotification or %NULL
- *
- * Since: 3.32
  */
 IdeNotification *
 ide_transfer_create_notification (IdeTransfer *self)
diff --git a/src/libide/core/ide-version-macros.h b/src/libide/core/ide-version-macros.h
index 431d66be2..6021f24c4 100644
--- a/src/libide/core/ide-version-macros.h
+++ b/src/libide/core/ide-version-macros.h
@@ -79,8 +79,6 @@
  * If a function has been deprecated in a newer version of Builder,
  * it is possible to use this symbol to avoid the compiler warnings
  * without disabling warning for every deprecated function.
- *
- * Since: 3.32
  */
 #ifndef IDE_VERSION_MIN_REQUIRED
 # define IDE_VERSION_MIN_REQUIRED (IDE_VERSION_CUR_STABLE)
@@ -100,8 +98,6 @@
  * If a function has been introduced in a newer version of Builder,
  * it is possible to use this symbol to get compiler warnings when
  * trying to use that function.
- *
- * Since: 3.32
  */
 #ifndef IDE_VERSION_MAX_ALLOWED
 # if IDE_VERSION_MIN_REQUIRED > IDE_VERSION_PREV_STABLE
diff --git a/src/libide/debugger/ide-debug-manager.c b/src/libide/debugger/ide-debug-manager.c
index d2ffeaca8..498f6aa71 100644
--- a/src/libide/debugger/ide-debug-manager.c
+++ b/src/libide/debugger/ide-debug-manager.c
@@ -139,8 +139,6 @@ ide_debug_manager_notify_buffer (IdeDebugManager        *self,
  * return %NULL in this case.
  *
  * Returns: %TRUE if the language is supported; otherwise %FALSE.
- *
- * Since: 3.32
  */
 gboolean
 ide_debug_manager_supports_language (IdeDebugManager *self,
@@ -615,8 +613,6 @@ ide_debug_manager_class_init (IdeDebugManagerClass *klass)
    *
    * This can be used to determine if the controls should be made visible
    * in the workbench.
-   *
-   * Since: 3.32
    */
   properties [PROP_ACTIVE] =
     g_param_spec_boolean ("active",
@@ -641,8 +637,6 @@ ide_debug_manager_class_init (IdeDebugManagerClass *klass)
    *
    * The "breakpoint-added" signal is emitted when a new breakpoint has
    * been registered by the debugger.
-   *
-   * Since: 3.32
    */
   signals [BREAKPOINT_ADDED] =
     g_signal_new_class_handler ("breakpoint-added",
@@ -659,8 +653,6 @@ ide_debug_manager_class_init (IdeDebugManagerClass *klass)
    *
    * The "breakpoint-removed" signal is emitted when a new breakpoint has been
    * removed by the debugger.
-   *
-   * Since: 3.32
    */
   signals [BREAKPOINT_REMOVED] =
     g_signal_new_class_handler ("breakpoint-removed",
@@ -682,8 +674,6 @@ ide_debug_manager_class_init (IdeDebugManagerClass *klass)
    * on the #IdeDebugger itself.
    *
    * See also: #IdeDebugManager:debugger
-   *
-   * Since: 3.32
    */
   signals [BREAKPOINT_REACHED] =
     g_signal_new_class_handler ("breakpoint-reached",
@@ -809,8 +799,6 @@ failure:
  * supports the runner.
  *
  * Returns: (transfer full) (nullable): An #IdeDebugger or %NULL
- *
- * Since: 3.32
  */
 IdeDebugger *
 ide_debug_manager_find_debugger (IdeDebugManager *self,
@@ -988,8 +976,6 @@ ide_debug_manager_runner_exited (IdeDebugManager *self,
  * Attempts to start a runner using a discovered debugger backend.
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_debug_manager_start (IdeDebugManager  *self,
@@ -1088,8 +1074,6 @@ ide_debug_manager_get_active (IdeDebugManager *self)
  * Gets the debugger instance, if it is loaded.
  *
  * Returns: (transfer none) (nullable): An #IdeDebugger or %NULL
- *
- * Since: 3.32
  */
 IdeDebugger *
 ide_debug_manager_get_debugger (IdeDebugManager *self)
@@ -1113,8 +1097,6 @@ ide_debug_manager_get_debugger (IdeDebugManager *self)
  * propagate to the debugger when the debugger has been successfully spawned.
  *
  * Returns: (transfer full): An #IdeDebuggerBreakpoints
- *
- * Since: 3.32
  */
 IdeDebuggerBreakpoints *
 ide_debug_manager_get_breakpoints_for_file (IdeDebugManager *self,
@@ -1147,8 +1129,6 @@ ide_debug_manager_get_breakpoints_for_file (IdeDebugManager *self,
  * is done by notifying the debugger to add the breakpoint. If there is
  * not an active debugger, then it is done by caching the breakpoint
  * until the debugger is next started.
- *
- * Since: 3.32
  */
 void
 _ide_debug_manager_add_breakpoint (IdeDebugManager       *self,
@@ -1195,8 +1175,6 @@ _ide_debug_manager_add_breakpoint (IdeDebugManager       *self,
  * This removes an exiting breakpoint. If the debugger has been started, it
  * is done by notifying the debugger to remove the breakpoint. If there is
  * not an active debugger, then it is done by removing the cached breakpoint.
- *
- * Since: 3.32
  */
 void
 _ide_debug_manager_remove_breakpoint (IdeDebugManager       *self,
@@ -1239,8 +1217,6 @@ _ide_debug_manager_remove_breakpoint (IdeDebugManager       *self,
  * Gets the #IdeDebugManager for a context.
  *
  * Returns: (transfer none): an #IdeDebugManager
- *
- * Since: 3.32
  */
 IdeDebugManager *
 ide_debug_manager_from_context (IdeContext *context)
diff --git a/src/libide/debugger/ide-debugger-address-map.c b/src/libide/debugger/ide-debugger-address-map.c
index 3f9e2604c..d38e7ddd3 100644
--- a/src/libide/debugger/ide-debugger-address-map.c
+++ b/src/libide/debugger/ide-debugger-address-map.c
@@ -93,8 +93,6 @@ ide_debugger_address_map_entry_free (gpointer data)
  * See also: ide_debugger_address_map_free()
  *
  * Returns: (transfer full): A new #IdeDebuggerAddressMap
- *
- * Since: 3.32
  */
 IdeDebuggerAddressMap *
 ide_debugger_address_map_new (void)
@@ -113,8 +111,6 @@ ide_debugger_address_map_new (void)
  * @self: a #IdeDebuggerAddressMap
  *
  * Frees all memory associated with @self.
- *
- * Since: 3.32
  */
 void
 ide_debugger_address_map_free (IdeDebuggerAddressMap *self)
@@ -138,8 +134,6 @@ ide_debugger_address_map_free (IdeDebuggerAddressMap *self)
  * around after calling this function.
  *
  * See also: ide_debugger_address_map_remove()
- *
- * Since: 3.32
  */
 void
 ide_debugger_address_map_insert (IdeDebuggerAddressMap            *self,
@@ -171,8 +165,6 @@ ide_debugger_address_map_insert (IdeDebuggerAddressMap            *self,
  * #IdeDebuggerAddressMapEntry.end.
  *
  * Returns: (nullable): An #IdeDebuggerAddressMapEntry or %NULL
- *
- * Since: 3.32
  */
 const IdeDebuggerAddressMapEntry *
 ide_debugger_address_map_lookup (const IdeDebuggerAddressMap *self,
@@ -200,8 +192,6 @@ ide_debugger_address_map_lookup (const IdeDebuggerAddressMap *self,
  * @address: the address contained in the map
  *
  * Removes the entry found containing @address.
- *
- * Since: 3.32
  */
 gboolean
 ide_debugger_address_map_remove (IdeDebuggerAddressMap *self,
diff --git a/src/libide/debugger/ide-debugger-breakpoint.c b/src/libide/debugger/ide-debugger-breakpoint.c
index d7931f18a..5256cde44 100644
--- a/src/libide/debugger/ide-debugger-breakpoint.c
+++ b/src/libide/debugger/ide-debugger-breakpoint.c
@@ -232,8 +232,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    * The address of the breakpoint, if available.
    *
    * Builder only supports up to 64-bit addresses at this time.
-   *
-   * Since: 3.32
    */
   properties [PROP_ADDRESS] =
     g_param_spec_uint64 ("address",
@@ -248,8 +246,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    * The number of times the breakpoint has been reached.
    *
    * This is backend specific, and may not be supported by all backends.
-   *
-   * Since: 3.32
    */
   properties [PROP_COUNT] =
     g_param_spec_int64 ("count",
@@ -270,8 +266,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    *
    * This is backend specific, and not all values may be supported by all
    * backends.
-   *
-   * Since: 3.32
    */
   properties [PROP_DISPOSITION] =
     g_param_spec_enum ("disposition",
@@ -285,8 +279,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    * IdeDebuggerBreakpoint:enabled:
    *
    * This property is %TRUE when the breakpoint is enabled.
-   *
-   * Since: 3.32
    */
   properties [PROP_ENABLED] =
     g_param_spec_boolean ("enabled",
@@ -302,8 +294,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    *
    * The value of this is backend specific and may look vastly different
    * based on the language being debugged.
-   *
-   * Since: 3.32
    */
   properties [PROP_FUNCTION] =
     g_param_spec_string ("function",
@@ -318,8 +308,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    * The identifier of the breakpoint.
    *
    * This is backend specific.
-   *
-   * Since: 3.32
    */
   properties [PROP_ID] =
     g_param_spec_string ("id",
@@ -335,8 +323,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    *
    * If the breakpoint exists at an assembly instruction that cannot be
    * represented by a file, this will be %NULL.
-   *
-   * Since: 3.32
    */
   properties [PROP_FILE] =
     g_param_spec_string ("file",
@@ -350,8 +336,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    *
    * The line number within #IdeDebuggerBreakpoint:file where the
    * breakpoint exists.
-   *
-   * Since: 3.32
    */
   properties [PROP_LINE] =
     g_param_spec_uint ("line",
@@ -364,8 +348,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    * IdeDebuggerBreakpoint:mode:
    *
    * The mode of the breakpoint, such as a breakpoint, countpoint, or watchpoint.
-   *
-   * Since: 3.32
    */
   properties [PROP_MODE] =
     g_param_spec_enum ("mode",
@@ -380,8 +362,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    *
    * The specification for the breakpoint, which may be used by watchpoints
    * to determine of the breakpoint should be applied while executing.
-   *
-   * Since: 3.32
    */
   properties [PROP_SPEC] =
     g_param_spec_string ("spec",
@@ -394,8 +374,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    * IdeDebuggerBreakpoint:thread:
    *
    * The thread the breakpoint is currently stopped in, or %NULL.
-   *
-   * Since: 3.32
    */
   properties [PROP_THREAD] =
     g_param_spec_string ("thread",
@@ -414,8 +392,6 @@ ide_debugger_breakpoint_class_init (IdeDebuggerBreakpointClass *klass)
    * breakpoint can reset any internal state. This allows the breakpoint to be
    * propagated to the next debugger instance, allowing the user to move
    * between debugger sessions without loosing state.
-   *
-   * Since: 3.32
    */
   signals [RESET] =
     g_signal_new ("reset",
@@ -452,8 +428,6 @@ ide_debugger_breakpoint_new (const gchar *id)
  * Gets the identifier for the breakpoint that is backend specific.
  *
  * Returns: the id of the breakpoint
- *
- * Since: 3.32
  */
 const gchar *
 ide_debugger_breakpoint_get_id (IdeDebuggerBreakpoint *self)
@@ -475,8 +449,6 @@ ide_debugger_breakpoint_get_id (IdeDebuggerBreakpoint *self)
  * Builder only supports up to 64-bit addresses at this time.
  *
  * Returns: The address of the breakpoint, if any.
- *
- * Since: 3.32
  */
 IdeDebuggerAddress
 ide_debugger_breakpoint_get_address (IdeDebuggerBreakpoint *self)
@@ -494,8 +466,6 @@ ide_debugger_breakpoint_get_address (IdeDebuggerBreakpoint *self)
  * @address: The address of the breakpoint
  *
  * Sets the address of the breakpoint, if any.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_address (IdeDebuggerBreakpoint *self,
@@ -521,8 +491,6 @@ ide_debugger_breakpoint_set_address (IdeDebuggerBreakpoint *self,
  * address.
  *
  * Returns: (nullable): The file containing the breakpoint, or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_debugger_breakpoint_get_file (IdeDebuggerBreakpoint *self)
@@ -540,8 +508,6 @@ ide_debugger_breakpoint_get_file (IdeDebuggerBreakpoint *self)
  * @file: (nullable): the file containing the breakpoint, or %NULL
  *
  * Sets the file that contains the breakpoint, if any.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_file (IdeDebuggerBreakpoint *self,
@@ -569,8 +535,6 @@ ide_debugger_breakpoint_set_file (IdeDebuggerBreakpoint *self,
  * %IDE_DEBUGGER_BREAK_WATCHPOINT.
  *
  * Returns: (nullable): A string containing the spec, or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_debugger_breakpoint_get_spec (IdeDebuggerBreakpoint *self)
@@ -590,8 +554,6 @@ ide_debugger_breakpoint_get_spec (IdeDebuggerBreakpoint *self)
  * Sets the specification for the debugger breakpoint. This describes
  * a statement which the debugger can use to determine of the breakpoint
  * should be applied when stopping the debugger.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_spec (IdeDebuggerBreakpoint *self,
@@ -617,8 +579,6 @@ ide_debugger_breakpoint_set_spec (IdeDebuggerBreakpoint *self,
  *
  * Returns: An integer greater than or equal to zero representing the
  *   number of times the breakpoint has been reached.
- *
- * Since: 3.32
  */
 gint64
 ide_debugger_breakpoint_get_count (IdeDebuggerBreakpoint *self)
@@ -636,8 +596,6 @@ ide_debugger_breakpoint_get_count (IdeDebuggerBreakpoint *self)
  * Sets the number of times the breakpoint has been reached if the
  * breakpoint is a countpoint (or if the backend supports counting of
  * regular breakpoints).
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_count (IdeDebuggerBreakpoint *self,
@@ -663,8 +621,6 @@ ide_debugger_breakpoint_set_count (IdeDebuggerBreakpoint *self,
  * See also: #IdeDebuggerBreakMode
  *
  * Returns: The mode of the breakpoint
- *
- * Since: 3.32
  */
 IdeDebuggerBreakMode
 ide_debugger_breakpoint_get_mode (IdeDebuggerBreakpoint *self)
@@ -687,8 +643,6 @@ ide_debugger_breakpoint_get_mode (IdeDebuggerBreakpoint *self)
  *
  * For example, if it is a countpoint (a breakpoint which increments a
  * counter), you would use %IDE_DEBUGGER_BREAK_COUNTPOINT.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_mode (IdeDebuggerBreakpoint *self,
@@ -713,8 +667,6 @@ ide_debugger_breakpoint_set_mode (IdeDebuggerBreakpoint *self,
  * Gets the "disposition" property of the breakpoint.
  *
  * Returns: An #IdeDebugerDisposition
- *
- * Since: 3.32
  */
 IdeDebuggerDisposition
 ide_debugger_breakpoint_get_disposition (IdeDebuggerBreakpoint *self)
@@ -735,8 +687,6 @@ ide_debugger_breakpoint_get_disposition (IdeDebuggerBreakpoint *self)
  *
  * The disposition property is used to to track what should happen to a
  * breakpoint when movements are made in the debugger.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_disposition (IdeDebuggerBreakpoint  *self,
@@ -761,8 +711,6 @@ ide_debugger_breakpoint_set_disposition (IdeDebuggerBreakpoint  *self,
  * Checks if the breakpoint is enabled.
  *
  * Returns: %TRUE if the breakpoint is enabled
- *
- * Since: 3.32
  */
 gboolean
 ide_debugger_breakpoint_get_enabled (IdeDebuggerBreakpoint *self)
@@ -783,8 +731,6 @@ ide_debugger_breakpoint_get_enabled (IdeDebuggerBreakpoint *self)
  *
  * You must call ide_debugger_breakpoint_modify_breakpoint_async() to actually
  * modify the breakpoint in the backend.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_enabled (IdeDebuggerBreakpoint *self,
@@ -810,8 +756,6 @@ ide_debugger_breakpoint_set_enabled (IdeDebuggerBreakpoint *self,
  * Gets the "function" property of the breakpoint.
  *
  * This is a user-readable value representing the name of the function.
- *
- * Since: 3.32
  */
 const gchar *
 ide_debugger_breakpoint_get_function (IdeDebuggerBreakpoint *self)
@@ -830,8 +774,6 @@ ide_debugger_breakpoint_get_function (IdeDebuggerBreakpoint *self)
  *
  * Sets the "function" property, which is a user-readable value representing
  * the name of the function.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_function (IdeDebuggerBreakpoint *self,
@@ -859,8 +801,6 @@ ide_debugger_breakpoint_set_function (IdeDebuggerBreakpoint *self,
  * This value is indexed from 1, and 0 indicates that the value is unset.
  *
  * Returns: An integer greater than 0 if set, otherwise 0.
- *
- * Since: 3.32
  */
 guint
 ide_debugger_breakpoint_get_line (IdeDebuggerBreakpoint *self)
@@ -877,8 +817,6 @@ ide_debugger_breakpoint_get_line (IdeDebuggerBreakpoint *self)
  * @self: An #IdeDebuggerBreakpoint
  *
  * Sets the line for the breakpoint. A value of 0 means the line is unset.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_line (IdeDebuggerBreakpoint *self,
@@ -903,8 +841,6 @@ ide_debugger_breakpoint_set_line (IdeDebuggerBreakpoint *self,
  * currently stopped in (if any).
  *
  * Returns: (nullable): the thread identifier or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_debugger_breakpoint_get_thread (IdeDebuggerBreakpoint *self)
@@ -922,8 +858,6 @@ ide_debugger_breakpoint_get_thread (IdeDebuggerBreakpoint *self)
  * Sets the thread that the breakpoint is currently stopped in.
  *
  * This should generally only be used by debugger implementations.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoint_set_thread (IdeDebuggerBreakpoint *self,
diff --git a/src/libide/debugger/ide-debugger-breakpoints.c b/src/libide/debugger/ide-debugger-breakpoints.c
index a9f26361c..82a8dfa49 100644
--- a/src/libide/debugger/ide-debugger-breakpoints.c
+++ b/src/libide/debugger/ide-debugger-breakpoints.c
@@ -44,8 +44,6 @@
  * breakpoints as necessary by the current debugger. If no debugger is
  * active, the breakpoints are queued until the debugger has started, and
  * then synchronized to the debugger process.
- *
- * Since: 3.32
  */
 
 typedef struct
@@ -198,8 +196,6 @@ ide_debugger_breakpoints_init (IdeDebuggerBreakpoints *self)
  * if no breakpoint is registered there.
  *
  * Returns: (nullable) (transfer none): An #IdeDebuggerBreakpoint or %NULL
- *
- * Since: 3.32
  */
 IdeDebuggerBreakpoint *
 ide_debugger_breakpoints_get_line (IdeDebuggerBreakpoints *self,
@@ -370,8 +366,6 @@ _ide_debugger_breakpoints_remove (IdeDebuggerBreakpoints *self,
  * this container belong to.
  *
  * Returns: (transfer none): a #GFile
- *
- * Since: 3.32
  */
 GFile *
 ide_debugger_breakpoints_get_file (IdeDebuggerBreakpoints *self)
@@ -388,8 +382,6 @@ ide_debugger_breakpoints_get_file (IdeDebuggerBreakpoints *self)
  * @user_data: user data for @func
  *
  * Call @func for every #IdeDebuggerBreakpoint in @self.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoints_foreach (IdeDebuggerBreakpoints *self,
diff --git a/src/libide/debugger/ide-debugger-library.c b/src/libide/debugger/ide-debugger-library.c
index 63f6427cf..d6e708bf9 100644
--- a/src/libide/debugger/ide-debugger-library.c
+++ b/src/libide/debugger/ide-debugger-library.c
@@ -232,8 +232,6 @@ ide_debugger_library_set_target_name (IdeDebuggerLibrary *self,
  *
  * Returns: (transfer none) (element-type Ide.DebuggerAddressRange): a #GPtrArray
  *   containing the list of address ranges.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_debugger_library_get_ranges (IdeDebuggerLibrary *self)
@@ -252,8 +250,6 @@ ide_debugger_library_get_ranges (IdeDebuggerLibrary *self)
  *
  * Adds @range to the list of ranges for which the library is mapped in
  * the inferior's address space.
- *
- * Since: 3.32
  */
 void
 ide_debugger_library_add_range (IdeDebuggerLibrary            *self,
diff --git a/src/libide/debugger/ide-debugger-types.h b/src/libide/debugger/ide-debugger-types.h
index 705968d96..89b58ac40 100644
--- a/src/libide/debugger/ide-debugger-types.h
+++ b/src/libide/debugger/ide-debugger-types.h
@@ -32,8 +32,6 @@ G_BEGIN_DECLS
  *   used to troubleshoot the debugger.
  *
  * The type of stream for the log message.
- *
- * Since: 3.32
  */
 typedef enum
 {
@@ -56,8 +54,6 @@ typedef enum
  * @IDE_DEBUGGER_MOVEMENT_FINISH: Run until the function returns.
  *
  * Describes the style of movement that should be performed by the debugger.
- *
- * Since: 3.32
  */
 typedef enum
 {
@@ -80,8 +76,6 @@ typedef enum
  *    received a death signal.
  *
  * Represents the reason a process has stopped executing in the debugger.
- *
- * Since: 3.32
  */
 typedef enum
 {
@@ -119,8 +113,6 @@ typedef enum
  *   specification matching.
  *
  * The type of breakpoint.
- *
- * Since: 3.32
  */
 typedef enum
 {
@@ -139,8 +131,6 @@ typedef enum
  * @IDE_DEBUGGER_BREAKPOINT_CHANGE_ENABLED: change the enabled state
  *
  * Describes the type of modification to perform on a breakpoint.
- *
- * Since: 3.32
  */
 typedef enum
 {
@@ -164,8 +154,6 @@ typedef enum
  *
  * The disposition determines what should happen to the breakpoint at the next
  * stop of the debugger.
- *
- * Since: 3.32
  */
 typedef enum
 {
diff --git a/src/libide/debugger/ide-debugger.c b/src/libide/debugger/ide-debugger.c
index 61c2d6233..e803062b5 100644
--- a/src/libide/debugger/ide-debugger.c
+++ b/src/libide/debugger/ide-debugger.c
@@ -38,8 +38,6 @@
  *
  * For example, when the inferior creates a new thread, the debugger
  * implementation should call ide_debugger_emit_thread_added().
- *
- * Since: 3.32
  */
 
 typedef struct
@@ -499,8 +497,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * The "display-name" property is used by UI to when it is necessary
    * to display the name of the debugger. You might set this to "GNU Debugger"
    * or "Python Debugger", etc.
-   *
-   * Since: 3.32
    */
   properties [PROP_DISPLAY_NAME] =
     g_param_spec_string ("display-name",
@@ -513,8 +509,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * IdeDebugger:selected-thread:
    *
    * The currently selected thread.
-   *
-   * Since: 3.32
    */
   properties [PROP_SELECTED_THREAD] =
     g_param_spec_object ("selected-thread",
@@ -533,8 +527,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    *
    * The "log" signal is emitted when there is new content to be
    * appended to one of the streams.
-   *
-   * Since: 3.32
    */
   signals [LOG] =
     g_signal_new ("log",
@@ -553,8 +545,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * @thread_group: an #IdeDebuggerThreadGroup
    *
    * This signal is emitted when a thread-group has been added.
-   *
-   * Since: 3.32
    */
   signals [THREAD_GROUP_ADDED] =
     g_signal_new ("thread-group-added",
@@ -572,8 +562,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * @thread_group: an #IdeDebuggerThreadGroup
    *
    * This signal is emitted when a thread-group has been removed.
-   *
-   * Since: 3.32
    */
   signals [THREAD_GROUP_REMOVED] =
     g_signal_new ("thread-group-removed",
@@ -591,8 +579,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * @thread_group: an #IdeDebuggerThreadGroup
    *
    * This signal is emitted when a thread-group has been started.
-   *
-   * Since: 3.32
    */
   signals [THREAD_GROUP_STARTED] =
     g_signal_new ("thread-group-started",
@@ -610,8 +596,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * @thread_group: an #IdeDebuggerThreadGroup
    *
    * This signal is emitted when a thread-group has exited.
-   *
-   * Since: 3.32
    */
   signals [THREAD_GROUP_EXITED] =
     g_signal_new ("thread-group-exited",
@@ -627,8 +611,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * @thread: an #IdeDebuggerThread
    *
    * The signal is emitted when a thread is added to the inferior.
-   *
-   * Since: 3.32
    */
   signals [THREAD_ADDED] =
     g_signal_new ("thread-added",
@@ -644,8 +626,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * @thread: an #IdeDebuggerThread
    *
    * The signal is emitted when a thread is removed from the inferior.
-   *
-   * Since: 3.32
    */
   signals [THREAD_REMOVED] =
     g_signal_new ("thread-removed",
@@ -661,8 +641,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * @thread: an #IdeDebuggerThread
    *
    * The signal is emitted when a thread is selected in the debugger.
-   *
-   * Since: 3.32
    */
   signals [THREAD_SELECTED] =
     g_signal_new ("thread-selected",
@@ -679,8 +657,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    *
    * The "breakpoint-added" signal is emitted when a breakpoint has been
    * added to the debugger.
-   *
-   * Since: 3.32
    */
   signals [BREAKPOINT_ADDED] =
     g_signal_new ("breakpoint-added",
@@ -697,8 +673,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    *
    * The "breakpoint-removed" signal is emitted when a breakpoint has been
    * removed from the debugger.
-   *
-   * Since: 3.32
    */
   signals [BREAKPOINT_REMOVED] =
     g_signal_new ("breakpoint-removed",
@@ -715,8 +689,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    *
    * The "breakpoint-modified" signal is emitted when a breakpoint has been
    * modified by the debugger.
-   *
-   * Since: 3.32
    */
   signals [BREAKPOINT_MODIFIED] =
     g_signal_new ("breakpoint-modified",
@@ -732,8 +704,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    *
    * This signal is emitted when the debugger starts or resumes executing
    * the inferior.
-   *
-   * Since: 3.32
    */
   signals [RUNNING] =
     g_signal_new ("running",
@@ -755,8 +725,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * the location the debugger stopped. That location may not always be
    * representable by source in the project (such as memory address based
    * breakpoints).
-   *
-   * Since: 3.32
    */
   signals [STOPPED] =
     g_signal_new ("stopped",
@@ -775,8 +743,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * @library: An #IdeDebuggerLibrary
    *
    * This signal is emitted when a library has been loaded by the debugger.
-   *
-   * Since: 3.32
    */
   signals [LIBRARY_LOADED] =
     g_signal_new ("library-loaded",
@@ -794,8 +760,6 @@ ide_debugger_class_init (IdeDebuggerClass *klass)
    * This signal is emitted when a library has been unloaded by the debugger.
    * Generally, this means that the library was a module and loaded in such a
    * way that allowed unloading.
-   *
-   * Since: 3.32
    */
   signals [LIBRARY_UNLOADED] =
     g_signal_new ("library-unloaded",
@@ -825,8 +789,6 @@ ide_debugger_init (IdeDebugger *self)
  * UI components.
  *
  * Returns: The display name for the debugger
- *
- * Since: 3.32
  */
 const gchar *
 ide_debugger_get_display_name (IdeDebugger *self)
@@ -843,8 +805,6 @@ ide_debugger_get_display_name (IdeDebugger *self)
  * @self: a #IdeDebugger
  *
  * Sets the #IdeDebugger:display-name property.
- *
- * Since: 3.32
  */
 void
 ide_debugger_set_display_name (IdeDebugger *self,
@@ -870,8 +830,6 @@ ide_debugger_set_display_name (IdeDebugger *self,
  * Checks to see if the debugger can make the movement matching @movement.
  *
  * Returns: %TRUE if @movement can be performed.
- *
- * Since: 3.32
  */
 gboolean
 ide_debugger_get_can_move (IdeDebugger         *self,
@@ -896,8 +854,6 @@ ide_debugger_get_can_move (IdeDebugger         *self,
  *
  * Advances the debugger to the next breakpoint or until the debugger stops.
  * @movement should describe the type of movement to perform.
- *
- * Since: 3.32
  */
 void
 ide_debugger_move_async (IdeDebugger         *self,
@@ -925,8 +881,6 @@ ide_debugger_move_async (IdeDebugger         *self,
  * only that the command has be submitted.
  *
  * Returns: %TRUE if successful, otherwise %FALSE
- *
- * Since: 3.32
  */
 gboolean
 ide_debugger_move_finish (IdeDebugger   *self,
@@ -949,8 +903,6 @@ ide_debugger_move_finish (IdeDebugger   *self,
  * that incoming log information has been recieved.
  *
  * Use the #IdeDebuggerStream to denote the particular stream.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_log (IdeDebugger       *self,
@@ -971,8 +923,6 @@ ide_debugger_emit_log (IdeDebugger       *self,
  *
  * Debugger implementations should call this to notify that a thread group has
  * been added to the inferior.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_thread_group_added (IdeDebugger            *self,
@@ -991,8 +941,6 @@ ide_debugger_emit_thread_group_added (IdeDebugger            *self,
  *
  * Debugger implementations should call this to notify that a thread group has
  * been removed from the inferior.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_thread_group_removed (IdeDebugger            *self,
@@ -1011,8 +959,6 @@ ide_debugger_emit_thread_group_removed (IdeDebugger            *self,
  *
  * Debugger implementations should call this to notify that a thread group has
  * started executing.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_thread_group_started (IdeDebugger            *self,
@@ -1031,8 +977,6 @@ ide_debugger_emit_thread_group_started (IdeDebugger            *self,
  *
  * Debugger implementations should call this to notify that a thread group has
  * exited.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_thread_group_exited (IdeDebugger            *self,
@@ -1051,8 +995,6 @@ ide_debugger_emit_thread_group_exited (IdeDebugger            *self,
  *
  * Emits the #IdeDebugger::thread-added signal notifying that a new thread
  * has been added to the inferior.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_thread_added (IdeDebugger       *self,
@@ -1071,8 +1013,6 @@ ide_debugger_emit_thread_added (IdeDebugger       *self,
  *
  * Emits the #IdeDebugger::thread-removed signal notifying that a thread has
  * been removed to the inferior.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_thread_removed (IdeDebugger       *self,
@@ -1091,8 +1031,6 @@ ide_debugger_emit_thread_removed (IdeDebugger       *self,
  *
  * Emits the #IdeDebugger::thread-selected signal notifying that a thread
  * has been set as the current debugging thread.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_thread_selected (IdeDebugger       *self,
@@ -1116,8 +1054,6 @@ ide_debugger_emit_thread_selected (IdeDebugger       *self,
  *
  * If a breakpoint has changed, you should use
  * ide_debugger_emit_breakpoint_modified() to notify of the modification.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_breakpoint_added (IdeDebugger           *self,
@@ -1141,8 +1077,6 @@ ide_debugger_emit_breakpoint_added (IdeDebugger           *self,
  *
  * If a breakpoint has changed, you should use
  * ide_debugger_emit_breakpoint_modified() to notify of the modification.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_breakpoint_removed (IdeDebugger           *self,
@@ -1163,8 +1097,6 @@ ide_debugger_emit_breakpoint_removed (IdeDebugger           *self,
  *
  * Debugger implementations should call this when a breakpoint has changed
  * in the underlying debugger.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_breakpoint_modified (IdeDebugger           *self,
@@ -1184,8 +1116,6 @@ ide_debugger_emit_breakpoint_modified (IdeDebugger           *self,
  *
  * Debugger implementations should call this when the debugger has started
  * or restarted executing the inferior.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_running (IdeDebugger *self)
@@ -1205,8 +1135,6 @@ ide_debugger_emit_running (IdeDebugger *self)
  *
  * Debugger implementations should call this when the debugger has stopped
  * and include the reason and location of the stop.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_stopped (IdeDebugger           *self,
@@ -1229,8 +1157,6 @@ ide_debugger_emit_stopped (IdeDebugger           *self,
  *
  * Debugger implementations should call this when the debugger has loaded
  * a new library.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_library_loaded (IdeDebugger        *self,
@@ -1251,8 +1177,6 @@ ide_debugger_emit_library_loaded (IdeDebugger        *self,
  *
  * Debugger implementations should call this when the debugger has unloaded a
  * library.
- *
- * Since: 3.32
  */
 void
 ide_debugger_emit_library_unloaded (IdeDebugger        *self,
@@ -1275,8 +1199,6 @@ ide_debugger_emit_library_unloaded (IdeDebugger        *self,
  *
  * #IdeDebugger implementations must implement the virtual function
  * for this method.
- *
- * Since: 3.32
  */
 void
 ide_debugger_list_breakpoints_async (IdeDebugger         *self,
@@ -1300,8 +1222,6 @@ ide_debugger_list_breakpoints_async (IdeDebugger         *self,
  *
  * Returns: (transfer full) (element-type Ide.DebuggerBreakpoint): a #GPtrArray
  *   of breakpoints that are registered with the debugger.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_debugger_list_breakpoints_finish (IdeDebugger   *self,
@@ -1327,8 +1247,6 @@ ide_debugger_list_breakpoints_finish (IdeDebugger   *self,
  * This asynchronous function may complete before the breakpoint has been
  * registered in the debugger. Debugger implementations will emit
  * #IdeDebugger::breakpoint-added when a breakpoint has been registered.
- *
- * Since: 3.32
  */
 void
 ide_debugger_insert_breakpoint_async (IdeDebugger             *self,
@@ -1360,8 +1278,6 @@ ide_debugger_insert_breakpoint_async (IdeDebugger             *self,
  *
  * Returns: %TRUE if the command was submitted successfully; otherwise %FALSE
  *   and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_debugger_insert_breakpoint_finish (IdeDebugger   *self,
@@ -1387,8 +1303,6 @@ ide_debugger_insert_breakpoint_finish (IdeDebugger   *self,
  * This asynchronous function may complete before the breakpoint has been
  * removed by the debugger. Debugger implementations will emit
  * #IdeDebugger::breakpoint-removed when a breakpoint has been removed.
- *
- * Since: 3.32
  */
 void
 ide_debugger_remove_breakpoint_async (IdeDebugger             *self,
@@ -1419,8 +1333,6 @@ ide_debugger_remove_breakpoint_async (IdeDebugger             *self,
  * See also: ide_debugger_remove_breakpoint_async()
  *
  * Returns: %TRUE if the command was submitted successfully; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_debugger_remove_breakpoint_finish (IdeDebugger   *self,
@@ -1449,8 +1361,6 @@ ide_debugger_remove_breakpoint_finish (IdeDebugger   *self,
  * This asynchronous function may complete before the breakpoint has been
  * modified by the debugger. Debugger implementations will emit
  * #IdeDebugger::breakpoint-modified when a breakpoint has been removed.
- *
- * Since: 3.32
  */
 void
 ide_debugger_modify_breakpoint_async (IdeDebugger                 *self,
@@ -1486,8 +1396,6 @@ ide_debugger_modify_breakpoint_async (IdeDebugger                 *self,
  * #IdeDebugger::breakpoint-modified signal.
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_debugger_modify_breakpoint_finish (IdeDebugger   *self,
@@ -1515,8 +1423,6 @@ ide_debugger_modify_breakpoint_finish (IdeDebugger   *self,
  * display information on breakpoints.
  *
  * Returns: (transfer none) (not nullable): a #GListModel of #IdeDebuggerBreakpoint
- *
- * Since: 3.32
  */
 GListModel *
 ide_debugger_get_breakpoints (IdeDebugger *self)
@@ -1538,8 +1444,6 @@ ide_debugger_get_breakpoints (IdeDebugger *self)
  * implementation emitting varous thread-group modification signals correctly.
  *
  * Returns: (transfer none) (not nullable): a #GListModel of #IdeDebuggerThreadGroup
- *
- * Since: 3.32
  */
 GListModel *
 ide_debugger_get_thread_groups (IdeDebugger *self)
@@ -1561,8 +1465,6 @@ ide_debugger_get_thread_groups (IdeDebugger *self)
  * implementation emitting varous thread modification signals correctly.
  *
  * Returns: (transfer none) (not nullable): a #GListModel of #IdeDebuggerThread
- *
- * Since: 3.32
  */
 GListModel *
 ide_debugger_get_threads (IdeDebugger *self)
@@ -1595,8 +1497,6 @@ ide_debugger_list_frames_async (IdeDebugger         *self,
  *
  * Returns: (transfer full) (element-type Ide.DebuggerFrame) (nullable): An
  *   array of debugger frames or %NULL and @error is set.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_debugger_list_frames_finish (IdeDebugger   *self,
@@ -1616,8 +1516,6 @@ ide_debugger_list_frames_finish (IdeDebugger   *self,
  * Gets the current selected thread by the debugger.
  *
  * Returns: (transfer none) (nullable): An #IdeDebuggerThread or %NULL
- *
- * Since: 3.32
  */
 IdeDebuggerThread *
 ide_debugger_get_selected_thread (IdeDebugger *self)
@@ -1641,8 +1539,6 @@ ide_debugger_get_selected_thread (IdeDebugger *self)
  * group. Thread groups are a collection of threads that are executed or
  * stopped together and on gdb on Linux, this is the default for all threads in
  * the process.
- *
- * Since: 3.32
  */
 void
 ide_debugger_interrupt_async (IdeDebugger            *self,
@@ -1729,8 +1625,6 @@ ide_debugger_send_signal_finish (IdeDebugger   *self,
  * but that may change based on future design changes.
  *
  * Returns: the filename of the binary or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_debugger_locate_binary_at_address (IdeDebugger        *self,
@@ -1760,8 +1654,6 @@ ide_debugger_locate_binary_at_address (IdeDebugger        *self,
  *
  * Requests the debugger backend to list the locals that are available to the
  * given @frame of @thread.
- *
- * Since: 3.32
  */
 void
 ide_debugger_list_locals_async (IdeDebugger         *self,
@@ -1794,8 +1686,6 @@ ide_debugger_list_locals_async (IdeDebugger         *self,
  *
  * Returns: (transfer full) (element-type Ide.DebuggerVariable): a #GPtrArray of
  *   #IdeDebuggerVariable if successful; otherwise %NULL and error is set.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_debugger_list_locals_finish (IdeDebugger   *self,
@@ -1819,8 +1709,6 @@ ide_debugger_list_locals_finish (IdeDebugger   *self,
  *
  * Requests the debugger backend to list the parameters to the given stack
  * frame.
- *
- * Since: 3.32
  */
 void
 ide_debugger_list_params_async (IdeDebugger         *self,
@@ -1853,8 +1741,6 @@ ide_debugger_list_params_async (IdeDebugger         *self,
  *
  * Returns: (transfer full) (element-type Ide.DebuggerVariable): a #GPtrArray of
  *   #IdeDebuggerVariable if successful; otherwise %NULL and error is set.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_debugger_list_params_finish (IdeDebugger   *self,
@@ -1875,8 +1761,6 @@ ide_debugger_list_params_finish (IdeDebugger   *self,
  * @user_data: user data for @callback
  *
  * Requests the list of registers and their values.
- *
- * Since: 3.32
  */
 void
 ide_debugger_list_registers_async (IdeDebugger         *self,
@@ -1900,8 +1784,6 @@ ide_debugger_list_registers_async (IdeDebugger         *self,
  *
  * Returns: (transfer full) (element-type Ide.DebuggerRegister): a #GPtrArray of
  *   #IdeDebuggerRegister if successful; otherwise %NULL and error is set.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_debugger_list_registers_finish (IdeDebugger   *self,
@@ -1923,8 +1805,6 @@ ide_debugger_list_registers_finish (IdeDebugger   *self,
  * @user_data: user data for @callback
  *
  * Disassembles the address range requested.
- *
- * Since: 3.32
  */
 void
 ide_debugger_disassemble_async (IdeDebugger                   *self,
@@ -1950,8 +1830,6 @@ ide_debugger_disassemble_async (IdeDebugger                   *self,
  *
  * Returns: (transfer full) (element-type Ide.DebuggerInstruction): a #GPtrArray
  *   of #IdeDebuggerInstruction if successful; otherwise %NULL and error is set.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_debugger_disassemble_finish (IdeDebugger   *self,
@@ -1974,8 +1852,6 @@ ide_debugger_disassemble_finish (IdeDebugger   *self,
  * to check if the binary type matches it's expectation.
  *
  * Returns: %TRUE if the #IdeDebugger supports the runner.
- *
- * Since: 3.32
  */
 gboolean
 ide_debugger_supports_runner (IdeDebugger *self,
@@ -2001,8 +1877,6 @@ ide_debugger_supports_runner (IdeDebugger *self,
  * @runner: an #IdeRunner
  *
  * Prepares the runner to launch a debugger and target process.
- *
- * Since: 3.32
  */
 void
 ide_debugger_prepare (IdeDebugger *self,
@@ -2033,8 +1907,6 @@ ide_debugger_prepare (IdeDebugger *self,
  *
  * Call ide_debugger_interpret_finish() from @callback to determine if the
  * command was interpreted.
- *
- * Since: 3.32
  */
 void
 ide_debugger_interpret_async (IdeDebugger         *self,
@@ -2060,8 +1932,6 @@ ide_debugger_interpret_async (IdeDebugger         *self,
  *
  * Returns: %TRUE if the command was interpreted, otherwise %FALSE and
  *    @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_debugger_interpret_finish (IdeDebugger   *self,
diff --git a/src/libide/editor/ide-editor-page-addin.c b/src/libide/editor/ide-editor-page-addin.c
index 86ff6d776..d90974935 100644
--- a/src/libide/editor/ide-editor-page-addin.c
+++ b/src/libide/editor/ide-editor-page-addin.c
@@ -90,8 +90,6 @@ ide_editor_page_addin_frame_set (IdeEditorPageAddin *self,
  * #IdeEditorPageAddinInterface, then %NULL is returned.
  *
  * Returns: (transfer none) (nullable): An #IdeEditorPageAddin or %NULL
- *
- * Since: 3.32
  */
 IdeEditorPageAddin *
 ide_editor_page_addin_find_by_module_name (IdeEditorPage *page,
diff --git a/src/libide/foundry/ide-build-manager.c b/src/libide/foundry/ide-build-manager.c
index b53e26319..e52893ef3 100644
--- a/src/libide/foundry/ide-build-manager.c
+++ b/src/libide/foundry/ide-build-manager.c
@@ -65,8 +65,6 @@
  * The #IdePipeline is used to specify how and when build operations
  * should occur. Plugins attach build stages to the pipeline to perform
  * build actions.
- *
- * Since: 3.32
  */
 
 struct _IdeBuildManager
@@ -953,8 +951,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    *
    * This might be false if the required runtime is not available or other
    * errors in setting up the build pipeline.
-   *
-   * Since: 3.32
    */
   properties [PROP_CAN_BUILD] =
     g_param_spec_boolean ("can-build",
@@ -970,8 +966,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    * executing. This can be bound to UI elements to display to the
    * user that a build is active (and therefore other builds cannot
    * be activated at the moment).
-   *
-   * Since: 3.32
    */
   properties [PROP_BUSY] =
     g_param_spec_boolean ("busy",
@@ -984,8 +978,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    * IdeBuildManager:error-count:
    *
    * The number of errors discovered during the build process.
-   *
-   * Since: 3.32
    */
   properties [PROP_ERROR_COUNT] =
     g_param_spec_uint ("error-count",
@@ -999,8 +991,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    *
    * The "has-diagnostics" property indicates that there have been
    * diagnostics found during the last execution of the build pipeline.
-   *
-   * Since: 3.32
    */
   properties [PROP_HAS_DIAGNOSTICS] =
     g_param_spec_boolean ("has-diagnostics",
@@ -1014,8 +1004,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    *
    * The "last-build-time" property contains a #GDateTime of the time
    * the last build request was submitted.
-   *
-   * Since: 3.32
    */
   properties [PROP_LAST_BUILD_TIME] =
     g_param_spec_boxed ("last-build-time",
@@ -1030,8 +1018,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    * The "message" property contains a string message describing
    * the current state of the build process. This may be bound to
    * UI elements to notify the user of the buid progress.
-   *
-   * Since: 3.32
    */
   properties [PROP_MESSAGE] =
     g_param_spec_string ("message",
@@ -1045,8 +1031,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    *
    * The "pipeline" property is the build pipeline that the build manager
    * is currently managing.
-   *
-   * Since: 3.32
    */
   properties [PROP_PIPELINE] =
     g_param_spec_object ("pipeline",
@@ -1066,8 +1050,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    * The value of this property is a #GTimeSpan, which are 64-bit signed
    * integers with microsecond precision. See %G_USEC_PER_SEC for a constant
    * to tranform this to seconds.
-   *
-   * Since: 3.32
    */
   properties [PROP_RUNNING_TIME] =
     g_param_spec_int64 ("running-time",
@@ -1083,8 +1065,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    *
    * The "warning-count" property contains the number of warnings that have
    * been discovered in the current build request.
-   *
-   * Since: 3.32
    */
   properties [PROP_WARNING_COUNT] =
     g_param_spec_uint ("warning-count",
@@ -1103,8 +1083,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    * The "build-started" signal is emitted when a new build has started.
    * The build may be an incremental build. The @pipeline instance is
    * the build pipeline which is being executed.
-   *
-   * Since: 3.32
    */
   signals [BUILD_STARTED] =
     g_signal_new_class_handler ("build-started",
@@ -1126,8 +1104,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    *
    * Contrast this with #IdeBuildManager::build-finished for a successful
    * build.
-   *
-   * Since: 3.32
    */
   signals [BUILD_FAILED] =
     g_signal_new_class_handler ("build-failed",
@@ -1145,8 +1121,6 @@ ide_build_manager_class_init (IdeBuildManagerClass *klass)
    *
    * The "build-finished" signal is emitted when a build completed
    * successfully.
-   *
-   * Since: 3.32
    */
   signals [BUILD_FINISHED] =
     g_signal_new_class_handler ("build-finished",
@@ -1289,8 +1263,6 @@ ide_build_manager_init (IdeBuildManager *self)
  * Gets if the #IdeBuildManager is currently busy building the project.
  *
  * See #IdeBuildManager:busy for more information.
- *
- * Since: 3.32
  */
 gboolean
 ide_build_manager_get_busy (IdeBuildManager *self)
@@ -1312,8 +1284,6 @@ ide_build_manager_get_busy (IdeBuildManager *self)
  * See #IdeBuildManager:message for more information.
  *
  * Returns: (transfer full): A string containing the build message or %NULL
- *
- * Since: 3.32
  */
 gchar *
 ide_build_manager_get_message (IdeBuildManager *self)
@@ -1336,8 +1306,6 @@ ide_build_manager_get_message (IdeBuildManager *self)
  * See #IdeBuildManager:last-build-time for more information.
  *
  * Returns: (nullable) (transfer none): a #GDateTime or %NULL.
- *
- * Since: 3.32
  */
 GDateTime *
 ide_build_manager_get_last_build_time (IdeBuildManager *self)
@@ -1354,8 +1322,6 @@ ide_build_manager_get_last_build_time (IdeBuildManager *self)
  * #GTimeSpan.
  *
  * Returns: a #GTimeSpan containing the elapsed time of the build.
- *
- * Since: 3.32
  */
 GTimeSpan
 ide_build_manager_get_running_time (IdeBuildManager *self)
@@ -1376,8 +1342,6 @@ ide_build_manager_get_running_time (IdeBuildManager *self)
  *
  * You may also activate this using the "cancel" #GAction provided
  * by the #GActionGroup interface.
- *
- * Since: 3.32
  */
 void
 ide_build_manager_cancel (IdeBuildManager *self)
@@ -1410,8 +1374,6 @@ ide_build_manager_cancel (IdeBuildManager *self)
  * reloaded as build configurations change.
  *
  * Returns: (transfer none) (nullable): An #IdePipeline.
- *
- * Since: 3.32
  */
 IdePipeline *
 ide_build_manager_get_pipeline (IdeBuildManager *self)
@@ -1429,8 +1391,6 @@ ide_build_manager_get_pipeline (IdeBuildManager *self)
  * A thread-safe variant of ide_build_manager_get_pipeline().
  *
  * Returns: (transfer full) (nullable): an #IdePipeline or %NULL
- *
- * Since: 3.32
  */
 IdePipeline *
 ide_build_manager_ref_pipeline (IdeBuildManager *self)
@@ -1613,8 +1573,6 @@ ide_build_manager_save_all_cb (GObject      *object,
  * build pipeline and execute a build. Upon completion, @callback will be
  * executed and it can determine the success or failure of the operation
  * using ide_build_manager_build_finish().
- *
- * Since: 3.32
  */
 void
 ide_build_manager_build_async (IdeBuildManager     *self,
@@ -1715,8 +1673,6 @@ ide_build_manager_build_async (IdeBuildManager     *self,
  * Completes a request to ide_build_manager_build_async().
  *
  * Returns: %TRUE if successful, otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_build_manager_build_finish (IdeBuildManager  *self,
@@ -1769,8 +1725,6 @@ ide_build_manager_clean_cb (GObject      *object,
  * Asynchronously requests that the build pipeline clean up to @phase.
  *
  * See ide_pipeline_clean_async() for more information.
- *
- * Since: 3.32
  */
 void
 ide_build_manager_clean_async (IdeBuildManager     *self,
@@ -1823,8 +1777,6 @@ ide_build_manager_clean_async (IdeBuildManager     *self,
  * Completes an asynchronous request to ide_build_manager_clean_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_build_manager_clean_finish (IdeBuildManager  *self,
@@ -1881,8 +1833,6 @@ ide_build_manager_rebuild_cb (GObject      *object,
  * to allow for the rebuild process.
  *
  * See ide_pipeline_rebuild_async() for more information.
- *
- * Since: 3.32
  */
 void
 ide_build_manager_rebuild_async (IdeBuildManager     *self,
@@ -1937,8 +1887,6 @@ ide_build_manager_rebuild_async (IdeBuildManager     *self,
  * Completes an asynchronous request to ide_build_manager_rebuild_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_build_manager_rebuild_finish (IdeBuildManager  *self,
@@ -1964,8 +1912,6 @@ ide_build_manager_rebuild_finish (IdeBuildManager  *self,
  * Checks if the current pipeline is ready to build.
  *
  * Returns: %TRUE if a build operation can advance the pipeline.
- *
- * Since: 3.32
  */
 gboolean
 ide_build_manager_get_can_build (IdeBuildManager *self)
@@ -1997,8 +1943,6 @@ ide_build_manager_set_can_build (IdeBuildManager *self,
  *
  * Requests that the #IdeBuildManager invalidate the current pipeline and
  * setup a new pipeline.
- *
- * Since: 3.32
  */
 void
 ide_build_manager_invalidate (IdeBuildManager *self)
diff --git a/src/libide/foundry/ide-build-system-discovery.c b/src/libide/foundry/ide-build-system-discovery.c
index 63477135e..5d4b3c6a0 100644
--- a/src/libide/foundry/ide-build-system-discovery.c
+++ b/src/libide/foundry/ide-build-system-discovery.c
@@ -46,8 +46,6 @@ ide_build_system_discovery_default_init (IdeBuildSystemDiscoveryInterface *iface
  *
  * Returns: (transfer full): The hint for the build system, which should match what
  *   the build system returns from ide_build_system_get_id().
- *
- * Since: 3.32
  */
 gchar *
 ide_build_system_discovery_discover (IdeBuildSystemDiscovery  *self,
diff --git a/src/libide/foundry/ide-build-system.c b/src/libide/foundry/ide-build-system.c
index 24814ceb4..9c3d5b4ac 100644
--- a/src/libide/foundry/ide-build-system.c
+++ b/src/libide/foundry/ide-build-system.c
@@ -430,8 +430,6 @@ ide_build_system_get_build_flags_async (IdeBuildSystem      *self,
  * ide_build_system_get_build_flags_finish:
  *
  * Returns: (transfer full):
- *
- * Since: 3.32
  */
 gchar **
 ide_build_system_get_build_flags_finish (IdeBuildSystem  *self,
@@ -476,8 +474,6 @@ ide_build_system_get_build_flags_finish (IdeBuildSystem  *self,
  *
  * This function will get build flags for all files and returns
  * map of file and its build flags as #GHashTable.
- *
- * Since: 3.32
  */
 void
 ide_build_system_get_build_flags_for_files_async (IdeBuildSystem       *self,
@@ -504,8 +500,6 @@ ide_build_system_get_build_flags_for_files_async (IdeBuildSystem       *self,
  * @error: a location for a #GError or %NULL
  *
  * Returns: (element-type Ide.File GStrv) (transfer full): a #GHashTable or #GFile to #GStrv
- *
- * Since: 3.32
  */
 GHashTable *
 ide_build_system_get_build_flags_for_files_finish (IdeBuildSystem  *self,
@@ -727,8 +721,6 @@ ide_build_system_get_build_flags_for_dir_async (IdeBuildSystem      *self,
  * @error: a location for a #GError or %NULL
  *
  * Returns: (element-type Ide.File GStrv) (transfer full): a #GHashTable of #GFile to #GStrv
- *
- * Since: 3.32
  */
 GHashTable *
 ide_build_system_get_build_flags_for_dir_finish (IdeBuildSystem  *self,
@@ -749,8 +741,6 @@ ide_build_system_get_build_flags_for_dir_finish (IdeBuildSystem  *self,
  * Checks whether the build system supports the given toolchain.
  *
  * Returns: %TRUE if the toolchain is supported by the build system, %FALSE otherwise
- *
- * Since: 3.32
  */
 gboolean
 ide_build_system_supports_toolchain (IdeBuildSystem *self,
@@ -779,8 +769,6 @@ ide_build_system_supports_toolchain (IdeBuildSystem *self,
  * in the build system's configuration files.
  *
  * Returns: (transfer full) (nullable): a string containing the project version
- *
- * Since: 3.32
  */
 gchar *
 ide_build_system_get_project_version (IdeBuildSystem *self)
@@ -802,8 +790,6 @@ ide_build_system_get_project_version (IdeBuildSystem *self)
  * Returns %TRUE if @self in it's current configuration is known to support @language.
  *
  * Returns: %TRUE if @language is supported, otherwise %FALSE.
- *
- * Since: 41.0
  */
 gboolean
 ide_build_system_supports_language (IdeBuildSystem *self,
diff --git a/src/libide/foundry/ide-build-target-provider.c b/src/libide/foundry/ide-build-target-provider.c
index d351bee05..d683697ce 100644
--- a/src/libide/foundry/ide-build-target-provider.c
+++ b/src/libide/foundry/ide-build-target-provider.c
@@ -70,8 +70,6 @@ ide_build_target_provider_default_init (IdeBuildTargetProviderInterface *iface)
  * complete the asynchronous operation.
  *
  * See also: ide_build_target_provider_get_targets_finish()
- *
- * Since: 3.32
  */
 void
 ide_build_target_provider_get_targets_async (IdeBuildTargetProvider *self,
@@ -100,8 +98,6 @@ ide_build_target_provider_get_targets_async (IdeBuildTargetProvider *self,
  *
  * Returns: (transfer full) (element-type Ide.BuildTarget): The array of
  *   build targets or %NULL upon failure and @error is set.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_build_target_provider_get_targets_finish (IdeBuildTargetProvider  *self,
diff --git a/src/libide/foundry/ide-build-target.c b/src/libide/foundry/ide-build-target.c
index f37c58fd5..e47ae3c6b 100644
--- a/src/libide/foundry/ide-build-target.c
+++ b/src/libide/foundry/ide-build-target.c
@@ -50,8 +50,6 @@ ide_build_target_default_init (IdeBuildTargetInterface *iface)
  * ide_build_target_get_install_directory:
  *
  * Returns: (nullable) (transfer full): a #GFile or %NULL.
- *
- * Since: 3.32
  */
 GFile *
 ide_build_target_get_install_directory (IdeBuildTarget *self)
@@ -71,8 +69,6 @@ ide_build_target_get_install_directory (IdeBuildTarget *self)
  * Checks if the #IdeBuildTarget gets installed.
  *
  * Returns: %TRUE if the build target is installed
- *
- * Since: 3.32
  */
 gboolean
 ide_build_target_get_install (IdeBuildTarget *self)
@@ -92,8 +88,6 @@ ide_build_target_get_install (IdeBuildTarget *self)
  *
  * Returns: (nullable) (transfer full): A display name for the build
  *   target to be displayed in UI. May contain pango markup.
- *
- * Since: 3.32
  */
 gchar *
 ide_build_target_get_display_name (IdeBuildTarget *self)
@@ -110,8 +104,6 @@ ide_build_target_get_display_name (IdeBuildTarget *self)
  * ide_build_target_get_name:
  *
  * Returns: (nullable) (transfer full): A filename or %NULL.
- *
- * Since: 3.32
  */
 gchar *
 ide_build_target_get_name (IdeBuildTarget *self)
@@ -133,8 +125,6 @@ ide_build_target_get_name (IdeBuildTarget *self)
  * as the default run target by Builder.
  *
  * Returns: the priority of the build target
- *
- * Since: 3.32
  */
 gint
 ide_build_target_get_priority (IdeBuildTarget *self)
@@ -153,8 +143,6 @@ ide_build_target_get_priority (IdeBuildTarget *self)
  * Gets the kind of artifact.
  *
  * Returns: an #IdeArtifactKind
- *
- * Since: 3.32
  */
 IdeArtifactKind
 ide_build_target_get_kind (IdeBuildTarget *self)
@@ -183,8 +171,6 @@ ide_build_target_compare (const IdeBuildTarget *left,
  *
  * Returns: (transfer full): A #GStrv containing the arguments to
  *   run the target.
- *
- * Since: 3.32
  */
 gchar **
 ide_build_target_get_argv (IdeBuildTarget *self)
@@ -231,8 +217,6 @@ ide_build_target_get_argv (IdeBuildTarget *self)
  * in the host system, or the flatpak sandbox home under flatpak).
  *
  * Returns: (nullable) (transfer full): the working directory to use for this target
- *
- * Since: 3.32
  */
 gchar *
 ide_build_target_get_cwd (IdeBuildTarget *self)
@@ -260,8 +244,6 @@ ide_build_target_get_cwd (IdeBuildTarget *self)
  * an unspecified language that compiles to native code.
  *
  * Returns: (transfer full): the programming language of this target
- *
- * Since: 3.32
  */
 gchar *
 ide_build_target_get_language (IdeBuildTarget *self)
diff --git a/src/libide/foundry/ide-compile-commands.c b/src/libide/foundry/ide-compile-commands.c
index 4d3ac19f6..c8c4194f3 100644
--- a/src/libide/foundry/ide-compile-commands.c
+++ b/src/libide/foundry/ide-compile-commands.c
@@ -47,8 +47,6 @@
  * to a number of strings during the lifetime of the object, for each
  * of the compile commands. On larger projects, this can be the order
  * of a couple of megabytes.
- *
- * Since: 3.32
  */
 
 struct _IdeCompileCommands
@@ -133,8 +131,6 @@ ide_compile_commands_init (IdeCompileCommands *self)
  * clang-style compile commands database files (compile_commands.json).
  *
  * Returns: The newly created #IdeCompileCommands
- *
- * Since: 3.32
  */
 IdeCompileCommands *
 ide_compile_commands_new (void)
@@ -317,8 +313,6 @@ ide_compile_commands_load_worker (IdeTask      *task,
  * See also: ide_compile_commands_load_async()
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_compile_commands_load (IdeCompileCommands  *self,
@@ -365,8 +359,6 @@ ide_compile_commands_load (IdeCompileCommands  *self,
  * instead of calling this function again.
  *
  * See also: ide_compile_commands_load_finish()
- *
- * Since: 3.32
  */
 void
 ide_compile_commands_load_async (IdeCompileCommands  *self,
@@ -407,8 +399,6 @@ ide_compile_commands_load_async (IdeCompileCommands  *self,
  *
  * Returns: %TRUE if the file was loaded successfully; otherwise %FALSE
  *   and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_compile_commands_load_finish (IdeCompileCommands  *self,
@@ -675,8 +665,6 @@ find_with_alternates (IdeCompileCommands *self,
  *
  * Returns: (nullable) (transfer full): A string array or %NULL if
  *   there was a failure to locate or parse the command.
- *
- * Since: 3.32
  */
 gchar **
 ide_compile_commands_lookup (IdeCompileCommands   *self,
diff --git a/src/libide/foundry/ide-config-manager.c b/src/libide/foundry/ide-config-manager.c
index 8e2d38c2f..55d4588e1 100644
--- a/src/libide/foundry/ide-config-manager.c
+++ b/src/libide/foundry/ide-config-manager.c
@@ -277,8 +277,6 @@ ide_config_manager_save_finish (IdeConfigManager  *self,
  *
  * Returns: (transfer none) (nullable): An #IdeConfig or %NULL if
  *   the configuration could not be found.
- *
- * Since: 3.32
  */
 IdeConfig *
 ide_config_manager_get_config (IdeConfigManager *self,
@@ -452,8 +450,6 @@ ide_config_manager_class_init (IdeConfigManagerClass *klass)
    *
    * This signal is emitted any time a new configuration is selected or the
    * currently selected configurations state changes.
-   *
-   * Since: 3.32
    */
   signals [INVALIDATE] =
     g_signal_new ("invalidate",
@@ -969,8 +965,6 @@ ide_config_manager_set_current (IdeConfigManager *self,
  * settings.
  *
  * Returns: (transfer full): An #IdeConfig
- *
- * Since: 3.32
  */
 IdeConfig *
 ide_config_manager_ref_current (IdeConfigManager *self)
@@ -1011,8 +1005,6 @@ ide_config_manager_ref_current (IdeConfigManager *self)
  * settings.
  *
  * Returns: (transfer none): An #IdeConfig
- *
- * Since: 3.32
  */
 IdeConfig *
 ide_config_manager_get_current (IdeConfigManager *self)
@@ -1108,8 +1100,6 @@ ide_config_manager_delete (IdeConfigManager *self,
  *
  * Returns: %TRUE if the current configuration is ready for usage;
  *   otherwise %FALSE.
- *
- * Since: 3.32
  */
 gboolean
 ide_config_manager_get_ready (IdeConfigManager *self)
@@ -1131,8 +1121,6 @@ ide_config_manager_get_ready (IdeConfigManager *self)
  * Thread-safe version of ide_config_manager_from_context().
  *
  * Returns: (transfer full): an #IdeConfigManager
- *
- * Since: 3.32
  */
 IdeConfigManager *
 ide_config_manager_ref_from_context (IdeContext *context)
diff --git a/src/libide/foundry/ide-config-provider.c b/src/libide/foundry/ide-config-provider.c
index c5b160caf..afb49c202 100644
--- a/src/libide/foundry/ide-config-provider.c
+++ b/src/libide/foundry/ide-config-provider.c
@@ -133,8 +133,6 @@ ide_config_provider_default_init (IdeConfigProviderInterface *iface)
    *
    * The "added" signal is emitted when a configuration
    * has been added to a configuration provider.
-   *
-   * Since: 3.32
    */
   signals [ADDED] =
     g_signal_new ("added",
@@ -155,8 +153,6 @@ ide_config_provider_default_init (IdeConfigProviderInterface *iface)
    *
    * The "removed" signal is emitted when a configuration
    * has been removed from a configuration provider.
-   *
-   * Since: 3.32
    */
   signals [REMOVED] =
     g_signal_new ("removed",
@@ -185,8 +181,6 @@ ide_config_provider_default_init (IdeConfigProviderInterface *iface)
  * ide_config_provider_emit_added() before completing the
  * asynchronous function so that the configuration manager may be made
  * aware of the configurations.
- *
- * Since: 3.32
  */
 void
 ide_config_provider_load_async (IdeConfigProvider *self,
@@ -210,8 +204,6 @@ ide_config_provider_load_async (IdeConfigProvider *self,
  * Completes an asynchronous request to ide_config_provider_load_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_config_provider_load_finish (IdeConfigProvider  *self,
@@ -235,8 +227,6 @@ ide_config_provider_load_finish (IdeConfigProvider  *self,
  * Implementations of #IdeConfigProvider should emit removed
  * for every configuration they have registered so that the
  * #IdeConfigManager has correct information.
- *
- * Since: 3.32
  */
 void
 ide_config_provider_unload (IdeConfigProvider *self)
@@ -259,8 +249,6 @@ ide_config_provider_unload (IdeConfigProvider *self)
  *
  * This function will be called before unloading the configuration provider
  * so that it has a chance to persist any outstanding changes.
- *
- * Since: 3.32
  */
 void
 ide_config_provider_save_async (IdeConfigProvider *self,
@@ -284,8 +272,6 @@ ide_config_provider_save_async (IdeConfigProvider *self,
  * Completes an asynchronous request to ide_config_provider_save_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_config_provider_save_finish (IdeConfigProvider  *self,
@@ -306,8 +292,6 @@ ide_config_provider_save_finish (IdeConfigProvider  *self,
  *
  * #IdeConfigProvider implementations should call this function with
  * a @config when it has discovered a new configuration.
- *
- * Since: 3.32
  */
 void
 ide_config_provider_emit_added (IdeConfigProvider *self,
@@ -326,8 +310,6 @@ ide_config_provider_emit_added (IdeConfigProvider *self,
  *
  * #IdeConfigProvider implementations should call this function with
  * a @config when it has discovered it was removed.
- *
- * Since: 3.32
  */
 void
 ide_config_provider_emit_removed (IdeConfigProvider *self,
@@ -348,8 +330,6 @@ ide_config_provider_emit_removed (IdeConfigProvider *self,
  *
  * ide_config_provider_save_async() will be called by the
  * #IdeConfigManager after calling this function.
- *
- * Since: 3.32
  */
 void
 ide_config_provider_delete (IdeConfigProvider *self,
@@ -382,8 +362,6 @@ ide_config_provider_delete (IdeConfigProvider *self,
  *
  * It is expected that the #IdeConfigProvider will emit
  * #IdeConfigProvider::added with the new configuration.
- *
- * Since: 3.32
  */
 void
 ide_config_provider_duplicate (IdeConfigProvider *self,
diff --git a/src/libide/foundry/ide-config.c b/src/libide/foundry/ide-config.c
index 7c4f2bcef..33ba9db83 100644
--- a/src/libide/foundry/ide-config.c
+++ b/src/libide/foundry/ide-config.c
@@ -734,8 +734,6 @@ ide_config_init (IdeConfig *self)
  * Gets the application ID for the configuration.
  *
  * Returns: (transfer none) (nullable): A string.
- *
- * Since: 3.32
  */
 const gchar *
 ide_config_get_app_id (IdeConfig *self)
@@ -818,8 +816,6 @@ ide_config_set_runtime_id (IdeConfig   *self,
  * Gets the toolchain id for the configuration.
  *
  * Returns: (transfer none) (nullable): The id of an #IdeToolchain or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_config_get_toolchain_id (IdeConfig *self)
@@ -837,8 +833,6 @@ ide_config_get_toolchain_id (IdeConfig *self)
  * @toolchain_id: The id of an #IdeToolchain
  *
  * Sets the toolchain id for the configuration.
- *
- * Since: 3.32
  */
 void
 ide_config_set_toolchain_id (IdeConfig   *self,
@@ -871,8 +865,6 @@ ide_config_set_toolchain_id (IdeConfig   *self,
  * Gets the runtime for the configuration.
  *
  * Returns: (transfer none) (nullable): An #IdeRuntime
- *
- * Since: 3.32
  */
 IdeRuntime *
 ide_config_get_runtime (IdeConfig *self)
@@ -899,8 +891,6 @@ ide_config_set_runtime (IdeConfig  *self,
  * Gets the toolchain for the configuration.
  *
  * Returns: (transfer full) (nullable): An #IdeToolchain
- *
- * Since: 3.32
  */
 IdeToolchain *
 ide_config_get_toolchain (IdeConfig *self)
@@ -928,8 +918,6 @@ ide_config_get_toolchain (IdeConfig *self)
  * @toolchain: (nullable): An #IdeToolchain or %NULL to use the default one
  *
  * Sets the toolchain for the configuration.
- *
- * Since: 3.32
  */
 void
 ide_config_set_toolchain (IdeConfig    *self,
@@ -953,8 +941,6 @@ ide_config_set_toolchain (IdeConfig    *self,
  * Gets the environment to use when spawning processes.
  *
  * Returns: (transfer full): An array of key=value environment variables.
- *
- * Since: 3.32
  */
 gchar **
 ide_config_get_environ (IdeConfig *self)
@@ -1168,8 +1154,6 @@ ide_config_set_dirty (IdeConfig *self,
  * ide_config_get_environment:
  *
  * Returns: (transfer none): An #IdeEnvironment.
- *
- * Since: 3.32
  */
 IdeEnvironment *
 ide_config_get_environment (IdeConfig *self)
@@ -1218,8 +1202,6 @@ ide_config_set_environment (IdeConfig      *self,
  * ide_config_get_runtime_environment:
  *
  * Returns: (transfer none): An #IdeEnvironment.
- *
- * Since: 3.40
  */
 IdeEnvironment *
 ide_config_get_runtime_environment (IdeConfig *self)
@@ -1354,8 +1336,6 @@ ide_config_set_post_install_commands (IdeConfig           *self,
  * mean time.
  *
  * Returns: A monotonic sequence number.
- *
- * Since: 3.32
  */
 guint
 ide_config_get_sequence (IdeConfig *self)
@@ -1563,8 +1543,6 @@ ide_config_set_internal_int64 (IdeConfig   *self,
  * Gets the value associated with @key if it is a #GObject.
  *
  * Returns: (nullable) (transfer none) (type GObject.Object): a #GObject or %NULL.
- *
- * Since: 3.32
  */
 gpointer
 ide_config_get_internal_object (IdeConfig   *self,
@@ -1591,8 +1569,6 @@ ide_config_get_internal_object (IdeConfig   *self,
  * @instance: (type GObject.Object) (nullable): a #GObject or %NULL
  *
  * Sets the value for @key to @instance.
- *
- * Since: 3.32
  */
 void
 ide_config_set_internal_object (IdeConfig   *self,
@@ -1621,8 +1597,6 @@ ide_config_set_internal_object (IdeConfig   *self,
  * Determines if the configuration is ready for use.
  *
  * Returns: %TRUE if the configuration is ready for use.
- *
- * Since: 3.32
  */
 gboolean
 ide_config_get_ready (IdeConfig *self)
@@ -1661,8 +1635,6 @@ ide_config_supports_runtime (IdeConfig  *self,
  *
  * Returns: (transfer none) (nullable): A string containing the run options
  *   or %NULL if none have been set.
- *
- * Since: 3.32
  */
 const gchar *
 ide_config_get_run_opts (IdeConfig *self)
@@ -1681,8 +1653,6 @@ ide_config_get_run_opts (IdeConfig *self)
  *
  * Sets the run options to use when running the target application.
  * See ide_config_get_run_opts() for more information.
- *
- * Since: 3.32
  */
 void
 ide_config_set_run_opts (IdeConfig   *self,
@@ -1801,8 +1771,6 @@ ide_config_set_locality (IdeConfig        *self,
  * @self: a #IdeConfig
  *
  * Returns: (transfer none) (nullable): a #GFile or %NULL
- *
- * Since: 3.32
  */
 GFile *
 ide_config_get_build_commands_dir (IdeConfig *self)
@@ -1903,8 +1871,6 @@ ide_config_set_prefix_set (IdeConfig *self,
  *
  * Returns: (not nullable) (transfer full) (element-type Ide.Runtime): an array
  *   of #IdeRuntime for the runtime extensions for the configuration.
- *
- * Since: 3.34
  */
 GPtrArray *
 ide_config_get_extensions (IdeConfig *self)
diff --git a/src/libide/foundry/ide-deploy-strategy.c b/src/libide/foundry/ide-deploy-strategy.c
index bc0a976c8..4fde25c92 100644
--- a/src/libide/foundry/ide-deploy-strategy.c
+++ b/src/libide/foundry/ide-deploy-strategy.c
@@ -151,8 +151,6 @@ ide_deploy_strategy_init (IdeDeployStrategy *self)
  * get the install data out of the pipeline. Given so many moving parts
  * in build systems, how to determine that is an implementation detail of
  * the specific #IdeDeployStrategy.
- *
- * Since: 3.32
  */
 void
 ide_deploy_strategy_load_async (IdeDeployStrategy   *self,
@@ -182,8 +180,6 @@ ide_deploy_strategy_load_async (IdeDeployStrategy   *self,
  *
  * Returns: %TRUE if successful and the pipeline was supported; otherwise
  *   %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_deploy_strategy_load_finish (IdeDeployStrategy  *self,
@@ -219,8 +215,6 @@ ide_deploy_strategy_load_finish (IdeDeployStrategy  *self,
  *
  * If supported, the strategy will call @progress with periodic updates as
  * the application is deployed.
- *
- * Since: 3.32
  */
 void
 ide_deploy_strategy_deploy_async (IdeDeployStrategy     *self,
@@ -260,8 +254,6 @@ ide_deploy_strategy_deploy_async (IdeDeployStrategy     *self,
  * build pipeline's device.
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set
- *
- * Since: 3.32
  */
 gboolean
 ide_deploy_strategy_deploy_finish (IdeDeployStrategy  *self,
@@ -290,8 +282,6 @@ ide_deploy_strategy_deploy_finish (IdeDeployStrategy  *self,
  *
  * Gets an #IdeRunner that runs apps deployed to the device, if a
  * runner other than the default is needed.
- *
- * Since: 41
  */
 void
 ide_deploy_strategy_create_runner_async (IdeDeployStrategy   *self,
@@ -325,8 +315,6 @@ ide_deploy_strategy_create_runner_async (IdeDeployStrategy   *self,
  * device.
  *
  * Returns: (transfer full): An #IdeRunner or %NULL
- *
- * Since: 41
  */
 IdeRunner *
 ide_deploy_strategy_create_runner_finish (IdeDeployStrategy  *self,
diff --git a/src/libide/foundry/ide-device-info.c b/src/libide/foundry/ide-device-info.c
index e8c6fadfc..31da5eee3 100644
--- a/src/libide/foundry/ide-device-info.c
+++ b/src/libide/foundry/ide-device-info.c
@@ -146,8 +146,6 @@ ide_device_info_new (void)
  * Get the #IdeDeviceKind of the device describing the type of device @self refers to
  *
  * Returns: An #IdeDeviceKind.
- *
- * Since: 3.32
  */
 IdeDeviceKind
 ide_device_info_get_kind (IdeDeviceInfo *self)
@@ -164,8 +162,6 @@ ide_device_info_get_kind (IdeDeviceInfo *self)
  * @kind: An #IdeDeviceKind
  *
  * Set the #IdeDeviceKind of the device describing the type of device @self refers to
- *
- * Since: 3.32
  */
 void
 ide_device_info_set_kind (IdeDeviceInfo *self,
@@ -188,8 +184,6 @@ ide_device_info_set_kind (IdeDeviceInfo *self,
  * of the Device (its architecture…)
  *
  * Returns: (transfer none) (nullable): An #IdeTriplet.
- *
- * Since: 3.32
  */
 IdeTriplet *
 ide_device_info_get_host_triplet (IdeDeviceInfo *self)
@@ -204,8 +198,6 @@ ide_device_info_get_host_triplet (IdeDeviceInfo *self)
  * @self: An #IdeDeviceInfo
  *
  * Set the #IdeTriplet object describing the configuration name
- *
- * Since: 3.32
  */
 void
 ide_device_info_set_host_triplet (IdeDeviceInfo *self,
diff --git a/src/libide/foundry/ide-device-manager.c b/src/libide/foundry/ide-device-manager.c
index 205f641b3..25ebe056d 100644
--- a/src/libide/foundry/ide-device-manager.c
+++ b/src/libide/foundry/ide-device-manager.c
@@ -496,8 +496,6 @@ ide_device_manager_class_init (IdeDeviceManagerClass *klass)
    * The "device" property indicates the currently selected device by the
    * user. This is the device we will try to deploy to when running, and
    * execute the application on.
-   *
-   * Since: 3.32
    */
   properties [PROP_DEVICE] =
     g_param_spec_object ("device",
@@ -511,8 +509,6 @@ ide_device_manager_class_init (IdeDeviceManagerClass *klass)
    *
    * The "progress" property is updated with a value between 0.0 and 1.0 while
    * the deployment is in progress.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROGRESS] =
     g_param_spec_double ("progress",
@@ -562,8 +558,6 @@ ide_device_manager_init (IdeDeviceManager *self)
  * Fetches the first device that matches the device identifier @device_id.
  *
  * Returns: (transfer none): An #IdeDevice or %NULL.
- *
- * Since: 3.32
  */
 IdeDevice *
 ide_device_manager_get_device_by_id (IdeDeviceManager *self,
@@ -594,8 +588,6 @@ ide_device_manager_get_device_by_id (IdeDeviceManager *self,
  * Usually, this is an #IdeLocalDevice.
  *
  * Returns: (transfer none) (not nullable): an #IdeDevice
- *
- * Since: 3.32
  */
 IdeDevice *
 ide_device_manager_get_device (IdeDeviceManager *self)
@@ -629,8 +621,6 @@ ide_device_manager_get_device (IdeDeviceManager *self)
  * the devices architecture and operating system.
  *
  * If @device is %NULL, the local device will be used.
- *
- * Since: 3.32
  */
 void
 ide_device_manager_set_device (IdeDeviceManager *self,
@@ -904,8 +894,6 @@ ide_device_manager_deploy_completed (IdeDeviceManager *self,
  * Requests that the application be deployed to the device. This may need to
  * be done before running the application so that the device has the most
  * up to date build.
- *
- * Since: 3.32
  */
 void
 ide_device_manager_deploy_async (IdeDeviceManager    *self,
@@ -983,8 +971,6 @@ ide_device_manager_deploy_async (IdeDeviceManager    *self,
  * Completes a request to deploy the application to the device.
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set
- *
- * Since: 3.32
  */
 gboolean
 ide_device_manager_deploy_finish (IdeDeviceManager  *self,
@@ -1122,8 +1108,6 @@ ide_device_manager_create_runner_tick (IdeTask *task)
  *
  * Requests an #IdeRunner that runs on the current device, if a runner
  * other than the default is required.
- *
- * Since: 41
  */
 void
 ide_device_manager_create_runner_async (IdeDeviceManager    *self,
@@ -1190,8 +1174,6 @@ ide_device_manager_create_runner_async (IdeDeviceManager    *self,
  * Completes a request to create an #IdeRunner to run on the device.
  *
  * Returns: (transfer full): An #IdeRunner or %NULL.
- *
- * Since: 41
  */
 IdeRunner *
 ide_device_manager_create_runner_finish (IdeDeviceManager  *self,
diff --git a/src/libide/foundry/ide-device-provider.c b/src/libide/foundry/ide-device-provider.c
index e83787a66..cb5440b03 100644
--- a/src/libide/foundry/ide-device-provider.c
+++ b/src/libide/foundry/ide-device-provider.c
@@ -128,8 +128,6 @@ ide_device_provider_class_init (IdeDeviceProviderClass *klass)
    *
    * Subclasses of #IdeDeviceManager must chain-up if they override the
    * #IdeDeviceProviderClass.device_added vfunc.
-   *
-   * Since: 3.32
    */
   signals [DEVICE_ADDED] =
     g_signal_new ("device-added",
@@ -153,8 +151,6 @@ ide_device_provider_class_init (IdeDeviceProviderClass *klass)
    *
    * Subclasses of #IdeDeviceManager must chain-up if they override the
    * #IdeDeviceProviderClass.device_removed vfunc.
-   *
-   * Since: 3.32
    */
   signals [DEVICE_REMOVED] =
     g_signal_new ("device-removed",
@@ -181,8 +177,6 @@ ide_device_provider_init (IdeDeviceProvider *self)
  *
  * This should only be called by subclasses of #IdeDeviceProvider when
  * a new device has been discovered.
- *
- * Since: 3.32
  */
 void
 ide_device_provider_emit_device_added (IdeDeviceProvider *provider,
@@ -201,8 +195,6 @@ ide_device_provider_emit_device_added (IdeDeviceProvider *provider,
  *
  * This should only be called by subclasses of #IdeDeviceProvider when
  * a previously added device has been removed.
- *
- * Since: 3.32
  */
 void
 ide_device_provider_emit_device_removed (IdeDeviceProvider *provider,
@@ -231,8 +223,6 @@ ide_device_provider_emit_device_removed (IdeDeviceProvider *provider,
  * That should be done for known devices before returning from the asynchronous
  * operation so that the device manager does not need to wait for additional
  * devices to enter the "settled" state.
- *
- * Since: 3.32
  */
 void
 ide_device_provider_load_async (IdeDeviceProvider   *self,
@@ -256,8 +246,6 @@ ide_device_provider_load_async (IdeDeviceProvider   *self,
  * ide_device_provider_load_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_device_provider_load_finish (IdeDeviceProvider  *self,
@@ -279,8 +267,6 @@ ide_device_provider_load_finish (IdeDeviceProvider  *self,
  *
  * Returns: (transfer full) (element-type Ide.Device) (not nullable):
  *   a #GPtrArray of #IdeDevice.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_device_provider_get_devices (IdeDeviceProvider *self)
diff --git a/src/libide/foundry/ide-device.c b/src/libide/foundry/ide-device.c
index 2a8690c95..69498be5d 100644
--- a/src/libide/foundry/ide-device.c
+++ b/src/libide/foundry/ide-device.c
@@ -58,8 +58,6 @@ static GParamSpec *properties [N_PROPS];
  * has been probed from the device.
  *
  * Returns: (nullable): A string containing the display name for the device.
- *
- * Since: 3.32
  */
 const gchar *
 ide_device_get_display_name (IdeDevice *device)
@@ -95,8 +93,6 @@ ide_device_set_display_name (IdeDevice   *device,
  * Gets the icon to use when displaying the device in UI elements.
  *
  * Returns: (nullable): an icon-name or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_device_get_icon_name (IdeDevice *self)
@@ -115,8 +111,6 @@ ide_device_get_icon_name (IdeDevice *self)
  * Sets the icon-name property.
  *
  * This is the icon that is displayed with the device name in UI elements.
- *
- * Since: 3.32
  */
 void
 ide_device_set_icon_name (IdeDevice   *self,
@@ -141,8 +135,6 @@ ide_device_set_icon_name (IdeDevice   *self,
  * user friendly name as it is often a guid.
  *
  * Returns: A unique identifier for the device.
- *
- * Since: 3.32
  */
 const gchar *
 ide_device_get_id (IdeDevice *device)
@@ -282,8 +274,6 @@ ide_device_class_init (IdeDeviceClass *klass)
    *
    * The "icon-name" property is the icon to display with the device in
    * various UI elements of Builder.
-   *
-   * Since: 3.32
    */
   properties [PROP_ICON_NAME] =
     g_param_spec_string ("icon-name",
@@ -341,8 +331,6 @@ ide_device_error_quark (void)
  * Some information may not be available until after a connection
  * has been established. This allows the device to connect before
  * fetching that information.
- *
- * Since: 3.32
  */
 void
 ide_device_get_info_async (IdeDevice           *self,
@@ -369,8 +357,6 @@ ide_device_get_info_async (IdeDevice           *self,
  * Completes an asynchronous request to load the information about a device.
  *
  * Returns: (transfer full): an #IdeDeviceInfo or %NULL and @error is set
- *
- * Since: 3.32
  */
 IdeDeviceInfo *
 ide_device_get_info_finish (IdeDevice     *self,
diff --git a/src/libide/foundry/ide-fallback-build-system.c b/src/libide/foundry/ide-fallback-build-system.c
index 63485e68a..b13d813e7 100644
--- a/src/libide/foundry/ide-fallback-build-system.c
+++ b/src/libide/foundry/ide-fallback-build-system.c
@@ -109,8 +109,6 @@ ide_fallback_build_system_class_init (IdeFallbackBuildSystemClass *klass)
    *
    * The "project-file" property is the primary file representing the
    * projects build system.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROJECT_FILE] =
     g_param_spec_object ("project-file",
@@ -159,8 +157,6 @@ build_system_init (IdeBuildSystemInterface *iface)
  * Creates a new #IdeFallbackBuildSystem.
  *
  * Returns: (transfer full): an #IdeBuildSystem
- *
- * Since: 3.32
  */
 IdeBuildSystem *
 ide_fallback_build_system_new (void)
diff --git a/src/libide/foundry/ide-foundry-compat.c b/src/libide/foundry/ide-foundry-compat.c
index 3b903964f..b6a3746c7 100644
--- a/src/libide/foundry/ide-foundry-compat.c
+++ b/src/libide/foundry/ide-foundry-compat.c
@@ -93,8 +93,6 @@ get_child_typed_borrowed (IdeContext *context,
  * @context: a #IdeContext
  *
  * Returns: (transfer none): an #IdeBuildManager
- *
- * Since: 3.32
  */
 IdeBuildManager *
 ide_build_manager_from_context (IdeContext *context)
@@ -109,8 +107,6 @@ ide_build_manager_from_context (IdeContext *context)
  * @context: a #IdeContext
  *
  * Returns: (transfer full): an #IdeBuildManager
- *
- * Since: 3.32
  */
 IdeBuildManager *
 ide_build_manager_ref_from_context (IdeContext *context)
@@ -128,8 +124,6 @@ ide_build_manager_ref_from_context (IdeContext *context)
  * registered, then this returns %NULL.
  *
  * Returns: (transfer none) (nullable): an #IdeBuildSystem
- *
- * Since: 3.32
  */
 IdeBuildSystem *
 ide_build_system_from_context (IdeContext *context)
@@ -144,8 +138,6 @@ ide_build_system_from_context (IdeContext *context)
  * @context: a #IdeContext
  *
  * Returns: (transfer none): an #IdeConfigManager
- *
- * Since: 3.32
  */
 IdeConfigManager *
 ide_config_manager_from_context (IdeContext *context)
@@ -160,8 +152,6 @@ ide_config_manager_from_context (IdeContext *context)
  * @context: a #IdeContext
  *
  * Returns: (transfer none): an #IdeDeviceManager
- *
- * Since: 3.32
  */
 IdeDeviceManager *
 ide_device_manager_from_context (IdeContext *context)
@@ -176,8 +166,6 @@ ide_device_manager_from_context (IdeContext *context)
  * @context: a #IdeContext
  *
  * Returns: (transfer none): an #IdeToolchainManager
- *
- * Since: 3.32
  */
 IdeToolchainManager *
 ide_toolchain_manager_from_context (IdeContext *context)
@@ -192,8 +180,6 @@ ide_toolchain_manager_from_context (IdeContext *context)
  * @context: a #IdeContext
  *
  * Returns: (transfer none): an #IdeRunManager
- *
- * Since: 3.32
  */
 IdeRunManager *
 ide_run_manager_from_context (IdeContext *context)
@@ -208,8 +194,6 @@ ide_run_manager_from_context (IdeContext *context)
  * @context: a #IdeContext
  *
  * Returns: (transfer none): an #IdeRuntimeManager
- *
- * Since: 3.32
  */
 IdeRuntimeManager *
 ide_runtime_manager_from_context (IdeContext *context)
@@ -224,8 +208,6 @@ ide_runtime_manager_from_context (IdeContext *context)
  * @context: a #IdeContext
  *
  * Returns: (transfer none): an #IdeTestManager
- *
- * Since: 3.32
  */
 IdeTestManager *
 ide_test_manager_from_context (IdeContext *context)
diff --git a/src/libide/foundry/ide-pipeline-addin.c b/src/libide/foundry/ide-pipeline-addin.c
index fceca8fec..595cf3ce2 100644
--- a/src/libide/foundry/ide-pipeline-addin.c
+++ b/src/libide/foundry/ide-pipeline-addin.c
@@ -43,8 +43,6 @@ ide_pipeline_addin_default_init (IdePipelineAddinInterface *iface)
  *
  * For example, if you need to connect to pipeline::launcher-created,
  * you might want to do that here.
- *
- * Since: 3.34
  */
 void
 ide_pipeline_addin_prepare (IdePipelineAddin *self,
@@ -108,8 +106,6 @@ ide_pipeline_addin_unload (IdePipelineAddin *self,
  *
  * You should not mix this function with manual pipeline disconnections.
  * While it should work, that is not yet guaranteed.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_addin_track (IdePipelineAddin *self,
diff --git a/src/libide/foundry/ide-pipeline-stage-launcher.c 
b/src/libide/foundry/ide-pipeline-stage-launcher.c
index b3507a98c..de7eeea25 100644
--- a/src/libide/foundry/ide-pipeline-stage-launcher.c
+++ b/src/libide/foundry/ide-pipeline-stage-launcher.c
@@ -491,8 +491,6 @@ ide_pipeline_stage_launcher_init (IdePipelineStageLauncher *self)
  * ide_pipeline_stage_launcher_get_launcher:
  *
  * Returns: (transfer none): An #IdeSubprocessLauncher
- *
- * Since: 3.32
  */
 IdeSubprocessLauncher *
 ide_pipeline_stage_launcher_get_launcher (IdePipelineStageLauncher *self)
@@ -526,8 +524,6 @@ ide_pipeline_stage_launcher_set_launcher (IdePipelineStageLauncher *self,
  * #IdePipeline.
  *
  * Returns: (transfer full): An #IdePipelineStageLauncher
- *
- * Since: 3.32
  */
 IdePipelineStage *
 ide_pipeline_stage_launcher_new (IdeContext            *context,
@@ -545,8 +541,6 @@ ide_pipeline_stage_launcher_new (IdeContext            *context,
  *
  * If set to %TRUE, a non-zero exit status from the subprocess will not cause
  * the build stage to fail.
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_stage_launcher_get_ignore_exit_status (IdePipelineStageLauncher *self)
@@ -565,8 +559,6 @@ ide_pipeline_stage_launcher_get_ignore_exit_status (IdePipelineStageLauncher *se
  *
  * If set to %TRUE, a non-zero exit status from the subprocess will not cause
  * the build stage to fail.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_stage_launcher_set_ignore_exit_status (IdePipelineStageLauncher *self,
@@ -607,8 +599,6 @@ ide_pipeline_stage_launcher_set_clean_launcher (IdePipelineStageLauncher *self,
  * ide_pipeline_stage_launcher_get_clean_launcher:
  *
  * Returns: (nullable) (transfer none): An #IdeSubprocessLauncher or %NULL.
- *
- * Since: 3.32
  */
 IdeSubprocessLauncher *
 ide_pipeline_stage_launcher_get_clean_launcher (IdePipelineStageLauncher *self)
@@ -636,8 +626,6 @@ ide_pipeline_stage_launcher_get_use_pty (IdePipelineStageLauncher *self)
  * @use_pty: If a Pty should be used
  *
  * If @use_pty is set to %TRUE, a Pty will be attached to the process.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_stage_launcher_set_use_pty (IdePipelineStageLauncher *self,
diff --git a/src/libide/foundry/ide-pipeline-stage.c b/src/libide/foundry/ide-pipeline-stage.c
index 902029609..526913ab4 100644
--- a/src/libide/foundry/ide-pipeline-stage.c
+++ b/src/libide/foundry/ide-pipeline-stage.c
@@ -372,8 +372,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    *
    * This property is set to %TRUE when the build stage is actively
    * running or cleaning.
-   *
-   * Since: 3.32
    */
   properties [PROP_ACTIVE] =
     g_param_spec_boolean ("active",
@@ -391,8 +389,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    * that Builder will extract errors from stdout.
    *
    * One such example is Ninja.
-   *
-   * Since: 3.32
    */
   properties [PROP_CHECK_STDOUT] =
     g_param_spec_boolean ("check-stdout",
@@ -407,8 +403,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    * The "completed" property is set to %TRUE after the pipeline has
    * completed processing the stage. When the pipeline invalidates
    * phases, completed may be reset to %FALSE.
-   *
-   * Since: 3.32
    */
   properties [PROP_COMPLETED] =
     g_param_spec_boolean ("completed",
@@ -427,8 +421,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    *
    * If the stage is both transient and disabled, it will not be removed during
    * the transient cleanup phase.
-   *
-   * Since: 3.32
    */
   properties [PROP_DISABLED] =
     g_param_spec_boolean ("disabled",
@@ -442,8 +434,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    *
    * The name of the build stage. This is only used by UI to view
    * the build pipeline.
-   *
-   * Since: 3.32
    */
   properties [PROP_NAME] =
     g_param_spec_string ("name",
@@ -462,8 +452,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    * For safety reasons, the contents are first redirected to a temporary
    * file and will be redirected to the stdout-path location after the
    * build stage has completed executing.
-   *
-   * Since: 3.32
    */
   properties [PROP_STDOUT_PATH] =
     g_param_spec_string ("stdout-path",
@@ -481,8 +469,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    * ide_pipeline_build_async(). This can be a convenient
    * way to add a temporary item to a build pipeline that should
    * be immediately discarded.
-   *
-   * Since: 3.32
    */
   properties [PROP_TRANSIENT] =
     g_param_spec_boolean ("transient",
@@ -503,8 +489,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    *
    * Returns: %TRUE if @next's work was chained into @self for the next
    *    execution of the pipeline.
-   *
-   * Since: 3.32
    */
   signals [CHAIN] =
     g_signal_new ("chain",
@@ -539,8 +523,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    * and perform an external operation. Forward progress of the stage will
    * be paused until a matching number of ide_pipeline_stage_unpause() calls
    * have been made.
-   *
-   * Since: 3.32
    */
   signals [QUERY] =
     g_signal_new ("query",
@@ -564,8 +546,6 @@ ide_pipeline_stage_class_init (IdePipelineStageClass *klass)
    * removed from the system. For example, an autotools build stage might
    * request that "configure" is removed so that autogen.sh will be Executed
    * as part of the next build.
-   *
-   * Since: 3.32
    */
   signals [REAP] =
     g_signal_new ("reap",
@@ -660,8 +640,6 @@ ide_pipeline_stage_build_finish (IdePipelineStage  *self,
  * Plugins that need to handle logging from a build stage should set
  * an observer on the pipeline so that log distribution may be fanned
  * out to all observers.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_stage_set_log_observer (IdePipelineStage    *self,
@@ -864,8 +842,6 @@ ide_pipeline_stage_observe_stream (IdePipelineStage  *self,
  * stdout and stderr streams of the subprocess. You must have created
  * the subprocess with %G_SUBPROCESS_FLAGS_STDERR_PIPE and
  * %G_SUBPROCESS_FLAGS_STDOUT_PIPE so that the streams may be read.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_stage_log_subprocess (IdePipelineStage *self,
@@ -958,8 +934,6 @@ ide_pipeline_stage_unpause (IdePipelineStage *self)
  * query signal. If the stage is paused after the query, build will
  * be delayed until the correct number of ide_pipeline_stage_unpause() calls
  * have occurred.
- *
- * Since: 3.32
  */
 void
 _ide_pipeline_stage_build_with_query_async (IdePipelineStage    *self,
@@ -1176,8 +1150,6 @@ ide_pipeline_stage_set_check_stdout (IdePipelineStage *self,
  * build stage is actively executing or cleaning.
  *
  * Returns: %TRUE if the stage is actively executing or cleaning.
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_stage_get_active (IdePipelineStage *self)
diff --git a/src/libide/foundry/ide-pipeline-stage.h b/src/libide/foundry/ide-pipeline-stage.h
index 1a465f675..388db9559 100644
--- a/src/libide/foundry/ide-pipeline-stage.h
+++ b/src/libide/foundry/ide-pipeline-stage.h
@@ -48,8 +48,6 @@ struct _IdePipelineStageClass
    * vfuncs.
    *
    * Only use thread-safe API from this function.
-   *
-   * Since: 3.32
    */
   gboolean (*build)          (IdePipelineStage     *self,
                               IdePipeline          *pipeline,
@@ -61,8 +59,6 @@ struct _IdePipelineStageClass
    *
    * Asynchronous version of the #IdePipelineStage API. This is the preferred
    * way to subclass #IdePipelineStage.
-   *
-   * Since: 3.32
    */
   void     (*build_async)    (IdePipelineStage     *self,
                               IdePipeline          *pipeline,
@@ -77,8 +73,6 @@ struct _IdePipelineStageClass
    *
    * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
    *   Upon failure, the pipeline will be stopped.
-   *
-   * Since: 3.32
    */
   gboolean (*build_finish)   (IdePipelineStage     *self,
                               GAsyncResult         *result,
@@ -93,8 +87,6 @@ struct _IdePipelineStageClass
    * @user_data: user data for @callback
    *
    * This function will perform the clean operation.
-   *
-   * Since: 3.32
    */
   void     (*clean_async)    (IdePipelineStage     *self,
                               IdePipeline          *pipeline,
@@ -111,8 +103,6 @@ struct _IdePipelineStageClass
    * Completes an async operation to ide_pipeline_stage_clean_async().
    *
    * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
-   *
-   * Since: 3.32
    */
   gboolean (*clean_finish)   (IdePipelineStage     *self,
                               GAsyncResult         *result,
diff --git a/src/libide/foundry/ide-pipeline.c b/src/libide/foundry/ide-pipeline.c
index 1494cd073..c39c7af3b 100644
--- a/src/libide/foundry/ide-pipeline.c
+++ b/src/libide/foundry/ide-pipeline.c
@@ -93,8 +93,6 @@ G_DEFINE_QUARK (ide_build_error, ide_build_error)
  * ide_pipeline_stage_set_transient(). This may be useful to perform operations
  * such as an "export tarball" stage which should only run once as determined
  * by the user requesting a "make dist" style operation.
- *
- * Since: 3.32
  */
 
 typedef struct
@@ -840,8 +838,6 @@ ide_pipeline_check_ready (IdePipeline *self,
  *
  * Gets the current phase that is executing. This is only useful during
  * execution of the pipeline.
- *
- * Since: 3.32
  */
 IdePipelinePhase
 ide_pipeline_get_phase (IdePipeline *self)
@@ -864,8 +860,6 @@ ide_pipeline_get_phase (IdePipeline *self)
  * Gets the #IdeConfig to use for the pipeline.
  *
  * Returns: (transfer none): An #IdeConfig
- *
- * Since: 3.32
  */
 IdeConfig *
 ide_pipeline_get_config (IdePipeline *self)
@@ -1215,8 +1209,6 @@ ide_pipeline_load_cb (IdleLoadState *state)
  * enable/disable the pipeline as the IdeConfig:ready property changes.
  * This could happen when the device or runtime is added/removed while the
  * application is running.
- *
- * Since: 3.32
  */
 static void
 ide_pipeline_load (IdePipeline *self)
@@ -1347,8 +1339,6 @@ ide_pipeline_begin_load (IdePipeline *self)
  * This function is safe to run even if load has not been called. We will not
  * clean things up if the pipeline is currently executing (we can wait until
  * its finished or dispose/finalize to cleanup up further.
- *
- * Since: 3.32
  */
 static void
 ide_pipeline_unload (IdePipeline *self)
@@ -1625,8 +1615,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    * IdePipeline:busy:
    *
    * Gets the "busy" property. If %TRUE, the pipeline is busy executing.
-   *
-   * Since: 3.32
    */
   properties [PROP_BUSY] =
     g_param_spec_boolean ("busy",
@@ -1639,8 +1627,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    * IdePipeline:configuration:
    *
    * The configuration to use for the build pipeline.
-   *
-   * Since: 3.32
    */
   properties [PROP_CONFIG] =
     g_param_spec_object ("config",
@@ -1653,8 +1639,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    * IdePipeline:device:
    *
    * The "device" property is the device we are compiling for.
-   *
-   * Since: 3.32
    */
   properties [PROP_DEVICE] =
     g_param_spec_object ("device",
@@ -1668,8 +1652,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    *
    * The "message" property is descriptive text about what the the
    * pipeline is doing or it's readiness status.
-   *
-   * Since: 3.32
    */
   properties [PROP_MESSAGE] =
     g_param_spec_string ("message",
@@ -1682,8 +1664,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    * IdePipeline:phase:
    *
    * The current build phase during execution of the pipeline.
-   *
-   * Since: 3.32
    */
   properties [PROP_PHASE] =
     g_param_spec_flags ("phase",
@@ -1698,8 +1678,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    *
    * The "pty" property is the #VtePty that is used by build stages that
    * build subprocesses with a pseudo terminal.
-   *
-   * Since: 3.32
    */
   properties [PROP_PTY] =
     g_param_spec_object ("pty",
@@ -1717,8 +1695,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    *
    * This signal is emitted when a plugin has detected a diagnostic while
    * building the pipeline.
-   *
-   * Since: 3.32
    */
   signals [DIAGNOSTIC] =
     g_signal_new_class_handler ("diagnostic",
@@ -1734,8 +1710,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    *
    * This signal is emitted when the pipeline has started executing in
    * response to ide_pipeline_build_async() being called.
-   *
-   * Since: 3.32
    */
   signals [STARTED] =
     g_signal_new_class_handler ("started",
@@ -1753,8 +1727,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    * This signal is emitted when the build process has finished executing.
    * If the build failed to complete all requested stages, then @failed will
    * be set to %TRUE, otherwise %FALSE.
-   *
-   * Since: 3.32
    */
   signals [FINISHED] =
     g_signal_new_class_handler ("finished",
@@ -1769,8 +1741,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    *
    * The "loaded" signal is emitted after the pipeline has finished
    * loading addins.
-   *
-   * Since: 3.32
    */
   signals [LOADED] =
     g_signal_new_class_handler ("loaded",
@@ -1788,8 +1758,6 @@ ide_pipeline_class_init (IdePipelineClass *klass)
    * #IdeSubprocessLauncher is created by the pipeline. This may be useful
    * to plugins that wan to modify the launcher in a consistent way for all
    * pipeline consumers.
-   *
-   * Since: 3.34
    */
   signals [LAUNCHER_CREATED] =
     g_signal_new_class_handler ("launcher-created",
@@ -2114,8 +2082,6 @@ ide_pipeline_task_notify_completed (IdePipeline *self,
  * Upon completion, @callback will be buildd and should call
  * ide_pipeline_build_finish() to get the status of the
  * operation.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_build_targets_async (IdePipeline         *self,
@@ -2197,8 +2163,6 @@ short_circuit:
  * Returns: %TRUE if the build stages were buildd successfully
  *   up to the requested build phase provided to
  *   ide_pipeline_build_targets_async().
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_build_targets_finish (IdePipeline   *self,
@@ -2240,8 +2204,6 @@ ide_pipeline_build_targets_finish (IdePipeline   *self,
  * Upon completion, @callback will be buildd and should call
  * ide_pipeline_build_finish() to get the status of the
  * operation.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_build_async (IdePipeline         *self,
@@ -2265,8 +2227,6 @@ ide_pipeline_build_async (IdePipeline         *self,
  * Returns: %TRUE if the build stages were buildd successfully
  *   up to the requested build phase provided to
  *   ide_pipeline_build_async().
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_build_finish (IdePipeline   *self,
@@ -2477,8 +2437,6 @@ ide_pipeline_queue_flush (IdePipeline *self)
  * stages that are part of the same phase.
  *
  * Returns: A stage_id that may be passed to ide_pipeline_detach().
- *
- * Since: 3.32
  */
 guint
 ide_pipeline_attach (IdePipeline      *self,
@@ -2575,8 +2533,6 @@ cleanup:
  * function.
  *
  * Returns: A stage_id that may be passed to ide_pipeline_remove().
- *
- * Since: 3.32
  */
 guint
 ide_pipeline_attach_launcher (IdePipeline           *self,
@@ -2608,8 +2564,6 @@ ide_pipeline_attach_launcher (IdePipeline           *self,
  * including all stages that were previously invalidated.
  *
  * Returns: %TRUE if a stage is known to require execution.
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_request_phase (IdePipeline      *self,
@@ -2689,8 +2643,6 @@ cleanup:
  * the location that build systems will use for out-of-tree builds.
  *
  * Returns: the path of the build directory
- *
- * Since: 3.32
  */
 const gchar *
 ide_pipeline_get_builddir (IdePipeline *self)
@@ -2708,8 +2660,6 @@ ide_pipeline_get_builddir (IdePipeline *self)
  * IdeVcs:working-directory property as a string.
  *
  * Returns: the path of the source directory
- *
- * Since: 3.32
  */
 const gchar *
 ide_pipeline_get_srcdir (IdePipeline *self)
@@ -2749,8 +2699,6 @@ ide_pipeline_build_path_va_list (const gchar *prefix,
  * working directory of the source tree.
  *
  * Returns: (transfer full): A newly allocated string.
- *
- * Since: 3.32
  */
 gchar *
 ide_pipeline_build_srcdir_path (IdePipeline *self,
@@ -2781,8 +2729,6 @@ ide_pipeline_build_srcdir_path (IdePipeline *self,
  * result of ide_pipeline_get_builddir() as the first parameter.
  *
  * Returns: (transfer full): A newly allocated string.
- *
- * Since: 3.32
  */
 gchar *
 ide_pipeline_build_builddir_path (IdePipeline *self,
@@ -2814,8 +2760,6 @@ ide_pipeline_build_builddir_path (IdePipeline *self,
  *
  * Plugins should use this function to remove their stages when the plugin
  * is unloading.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_detach (IdePipeline *self,
@@ -2853,8 +2797,6 @@ ide_pipeline_detach (IdePipeline *self,
  * upon discovering its state is no longer valid. Such an example might be
  * invalidating the %IDE_PIPELINE_PHASE_AUTOGEN phase when the an autotools
  * projects autogen.sh file has been changed.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_invalidate_phase (IdePipeline *self,
@@ -2881,8 +2823,6 @@ ide_pipeline_invalidate_phase (IdePipeline *self,
  *
  * Returns: (transfer none) (nullable): An #IdePipelineStage or %NULL if the
  *   stage could not be found.
- *
- * Since: 3.32
  */
 IdePipelineStage *
 ide_pipeline_get_stage_by_id (IdePipeline *self,
@@ -2908,8 +2848,6 @@ ide_pipeline_get_stage_by_id (IdePipeline *self,
  * A convenience function to get the runtime for a build pipeline.
  *
  * Returns: (transfer none) (nullable): An #IdeRuntime or %NULL
- *
- * Since: 3.32
  */
 IdeRuntime *
 ide_pipeline_get_runtime (IdePipeline *self)
@@ -2926,8 +2864,6 @@ ide_pipeline_get_runtime (IdePipeline *self)
  * A convenience function to get the toolchain for a build pipeline.
  *
  * Returns: (transfer none): An #IdeToolchain
- *
- * Since: 3.32
  */
 IdeToolchain *
 ide_pipeline_get_toolchain (IdePipeline *self)
@@ -2945,8 +2881,6 @@ ide_pipeline_get_toolchain (IdePipeline *self)
  * using the configuration and runtime associated with the pipeline.
  *
  * Returns: (transfer full): An #IdeSubprocessLauncher.
- *
- * Since: 3.32
  */
 IdeSubprocessLauncher *
 ide_pipeline_create_launcher (IdePipeline  *self,
@@ -3000,8 +2934,6 @@ ide_pipeline_create_launcher (IdePipeline  *self,
  * Attaches a PTY to stdin/stdout/stderr of the #IdeSubprocessLauncher.
  * This is useful if the application can take advantage of a PTY for
  * features like colors and other escape sequences.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_attach_pty (IdePipeline      *self,
@@ -3050,8 +2982,6 @@ ide_pipeline_attach_pty (IdePipeline      *self,
  * guaranteed to happen at object creation time.
  *
  * Returns: (transfer none) (nullable): a #VtePty or %NULL
- *
- * Since: 3.32
  */
 VtePty *
 ide_pipeline_get_pty (IdePipeline *self)
@@ -3131,8 +3061,6 @@ ide_pipeline_emit_diagnostic (IdePipeline   *self,
  *
  * Returns: an error format id that may be passed to
  *   ide_pipeline_remove_error_format().
- *
- * Since: 3.32
  */
 guint
 ide_pipeline_add_error_format (IdePipeline        *self,
@@ -3168,8 +3096,6 @@ ide_pipeline_add_error_format (IdePipeline        *self,
  * ide_pipeline_add_error_format().
  *
  * Returns: %TRUE if the error format was removed.
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_remove_error_format (IdePipeline *self,
@@ -3210,8 +3136,6 @@ ide_pipeline_get_busy (IdePipeline *self)
  *
  * Returns: (nullable) (transfer full): A string representing the
  *   current stage of the build, or %NULL.
- *
- * Since: 3.32
  */
 gchar *
 ide_pipeline_get_message (IdePipeline *self)
@@ -3315,8 +3239,6 @@ ide_pipeline_get_message (IdePipeline *self)
  *
  * This function will call @stage_callback for every #IdePipelineStage registered
  * in the pipeline.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_foreach_stage (IdePipeline *self,
@@ -3701,8 +3623,6 @@ ide_pipeline_tick_rebuild (IdePipeline *self,
  *
  * Asynchronously starts the build pipeline after cleaning any
  * existing build artifacts.
- *
- * Since: 3.32
  */
 void
 ide_pipeline_rebuild_async (IdePipeline         *self,
@@ -3771,8 +3691,6 @@ ide_pipeline_rebuild_finish (IdePipeline  *self,
  * sensitivity of a button.
  *
  * Returns: %TRUE if there are export pipeline stages.
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_get_can_export (IdePipeline *self)
@@ -3841,8 +3759,6 @@ _ide_pipeline_cancel (IdePipeline *self)
  * the configure stage has been reached.
  *
  * Returns: %TRUE if %IDE_PIPELINE_PHASE_CONFIGURE has been reached.
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_has_configured (IdePipeline *self)
@@ -3960,8 +3876,6 @@ list_model_iface_init (GListModelInterface *iface)
  * get an idea of where the build pipeline will attempt to advance.
  *
  * Returns: an #IdePipelinePhase
- *
- * Since: 3.32
  */
 IdePipelinePhase
 ide_pipeline_get_requested_phase (IdePipeline *self)
@@ -4038,8 +3952,6 @@ _ide_pipeline_set_toolchain (IdePipeline *self,
  * Thread-safe variant of ide_pipeline_get_toolchain().
  *
  * Returns: (transfer full) (nullable): an #IdeToolchain or %NULL
- *
- * Since: 3.32
  */
 IdeToolchain *
 ide_pipeline_ref_toolchain (IdePipeline *self)
@@ -4120,8 +4032,6 @@ _ide_pipeline_check_toolchain (IdePipeline   *self,
  * Gets the device that the pipeline is building for.
  *
  * Returns: (transfer none): an #IdeDevice.
- *
- * Since: 3.32
  */
 IdeDevice *
 ide_pipeline_get_device (IdePipeline *self)
@@ -4138,8 +4048,6 @@ ide_pipeline_get_device (IdePipeline *self)
  * Gets the device info for the current device.
  *
  * Returns: (nullable) (transfer none): an #IdeDeviceInfo or %NULL
- *
- * Since: 3.32
  */
 IdeDeviceInfo *
 ide_pipeline_get_device_info (IdePipeline *self)
@@ -4157,8 +4065,6 @@ ide_pipeline_get_device_info (IdePipeline *self)
  * due to various initialization routines that need to complete.
  *
  * Returns: %TRUE if the pipeline has loaded, otherwise %FALSE
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_is_ready (IdePipeline *self)
@@ -4178,8 +4084,6 @@ ide_pipeline_is_ready (IdePipeline *self)
  * set for the build pipeline.
  *
  * Returns: (transfer none): an #IdeTriplet
- *
- * Since: 3.32
  */
 IdeTriplet *
 ide_pipeline_get_host_triplet (IdePipeline *self)
@@ -4198,8 +4102,6 @@ ide_pipeline_get_host_triplet (IdePipeline *self)
  * work by avoiding some cross-compiling work.
  *
  * Returns: %FALSE if we're possibly cross-compiling, otherwise %TRUE
- *
- * Since: 3.32
  */
 gboolean
 ide_pipeline_is_native (IdePipeline *self)
@@ -4268,8 +4170,6 @@ contains_in_runtime_with_alt_path (IdeRuntime *runtime,
  * @name that may be executed.
  *
  * Returns: %TRUE if @name was found; otherwise %FALSE
- *
- * Since: 3.34
  */
 gboolean
 ide_pipeline_contains_program_in_path (IdePipeline  *self,
@@ -4331,8 +4231,6 @@ ide_pipeline_contains_program_in_path (IdePipeline  *self,
  * Finds the addin (if any) matching the plugin's @module_name.
  *
  * Returns: (transfer none) (nullable): an #IdePipelineAddin or %NULL
- *
- * Since: 3.40
  */
 IdePipelineAddin *
 ide_pipeline_addin_find_by_module_name (IdePipeline *pipeline,
diff --git a/src/libide/foundry/ide-run-manager.c b/src/libide/foundry/ide-run-manager.c
index 6e18dc601..e91ff4002 100644
--- a/src/libide/foundry/ide-run-manager.c
+++ b/src/libide/foundry/ide-run-manager.c
@@ -395,8 +395,6 @@ ide_run_manager_class_init (IdeRunManagerClass *klass)
    * to be nofied after the run handler has executed. It's unwise to change
    * things that the run handler might expect. Generally if you want to
    * change settings, do that before the run handler has exected.
-   *
-   * Since: 3.32
    */
   signals [RUN] =
     g_signal_new_class_handler ("run",
@@ -415,8 +413,6 @@ ide_run_manager_class_init (IdeRunManagerClass *klass)
    *
    * This signal is emitted when the run manager has stopped the currently
    * executing inferior.
-   *
-   * Since: 3.32
    */
   signals [STOPPED] =
     g_signal_new ("stopped",
@@ -1110,8 +1106,6 @@ ide_run_manager_remove_handler (IdeRunManager *self,
  *
  * Returns: (transfer none): An #IdeBuildTarget or %NULL if no build target
  *   has been set.
- *
- * Since: 3.32
  */
 IdeBuildTarget *
 ide_run_manager_get_build_target (IdeRunManager *self)
@@ -1299,8 +1293,6 @@ ide_run_manager_discover_default_target_async (IdeRunManager       *self,
  *
  * Returns: (transfer full): An #IdeBuildTarget if successful; otherwise %NULL
  *   and @error is set.
- *
- * Since: 3.32
  */
 IdeBuildTarget *
 ide_run_manager_discover_default_target_finish (IdeRunManager  *self,
diff --git a/src/libide/foundry/ide-runner.c b/src/libide/foundry/ide-runner.c
index 9ad052cdf..c4cad8d53 100644
--- a/src/libide/foundry/ide-runner.c
+++ b/src/libide/foundry/ide-runner.c
@@ -657,8 +657,6 @@ ide_runner_class_init (IdeRunnerClass *klass)
    * that the runner cannot be executed due to an external issue. One such
    * example might be a debugger plugin that cannot locate a suitable debugger
    * to run the program.
-   *
-   * Since: 3.32
    */
   properties [PROP_FAILED] =
     g_param_spec_boolean ("failed",
@@ -672,8 +670,6 @@ ide_runner_class_init (IdeRunnerClass *klass)
    *
    * The "run-on-host" property indicates the program should be run on the
    * host machine rather than inside the application sandbox.
-   *
-   * Since: 3.32
    */
   properties [PROP_RUN_ON_HOST] =
     g_param_spec_boolean ("run-on-host",
@@ -691,8 +687,6 @@ ide_runner_class_init (IdeRunnerClass *klass)
    * that will be launched, such as what programming language it uses,
    * or whether it's a graphical application, a command line tool or a test
    * program.
-   *
-   * Since: 3.32
    */
   properties [PROP_BUILD_TARGET] =
     g_param_spec_object ("build-target",
@@ -739,8 +733,6 @@ ide_runner_init (IdeRunner *self)
  * ide_runner_get_stdin:
  *
  * Returns: (nullable) (transfer full): An #GOutputStream or %NULL.
- *
- * Since: 3.32
  */
 GOutputStream *
 ide_runner_get_stdin (IdeRunner *self)
@@ -754,8 +746,6 @@ ide_runner_get_stdin (IdeRunner *self)
  * ide_runner_get_stdout:
  *
  * Returns: (nullable) (transfer full): An #GOutputStream or %NULL.
- *
- * Since: 3.32
  */
 GInputStream *
 ide_runner_get_stdout (IdeRunner *self)
@@ -769,8 +759,6 @@ ide_runner_get_stdout (IdeRunner *self)
  * ide_runner_get_stderr:
  *
  * Returns: (nullable) (transfer full): An #GOutputStream or %NULL.
- *
- * Since: 3.32
  */
 GInputStream *
 ide_runner_get_stderr (IdeRunner *self)
@@ -818,8 +806,6 @@ ide_runner_set_argv (IdeRunner           *self,
  * ide_runner_get_environment:
  *
  * Returns: (transfer none): The #IdeEnvironment the process launched uses.
- *
- * Since: 3.32
  */
 IdeEnvironment *
 ide_runner_get_environment (IdeRunner *self)
@@ -838,8 +824,6 @@ ide_runner_get_environment (IdeRunner *self)
  *
  * Returns: (transfer full): A newly allocated string array that should
  *   be freed with g_strfreev().
- *
- * Since: 3.32
  */
 gchar **
 ide_runner_get_argv (IdeRunner *self)
@@ -1192,8 +1176,6 @@ ide_runner_set_clear_env (IdeRunner *self,
  *
  * This is equivalent to calling ide_runner_set_tty() with the
  * result of vte_pty_get_fd().
- *
- * Since: 3.32
  */
 void
 ide_runner_set_pty (IdeRunner *self,
@@ -1214,8 +1196,6 @@ ide_runner_set_pty (IdeRunner *self,
  * Gets the #VtePty that was assigned.
  *
  * Returns: (nullable) (transfer none): a #VtePty or %NULL
- *
- * Since: 3.34
  */
 VtePty *
 ide_runner_get_pty (IdeRunner *self)
@@ -1249,8 +1229,6 @@ sort_fd_mapping (gconstpointer a,
  * within the destination process.
  *
  * Returns: @dest_fd or the FD or the next available dest_fd.
- *
- * Since: 3.32
  */
 gint
 ide_runner_take_fd (IdeRunner *self,
@@ -1303,8 +1281,6 @@ ide_runner_take_fd (IdeRunner *self,
  * program is available (such as gdb, perf, strace, etc).
  *
  * Returns: (nullable) (transfer full): An #IdeRuntime or %NULL.
- *
- * Since: 3.32
  */
 IdeRuntime *
 ide_runner_get_runtime (IdeRunner *self)
@@ -1363,8 +1339,6 @@ ide_runner_set_failed (IdeRunner *self,
  * @self: a #IdeRunner
  *
  * Returns: (nullable): The current working directory, or %NULL.
- *
- * Since: 3.32
  */
 const gchar *
 ide_runner_get_cwd (IdeRunner *self)
@@ -1382,8 +1356,6 @@ ide_runner_get_cwd (IdeRunner *self)
  * @cwd: (nullable): The working directory or %NULL
  *
  * Sets the directory to use when spawning the runner.
- *
- * Since: 3.32
  */
 void
 ide_runner_set_cwd (IdeRunner   *self,
@@ -1408,8 +1380,6 @@ ide_runner_set_cwd (IdeRunner   *self,
  *
  * Helper to call ide_runner_append_argv() for every argument
  * contained in @args.
- *
- * Since: 3.32
  */
 void
 ide_runner_push_args (IdeRunner           *self,
@@ -1430,8 +1400,6 @@ ide_runner_push_args (IdeRunner           *self,
  *
  * Returns: (nullable) (transfer none): The %IdeBuildTarget associated with this %IdeRunner, or %NULL.
  *   See #IdeRunner:build-target for details.
- *
- * Since: 3.32
  */
 IdeBuildTarget *
 ide_runner_get_build_target (IdeRunner *self)
@@ -1449,8 +1417,6 @@ ide_runner_get_build_target (IdeRunner *self)
  * @build_target: (nullable): The build target, or %NULL
  *
  * Sets the build target associated with this runner.
- *
- * Since: 3.32
  */
 void
 ide_runner_set_build_target (IdeRunner      *self,
diff --git a/src/libide/foundry/ide-runtime-manager.c b/src/libide/foundry/ide-runtime-manager.c
index c75b57a5c..46eadbab8 100644
--- a/src/libide/foundry/ide-runtime-manager.c
+++ b/src/libide/foundry/ide-runtime-manager.c
@@ -255,8 +255,6 @@ ide_runtime_manager_remove (IdeRuntimeManager *self,
  * Gets the runtime by its internal identifier.
  *
  * Returns: (transfer none): An #IdeRuntime.
- *
- * Since: 3.32
  */
 IdeRuntime *
 ide_runtime_manager_get_runtime (IdeRuntimeManager *self,
diff --git a/src/libide/foundry/ide-runtime-provider.c b/src/libide/foundry/ide-runtime-provider.c
index 85c3905ea..222988b3b 100644
--- a/src/libide/foundry/ide-runtime-provider.c
+++ b/src/libide/foundry/ide-runtime-provider.c
@@ -146,8 +146,6 @@ ide_runtime_provider_provides (IdeRuntimeProvider *self,
  * and install those too.
  *
  * This function should be used instead of ide_runtime_provider_install_async().
- *
- * Since: 3.32
  */
 void
 ide_runtime_provider_bootstrap_async (IdeRuntimeProvider  *self,
@@ -176,8 +174,6 @@ ide_runtime_provider_bootstrap_async (IdeRuntimeProvider  *self,
  *
  * Returns: (transfer full): an #IdeRuntime if successful; otherwise %NULL
  *   and @error is set.
- *
- * Since: 3.32
  */
 IdeRuntime *
 ide_runtime_provider_bootstrap_finish (IdeRuntimeProvider  *self,
diff --git a/src/libide/foundry/ide-runtime.c b/src/libide/foundry/ide-runtime.c
index bb5f04bab..a1fdf8dd9 100644
--- a/src/libide/foundry/ide-runtime.c
+++ b/src/libide/foundry/ide-runtime.c
@@ -664,8 +664,6 @@ ide_runtime_new (const gchar *id,
  * side effects.
  *
  * Returns: (transfer full): An #IdeSubprocessLauncher or %NULL upon failure.
- *
- * Since: 3.32
  */
 IdeSubprocessLauncher *
 ide_runtime_create_launcher (IdeRuntime  *self,
@@ -700,8 +698,6 @@ ide_runtime_prepare_configuration (IdeRuntime       *self,
  *
  * Returns: (transfer full) (nullable): An #IdeRunner if successful, otherwise
  *   %NULL and @error is set.
- *
- * Since: 3.32
  */
 IdeRunner *
 ide_runtime_create_runner (IdeRuntime     *self,
@@ -733,8 +729,6 @@ ide_runtime_error_quark (void)
  * be accessed from the host system.
  *
  * Returns: (transfer full) (not nullable): a #GFile.
- *
- * Since: 3.32
  */
 GFile *
 ide_runtime_translate_file (IdeRuntime *self,
@@ -763,8 +757,6 @@ ide_runtime_translate_file (IdeRuntime *self,
  *
  * Returns: (transfer full) (array zero-terminated=1): A newly allocated
  *   string containing the include dirs.
- *
- * Since: 3.32
  */
 gchar **
 ide_runtime_get_system_include_dirs (IdeRuntime *self)
@@ -790,8 +782,6 @@ ide_runtime_get_system_include_dirs (IdeRuntime *self)
  *
  * Returns: (transfer full) (not nullable): the architecture triplet the runtime
  * will build for.
- *
- * Since: 3.32
  */
 IdeTriplet *
 ide_runtime_get_triplet (IdeRuntime *self)
@@ -823,8 +813,6 @@ ide_runtime_get_triplet (IdeRuntime *self)
  *
  * Returns: (transfer full) (not nullable): the name of the architecture
  * the runtime will build for.
- *
- * Since: 3.32
  */
 gchar *
 ide_runtime_get_arch (IdeRuntime *self)
@@ -848,8 +836,6 @@ ide_runtime_get_arch (IdeRuntime *self)
  * Informs wether a toolchain is supported by this.
  *
  * Returns: %TRUE if the toolchain is supported
- *
- * Since: 3.32
  */
 gboolean
 ide_runtime_supports_toolchain (IdeRuntime   *self,
diff --git a/src/libide/foundry/ide-simple-build-system-discovery.c 
b/src/libide/foundry/ide-simple-build-system-discovery.c
index 57883996f..01bbb1c1d 100644
--- a/src/libide/foundry/ide-simple-build-system-discovery.c
+++ b/src/libide/foundry/ide-simple-build-system-discovery.c
@@ -146,8 +146,6 @@ ide_simple_build_system_discovery_class_init (IdeSimpleBuildSystemDiscoveryClass
    * The "glob" property is a glob to match for files within the project
    * directory. This can be used to quickly match the project file, such as
    * "configure.*".
-   *
-   * Since: 3.32
    */
   properties [PROP_GLOB] =
     g_param_spec_string ("glob",
@@ -161,8 +159,6 @@ ide_simple_build_system_discovery_class_init (IdeSimpleBuildSystemDiscoveryClass
    *
    * The "hint" property is used from ide_build_system_discovery_discover()
    * if the build file was discovered.
-   *
-   * Since: 3.32
    */
   properties [PROP_HINT] =
     g_param_spec_string ("hint",
@@ -175,8 +171,6 @@ ide_simple_build_system_discovery_class_init (IdeSimpleBuildSystemDiscoveryClass
    * IdeSimpleBuildSystemDiscovery:priority:
    *
    * The "priority" property is the priority of any match.
-   *
-   * Since: 3.32
    */
   properties [PROP_PRIORITY] =
     g_param_spec_int ("priority",
diff --git a/src/libide/foundry/ide-simple-toolchain.c b/src/libide/foundry/ide-simple-toolchain.c
index b68389840..4f131be88 100644
--- a/src/libide/foundry/ide-simple-toolchain.c
+++ b/src/libide/foundry/ide-simple-toolchain.c
@@ -117,8 +117,6 @@ ide_simple_toolchain_get_tool_for_language (IdeToolchain  *toolchain,
  * @tool_path: The path of
  *
  * Gets the path of the compiler executable
- *
- * Since: 3.32
  */
 void
 ide_simple_toolchain_set_tool_for_language  (IdeSimpleToolchain  *self,
diff --git a/src/libide/foundry/ide-test-manager.c b/src/libide/foundry/ide-test-manager.c
index 437c5a5a9..187fc9ba7 100644
--- a/src/libide/foundry/ide-test-manager.c
+++ b/src/libide/foundry/ide-test-manager.c
@@ -48,8 +48,6 @@
  *
  * You can access the test manager using ide_context_get_text_manager()
  * using the #IdeContext for the loaded project.
- *
- * Since: 3.32
  */
 
 struct _IdeTestManager
@@ -176,8 +174,6 @@ ide_test_manager_class_init (IdeTestManagerClass *klass)
    *
    * The "loading" property denotes if a test provider is busy loading
    * tests in the background.
-   *
-   * Since: 3.32
    */
   properties [PROP_LOADING] =
     g_param_spec_boolean ("loading",
@@ -587,8 +583,6 @@ ide_test_manager_run_all_cb (GObject      *object,
  *
  * Note that the individual test result information will be attached
  * to the specific #IdeTest instances.
- *
- * Since: 3.32
  */
 void
 ide_test_manager_run_all_async (IdeTestManager      *self,
@@ -661,8 +655,6 @@ ide_test_manager_run_all_async (IdeTestManager      *self,
  * attached to the #IdeTest instances.
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_test_manager_run_all_finish (IdeTestManager  *self,
@@ -730,8 +722,6 @@ ide_test_manager_run_cb (GObject      *object,
  *
  * The caller can access the result of the operation from @callback
  * by calling ide_test_manager_run_finish() with the provided result.
- *
- * Since: 3.32
  */
 void
 ide_test_manager_run_async (IdeTestManager      *self,
@@ -815,8 +805,6 @@ ide_test_manager_run_async (IdeTestManager      *self,
  *
  * Returns: %TRUE if the test was executed; otherwise %FALSE
  *   and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_test_manager_run_finish (IdeTestManager  *self,
@@ -908,8 +896,6 @@ ide_test_manager_get_loading (IdeTestManager *self)
  * of @path.
  *
  * Returns: (transfer full) (element-type IdeTest): an array of #IdeTest
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_test_manager_get_tests (IdeTestManager *self,
@@ -963,8 +949,6 @@ failure:
  *
  * Returns: (transfer full) (array zero-terminated=1): an array of strings
  *   describing available sub-paths to @path.
- *
- * Since: 3.32
  */
 gchar **
 ide_test_manager_get_folders (IdeTestManager *self,
@@ -1037,8 +1021,6 @@ ide_test_manager_ensure_loaded_cb (IdeTestManager *self,
  *
  * If the test manager has already loaded tests, then @callback will
  * be called after returning to the main loop.
- *
- * Since: 3.32
  */
 void
 ide_test_manager_ensure_loaded_async (IdeTestManager      *self,
@@ -1087,8 +1069,6 @@ ide_test_manager_ensure_loaded_finish (IdeTestManager  *self,
  * Gets the #VtePty to use for running unit tests.
  *
  * Returns: (transfer none): a #VtePty
- *
- * Since: 3.32
  */
 VtePty *
 ide_test_manager_get_pty (IdeTestManager *self)
@@ -1108,8 +1088,6 @@ ide_test_manager_get_pty (IdeTestManager *self)
  * Gets a FD that maps to the child side of the PTY device.
  *
  * Returns: a new FD or -1 on failure
- *
- * Since: 3.34
  */
 gint
 ide_test_manager_open_pty (IdeTestManager *self)
@@ -1133,8 +1111,6 @@ ide_test_manager_open_pty (IdeTestManager *self)
  * when the cancel action is called.
  *
  * Returns: (transfer none): a #GCancellable
- *
- * Since: 3.34
  */
 GCancellable *
 ide_test_manager_get_cancellable (IdeTestManager *self)
diff --git a/src/libide/foundry/ide-test-provider.c b/src/libide/foundry/ide-test-provider.c
index c1e4f4e4f..970bd0299 100644
--- a/src/libide/foundry/ide-test-provider.c
+++ b/src/libide/foundry/ide-test-provider.c
@@ -331,8 +331,6 @@ ide_test_provider_set_loading (IdeTestProvider *self,
  * @self: a #IdeTestProvider
  *
  * Requests the test provider reloads the tests.
- *
- * Since: 3.32
  */
 void
 ide_test_provider_reload (IdeTestProvider *self)
diff --git a/src/libide/foundry/ide-test.c b/src/libide/foundry/ide-test.c
index f2980bbe4..f759cd015 100644
--- a/src/libide/foundry/ide-test.c
+++ b/src/libide/foundry/ide-test.c
@@ -151,8 +151,6 @@ ide_test_class_init (IdeTestClass *klass)
    *
    * The "display-name" property contains the display name of the test as
    * the user is expected to read in UI elements.
-   *
-   * Since: 3.32
    */
   properties [PROP_DISPLAY_NAME] =
     g_param_spec_string ("display-name",
@@ -165,8 +163,6 @@ ide_test_class_init (IdeTestClass *klass)
    * IdeTest:id:
    *
    * The "id" property contains the unique identifier of the test.
-   *
-   * Since: 3.32
    */
   properties [PROP_ID] =
     g_param_spec_string ("id",
@@ -180,8 +176,6 @@ ide_test_class_init (IdeTestClass *klass)
    *
    * The "group" property contains the name of the gruop the test belongs
    * to, if any.
-   *
-   * Since: 3.32
    */
   properties [PROP_GROUP] =
     g_param_spec_string ("group",
@@ -195,8 +189,6 @@ ide_test_class_init (IdeTestClass *klass)
    *
    * The "status" property contains the status of the test, updated by
    * providers when they have run the test.
-   *
-   * Since: 3.32
    */
   properties [PROP_STATUS] =
     g_param_spec_enum ("status",
@@ -243,8 +235,6 @@ _ide_test_set_provider (IdeTest         *self,
  * Gets the "display-name" property of the test.
  *
  * Returns: (nullable): The display_name of the test or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_test_get_display_name (IdeTest *self)
@@ -262,8 +252,6 @@ ide_test_get_display_name (IdeTest *self)
  * @display_name: (nullable): The display_name of the test, or %NULL to unset
  *
  * Sets the "display-name" property of the unit test.
- *
- * Since: 3.32
  */
 void
 ide_test_set_display_name (IdeTest     *self,
@@ -290,8 +278,6 @@ ide_test_set_display_name (IdeTest     *self,
  * The group name is used to group tests together.
  *
  * Returns: (nullable): The group name or %NULL.
- *
- * Since: 3.32
  */
 const gchar *
 ide_test_get_group (IdeTest *self)
@@ -311,8 +297,6 @@ ide_test_get_group (IdeTest *self)
  * Sets the #IdeTest:group property.
  *
  * The group property is used to group related tests together.
- *
- * Since: 3.32
  */
 void
 ide_test_set_group (IdeTest     *self,
@@ -337,8 +321,6 @@ ide_test_set_group (IdeTest     *self,
  * Gets the #IdeTest:id property.
  *
  * Returns: (nullable): The id of the test, or %NULL if it has not been set.
- *
- * Since: 3.32
  */
 const gchar *
 ide_test_get_id (IdeTest *self)
@@ -358,8 +340,6 @@ ide_test_get_id (IdeTest *self)
  * Sets the #IdeTest:id property.
  *
  * The id property is used to uniquely identify the test.
- *
- * Since: 3.32
  */
 void
 ide_test_set_id (IdeTest     *self,
diff --git a/src/libide/foundry/ide-toolchain-manager.c b/src/libide/foundry/ide-toolchain-manager.c
index 794bcd8c5..fec76de8c 100644
--- a/src/libide/foundry/ide-toolchain-manager.c
+++ b/src/libide/foundry/ide-toolchain-manager.c
@@ -446,8 +446,6 @@ list_model_iface_init (GListModelInterface *iface)
  * Gets the toolchain by its internal identifier.
  *
  * Returns: (transfer full): An #IdeToolchain.
- *
- * Since: 3.32
  */
 IdeToolchain *
 ide_toolchain_manager_get_toolchain (IdeToolchainManager *self,
@@ -476,8 +474,6 @@ ide_toolchain_manager_get_toolchain (IdeToolchainManager *self,
  * and have registered all their #IdeToolchain.
  *
  * Returns: %TRUE if all the toolchains are loaded
- *
- * Since: 3.32
  */
 gboolean
 ide_toolchain_manager_is_loaded (IdeToolchainManager  *self)
diff --git a/src/libide/foundry/ide-toolchain-provider.c b/src/libide/foundry/ide-toolchain-provider.c
index b7b5d2b54..d5051252e 100644
--- a/src/libide/foundry/ide-toolchain-provider.c
+++ b/src/libide/foundry/ide-toolchain-provider.c
@@ -103,8 +103,6 @@ ide_toolchain_provider_default_init (IdeToolchainProviderInterface *iface)
    *
    * The "added" signal is emitted when a toolchain
    * has been added to a toolchain provider.
-   *
-   * Since: 3.32
    */
   signals [ADDED] =
     g_signal_new ("added",
@@ -125,8 +123,6 @@ ide_toolchain_provider_default_init (IdeToolchainProviderInterface *iface)
    *
    * The "removed" signal is emitted when a toolchain
    * has been removed from a toolchain provider.
-   *
-   * Since: 3.32
    */
   signals [REMOVED] =
     g_signal_new ("removed",
@@ -154,8 +150,6 @@ ide_toolchain_provider_default_init (IdeToolchainProviderInterface *iface)
  * toolchain within the project and call ide_toolchain_provider_emit_added()
  * before completing the asynchronous function so that the toolchain
  * manager may be made aware of the toolchains.
- *
- * Since: 3.32
  */
 void
 ide_toolchain_provider_load_async (IdeToolchainProvider *self,
@@ -177,8 +171,6 @@ ide_toolchain_provider_load_async (IdeToolchainProvider *self,
  * Completes an asynchronous request to ide_toolchain_provider_load_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_toolchain_provider_load_finish (IdeToolchainProvider  *self,
@@ -199,8 +191,6 @@ ide_toolchain_provider_load_finish (IdeToolchainProvider  *self,
  *
  * #IdeToolchainProvider implementations should call this function with
  * a @toolchain when it has discovered a new toolchain.
- *
- * Since: 3.32
  */
 void
 ide_toolchain_provider_emit_added (IdeToolchainProvider *self,
@@ -219,8 +209,6 @@ ide_toolchain_provider_emit_added (IdeToolchainProvider *self,
  *
  * #IdeToolchainProvider implementations should call this function with
  * a @toolchain when the toolchain was removed.
- *
- * Since: 3.32
  */
 void
 ide_toolchain_provider_emit_removed (IdeToolchainProvider *self,
diff --git a/src/libide/foundry/ide-toolchain.c b/src/libide/foundry/ide-toolchain.c
index d8d8b2f23..13052c580 100644
--- a/src/libide/foundry/ide-toolchain.c
+++ b/src/libide/foundry/ide-toolchain.c
@@ -53,8 +53,6 @@ static GParamSpec *properties [N_PROPS];
  * Gets the internal identifier of the toolchain
  *
  * Returns: (transfer none): the unique identifier.
- *
- * Since: 3.32
  */
 const gchar *
 ide_toolchain_get_id (IdeToolchain  *self)
@@ -73,8 +71,6 @@ ide_toolchain_get_id (IdeToolchain  *self)
  * @id: the unique identifier
  *
  * Sets the internal identifier of the toolchain
- *
- * Since: 3.32
  */
 void
 ide_toolchain_set_id (IdeToolchain  *self,
@@ -126,8 +122,6 @@ ide_toolchain_set_display_name (IdeToolchain  *self,
  * @host_triplet: an #IdeTriplet representing the host architecture of the toolchain
  *
  * Sets the host system of the toolchain
- *
- * Since: 3.32
  */
 void
 ide_toolchain_set_host_triplet (IdeToolchain *self,
@@ -156,8 +150,6 @@ ide_toolchain_set_host_triplet (IdeToolchain *self,
  * "x86_64-linux-gnu".
  *
  * Returns: (transfer full): The host system.type of the toolchain
- *
- * Since: 3.32
  */
 IdeTriplet *
 ide_toolchain_get_host_triplet (IdeToolchain *self)
@@ -204,8 +196,6 @@ ide_toolchain_real_get_tools_for_id (IdeToolchain  *self,
  *
  * Returns: (transfer none): A string containing the path of the tool for the given language, or
  * %NULL is no tool has been found.
- *
- * Since: 3.32
  */
 const gchar *
 ide_toolchain_get_tool_for_language (IdeToolchain *self,
@@ -231,8 +221,6 @@ ide_toolchain_get_tool_for_language (IdeToolchain *self,
  * Gets the list of all the paths to the specified tool id.
  *
  * Returns: (transfer full) (element-type utf8 utf8): A table of language names and paths.
- *
- * Since: 3.32
  */
 GHashTable *
 ide_toolchain_get_tools_for_id (IdeToolchain  *self,
diff --git a/src/libide/foundry/ide-triplet.c b/src/libide/foundry/ide-triplet.c
index 389fb001e..86f617814 100644
--- a/src/libide/foundry/ide-triplet.c
+++ b/src/libide/foundry/ide-triplet.c
@@ -64,8 +64,6 @@ _ide_triplet_construct (void)
  * (like "i686-pc-linux-gnu")
  *
  * Returns: (transfer full): An #IdeTriplet.
- *
- * Since: 3.32
  */
 IdeTriplet *
 ide_triplet_new (const gchar *full_name)
@@ -112,8 +110,6 @@ ide_triplet_new (const gchar *full_name)
  * Creates a new #IdeTriplet from a the current system information
  *
  * Returns: (transfer full): An #IdeTriplet.
- *
- * Since: 3.32
  */
 IdeTriplet *
 ide_triplet_new_from_system (void)
@@ -137,8 +133,6 @@ ide_triplet_new_from_system (void)
  * (like "x86_64-linux-gnu")
  *
  * Returns: (transfer full): An #IdeTriplet.
- *
- * Since: 3.32
  */
 IdeTriplet *
 ide_triplet_new_with_triplet (const gchar *arch,
@@ -184,8 +178,6 @@ ide_triplet_new_with_triplet (const gchar *arch,
  * "arch-vendor-kernel-os" (like "i686-pc-linux-gnu")
  *
  * Returns: (transfer full): An #IdeTriplet.
- *
- * Since: 3.32
  */
 IdeTriplet *
 ide_triplet_new_with_quadruplet (const gchar *arch,
@@ -243,8 +235,6 @@ ide_triplet_finalize (IdeTriplet *self)
  * Increases the reference count of @self
  *
  * Returns: (transfer none): An #IdeTriplet.
- *
- * Since: 3.32
  */
 IdeTriplet *
 ide_triplet_ref (IdeTriplet *self)
@@ -263,8 +253,6 @@ ide_triplet_ref (IdeTriplet *self)
  *
  * Decreases the reference count of @self
  * Once the reference count reaches 0, the object is freed.
- *
- * Since: 3.32
  */
 void
 ide_triplet_unref (IdeTriplet *self)
@@ -284,8 +272,6 @@ ide_triplet_unref (IdeTriplet *self)
  * a duet, a triplet or a quadruplet).
  *
  * Returns: (transfer none): The full name of the machine configuration name
- *
- * Since: 3.32
  */
 const gchar *
 ide_triplet_get_full_name (IdeTriplet *self)
@@ -302,8 +288,6 @@ ide_triplet_get_full_name (IdeTriplet *self)
  * Gets the architecture name of the machine
  *
  * Returns: (transfer none): The architecture name of the machine
- *
- * Since: 3.32
  */
 const gchar *
 ide_triplet_get_arch (IdeTriplet *self)
@@ -320,8 +304,6 @@ ide_triplet_get_arch (IdeTriplet *self)
  * Gets the vendor name of the machine
  *
  * Returns: (transfer none) (nullable): The vendor name of the machine
- *
- * Since: 3.32
  */
 const gchar *
 ide_triplet_get_vendor (IdeTriplet *self)
@@ -338,8 +320,6 @@ ide_triplet_get_vendor (IdeTriplet *self)
  * Gets name of the kernel of the machine
  *
  * Returns: (transfer none) (nullable): The name of the kernel of the machine
- *
- * Since: 3.32
  */
 const gchar *
 ide_triplet_get_kernel (IdeTriplet *self)
@@ -356,8 +336,6 @@ ide_triplet_get_kernel (IdeTriplet *self)
  * Gets name of the operating system of the machine
  *
  * Returns: (transfer none) (nullable): The name of the operating system of the machine
- *
- * Since: 3.32
  */
 const gchar *
 ide_triplet_get_operating_system (IdeTriplet *self)
@@ -375,8 +353,6 @@ ide_triplet_get_operating_system (IdeTriplet *self)
  * Gets whether this is the same architecture as the system
  *
  * Returns: %TRUE if this is the same architecture as the system, %FALSE otherwise
- *
- * Since: 3.32
  */
 gboolean
 ide_triplet_is_system (IdeTriplet *self)
diff --git a/src/libide/greeter/ide-greeter-row.c b/src/libide/greeter/ide-greeter-row.c
index 640c54ac2..9e5673be2 100644
--- a/src/libide/greeter/ide-greeter-row.c
+++ b/src/libide/greeter/ide-greeter-row.c
@@ -153,8 +153,6 @@ ide_greeter_row_class_init (IdeGreeterRowClass *klass)
    *
    * The "project-info" property contains information about the project
    * to be displayed.
-   *
-   * Since: 3.32
    */
   properties [PROP_PROJECT_INFO] =
     g_param_spec_object ("project-info",
@@ -225,8 +223,6 @@ ide_greeter_row_clear (IdeGreeterRow *self)
  * Gets the #IdeGreeterRow:project-info property.
  *
  * Returns: (transfer none) (nullable): an #IdeProjectInfo or %NULL
- *
- * Since: 3.32
  */
 IdeProjectInfo *
 ide_greeter_row_get_project_info (IdeGreeterRow *self)
@@ -336,8 +332,6 @@ ide_greeter_row_set_project_info (IdeGreeterRow  *self,
  * Gets a new string containing the search text for the greeter row.
  *
  * Returns: (transfer full) (nullable): a string or %NULL
- *
- * Since: 3.32
  */
 gchar *
 ide_greeter_row_get_search_text (IdeGreeterRow *self)
diff --git a/src/libide/greeter/ide-greeter-section.c b/src/libide/greeter/ide-greeter-section.c
index e4e146651..9f9634f12 100644
--- a/src/libide/greeter/ide-greeter-section.c
+++ b/src/libide/greeter/ide-greeter-section.c
@@ -46,8 +46,6 @@ ide_greeter_section_default_init (IdeGreeterSectionInterface *iface)
    *
    * Use ide_greeter_section_emit_project_activated() to activate
    * this signal.
-   *
-   * Since: 3.32
    */
   signals [PROJECT_ACTIVATED] =
     g_signal_new ("project-activated",
@@ -66,8 +64,6 @@ ide_greeter_section_default_init (IdeGreeterSectionInterface *iface)
  * sorted first in the list of sections.
  *
  * Returns: the priority for the section
- *
- * Since: 3.32
  */
 gint
 ide_greeter_section_get_priority (IdeGreeterSection *self)
@@ -88,8 +84,6 @@ ide_greeter_section_get_priority (IdeGreeterSection *self)
  * Refilter the visibile items based on the current search.
  *
  * Returns: %TRUE if at least one element matched.
- *
- * Since: 3.32
  */
 gboolean
 ide_greeter_section_filter (IdeGreeterSection *self,
@@ -126,8 +120,6 @@ ide_greeter_section_emit_project_activated (IdeGreeterSection *self,
  * If no item matched, then return %FALSE.
  *
  * Returns: %TRUE if an item was activated
- *
- * Since: 3.32
  */
 gboolean
 ide_greeter_section_activate_first (IdeGreeterSection *self)
diff --git a/src/libide/gtk/ide-cell-renderer-fancy.c b/src/libide/gtk/ide-cell-renderer-fancy.c
index f3552aaca..ea9861c00 100644
--- a/src/libide/gtk/ide-cell-renderer-fancy.c
+++ b/src/libide/gtk/ide-cell-renderer-fancy.c
@@ -360,8 +360,6 @@ ide_cell_renderer_fancy_get_title (IdeCellRendererFancy *self)
  *
  * Like ide_cell_renderer_fancy_set_title() but takes ownership
  * of @title, saving a string copy.
- *
- * Since: 3.32
  */
 void
 ide_cell_renderer_fancy_take_title (IdeCellRendererFancy *self,
diff --git a/src/libide/gtk/ide-fancy-tree-view.c b/src/libide/gtk/ide-fancy-tree-view.c
index a0fa3463b..4de01a94b 100644
--- a/src/libide/gtk/ide-fancy-tree-view.c
+++ b/src/libide/gtk/ide-fancy-tree-view.c
@@ -37,8 +37,6 @@
  *
  * It only has a single column, and comes setup with a single
  * cell (an #IdeCellRendererFancy) to render the conten.
- *
- * Since: 3.32
  */
 
 typedef struct
@@ -178,8 +176,6 @@ ide_fancy_tree_view_new (void)
  *
  * Sets the data func to use to update the text for the
  * #IdeCellRendererFancy cell renderer.
- *
- * Since: 3.32
  */
 void
 ide_fancy_tree_view_set_data_func (IdeFancyTreeView      *self,
diff --git a/src/libide/gtk/ide-file-chooser-entry.c b/src/libide/gtk/ide-file-chooser-entry.c
index e6ca80e1f..ca149a7e6 100644
--- a/src/libide/gtk/ide-file-chooser-entry.c
+++ b/src/libide/gtk/ide-file-chooser-entry.c
@@ -548,8 +548,6 @@ ide_file_chooser_entry_new (const gchar          *title,
  * Gets the entry used by the #GtkEntry.
  *
  * Returns: (transfer none): a #GtkEntry
- *
- * Since: 3.32
  */
 GtkEntry *
 ide_file_chooser_entry_get_entry (IdeFileChooserEntry *self)
diff --git a/src/libide/gtk/ide-menu-manager.c b/src/libide/gtk/ide-menu-manager.c
index d908955e0..3775a0ac0 100644
--- a/src/libide/gtk/ide-menu-manager.c
+++ b/src/libide/gtk/ide-menu-manager.c
@@ -60,8 +60,6 @@ G_DEFINE_TYPE (IdeMenuManager, ide_menu_manager, G_TYPE_OBJECT)
  * ide_menu_manager_get_menu_by_id() will always return a #GMenu, however
  * that menu may contain no children until something has extended it later
  * on during the application process.
- *
- * Since: 3.26
  */
 
 static const gchar *
@@ -577,8 +575,6 @@ ide_menu_manager_merge (IdeMenuManager *self,
  * This removes items from menus that were added as part of a previous
  * menu merge. Use the value returned from ide_menu_manager_merge() as
  * the @merge_id.
- *
- * Since: 3.26
  */
 void
 ide_menu_manager_remove (IdeMenuManager *self,
diff --git a/src/libide/gui/ide-application-addin.c b/src/libide/gui/ide-application-addin.c
index aa5fa8d6e..4cea0f98f 100644
--- a/src/libide/gui/ide-application-addin.c
+++ b/src/libide/gui/ide-application-addin.c
@@ -38,8 +38,6 @@
  *
  * Use this interface when you can share code between multiple projects that
  * are open at the same time.
- *
- * Since: 3.32
  */
 
 G_DEFINE_INTERFACE (IdeApplicationAddin, ide_application_addin, G_TYPE_OBJECT)
@@ -70,8 +68,6 @@ ide_application_addin_default_init (IdeApplicationAddinInterface *iface)
  *
  * This function is activated when the GApplication::activate signal is
  * emitted.
- *
- * Since: 3.32
  */
 void
 ide_application_addin_activate (IdeApplicationAddin *self,
@@ -93,8 +89,6 @@ ide_application_addin_activate (IdeApplicationAddin *self,
  * @hint: a hint provided by the calling instance
  *
  * This function is activated when the #GApplication::open signal is emitted.
- *
- * Since: 3.32
  */
 void
 ide_application_addin_open (IdeApplicationAddin  *self,
@@ -120,8 +114,6 @@ ide_application_addin_open (IdeApplicationAddin  *self,
  *
  * Use this to setup code in your plugin that needs to be loaded once per
  * application process.
- *
- * Since: 3.32
  */
 void
 ide_application_addin_load (IdeApplicationAddin *self,
@@ -143,8 +135,6 @@ ide_application_addin_load (IdeApplicationAddin *self,
  *
  * Use this function to cleanup after anything setup in
  * ide_application_addin_load().
- *
- * Since: 3.32
  */
 void
 ide_application_addin_unload (IdeApplicationAddin *self,
@@ -172,8 +162,6 @@ ide_application_addin_unload (IdeApplicationAddin *self,
  * Make sure you set `X-At-Startup=true` in your `.plugin` file so that the
  * plugin is loaded early during startup or this virtual function will not
  * be called.
- *
- * Since: 3.32
  */
 void
 ide_application_addin_add_option_entries (IdeApplicationAddin *self,
@@ -197,8 +185,6 @@ ide_application_addin_add_option_entries (IdeApplicationAddin *self,
  * ide_application_addin_add_option_entries().
  *
  * See g_application_command_line_get_option_dict() for more information.
- *
- * Since: 3.32
  */
 void
 ide_application_addin_handle_command_line (IdeApplicationAddin     *self,
diff --git a/src/libide/gui/ide-application-addin.h b/src/libide/gui/ide-application-addin.h
index 6969355c8..a4542a48e 100644
--- a/src/libide/gui/ide-application-addin.h
+++ b/src/libide/gui/ide-application-addin.h
@@ -42,8 +42,6 @@ G_DECLARE_INTERFACE (IdeApplicationAddin, ide_application_addin, IDE, APPLICATIO
  *   g_application_add_main_option_entries().
  * @handle_command_line: Set this virtual method to handle parsing command
  *   line arguments.
- *
- * Since: 3.32
  */
 struct _IdeApplicationAddinInterface
 {
diff --git a/src/libide/gui/ide-application-command-line.c b/src/libide/gui/ide-application-command-line.c
index 9899137fd..155762904 100644
--- a/src/libide/gui/ide-application-command-line.c
+++ b/src/libide/gui/ide-application-command-line.c
@@ -54,8 +54,6 @@ add_option_entries_foreach_cb (PeasExtensionSet *set,
  *
  * Inflate all early stage plugins asking them to let us know about what
  * command-line options they support.
- *
- * Since: 3.32
  */
 void
 _ide_application_add_option_entries (IdeApplication *self)
@@ -130,8 +128,6 @@ ide_application_command_line_open_project_cb (GObject      *object,
  * plugins who have elected to handle command-line options. Some
  * of them, like the greeter, may create an initial workbench
  * and workspace window in response.
- *
- * Since: 3.32
  */
 void
 _ide_application_command_line (IdeApplication          *self,
@@ -230,8 +226,6 @@ _ide_application_command_line (IdeApplication          *self,
  *
  * Returns: (transfer full) (nullable) (array zero-terminated=1): an
  *   array of strings or %NULL
- *
- * Since: 3.32
  */
 gchar **
 ide_application_get_argv (IdeApplication          *self,
diff --git a/src/libide/gui/ide-application-open.c b/src/libide/gui/ide-application-open.c
index 721bb0664..4624089b5 100644
--- a/src/libide/gui/ide-application-open.c
+++ b/src/libide/gui/ide-application-open.c
@@ -147,8 +147,6 @@ ide_application_open_project_async (IdeApplication      *self,
  *
  * Returns: (transfer full): an #IdeWorkbench or %NULL on failure and @error
  *   is set.
- *
- * Since: 3.32
  */
 IdeWorkbench *
 ide_application_open_project_finish (IdeApplication  *self,
diff --git a/src/libide/gui/ide-application-plugins.c b/src/libide/gui/ide-application-plugins.c
index a1ee6b30b..7c066d584 100644
--- a/src/libide/gui/ide-application-plugins.c
+++ b/src/libide/gui/ide-application-plugins.c
@@ -293,8 +293,6 @@ ide_application_plugins_unload_plugin_after_cb (IdeApplication *self,
  * early-stage initialization. Usually, that is any plugin that has a
  * command-line handler and uses "X-At-Startup=true" in their .plugin
  * manifest.
- *
- * Since: 3.32
  */
 void
 _ide_application_load_plugins_for_startup (IdeApplication *self)
@@ -353,8 +351,6 @@ _ide_application_load_plugins_for_startup (IdeApplication *self)
  *
  * This function loads any additional plugins that have not yet been
  * loaded during early startup.
- *
- * Since: 3.32
  */
 void
 _ide_application_load_plugins (IdeApplication *self)
@@ -460,8 +456,6 @@ ide_application_addin_removed_cb (PeasExtensionSet *set,
  * @self: a #IdeApplication
  *
  * Loads the #IdeApplicationAddin's for this application.
- *
- * Since: 3.32
  */
 void
 _ide_application_load_addins (IdeApplication *self)
@@ -494,8 +488,6 @@ _ide_application_load_addins (IdeApplication *self)
  * @self: a #IdeApplication
  *
  * Unloads all of the previously loaded #IdeApplicationAddin.
- *
- * Since: 3.32
  */
 void
 _ide_application_unload_addins (IdeApplication *self)
diff --git a/src/libide/gui/ide-application.c b/src/libide/gui/ide-application.c
index 7aac1591e..972bee884 100644
--- a/src/libide/gui/ide-application.c
+++ b/src/libide/gui/ide-application.c
@@ -628,8 +628,6 @@ ide_application_remove_workbench (IdeApplication *self,
  * @user_data: user data for @callback
  *
  * Calls @callback for each of the registered workbenches.
- *
- * Since: 3.32
  */
 void
 ide_application_foreach_workbench (IdeApplication *self,
@@ -655,8 +653,6 @@ ide_application_foreach_workbench (IdeApplication *self,
  * next workspace upon handling files from command-line arguments. This is
  * reset after the files are opened and is generally only useful from
  * #IdeApplicationAddin's who need to alter the default workspace.
- *
- * Since: 3.32
  */
 void
 ide_application_set_workspace_type (IdeApplication *self,
@@ -688,8 +684,6 @@ ide_application_network_changed_cb (IdeApplication  *self,
  * the wild that make determining if we have network access difficult.
  *
  * Returns: %TRUE if we think there is network access.
- *
- * Since: 3.32
  */
 gboolean
 ide_application_has_network (IdeApplication *self)
@@ -733,8 +727,6 @@ ide_application_has_network (IdeApplication *self)
  * Gets the time the application was started.
  *
  * Returns: (transfer none): a #GDateTime
- *
- * Since: 3.32
  */
 GDateTime *
 ide_application_get_started_at (IdeApplication *self)
@@ -754,8 +746,6 @@ ide_application_get_started_at (IdeApplication *self)
  * If no workbench is the root of @file, then %NULL is returned.
  *
  * Returns: (transfer none) (nullable): an #IdeWorkbench or %NULL
- *
- * Since: 3.32
  */
 IdeWorkbench *
 ide_application_find_workbench_for_file (IdeApplication *self,
@@ -832,8 +822,6 @@ ide_application_get_command_line_handled (IdeApplication          *self,
  *
  * Returns: (transfer none) (type IdeApplicationAddin) (nullable): an
  *   #IdeApplicationAddin or %NULL.
- *
- * Since: 3.34
  */
 gpointer
 ide_application_find_addin_by_module_name (IdeApplication *self,
diff --git a/src/libide/gui/ide-frame-addin.c b/src/libide/gui/ide-frame-addin.c
index 81893a80a..6db636e57 100644
--- a/src/libide/gui/ide-frame-addin.c
+++ b/src/libide/gui/ide-frame-addin.c
@@ -28,8 +28,6 @@
  * SECTION:ide-frame-addin
  * @title: IdeFrameAddin
  * @short_description: addins created for every #IdeFrame
- *
- * Since: 3.32
  */
 
 G_DEFINE_INTERFACE (IdeFrameAddin, ide_frame_addin, G_TYPE_OBJECT)
@@ -50,8 +48,6 @@ ide_frame_addin_default_init (IdeFrameAddinInterface *iface)
  * This virtual method is called when the plugin should load itself.
  * A new instance of the plugin is created for every #IdeFrame
  * that is created in Builder.
- *
- * Since: 3.32
  */
 void
 ide_frame_addin_load (IdeFrameAddin *self,
@@ -74,8 +70,6 @@ ide_frame_addin_load (IdeFrameAddin *self,
  *
  * This virtual method is called when the plugin should unload itself.
  * It should revert anything performed via ide_frame_addin_load().
- *
- * Since: 3.32
  */
 void
 ide_frame_addin_unload (IdeFrameAddin *self,
@@ -96,8 +90,6 @@ ide_frame_addin_unload (IdeFrameAddin *self,
  * This virtual method is called whenever the active page changes
  * in the #IdePage. Plugins may want to alter what controls
  * are displayed on the frame based on the current page.
- *
- * Since: 3.32
  */
 void
 ide_frame_addin_set_page (IdeFrameAddin *self,
diff --git a/src/libide/gui/ide-header-bar.c b/src/libide/gui/ide-header-bar.c
index 5c2b32b47..6509655ae 100644
--- a/src/libide/gui/ide-header-bar.c
+++ b/src/libide/gui/ide-header-bar.c
@@ -168,8 +168,6 @@ ide_header_bar_new (void)
  * Gets the menu-id to show in the workspace window.
  *
  * Returns: (nullable): a string containing the menu-id, or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_header_bar_get_menu_id (IdeHeaderBar *self)
@@ -215,8 +213,6 @@ menu_has_custom (GMenuModel *model,
  * Sets the menu-id to display in the window.
  *
  * Set to %NULL to hide the workspace menu.
- *
- * Since: 3.32
  */
 void
 ide_header_bar_set_menu_id (IdeHeaderBar *self,
diff --git a/src/libide/gui/ide-notification-list-box-row.c b/src/libide/gui/ide-notification-list-box-row.c
index a4fd534b2..ce7ba22eb 100644
--- a/src/libide/gui/ide-notification-list-box-row.c
+++ b/src/libide/gui/ide-notification-list-box-row.c
@@ -132,8 +132,6 @@ setup_buttons_locked (IdeNotificationListBoxRow *self)
  * Create a new #IdeNotificationListBoxRow.
  *
  * Returns: (transfer full): a newly created #IdeNotificationListBoxRow
- *
- * Since: 3.32
  */
 GtkWidget *
 ide_notification_list_box_row_new (IdeNotification *notification)
@@ -303,8 +301,6 @@ ide_notification_list_box_row_init (IdeNotificationListBoxRow *self)
  * @self: a #IdeNotificationListBoxRow
  *
  * Returns: (transfer none) (nullable): an #IdeNotification
- *
- * Since: 3.32
  */
 IdeNotification *
 ide_notification_list_box_row_get_notification (IdeNotificationListBoxRow *self)
diff --git a/src/libide/gui/ide-omni-bar-addin.c b/src/libide/gui/ide-omni-bar-addin.c
index 49d6a3b30..78db38cf5 100644
--- a/src/libide/gui/ide-omni-bar-addin.c
+++ b/src/libide/gui/ide-omni-bar-addin.c
@@ -34,8 +34,6 @@
  * information to the popover.
  *
  * See #IdeOmniBar for information about what you can alter.
- *
- * Since: 3.32
  */
 
 G_DEFINE_INTERFACE (IdeOmniBarAddin, ide_omni_bar_addin, G_TYPE_OBJECT)
@@ -52,8 +50,6 @@ ide_omni_bar_addin_default_init (IdeOmniBarAddinInterface *iface)
  *
  * Requests that the #IdeOmniBarAddin initialize, possibly modifying
  * @omni_bar as necessary.
- *
- * Since: 3.32
  */
 void
 ide_omni_bar_addin_load (IdeOmniBarAddin *self,
@@ -74,8 +70,6 @@ ide_omni_bar_addin_load (IdeOmniBarAddin *self,
  * Requests that the #IdeOmniBarAddin shutdown, possibly modifying
  * @omni_bar as necessary to return it to the original state before
  * the addin was loaded.
- *
- * Since: 3.32
  */
 void
 ide_omni_bar_addin_unload (IdeOmniBarAddin *self,
diff --git a/src/libide/gui/ide-session.c b/src/libide/gui/ide-session.c
index be48ca80a..1f69a27e7 100644
--- a/src/libide/gui/ide-session.c
+++ b/src/libide/gui/ide-session.c
@@ -666,8 +666,6 @@ on_session_cache_loaded_cb (GObject      *object,
  * the point it was last saved (typically upon shutdown). This includes
  * open documents and editor splits to the degree possible. Adding support
  * for a new page type requires implementing an #IdeSessionAddin.
- *
- * Since: 41
  */
 void
 ide_session_restore_async (IdeSession          *self,
@@ -937,8 +935,6 @@ foreach_page_in_grid_save_cb (IdePage  *page,
  * This function will save the position and content of the pages in the @grid,
  * which can then be restored with ide_session_restore_async(), asking the
  * content of the pages to the appropriate #IdeSessionAddin.
- *
- * Since: 41
  */
 void
 ide_session_save_async (IdeSession          *self,
diff --git a/src/libide/gui/ide-workbench-addin.c b/src/libide/gui/ide-workbench-addin.c
index e2e335c74..8b0ba2ce9 100644
--- a/src/libide/gui/ide-workbench-addin.c
+++ b/src/libide/gui/ide-workbench-addin.c
@@ -291,8 +291,6 @@ ide_workbench_addin_open_finish (IdeWorkbenchAddin  *self,
  *
  * This is helpful for plugins that want to react to VCS changes such as
  * changing branches, or tracking commits.
- *
- * Since: 3.32
  */
 void
 ide_workbench_addin_vcs_changed (IdeWorkbenchAddin *self,
@@ -315,8 +313,6 @@ ide_workbench_addin_vcs_changed (IdeWorkbenchAddin *self,
  * It is useful for situations where you do not need to influence the
  * project loading, but do need to perform operations after it has
  * completed.
- *
- * Since: 3.32
  */
 void
 ide_workbench_addin_project_loaded (IdeWorkbenchAddin *self,
diff --git a/src/libide/io/ide-content-type.c b/src/libide/io/ide-content-type.c
index fb4cb65c7..7a214aad4 100644
--- a/src/libide/io/ide-content-type.c
+++ b/src/libide/io/ide-content-type.c
@@ -114,8 +114,6 @@ ide_io_init_ctor (void)
  * In 3.40, this function was modified to add the @filename parameter.
  *
  * Returns: (transfer full) (nullable): A #GIcon or %NULL
- *
- * Since: 3.40
  */
 GIcon *
 ide_g_content_type_get_symbolic_icon (const gchar *content_type,
diff --git a/src/libide/io/ide-directory-reaper.c b/src/libide/io/ide-directory-reaper.c
index 71634ef18..213bf3733 100644
--- a/src/libide/io/ide-directory-reaper.c
+++ b/src/libide/io/ide-directory-reaper.c
@@ -142,8 +142,6 @@ ide_directory_reaper_class_init (IdeDirectoryReaperClass *klass)
    * The "remove-file" signal is emitted for each file that is removed by the
    * #IdeDirectoryReaper instance. This may be useful if you want to show the
    * user what was processed by the reaper.
-   *
-   * Since: 3.32
    */
   signals [REMOVE_FILE] =
     g_signal_new_class_handler ("remove-file",
diff --git a/src/libide/io/ide-file-transfer.c b/src/libide/io/ide-file-transfer.c
index cc80dd857..282fc4025 100644
--- a/src/libide/io/ide-file-transfer.c
+++ b/src/libide/io/ide-file-transfer.c
@@ -776,8 +776,6 @@ ide_file_transfer_execute_finish (IdeFileTransfer  *self,
  * @stat_buf: (out): a #IdeFileTransferStat
  *
  * Gets statistics about the transfer progress.
- *
- * Since: 3.28
  */
 void
 ide_file_transfer_stat (IdeFileTransfer     *self,
diff --git a/src/libide/io/ide-gfile.c b/src/libide/io/ide-gfile.c
index a7cca987d..cee25199d 100644
--- a/src/libide/io/ide-gfile.c
+++ b/src/libide/io/ide-gfile.c
@@ -62,8 +62,6 @@ get_ignored_locked (void)
  * to the application, so they should only include well-known ignored files
  * such as those internal to a build system, or version control system, and
  * similar.
- *
- * Since: 3.32
  */
 void
 ide_g_file_add_ignored_pattern (const gchar *pattern)
@@ -81,8 +79,6 @@ ide_g_file_add_ignored_pattern (const gchar *pattern)
  * ignores registered with Builder.
  *
  * Returns: %TRUE if @path should be ignored, otherwise %FALSE
- *
- * Since: 3.32
  */
 gboolean
 ide_path_is_ignored (const gchar *path)
@@ -133,8 +129,6 @@ ide_path_is_ignored (const gchar *path)
  * care about the version control system, see #IdeVcs and ide_vcs_is_ignored().
  *
  * Returns: %TRUE if @file should be ignored; otherwise %FALSE.
- *
- * Since: 3.32
  */
 gboolean
 ide_g_file_is_ignored (GFile *file)
@@ -193,8 +187,6 @@ ide_g_file_is_ignored (GFile *file)
  *
  * Returns: (nullable): A relative path, or %NULL if no common ancestor was
  *   found for the relative path.
- *
- * Since: 3.32
  */
 gchar *
 ide_g_file_get_uncanonical_relative_path (GFile *file,
@@ -352,8 +344,6 @@ delayed_run (gpointer data)
  *
  * This can be convenient when you know you need all of the #GFileInfo
  * accessable at once, or the size will be small.
- *
- * Since: 3.32
  */
 void
 ide_g_file_get_children_async (GFile               *file,
@@ -402,8 +392,6 @@ ide_g_file_get_children_async (GFile               *file,
  *
  * Returns: (transfer full) (element-type Gio.FileInfo): A #GPtrArray
  *   of #GFileInfo if successful, otherwise %NULL.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_g_file_get_children_finish (GFile         *file,
@@ -530,8 +518,6 @@ ide_g_file_find_worker (IdeTask      *task,
  *
  *
  * Returns: (transfer full) (element-type GFile): a #GPtrArray of #GFile.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_g_file_find_with_depth (GFile        *file,
@@ -574,8 +560,6 @@ ide_g_file_find_with_depth (GFile        *file,
  * @max_depth is zero, then all directories will be searched.
  *
  * You may only match on the filename, not the directory.
- *
- * Since: 3.32
  */
 void
 ide_g_file_find_with_depth_async (GFile               *file,
@@ -628,8 +612,6 @@ ide_g_file_find_with_depth_async (GFile               *file,
  * Searches descendants of @file for files matching @pattern.
  *
  * You may only match on the filename, not the directory.
- *
- * Since: 3.32
  */
 void
 ide_g_file_find_async (GFile               *file,
@@ -650,8 +632,6 @@ ide_g_file_find_async (GFile               *file,
  * Gets the files that were found which matched the pattern.
  *
  * Returns: (transfer full) (element-type Gio.File): A #GPtrArray of #GFile
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_g_file_find_finish (GFile         *file,
@@ -679,8 +659,6 @@ ide_g_file_find_finish (GFile         *file,
  * the file from the host, rather than our mount namespace.
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_g_host_file_get_contents (const gchar  *path,
@@ -760,8 +738,6 @@ failure:
  *
  * If @ignore_file is set, this function will check to see if that file exists
  * within @directory and skip it (and all descendants) if discovered.
- *
- * Since: 3.34
  */
 void
 ide_g_file_walk_with_ignore (GFile               *directory,
@@ -869,8 +845,6 @@ ide_g_file_walk_with_ignore (GFile               *directory,
  *
  * All of the fileinfo for the directory will be provided to the callback for
  * each directory.
- *
- * Since: 3.32
  */
 void
 ide_g_file_walk (GFile               *directory,
@@ -1026,8 +1000,6 @@ ide_g_file_find_in_ancestors_async (GFile               *directory,
  *
  * Returns: (transfer full): a #GFile if successful; otherwise %NULL
  *   and @error is et.
- *
- * Since: 3.34
  */
 GFile *
 ide_g_file_find_in_ancestors_finish (GAsyncResult  *result,
diff --git a/src/libide/io/ide-line-reader.c b/src/libide/io/ide-line-reader.c
index 042531e79..10a1b5e8c 100644
--- a/src/libide/io/ide-line-reader.c
+++ b/src/libide/io/ide-line-reader.c
@@ -61,8 +61,6 @@ ide_line_reader_init (IdeLineReader *reader,
  * you must provide @length to determine the length of the line.
  *
  * Returns: (transfer none): The beginning of the line within the buffer.
- *
- * Since: 3.32
  */
 gchar *
 ide_line_reader_next (IdeLineReader *reader,
diff --git a/src/libide/io/ide-marked-content.c b/src/libide/io/ide-marked-content.c
index 221e99440..9b8009117 100644
--- a/src/libide/io/ide-marked-content.c
+++ b/src/libide/io/ide-marked-content.c
@@ -47,8 +47,6 @@ G_DEFINE_BOXED_TYPE (IdeMarkedContent,
  * Creates a new #IdeMarkedContent using the bytes provided.
  *
  * Returns: (transfer full): an #IdeMarkedContent
- *
- * Since: 3.32
  */
 IdeMarkedContent *
 ide_marked_content_new (GBytes        *content,
@@ -75,8 +73,6 @@ ide_marked_content_new (GBytes        *content,
  * with the contents of @string.
  *
  * Returns: (transfer full): an #IdeMarkedContent
- *
- * Since: 3.32
  */
 IdeMarkedContent *
 ide_marked_content_new_plaintext (const gchar *plaintext)
@@ -96,8 +92,6 @@ ide_marked_content_new_plaintext (const gchar *plaintext)
  * Creates a new #IdeMarkedContent from the provided data.
  *
  * Returns: (transfer full): an #IdeMarkedContent
- *
- * Since: 3.32
  */
 IdeMarkedContent *
 ide_marked_content_new_from_data (const gchar   *data,
@@ -124,8 +118,6 @@ ide_marked_content_new_from_data (const gchar   *data,
  * ide_marked_content_unref(), it will be freed.
  *
  * Returns: (transfer full): @self with the reference count incremented
- *
- * Since: 3.32
  */
 IdeMarkedContent *
 ide_marked_content_ref (IdeMarkedContent *self)
@@ -146,8 +138,6 @@ ide_marked_content_ref (IdeMarkedContent *self)
  * Decrements the reference count of @self by one.
  *
  * When the reference count of @self reaches zero, it will be freed.
- *
- * Since: 3.32
  */
 void
 ide_marked_content_unref (IdeMarkedContent *self)
@@ -174,8 +164,6 @@ ide_marked_content_unref (IdeMarkedContent *self)
  * This is used to display the content appropriately.
  *
  * Returns:
- *
- * Since: 3.32
  */
 IdeMarkedKind
 ide_marked_content_get_kind (IdeMarkedContent *self)
@@ -193,8 +181,6 @@ ide_marked_content_get_kind (IdeMarkedContent *self)
  * Gets the bytes for the marked content.
  *
  * Returns: (transfer none): a #GBytes
- *
- * Since: 3.32
  */
 GBytes *
 ide_marked_content_get_bytes (IdeMarkedContent *self)
@@ -214,8 +200,6 @@ ide_marked_content_get_bytes (IdeMarkedContent *self)
  * Gets the contents of the marked content as a C string.
  *
  * Returns: (transfer none) (nullable): the content as a string or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_marked_content_as_string (IdeMarkedContent *self,
diff --git a/src/libide/io/ide-path.c b/src/libide/io/ide-path.c
index 70da88a57..b20e128bd 100644
--- a/src/libide/io/ide-path.c
+++ b/src/libide/io/ide-path.c
@@ -39,8 +39,6 @@
  *
  * Returns: (transfer full): A newly allocated string containing the
  *   expansion. A copy of the input string upon failure to expand.
- *
- * Since: 3.32
  */
 gchar *
 ide_path_expand (const gchar *path)
@@ -99,8 +97,6 @@ ide_path_expand (const gchar *path)
  * simply return a copy of @path.
  *
  * Returns: (transfer full): A new path, possibly collapsed.
- *
- * Since: 3.32
  */
 gchar *
 ide_path_collapse (const gchar *path)
@@ -166,8 +162,6 @@ ide_path_is_cpp_like (const gchar *path)
  * the same as the container we're running within.
  *
  * Returns: (transfer full) (nullable): a path or %NULL
- *
- * Since: 3.34
  */
 gchar *
 ide_find_program_in_host_path (const gchar *program)
diff --git a/src/libide/io/ide-persistent-map-builder.c b/src/libide/io/ide-persistent-map-builder.c
index 1d8233e82..dd1928ca1 100644
--- a/src/libide/io/ide-persistent-map-builder.c
+++ b/src/libide/io/ide-persistent-map-builder.c
@@ -311,8 +311,6 @@ ide_persistent_map_builder_write_async (IdePersistentMapBuilder *self,
  *
  * Returns: %TRUE if the while was written successfully; otherwise %FALSE
  *   and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_persistent_map_builder_write_finish (IdePersistentMapBuilder  *self,
diff --git a/src/libide/io/ide-persistent-map.c b/src/libide/io/ide-persistent-map.c
index 50bf367d6..a30dee925 100644
--- a/src/libide/io/ide-persistent-map.c
+++ b/src/libide/io/ide-persistent-map.c
@@ -229,8 +229,6 @@ ide_persistent_map_load_file_async (IdePersistentMap    *self,
  * @error: a location for a #GError, or %NULL
  *
  * Returns: Whether file is loaded or not.
- *
- * Since: 3.32
  */
 gboolean
 ide_persistent_map_load_file_finish (IdePersistentMap  *self,
@@ -249,8 +247,6 @@ ide_persistent_map_load_file_finish (IdePersistentMap  *self,
  * @key: key to lookup value
  *
  * Returns: (transfer full) : value associalted with @key.
- *
- * Since: 3.32
  */
 GVariant *
 ide_persistent_map_lookup_value (IdePersistentMap *self,
diff --git a/src/libide/io/ide-pty-intercept.c b/src/libide/io/ide-pty-intercept.c
index 40fbaa4f5..88af02523 100644
--- a/src/libide/io/ide-pty-intercept.c
+++ b/src/libide/io/ide-pty-intercept.c
@@ -90,8 +90,6 @@ _ide_pty_intercept_set_raw (IdePtyFd fd)
  *
  * Returns: a FD for the slave PTY that should be closed with close().
  *   Upon error, %IDE_PTY_FD_INVALID (-1) is returned.
- *
- * Since: 3.32
  */
 IdePtyFd
 ide_pty_intercept_create_slave (IdePtyFd master_fd,
@@ -167,8 +165,6 @@ ide_pty_intercept_create_slave (IdePtyFd master_fd,
  *
  * Returns: a FD that should be closed with close() if successful.
  *   Upon error, %IDE_PTY_FD_INVALID (-1) is returned.
- *
- * Since: 3.32
  */
 IdePtyFd
 ide_pty_intercept_create_master (void)
@@ -418,8 +414,6 @@ close_and_cleanup:
  * Since we can't track SIGWINCH cleanly in here, we rely on the
  * external consuming program to notify us of SIGWINCH so that we
  * can copy the new size across.
- *
- * Since: 3.32
  */
 gboolean
 ide_pty_intercept_set_size (IdePtyIntercept *self,
@@ -483,8 +477,6 @@ _g_io_add_watch_full_with_context (GMainContext   *main_context,
  * extracting any necessary information.
  *
  * Returns: %TRUE if successful; otherwise %FALSE
- *
- * Since: 3.32
  */
 gboolean
 ide_pty_intercept_init (IdePtyIntercept *self,
@@ -570,8 +562,6 @@ ide_pty_intercept_init (IdePtyIntercept *self,
  * releases any allocated memory.
  *
  * It is invalid to use @self after calling this function.
- *
- * Since: 3.32
  */
 void
 ide_pty_intercept_clear (IdePtyIntercept *self)
@@ -599,8 +589,6 @@ ide_pty_intercept_clear (IdePtyIntercept *self)
  * to use to create a slave fd which can be passed to a child process.
  *
  * Returns: A FD of a PTY master if successful, otherwise -1.
- *
- * Since: 3.32
  */
 IdePtyFd
 ide_pty_intercept_get_fd (IdePtyIntercept *self)
@@ -622,8 +610,6 @@ ide_pty_intercept_get_fd (IdePtyIntercept *self)
  * from a particular side of the intercept.
  *
  * You may only set one per side.
- *
- * Since: 3.32
  */
 void
 ide_pty_intercept_set_callback (IdePtyIntercept         *self,
diff --git a/src/libide/io/ide-recursive-file-monitor.c b/src/libide/io/ide-recursive-file-monitor.c
index eddb04ca9..67c296159 100644
--- a/src/libide/io/ide-recursive-file-monitor.c
+++ b/src/libide/io/ide-recursive-file-monitor.c
@@ -38,8 +38,6 @@
  * This is only designed for use on Linux, where we are using a single inotify
  * FD. You can still hit the max watch limit, but it is much higher than the FD
  * limit.
- *
- * Since: 3.28
  */
 
 struct _IdeRecursiveFileMonitor
@@ -555,8 +553,6 @@ ide_recursive_file_monitor_class_init (IdeRecursiveFileMonitorClass *klass)
    *
    * This event is similar to #GFileMonitor::changed but can be fired from
    * any of the monitored directories in the recursive mount.
-   *
-   * Since: 3.28
    */
   signals [CHANGED] =
     g_signal_new ("changed",
@@ -592,8 +588,6 @@ ide_recursive_file_monitor_new (GFile *file)
  * @self: a #IdeRecursiveFileMonitor
  *
  * Cancels the recursive file monitor.
- *
- * Since: 3.28
  */
 void
 ide_recursive_file_monitor_cancel (IdeRecursiveFileMonitor *self)
@@ -610,8 +604,6 @@ ide_recursive_file_monitor_cancel (IdeRecursiveFileMonitor *self)
  * Gets the root directory used forthe file monitor.
  *
  * Returns: (transfer none): a #GFile
- *
- * Since: 3.28
  */
 GFile *
 ide_recursive_file_monitor_get_root (IdeRecursiveFileMonitor *self)
@@ -635,8 +627,6 @@ ide_recursive_file_monitor_get_root (IdeRecursiveFileMonitor *self)
  *
  * If @ignore_func is %NULL, it is set to the default which does not
  * ignore any files or directories.
- *
- * Since: 3.28
  */
 void
 ide_recursive_file_monitor_set_ignore_func (IdeRecursiveFileMonitor *self,
diff --git a/src/libide/lsp/ide-lsp-client.c b/src/libide/lsp/ide-lsp-client.c
index 68677e988..4eb1df4dc 100644
--- a/src/libide/lsp/ide-lsp-client.c
+++ b/src/libide/lsp/ide-lsp-client.c
@@ -1282,8 +1282,6 @@ ide_lsp_client_class_init (IdeLspClientClass *klass)
    *
    * Returns: (transfer full): a #GVariant containing the result or %NULL
    *   to proceed to the next signal handler.
-   *
-   * Since: 3.36
    */
   signals [LOAD_CONFIGURATION] =
     g_signal_new ("load-configuration",
@@ -1861,8 +1859,6 @@ ide_lsp_client_queue_message (IdeLspClient *self,
  * Asynchronously queries the Language Server using the JSON-RPC protocol.
  *
  * If @params is floating, it's floating reference is consumed.
- *
- * Since: 3.26
  */
 void
 ide_lsp_client_call_async (IdeLspClient        *self,
@@ -1969,8 +1965,6 @@ ide_lsp_client_send_notification_cb (GObject      *object,
  * Asynchronously sends a notification to the Language Server.
  *
  * If @params is floating, it's reference is consumed.
- *
- * Since: 3.26
  */
 void
 ide_lsp_client_send_notification_async (IdeLspClient        *self,
@@ -2166,8 +2160,6 @@ ide_lsp_client_set_root_uri (IdeLspClient *self,
  *
  * Returns: (transfer none) (nullable): a #GVariant that is a
  *   %G_VARIANT_TYPE_VARDICT or %NULL.
- *
- * Since: 3.36
  */
 GVariant *
 ide_lsp_client_get_server_capabilities (IdeLspClient *self)
@@ -2190,8 +2182,6 @@ ide_lsp_client_get_server_capabilities (IdeLspClient *self)
  * if @options is floating, the floating reference will be taken
  * when calling this function otherwise the reference count of
  * @options will be incremented by one.
- *
- * Since: 42.0
  */
 void
 ide_lsp_client_set_initialization_options (IdeLspClient *self,
diff --git a/src/libide/lsp/ide-lsp-diagnostic.c b/src/libide/lsp/ide-lsp-diagnostic.c
index 0b2ef79df..fe0be9d78 100644
--- a/src/libide/lsp/ide-lsp-diagnostic.c
+++ b/src/libide/lsp/ide-lsp-diagnostic.c
@@ -138,8 +138,6 @@ ide_lsp_diagnostic_init (IdeLspDiagnostic *self)
  * returns it.
  *
  * Returns: (transfer full): a #GVariant with it's reference count incremented
- *
- * Since: 42.0
  */
 GVariant *
 ide_lsp_diagnostic_dup_raw (IdeLspDiagnostic *self)
diff --git a/src/libide/lsp/ide-lsp-service.c b/src/libide/lsp/ide-lsp-service.c
index 5153cddf3..993c274ed 100644
--- a/src/libide/lsp/ide-lsp-service.c
+++ b/src/libide/lsp/ide-lsp-service.c
@@ -28,8 +28,6 @@
  * SECTION:ide-lsp-service
  * @title: IdeLspService
  * @short_description: Service integration for LSPs
- *
- * Since: 42.0
  */
 
 typedef struct
diff --git a/src/libide/lsp/ide-lsp-util.c b/src/libide/lsp/ide-lsp-util.c
index 4fdb55e7d..1e3425587 100644
--- a/src/libide/lsp/ide-lsp-util.c
+++ b/src/libide/lsp/ide-lsp-util.c
@@ -104,8 +104,6 @@ ide_lsp_decode_completion_kind (guint kind)
  * Attempt to parse an encoded LSP text edit into an #IdeTextEdit.
  *
  * Returns: (transfer full) (nullable): an #IdeTextEdit
- *
- * Since: 41
  * See_also: 
https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textEdit
  */
 IdeTextEdit *
diff --git a/src/libide/plugins/ide-extension-adapter.c b/src/libide/plugins/ide-extension-adapter.c
index 16abf8aa6..5bb59ce13 100644
--- a/src/libide/plugins/ide-extension-adapter.c
+++ b/src/libide/plugins/ide-extension-adapter.c
@@ -543,8 +543,6 @@ ide_extension_adapter_get_interface_type (IdeExtensionAdapter *self)
  * Gets the #IdeExtensionAdapter:engine property.
  *
  * Returns: (transfer none): a #PeasEngine.
- *
- * Since: 3.32
  */
 PeasEngine *
 ide_extension_adapter_get_engine (IdeExtensionAdapter *self)
@@ -561,8 +559,6 @@ ide_extension_adapter_get_engine (IdeExtensionAdapter *self)
  * Gets the extension object managed by the adapter.
  *
  * Returns: (transfer none) (type GObject.Object): a #GObject or %NULL.
- *
- * Since: 3.32
  */
 gpointer
 ide_extension_adapter_get_extension (IdeExtensionAdapter *self)
@@ -597,8 +593,6 @@ ide_extension_adapter_get_extension (IdeExtensionAdapter *self)
  * be used.
  *
  * Returns: (transfer full): A newly created #IdeExtensionAdapter.
- *
- * Since: 3.32
  */
 IdeExtensionAdapter *
 ide_extension_adapter_new (IdeObject   *parent,
diff --git a/src/libide/plugins/ide-extension-set-adapter.c b/src/libide/plugins/ide-extension-set-adapter.c
index d676301d4..ad9fe72be 100644
--- a/src/libide/plugins/ide-extension-set-adapter.c
+++ b/src/libide/plugins/ide-extension-set-adapter.c
@@ -552,8 +552,6 @@ ide_extension_set_adapter_init (IdeExtensionSetAdapter *self)
  * Gets the #IdeExtensionSetAdapter:engine property.
  *
  * Returns: (transfer none): a #PeasEngine.
- *
- * Since: 3.32
  */
 PeasEngine *
 ide_extension_set_adapter_get_engine (IdeExtensionSetAdapter *self)
@@ -631,8 +629,6 @@ ide_extension_set_adapter_set_value (IdeExtensionSetAdapter *self,
  * @user_data: user data for @foreach_func
  *
  * Calls @foreach_func for every extension loaded by the extension set.
- *
- * Since: 3.32
  */
 void
 ide_extension_set_adapter_foreach (IdeExtensionSetAdapter            *self,
@@ -692,8 +688,6 @@ sort_by_priority (gconstpointer a,
  * @user_data: user data for @foreach_func
  *
  * Calls @foreach_func for every extension loaded by the extension set.
- *
- * Since: 3.32
  */
 void
 ide_extension_set_adapter_foreach_by_priority (IdeExtensionSetAdapter            *self,
@@ -798,8 +792,6 @@ ide_extension_set_adapter_new (IdeObject   *parent,
  * Locates the extension owned by @plugin_info if such extension exists.
  *
  * Returns: (transfer none) (nullable): a #PeasExtension or %NULL
- *
- * Since: 3.32
  */
 PeasExtension *
 ide_extension_set_adapter_get_extension (IdeExtensionSetAdapter *self,
diff --git a/src/libide/plugins/ide-extension-util.c b/src/libide/plugins/ide-extension-util.c
index d198f7e70..19680a74f 100644
--- a/src/libide/plugins/ide-extension-util.c
+++ b/src/libide/plugins/ide-extension-util.c
@@ -249,8 +249,6 @@ G_GNUC_END_IGNORE_DEPRECATIONS
  * but looking at base-classes in addition to interface properties.
  *
  * Returns: (transfer full): a #PeasExtensionSet.
- *
- * Since: 3.32
  */
 PeasExtensionSet *
 ide_extension_set_new (PeasEngine     *engine,
diff --git a/src/libide/projects/ide-doap.c b/src/libide/projects/ide-doap.c
index a15a4a276..63afc8b8a 100644
--- a/src/libide/projects/ide-doap.c
+++ b/src/libide/projects/ide-doap.c
@@ -129,8 +129,6 @@ ide_doap_get_category (IdeDoap *self)
  * ide_doap_get_languages:
  *
  * Returns: (transfer none): a #GStrv.
- *
- * Since: 3.32
  */
 gchar **
 ide_doap_get_languages (IdeDoap *self)
@@ -247,8 +245,6 @@ ide_doap_set_shortdesc (IdeDoap     *self,
  *
  *
  * Returns: (transfer none) (element-type IdeDoapPerson): a #GList of #IdeDoapPerson.
- *
- * Since: 3.32
  */
 GList *
 ide_doap_get_maintainers (IdeDoap *self)
diff --git a/src/libide/projects/ide-project-file.c b/src/libide/projects/ide-project-file.c
index 627ec0b1b..7488e0308 100644
--- a/src/libide/projects/ide-project-file.c
+++ b/src/libide/projects/ide-project-file.c
@@ -178,8 +178,6 @@ ide_project_file_init (IdeProjectFile *self)
  * Gets the project file.
  *
  * Returns: (transfer none): an #IdeProjectFile
- *
- * Since: 3.32
  */
 GFile *
 ide_project_file_get_directory (IdeProjectFile *self)
@@ -198,8 +196,6 @@ ide_project_file_get_directory (IdeProjectFile *self)
  * Gets the file for the #IdeProjectFile.
  *
  * Returns: (transfer full): a #GFile
- *
- * Since: 3.32
  */
 GFile *
 ide_project_file_ref_file (IdeProjectFile *self)
@@ -220,8 +216,6 @@ ide_project_file_ref_file (IdeProjectFile *self)
  * file, such as via #IdeProjectFile:file.
  *
  * Returns: (transfer none): a #GFileInfo
- *
- * Since: 3.32
  */
 GFileInfo *
 ide_project_file_get_info (IdeProjectFile *self)
@@ -240,8 +234,6 @@ ide_project_file_get_info (IdeProjectFile *self)
  * Gets the name for the file, which matches the encoding on disk.
  *
  * Returns: a string containing the name
- *
- * Since: 3.32
  */
 const gchar *
 ide_project_file_get_name (IdeProjectFile *self)
@@ -260,8 +252,6 @@ ide_project_file_get_name (IdeProjectFile *self)
  * Gets the display-name for the file, which should be shown to users.
  *
  * Returns: a string containing the display name
- *
- * Since: 3.32
  */
 const gchar *
 ide_project_file_get_display_name (IdeProjectFile *self)
@@ -281,8 +271,6 @@ ide_project_file_get_display_name (IdeProjectFile *self)
  * %TRUE, this may still return %TRUE.
  *
  * Returns: %TRUE if @self is a directory, or symlink to a directory
- *
- * Since: 3.32
  */
 gboolean
 ide_project_file_is_directory (IdeProjectFile *self)
@@ -302,8 +290,6 @@ ide_project_file_is_directory (IdeProjectFile *self)
  * Checks if @self represents a symlink.
  *
  * Returns: %TRUE if @self is a symlink
- *
- * Since: 3.32
  */
 gboolean
 ide_project_file_is_symlink (IdeProjectFile *self)
@@ -364,8 +350,6 @@ ide_project_file_compare_directories_first (IdeProjectFile *a,
  * Gets the symbolic icon to represent the file.
  *
  * Returns: (transfer none) (nullable): a #GIcon or %NULL
- *
- * Since: 3.32
  */
 GIcon *
 ide_project_file_get_symbolic_icon (IdeProjectFile *self)
@@ -450,8 +434,6 @@ ide_project_file_list_children_cb (GObject      *object,
  *
  * Call ide_project_file_list_children_finish() to get the result
  * of this operation.
- *
- * Since: 3.32
  */
 void
 ide_project_file_list_children_async (IdeProjectFile      *self,
@@ -490,8 +472,6 @@ ide_project_file_list_children_async (IdeProjectFile      *self,
  *
  * Returns: (transfer full) (element-type IdeProjectFile): a #GPtrArray
  *   of #IdeProjectFile
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_project_file_list_children_finish (IdeProjectFile  *self,
@@ -575,8 +555,6 @@ ide_project_file_trash_finish (IdeProjectFile  *self,
  * Creates a new child project file of @self.
  *
  * Returns: (transfer full): an #IdeProjectFile
- *
- * Since: 3.32
  */
 IdeProjectFile *
 ide_project_file_create_child (IdeProjectFile *self,
@@ -601,8 +579,6 @@ ide_project_file_create_child (IdeProjectFile *self,
  * Creates a new project file for a child of @directory.
  *
  * Returns: (transfer full): an #IdeProjectFile
- *
- * Since: 3.32
  */
 IdeProjectFile *
 ide_project_file_new (GFile     *directory,
diff --git a/src/libide/projects/ide-project-info.c b/src/libide/projects/ide-project-info.c
index a08901ce7..8472df430 100644
--- a/src/libide/projects/ide-project-info.c
+++ b/src/libide/projects/ide-project-info.c
@@ -41,8 +41,6 @@
  *
  * This class contains information about a project that can be loaded.
  * This information should be used to display a list of available projects.
- *
- * Since: 3.32
  */
 
 struct _IdeProjectInfo
@@ -98,8 +96,6 @@ static GParamSpec *properties [LAST_PROP];
  *
  *
  * Returns: (nullable) (transfer none): An #IdeDoap or %NULL.
- *
- * Since: 3.32
  */
 IdeDoap *
 ide_project_info_get_doap (IdeProjectInfo *self)
@@ -124,8 +120,6 @@ ide_project_info_set_doap (IdeProjectInfo *self,
  * ide_project_info_get_languages:
  *
  * Returns: (transfer none): An array of language names.
- *
- * Since: 3.32
  */
 const gchar * const *
 ide_project_info_get_languages (IdeProjectInfo *self)
@@ -178,8 +172,6 @@ ide_project_info_set_priority (IdeProjectInfo *self,
  * This is the directory containing the project (if known).
  *
  * Returns: (nullable) (transfer none): a #GFile.
- *
- * Since: 3.32
  */
 GFile *
 ide_project_info_get_directory (IdeProjectInfo *self)
@@ -197,8 +189,6 @@ ide_project_info_get_directory (IdeProjectInfo *self)
  * This is the project file (such as configure.ac) of the project.
  *
  * Returns: (nullable) (transfer none): a #GFile.
- *
- * Since: 3.32
  */
 GFile *
 ide_project_info_get_file (IdeProjectInfo *self)
@@ -213,8 +203,6 @@ ide_project_info_get_file (IdeProjectInfo *self)
  *
  *
  * Returns: (transfer none) (nullable): a #GDateTime or %NULL.
- *
- * Since: 3.32
  */
 GDateTime *
 ide_project_info_get_last_modified_at (IdeProjectInfo *self)
@@ -723,8 +711,6 @@ ide_project_info_compare (IdeProjectInfo *info1,
  * project when activated from the greeter.
  *
  * Returns: (transfer none) (nullable): a #IdeVcsUri or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_project_info_get_vcs_uri (IdeProjectInfo *self)
@@ -770,8 +756,6 @@ ide_project_info_new (void)
  *
  * Returns: %TRUE if @self and @other are the same project and similar
  *   enough to be considered equal.
- *
- * Since: 3.32
  */
 gboolean
 ide_project_info_equal (IdeProjectInfo *self,
@@ -860,8 +844,6 @@ ide_project_info_set_id (IdeProjectInfo *self,
  * Gets the #IdeProjectInfo:icon property.
  *
  * Returns: (transfer none) (nullable): a #GIcon or %NULL
- *
- * Since: 3.32
  */
 GIcon *
 ide_project_info_get_icon (IdeProjectInfo *self)
diff --git a/src/libide/projects/ide-project-template.c b/src/libide/projects/ide-project-template.c
index ac95b5e8c..9ceb0b7b6 100644
--- a/src/libide/projects/ide-project-template.c
+++ b/src/libide/projects/ide-project-template.c
@@ -62,8 +62,6 @@ ide_project_template_get_description (IdeProjectTemplate *self)
  * Get's the configuration widget for the template if there is one.
  *
  * Returns: (transfer none): a #GtkWidget.
- *
- * Since: 3.32
  */
 GtkWidget *
 ide_project_template_get_widget (IdeProjectTemplate *self)
@@ -82,8 +80,6 @@ ide_project_template_get_widget (IdeProjectTemplate *self)
  *
  * Returns: (transfer full): A newly allocated, NULL terminated list of
  *   supported languages.
- *
- * Since: 3.32
  */
 gchar **
 ide_project_template_get_languages (IdeProjectTemplate *self)
@@ -115,8 +111,6 @@ ide_project_template_get_icon_name (IdeProjectTemplate *self)
  * expanding files based on the contents of @params.
  *
  * It is expected that this method is only called once on an #IdeProjectTemplate.
- *
- * Since: 3.32
  */
 void
 ide_project_template_expand_async (IdeProjectTemplate  *self,
@@ -152,8 +146,6 @@ ide_project_template_expand_finish (IdeProjectTemplate  *self,
  * in the "new project" view.
  *
  * Returns: the priority of the template
- *
- * Since: 3.32
  */
 gint
 ide_project_template_get_priority (IdeProjectTemplate *self)
diff --git a/src/libide/projects/ide-project-tree-addin.c b/src/libide/projects/ide-project-tree-addin.c
index 4cc68e409..1a69ce3bc 100644
--- a/src/libide/projects/ide-project-tree-addin.c
+++ b/src/libide/projects/ide-project-tree-addin.c
@@ -55,8 +55,6 @@ ide_project_tree_addin_default_init (IdeProjectTreeAddinInterface *iface)
  * them when unloading.
  *
  * See also: ide_project_tree_addin_unload()
- *
- * Since: 3.32
  */
 void
 ide_project_tree_addin_load (IdeProjectTreeAddin *self,
@@ -81,8 +79,6 @@ ide_project_tree_addin_load (IdeProjectTreeAddin *self,
  * should be undone here.
  *
  * See also: ide_project_tree_addin_load()
- *
- * Since: 3.32
  */
 void
 ide_project_tree_addin_unload (IdeProjectTreeAddin *self,
diff --git a/src/libide/projects/ide-project.c b/src/libide/projects/ide-project.c
index 54f720619..3104b1253 100644
--- a/src/libide/projects/ide-project.c
+++ b/src/libide/projects/ide-project.c
@@ -100,8 +100,6 @@ ide_project_init (IdeProject *self)
  * Gets the project for an #IdeContext.
  *
  * Returns: (transfer none): an #IdeProject
- *
- * Since: 3.32
  */
 IdeProject *
 ide_project_from_context (IdeContext *context)
diff --git a/src/libide/projects/ide-projects-global.c b/src/libide/projects/ide-projects-global.c
index d762d072c..b6e5141a2 100644
--- a/src/libide/projects/ide-projects-global.c
+++ b/src/libide/projects/ide-projects-global.c
@@ -58,8 +58,6 @@ on_projects_directory_changed_cb (GSettings   *settings,
  * If the GSetting was empty, the translated name "Projects" is returned.
  *
  * Returns: (not nullable) (transfer full): a #GFile
- *
- * Since: 3.32
  */
 const gchar *
 ide_get_projects_dir (void)
@@ -120,8 +118,6 @@ completed:
  * name should be used.
  *
  * Returns: (transfer full): a new string
- *
- * Since: 3.32
  */
 gchar *
 ide_create_project_id (const gchar *name)
diff --git a/src/libide/projects/ide-recent-projects.c b/src/libide/projects/ide-recent-projects.c
index a09e2851a..231e162b5 100644
--- a/src/libide/projects/ide-recent-projects.c
+++ b/src/libide/projects/ide-recent-projects.c
@@ -63,8 +63,6 @@ ide_recent_projects_new (void)
  * request to get the default #IdeRecentProjects instance.
  *
  * Returns: (transfer none): an #IdeRecentProjects
- *
- * Since: 3.32
  */
 IdeRecentProjects *
 ide_recent_projects_get_default (void)
@@ -333,8 +331,6 @@ ide_recent_projects_init (IdeRecentProjects *self)
  *   of #IdeProjectInfo.
  *
  * Removes the provided projects from the recent projects file.
- *
- * Since: 3.32
  */
 void
 ide_recent_projects_remove (IdeRecentProjects *self,
diff --git a/src/libide/projects/ide-template-base.c b/src/libide/projects/ide-template-base.c
index 81879f3da..96bd4141a 100644
--- a/src/libide/projects/ide-template-base.c
+++ b/src/libide/projects/ide-template-base.c
@@ -134,8 +134,6 @@ ide_template_base_mkdirs_finish (IdeTemplateBase  *self,
  * Fetches the #TmplTemplateLocator used for resolving templates.
  *
  * Returns: (transfer none) (nullable): a #TmplTemplateLocator or %NULL.
- *
- * Since: 3.32
  */
 TmplTemplateLocator *
 ide_template_base_get_locator (IdeTemplateBase *self)
@@ -246,8 +244,6 @@ ide_template_base_class_init (IdeTemplateBaseClass *klass)
    * that should be used to resolve template includes. If %NULL, templates
    * will not be allowed to include other templates.
    * directive.
-   *
-   * Since: 3.32
    */
   properties [PROP_LOCATOR] =
     g_param_spec_object ("locator",
diff --git a/src/libide/projects/ide-template-provider.c b/src/libide/projects/ide-template-provider.c
index 58014d433..1ed8132f5 100644
--- a/src/libide/projects/ide-template-provider.c
+++ b/src/libide/projects/ide-template-provider.c
@@ -49,8 +49,6 @@ ide_template_provider_default_init (IdeTemplateProviderInterface *iface)
  *
  * Returns: (transfer full) (element-type Ide.ProjectTemplate): a #GList of
  *   #IdeProjectTemplate instances.
- *
- * Since: 3.32
  */
 GList *
 ide_template_provider_get_project_templates (IdeTemplateProvider *self)
diff --git a/src/libide/search/ide-search-engine.c b/src/libide/search/ide-search-engine.c
index 78be11f35..bd420eaec 100644
--- a/src/libide/search/ide-search-engine.c
+++ b/src/libide/search/ide-search-engine.c
@@ -216,8 +216,6 @@ ide_search_engine_new (void)
  * Checks if the #IdeSearchEngine is currently executing a query.
  *
  * Returns: %TRUE if queries are being processed.
- *
- * Since: 3.32
  */
 gboolean
 ide_search_engine_get_busy (IdeSearchEngine *self)
@@ -391,8 +389,6 @@ ide_search_engine_search_async (IdeSearchEngine     *self,
  * The result is a #GListModel of #IdeSearchResult when successful.
  *
  * Returns: (transfer full): a #GListModel of #IdeSearchResult items.
- *
- * Since: 3.32
  */
 GListModel *
 ide_search_engine_search_finish (IdeSearchEngine  *self,
@@ -412,8 +408,6 @@ ide_search_engine_search_finish (IdeSearchEngine  *self,
  *
  * Adds a custom search provider to the #IdeSearchEngine. This enables
  * to bring in custom #IdeSearchProvider during the runtime.
- *
- * Since: 3.38
  */
 void
 ide_search_engine_add_provider (IdeSearchEngine   *self,
@@ -432,8 +426,6 @@ ide_search_engine_add_provider (IdeSearchEngine   *self,
  *
  * Remove a custom search provider from the #IdeSearchEngine. This removes
  * custom #IdeSearchProvider during the runtime.
- *
- * Since: 3.38
  */
 void
 ide_search_engine_remove_provider (IdeSearchEngine   *self,
diff --git a/src/libide/search/ide-search-provider.c b/src/libide/search/ide-search-provider.c
index 4934abe1f..a24317bf5 100644
--- a/src/libide/search/ide-search-provider.c
+++ b/src/libide/search/ide-search-provider.c
@@ -108,8 +108,6 @@ ide_search_provider_search_async (IdeSearchProvider   *self,
  *
  * Returns: (transfer full) (element-type IdeSearchResult): a #GPtrArray
  *    of #IdeSearchResult elements.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_search_provider_search_finish (IdeSearchProvider  *self,
diff --git a/src/libide/search/ide-search-reducer.c b/src/libide/search/ide-search-reducer.c
index 2ea4642e2..b21269d6c 100644
--- a/src/libide/search/ide-search-reducer.c
+++ b/src/libide/search/ide-search-reducer.c
@@ -32,8 +32,6 @@
  *
  * This is a helper structure for search engines to reduce the number
  * of items they inflate when performing a search.
- *
- * Since: 3.32
  */
 
 #define DEFAULT_MAX_ITEMS 1000
@@ -46,8 +44,6 @@
  * Initializes a new #IdeSearchReducer to be used to reduce the number of
  * search results that are created. This is generally just used to help
  * keep search performance good.
- *
- * Since: 3.32
  */
 void
 ide_search_reducer_init (IdeSearchReducer  *reducer,
@@ -65,8 +61,6 @@ ide_search_reducer_init (IdeSearchReducer  *reducer,
  * @reducer: a #IdeSearchReducer
  *
  * Frees the results.
- *
- * Since: 3.32
  */
 void
 ide_search_reducer_destroy (IdeSearchReducer *reducer)
@@ -88,8 +82,6 @@ ide_search_reducer_destroy (IdeSearchReducer *reducer)
  * Returns: (nullable) (transfer container) (element-type IdeSearchResult):
  *   An array of #IdeSearchResult unless @free_results is %TRUE, then
  *   %NULL is returned.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_search_reducer_free (IdeSearchReducer *reducer,
@@ -135,8 +127,6 @@ ide_search_reducer_free (IdeSearchReducer *reducer,
  *
  * Like ide_search_reducer_push() but takes ownership of @result by
  * stealing the reference.
- *
- * Since: 3.32
  */
 void
 ide_search_reducer_take (IdeSearchReducer *reducer,
@@ -163,8 +153,6 @@ ide_search_reducer_take (IdeSearchReducer *reducer,
  * @result: an #IdeSearchResult
  *
  * Adds result to the set unless it scores too low.
- *
- * Since: 3.32
  */
 void
 ide_search_reducer_push (IdeSearchReducer *reducer,
@@ -186,8 +174,6 @@ ide_search_reducer_push (IdeSearchReducer *reducer,
  * where you want to avoid inflating an #IdeSearchResult unless necessary.
  *
  * Returns: %TRUE if there is space for a result with a score of @score.
- *
- * Since: 3.32
  */
 gboolean
 ide_search_reducer_accepts (IdeSearchReducer *reducer,
diff --git a/src/libide/sourceview/archive/ide-source-view.c b/src/libide/sourceview/archive/ide-source-view.c
index 38eea8d4f..0e3d506c1 100644
--- a/src/libide/sourceview/archive/ide-source-view.c
+++ b/src/libide/sourceview/archive/ide-source-view.c
@@ -5878,8 +5878,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    *
    * This also requires that IdeBuffer:highlight-diagnostics is set to %TRUE
    * to generate diagnostics.
-   *
-   * Since: 3.32
    */
   properties [PROP_SHOW_LINE_DIAGNOSTICS] =
     g_param_spec_boolean ("show-line-diagnostics",
@@ -5940,8 +5938,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    * to replay the sequence starting from the correct state.
    *
    * Pair this with an emission of #IdeSourceView::end-macro to complete the sequence.
-   *
-   * Since: 3.32
    */
   signals [BEGIN_MACRO] =
     g_signal_new ("begin-macro",
@@ -5959,8 +5955,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    * operation using the #IdeRenameProvider from the underlying buffer. The
    * cursor position will be used as the location when sending the request to
    * the provider.
-   *
-   * Since: 3.32
    */
   signals [BEGIN_RENAME] =
     g_signal_new ("begin-rename",
@@ -6008,8 +6002,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    * Pressing Escape or unfocusing the widget will break from this loop.
    *
    * Use of this signal is not recommended except in very specific cases.
-   *
-   * Since: 3.32
    */
   signals [CAPTURE_MODIFIER] =
     g_signal_new ("capture-modifier",
@@ -6128,8 +6120,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    * Complete a macro recording sequence. This may be called more times than is necessary,
    * since #IdeSourceView will only keep the most recent macro recording. This can be
    * helpful when implementing recording sequences such as in Vim.
-   *
-   * Since: 3.32
    */
   signals [END_MACRO] =
     g_signal_new ("end-macro",
@@ -6225,8 +6215,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    * Inserts the current modifier character at the insert mark in the buffer.
    * If @use_count is %TRUE, then the character will be inserted
    * #IdeSourceView:count times.
-   *
-   * Since: 3.32
    */
   signals [INSERT_MODIFIER] =
     g_signal_new ("insert-modifier",
@@ -6272,8 +6260,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    * @dir: The direction to move.
    *
    * Moves to the next search result either forwards or backwards.
-   *
-   * Since: 3.32
    */
   signals [MOVE_ERROR] =
     g_signal_new ("move-error",
@@ -6317,8 +6303,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    *
    * Reselects a previousl selected range of text that was saved using
    * IdeSourceView::push-selection.
-   *
-   * Since: 3.32
    */
   signals [POP_SELECTION] =
     g_signal_new ("pop-selection",
@@ -6335,8 +6319,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    * @snippet: An #IdeSnippet.
    *
    * Pops the current snippet from the sourceview if there is one.
-   *
-   * Since: 3.32
    */
   signals [POP_SNIPPET] =
     g_signal_new_class_handler ("pop-snippet",
@@ -6353,8 +6335,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    * Saves the current selection away to be restored by a call to
    * IdeSourceView::pop-selection. You must pop the selection to keep
    * the selection stack in consistent order.
-   *
-   * Since: 3.32
    */
   signals [PUSH_SELECTION] =
     g_signal_new ("push-selection",
@@ -6373,8 +6353,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    *
    * Pushes @snippet onto the snippet stack at either @iter or the insertion
    * mark if @iter is not provided.
-   *
-   * Since: 3.32
    */
   signals [PUSH_SNIPPET] =
     g_signal_new_class_handler ("push-snippet",
@@ -6420,8 +6398,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    *
    * Replays the last series of captured events that were captured between calls
    * to #IdeSourceView::begin-macro and #IdeSourceView::end-macro.
-   *
-   * Since: 3.32
    */
   signals [REPLAY_MACRO] =
     g_signal_new ("replay-macro",
@@ -6448,8 +6424,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    * This is a helper signal that will try to reset keyboard input
    * and various stateful settings of the sourceview. This is a good
    * signal to map to the "Escape" key.
-   *
-   * Since: 3.32
    */
   signals [RESET] =
     g_signal_new_class_handler ("reset",
@@ -6562,8 +6536,6 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
    *
    * This signal is meant to be activated from keybindings to sort the currently selected lines.
    * The lines are sorted using qsort() and either strcmp() or strcasecmp().
-   *
-   * Since: 3.32
    */
   signals [SORT] =
     g_signal_new ("sort",
@@ -6803,8 +6775,6 @@ ide_source_view_get_font_desc (IdeSourceView *self)
  * account. You must free the result with pango_font_description_free().
  *
  * Returns: (transfer full): a #PangoFontDescription
- *
- * Since: 3.32
  */
 PangoFontDescription *
 ide_source_view_get_scaled_font_desc (IdeSourceView *self)
@@ -7042,8 +7012,6 @@ ide_source_view_set_overwrite_braces (IdeSourceView *self,
  * Gets the #IdeSourceView:scroll-offset property. This property contains the number of lines
  * that should be kept above or below the line containing the insertion cursor relative to the
  * top and bottom of the visible text window.
- *
- * Since: 3.32
  */
 guint
 ide_source_view_get_scroll_offset (IdeSourceView *self)
@@ -7060,8 +7028,6 @@ ide_source_view_get_scroll_offset (IdeSourceView *self)
  *
  * Sets the #IdeSourceView:scroll-offset property. See ide_source_view_get_scroll_offset() for
  * more information. Set to 0 to unset this property.
- *
- * Since: 3.32
  */
 void
 ide_source_view_set_scroll_offset (IdeSourceView *self,
@@ -7087,8 +7053,6 @@ ide_source_view_set_scroll_offset (IdeSourceView *self,
  * is similar to gtk_text_view_get_visible_area() except that it takes into account the
  * #IdeSourceView:scroll-offset property to ensure there is space above and below the
  * visible_rect.
- *
- * Since: 3.32
  */
 void
 ide_source_view_get_visible_rect (IdeSourceView *self,
@@ -7550,8 +7514,6 @@ ide_source_view_place_cursor_onscreen (IdeSourceView *self)
  * such as spaces vs tabs.
  *
  * Returns: (transfer none) (nullable): An #IdeFileSettings or %NULL.
- *
- * Since: 3.32
  */
 IdeFileSettings *
 ide_source_view_get_file_settings (IdeSourceView *self)
@@ -7703,8 +7665,6 @@ ide_source_view_set_show_relative_line_numbers (IdeSourceView *self,
  * Generally, this will always be #IdeOmniGutterRenderer. However, to avoid
  * circular dependencies, an interface is used to allow plugins to set
  * this object.
- *
- * Since: 3.32
  */
 void
 ide_source_view_set_gutter (IdeSourceView *self,
diff --git a/src/libide/terminal/ide-terminal-launcher.c b/src/libide/terminal/ide-terminal-launcher.c
index 0dedcb658..cc98d82f3 100644
--- a/src/libide/terminal/ide-terminal-launcher.c
+++ b/src/libide/terminal/ide-terminal-launcher.c
@@ -553,8 +553,6 @@ ide_terminal_launcher_spawn_async (IdeTerminalLauncher *self,
  *
  * Returns: %TRUE if the process executed successfully; otherwise %FALSE
  *   and @error is set.
- *
- * Since: 3.34
  */
 gboolean
 ide_terminal_launcher_spawn_finish (IdeTerminalLauncher  *self,
@@ -792,8 +790,6 @@ ide_terminal_launcher_new (IdeContext *context)
  * using the provided #IdeSubprocessLauncher.
  *
  * Returns: (transfer full): an #IdeTerminalLauncher
- *
- * Since: 3.34
  */
 IdeTerminalLauncher *
 ide_terminal_launcher_new_for_launcher (IdeSubprocessLauncher *launcher)
diff --git a/src/libide/terminal/ide-terminal-popover.c b/src/libide/terminal/ide-terminal-popover.c
index 2929c316e..db5366c8a 100644
--- a/src/libide/terminal/ide-terminal-popover.c
+++ b/src/libide/terminal/ide-terminal-popover.c
@@ -208,8 +208,6 @@ ide_terminal_popover_new (void)
  * @self: a #IdeTerminalPopover
  *
  * Returns: (transfer none): an #IdeRuntime or %NULL
- *
- * Since: 3.32
  */
 IdeRuntime *
 ide_terminal_popover_get_runtime (IdeTerminalPopover *self)
diff --git a/src/libide/terminal/ide-terminal-search.c b/src/libide/terminal/ide-terminal-search.c
index 3df04d6a7..2d96fa62e 100644
--- a/src/libide/terminal/ide-terminal-search.c
+++ b/src/libide/terminal/ide-terminal-search.c
@@ -381,8 +381,6 @@ ide_terminal_search_init (IdeTerminalSearch *self)
 /**
  * ide_terminal_search_set_terminal:
  * @self: a #IdeTerminalSearch
- *
- * Since: 3.32
  */
 void
 ide_terminal_search_set_terminal (IdeTerminalSearch *self,
@@ -399,8 +397,6 @@ ide_terminal_search_set_terminal (IdeTerminalSearch *self,
  * @self: a #IdeTerminalSearch
  *
  * Returns: (transfer none) (nullable): a #VteRegex or %NULL.
- *
- * Since: 3.32
  */
 VteRegex *
 ide_terminal_search_get_regex (IdeTerminalSearch *self)
@@ -415,7 +411,6 @@ ide_terminal_search_get_regex (IdeTerminalSearch *self)
  * @self: a #IdeTerminalSearch
  *
  *
- * Since: 3.32
  */
 gboolean
 ide_terminal_search_get_wrap_around (IdeTerminalSearch *self)
@@ -432,8 +427,6 @@ ide_terminal_search_get_wrap_around (IdeTerminalSearch *self)
  * Gets the revealer widget used for the terminal search.
  *
  * Returns: (transfer none): a #GtkRevealer
- *
- * Since: 3.32
  */
 GtkRevealer *
 ide_terminal_search_get_revealer (IdeTerminalSearch *self)
diff --git a/src/libide/threading/ide-cancellable.c b/src/libide/threading/ide-cancellable.c
index d58a9eac8..71ecb9548 100644
--- a/src/libide/threading/ide-cancellable.c
+++ b/src/libide/threading/ide-cancellable.c
@@ -145,8 +145,6 @@ ide_cancellable_weak_cb (gpointer  data,
  * ]|
  *
  * Returns: (transfer none) (nullable): a #GCancellable or %NULL
- *
- * Since: 3.28
  */
 GCancellable *
 ide_cancellable_chain (GCancellable *self,
diff --git a/src/libide/threading/ide-environment.c b/src/libide/threading/ide-environment.c
index 79cd2eeb7..e750fe5f2 100644
--- a/src/libide/threading/ide-environment.c
+++ b/src/libide/threading/ide-environment.c
@@ -216,8 +216,6 @@ ide_environment_getenv (IdeEnvironment *self,
  * in various GLib process functions.
  *
  * Returns: (transfer full): A newly allocated string array.
- *
- * Since: 3.32
  */
 gchar **
 ide_environment_get_environ (IdeEnvironment *self)
@@ -331,8 +329,6 @@ ide_environment_append (IdeEnvironment         *self,
  * Copies the contents of #IdeEnvironment into a newly allocated #IdeEnvironment.
  *
  * Returns: (transfer full): An #IdeEnvironment.
- *
- * Since: 3.32
  */
 IdeEnvironment *
 ide_environment_copy (IdeEnvironment *self)
@@ -375,8 +371,6 @@ ide_environment_copy_into (IdeEnvironment *self,
  * Parses a KEY=VALUE style key-pair into @key and @value.
  *
  * Returns: %TRUE if @pair was successfully parsed
- *
- * Since: 3.32
  */
 gboolean
 ide_environ_parse (const gchar  *pair,
diff --git a/src/libide/threading/ide-gtask.c b/src/libide/threading/ide-gtask.c
index 4373ab0fa..d6efd4e5a 100644
--- a/src/libide/threading/ide-gtask.c
+++ b/src/libide/threading/ide-gtask.c
@@ -100,8 +100,6 @@ task_state_attach (TaskState *state)
  * This is just like g_task_return_boolean() except that it enforces
  * that the current stack return to the main context before dispatching
  * the callback.
- *
- * Since: 3.32
  */
 void
 ide_g_task_return_boolean_from_main (GTask    *task,
@@ -160,8 +158,6 @@ ide_g_task_return_pointer_from_main (GTask          *task,
  *
  * Like g_task_return_error() but ensures we return to the main loop before
  * dispatching the result.
- *
- * Since: 3.32
  */
 void
 ide_g_task_return_error_from_main (GTask  *task,
diff --git a/src/libide/threading/ide-simple-subprocess.c b/src/libide/threading/ide-simple-subprocess.c
index 842811dea..b8b04cbb2 100644
--- a/src/libide/threading/ide-simple-subprocess.c
+++ b/src/libide/threading/ide-simple-subprocess.c
@@ -418,8 +418,6 @@ subprocess_iface_init (IdeSubprocessInterface *iface)
  * Creates a new #IdeSimpleSubprocess wrapping the #GSubprocess.
  *
  * Returns: (transfer full): A new #IdeSubprocess
- *
- * Since: 3.32
  */
 IdeSubprocess *
 ide_simple_subprocess_new (GSubprocess *subprocess)
diff --git a/src/libide/threading/ide-subprocess-launcher.c b/src/libide/threading/ide-subprocess-launcher.c
index e8e25aa45..f73329e40 100644
--- a/src/libide/threading/ide-subprocess-launcher.c
+++ b/src/libide/threading/ide-subprocess-launcher.c
@@ -666,8 +666,6 @@ ide_subprocess_launcher_get_environ (IdeSubprocessLauncher *self)
  * of environment variables to set
  *
  * Replace the environment variables by a new list of variables.
- *
- * Since: 3.32
  */
 void
 ide_subprocess_launcher_set_environ (IdeSubprocessLauncher *self,
@@ -732,8 +730,6 @@ ide_subprocess_launcher_push_argv (IdeSubprocessLauncher *self,
  * Synchronously spawn a process using the internal state.
  *
  * Returns: (transfer full): an #IdeSubprocess or %NULL upon error.
- *
- * Since: 3.32
  */
 IdeSubprocess *
 ide_subprocess_launcher_spawn (IdeSubprocessLauncher  *self,
@@ -811,8 +807,6 @@ ide_subprocess_launcher_overlay_environment (IdeSubprocessLauncher *self,
  * for each element of @args.
  *
  * If @args is %NULL, this function does nothing.
- *
- * Since: 3.32
  */
 void
 ide_subprocess_launcher_push_args (IdeSubprocessLauncher *self,
@@ -858,8 +852,6 @@ ide_subprocess_launcher_pop_argv (IdeSubprocessLauncher *self)
  * zone and requires the application was built with --allow=devel.
  *
  * Returns: %TRUE if the process should be executed outside the containment zone.
- *
- * Since: 3.32
  */
 gboolean
 ide_subprocess_launcher_get_run_on_host (IdeSubprocessLauncher *self)
@@ -876,8 +868,6 @@ ide_subprocess_launcher_get_run_on_host (IdeSubprocessLauncher *self)
  *
  * Sets the #IdeSubprocessLauncher:run-on-host property. See
  * ide_subprocess_launcher_get_run_on_host() for more information.
- *
- * Since: 3.32
  */
 void
 ide_subprocess_launcher_set_run_on_host (IdeSubprocessLauncher *self,
@@ -1171,8 +1161,6 @@ ide_subprocess_launcher_get_needs_tty (IdeSubprocessLauncher *self)
  * This will always return a value >= 2 (to indicate stdin/stdout/stderr).
  *
  * Returns: an integer for the max-fd
- *
- * Since: 3.34
  */
 gint
 ide_subprocess_launcher_get_max_fd (IdeSubprocessLauncher *self)
diff --git a/src/libide/threading/ide-subprocess-supervisor.c 
b/src/libide/threading/ide-subprocess-supervisor.c
index 30baf6a93..e664db653 100644
--- a/src/libide/threading/ide-subprocess-supervisor.c
+++ b/src/libide/threading/ide-subprocess-supervisor.c
@@ -190,8 +190,6 @@ ide_subprocess_supervisor_new (void)
  * ide_subprocess_supervisor_get_launcher:
  *
  * Returns: (nullable) (transfer none): An #IdeSubprocessLauncher or %NULL.
- *
- * Since: 3.32
  */
 IdeSubprocessLauncher *
 ide_subprocess_supervisor_get_launcher (IdeSubprocessSupervisor *self)
@@ -321,8 +319,6 @@ ide_subprocess_supervisor_stop (IdeSubprocessSupervisor *self)
  * called or if there was a failure to spawn the process.
  *
  * Returns: (nullable) (transfer none): An #IdeSubprocess or %NULL.
- *
- * Since: 3.32
  */
 IdeSubprocess *
 ide_subprocess_supervisor_get_subprocess (IdeSubprocessSupervisor *self)
diff --git a/src/libide/threading/ide-subprocess.c b/src/libide/threading/ide-subprocess.c
index 8daaa0363..37e5a80d9 100644
--- a/src/libide/threading/ide-subprocess.c
+++ b/src/libide/threading/ide-subprocess.c
@@ -51,8 +51,6 @@ ide_subprocess_get_identifier (IdeSubprocess *self)
  * ide_subprocess_get_stdout_pipe:
  *
  * Returns: (transfer none): a #GInputStream or %NULL.
- *
- * Since: 3.32
  */
 GInputStream *
 ide_subprocess_get_stdout_pipe (IdeSubprocess *self)
@@ -66,8 +64,6 @@ ide_subprocess_get_stdout_pipe (IdeSubprocess *self)
  * ide_subprocess_get_stderr_pipe:
  *
  * Returns: (transfer none): a #GInputStream or %NULL.
- *
- * Since: 3.32
  */
 GInputStream *
 ide_subprocess_get_stderr_pipe (IdeSubprocess *self)
@@ -81,8 +77,6 @@ ide_subprocess_get_stderr_pipe (IdeSubprocess *self)
  * ide_subprocess_get_stdin_pipe:
  *
  * Returns: (transfer none): a #GOutputStream or %NULL.
- *
- * Since: 3.32
  */
 GOutputStream *
 ide_subprocess_get_stdin_pipe (IdeSubprocess *self)
@@ -306,8 +300,6 @@ ide_subprocess_communicate (IdeSubprocess  *self,
  * This process acts identical to g_subprocess_communicate_utf8().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_subprocess_communicate_utf8 (IdeSubprocess  *self,
@@ -339,8 +331,6 @@ ide_subprocess_communicate_utf8 (IdeSubprocess  *self,
  *
  * Ensure you've set the proper flags to ensure that you can write to stdin
  * or read from stderr/stdout as necessary.
- *
- * Since: 3.32
  */
 void
 ide_subprocess_communicate_async (IdeSubprocess       *self,
@@ -366,8 +356,6 @@ ide_subprocess_communicate_async (IdeSubprocess       *self,
  * Finishes a request to ide_subprocess_communicate_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_subprocess_communicate_finish (IdeSubprocess  *self,
@@ -387,7 +375,6 @@ ide_subprocess_communicate_finish (IdeSubprocess  *self,
  * @stdin_buf: (nullable): The data to send to stdin or %NULL
  *
  *
- * Since: 3.32
  */
 void
 ide_subprocess_communicate_utf8_async (IdeSubprocess       *self,
@@ -411,8 +398,6 @@ ide_subprocess_communicate_utf8_async (IdeSubprocess       *self,
  * @error: A location for a #GError, or %NULL
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_subprocess_communicate_utf8_finish (IdeSubprocess  *self,
diff --git a/src/libide/threading/ide-task.c b/src/libide/threading/ide-task.c
index efea9bac4..940822ab0 100644
--- a/src/libide/threading/ide-task.c
+++ b/src/libide/threading/ide-task.c
@@ -65,8 +65,6 @@
  * to copy the result to another task. Additionally, ide_task_return_object()
  * provides a simplified API over ide_task_return_pointer() which also allows
  * copying the result to chained tasks.
- *
- * Since: 3.32
  */
 
 typedef struct
@@ -711,8 +709,6 @@ ide_task_init (IdeTask *self)
  * release the object in a manner that is unsafe for the source object.
  *
  * Returns: (transfer none) (nullable) (type GObject.Object): a #GObject or %NULL
- *
- * Since: 3.32
  */
 gpointer
 ide_task_get_source_object (IdeTask *self)
@@ -743,8 +739,6 @@ ide_task_get_source_object (IdeTask *self)
  * the task itself.
  *
  * Returns: (transfer full): an #IdeTask
- *
- * Since: 3.32
  */
 IdeTask *
 (ide_task_new) (gpointer             source_object,
@@ -778,8 +772,6 @@ IdeTask *
  * Checks if @source_object matches the object the task was created with.
  *
  * Returns: %TRUE is source_object matches
- *
- * Since: 3.32
  */
 gboolean
 ide_task_is_valid (gpointer self,
@@ -799,8 +791,6 @@ ide_task_is_valid (gpointer self,
  * same #GMainContext as the callback.
  *
  * Returns: %TRUE if the task has completed
- *
- * Since: 3.32
  */
 gboolean
 ide_task_get_completed (IdeTask *self)
@@ -873,8 +863,6 @@ ide_task_set_complete_priority (IdeTask *self,
  * Gets the #GCancellable for the task.
  *
  * Returns: (transfer none) (nullable): a #GCancellable or %NULL
- *
- * Since: 3.32
  */
 GCancellable *
 ide_task_get_cancellable (IdeTask *self)
@@ -1130,8 +1118,6 @@ ide_task_return (IdeTask       *self,
  *
  * Other tasks depending on the result will be notified after returning
  * to the #GMainContext of the task.
- *
- * Since: 3.32
  */
 void
 ide_task_return_int (IdeTask *self,
@@ -1157,8 +1143,6 @@ ide_task_return_int (IdeTask *self,
  *
  * Other tasks depending on the result will be notified after returning
  * to the #GMainContext of the task.
- *
- * Since: 3.32
  */
 void
 ide_task_return_boolean (IdeTask  *self,
@@ -1184,8 +1168,6 @@ ide_task_return_boolean (IdeTask  *self,
  * This is similar to ide_task_return_pointer(), but allows the task to
  * know the boxed #GType so that the result may be propagated to chained
  * tasks.
- *
- * Since: 3.32
  */
 void
 ide_task_return_boxed (IdeTask  *self,
@@ -1215,8 +1197,6 @@ ide_task_return_boxed (IdeTask  *self,
  *
  * Takes ownership of @instance to allow saving a reference increment and
  * decrement by the caller.
- *
- * Since: 3.32
  */
 void
 ide_task_return_object (IdeTask  *self,
@@ -1249,8 +1229,6 @@ ide_task_return_object (IdeTask  *self,
  *
  * If you need task chaining with pointers, see ide_task_return_boxed()
  * or ide_task_return_object().
- *
- * Since: 3.32
  */
 void
 (ide_task_return_pointer) (IdeTask        *self,
@@ -1275,8 +1253,6 @@ void
  * @error: (transfer full): a #GError
  *
  * Sets @error as the result of the #IdeTask
- *
- * Since: 3.32
  */
 void
 ide_task_return_error (IdeTask *self,
@@ -1301,8 +1277,6 @@ ide_task_return_error (IdeTask *self,
  * @format: the printf-style format string
  *
  * Creates a new #GError and sets it as the result for the task.
- *
- * Since: 3.32
  */
 void
 ide_task_return_new_error (IdeTask     *self,
@@ -1335,8 +1309,6 @@ ide_task_return_new_error (IdeTask     *self,
  * a cancellation state.
  *
  * Returns: %TRUE if the task was cancelled and error returned.
- *
- * Since: 3.32
  */
 gboolean
 ide_task_return_error_if_cancelled (IdeTask *self)
@@ -1378,8 +1350,6 @@ ide_task_return_error_if_cancelled (IdeTask *self)
  *
  * Generally, you want to leave this as %TRUE to ensure thread-safety on the
  * dependent objects and task data.
- *
- * Since: 3.32
  */
 void
 ide_task_set_release_on_propagate (IdeTask  *self,
@@ -1401,8 +1371,6 @@ ide_task_set_release_on_propagate (IdeTask  *self,
  *
  * Sets the source tag for the task. Generally this is a function pointer
  * of the function that created the task.
- *
- * Since: 3.32
  */
 void
 ide_task_set_source_tag (IdeTask  *self,
@@ -1424,8 +1392,6 @@ ide_task_set_source_tag (IdeTask  *self,
  * #GCancellable used when creating the #IdeTask is checked for cancellation
  * before propagating a result. If cancelled, an error will be returned
  * instead of the result.
- *
- * Since: 3.32
  */
 void
 ide_task_set_check_cancellable (IdeTask  *self,
@@ -1450,8 +1416,6 @@ ide_task_set_check_cancellable (IdeTask  *self,
  * @thread_func must complete the task from the worker thread using one of
  * ide_task_return_boolean(), ide_task_return_int(), or
  * ide_task_return_pointer().
- *
- * Since: 3.32
  */
 void
 ide_task_run_in_thread (IdeTask           *self,
@@ -1631,8 +1595,6 @@ ide_task_propagate_int (IdeTask  *self,
  *
  * Returns: (transfer full) (type GObject.Object): a #GObject or %NULL
  *   and @error may be set.
- *
- * Since: 3.32
  */
 gpointer
 ide_task_propagate_object (IdeTask  *self,
@@ -1686,8 +1648,6 @@ ide_task_propagate_pointer (IdeTask  *self,
  * Users of this API must make sure one of two things is true. Either they
  * have called ide_task_set_release_on_propagate() with @self and set
  * release_on_propagate to %FALSE, or @self has not yet completed.
- *
- * Since: 3.32
  */
 void
 ide_task_chain (IdeTask *self,
@@ -1769,8 +1729,6 @@ ide_task_set_kind (IdeTask     *self,
  * Gets the task data previously set with ide_task_set_task_data().
  *
  * Returns: (transfer none): previously registered task data or %NULL
- *
- * Since: 3.32
  */
 gpointer
 ide_task_get_task_data (IdeTask *self)
@@ -1887,8 +1845,6 @@ ide_task_cancellable_cancelled_cb (GCancellable  *cancellable,
  *
  * Gets the return_on_cancel value, which means the task will return
  * immediately when the #GCancellable is cancelled.
- *
- * Since: 3.32
  */
 gboolean
 ide_task_get_return_on_cancel (IdeTask *self)
@@ -1917,8 +1873,6 @@ ide_task_get_return_on_cancel (IdeTask *self)
  * Setting this requires that the caller can ensure the configured #GMainContext
  * will outlive the threaded worker so that task state can be freed in a delayed
  * fashion.
- *
- * Since: 3.32
  */
 void
 ide_task_set_return_on_cancel (IdeTask  *self,
@@ -1999,8 +1953,6 @@ ide_task_report_new_error (gpointer              source_object,
  * Gets the name assigned for the task.
  *
  * Returns: (nullable): a string or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_task_get_name (IdeTask *self)
@@ -2031,8 +1983,6 @@ ide_task_get_name (IdeTask *self)
  *
  * If using #IdeTask from C, a default name is set using the source
  * file name and line number.
- *
- * Since: 3.32
  */
 void
 ide_task_set_name (IdeTask *self,
@@ -2058,8 +2008,6 @@ ide_task_set_name (IdeTask *self,
  * Checks to see if the task had an error.
  *
  * Returns: %TRUE if an error has occurred
- *
- * Since: 3.32
  */
 gboolean
 ide_task_had_error (IdeTask *self)
diff --git a/src/libide/threading/ide-thread-pool.c b/src/libide/threading/ide-thread-pool.c
index d21579b9d..54a380743 100644
--- a/src/libide/threading/ide-thread-pool.c
+++ b/src/libide/threading/ide-thread-pool.c
@@ -83,8 +83,6 @@ ide_thread_pool_get_pool (IdeThreadPoolKind kind)
  *
  * This pushes a task to be executed on a worker thread based on the task kind as denoted by
  * @kind. Some tasks will be placed on special work queues or throttled based on priority.
- *
- * Since: 3.32
  */
 void
 ide_thread_pool_push_task (IdeThreadPoolKind  kind,
@@ -129,8 +127,6 @@ ide_thread_pool_push_task (IdeThreadPoolKind  kind,
  * @func_data: user data for @func.
  *
  * Runs the callback on the thread pool thread.
- *
- * Since: 3.32
  */
 void
 ide_thread_pool_push (IdeThreadPoolKind kind,
@@ -148,8 +144,6 @@ ide_thread_pool_push (IdeThreadPoolKind kind,
  * @func_data: user data for @func.
  *
  * Runs the callback on the thread pool thread.
- *
- * Since: 3.32
  */
 void
 ide_thread_pool_push_with_priority (IdeThreadPoolKind kind,
diff --git a/src/libide/threading/ide-thread-pool.h b/src/libide/threading/ide-thread-pool.h
index fa90da479..119018369 100644
--- a/src/libide/threading/ide-thread-pool.h
+++ b/src/libide/threading/ide-thread-pool.h
@@ -45,7 +45,6 @@ typedef enum
  * @user_data: (closure) (transfer full): The closure for the callback.
  *
  *
- * Since: 3.32
  */
 typedef void (*IdeThreadFunc) (gpointer user_data);
 
diff --git a/src/libide/tree/ide-tree-addin.c b/src/libide/tree/ide-tree-addin.c
index c8a86731d..92398cdf6 100644
--- a/src/libide/tree/ide-tree-addin.c
+++ b/src/libide/tree/ide-tree-addin.c
@@ -122,8 +122,6 @@ ide_tree_addin_default_init (IdeTreeAddinInterface *iface)
  *
  * This function will call the synchronous form of
  * IdeTreeAddin.build_children() if no asynchronous form is available.
- *
- * Since: 3.32
  */
 void
 ide_tree_addin_build_children_async (IdeTreeAddin        *self,
@@ -149,8 +147,6 @@ ide_tree_addin_build_children_async (IdeTreeAddin        *self,
  * Completes an asynchronous request to ide_tree_addin_build_children_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_addin_build_children_finish (IdeTreeAddin  *self,
@@ -176,8 +172,6 @@ ide_tree_addin_build_children_finish (IdeTreeAddin  *self,
  *
  * You may want to use ide_tree_node_holds() to determine if the node
  * contains an item that you are interested in.
- *
- * Since: 3.32
  */
 void
 ide_tree_addin_build_node (IdeTreeAddin *self,
@@ -206,8 +200,6 @@ ide_tree_addin_build_node (IdeTreeAddin *self,
  * respond to the action.
  *
  * Returns: %TRUE if the activation was handled, otherwise %FALSE
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_addin_node_activated (IdeTreeAddin *self,
diff --git a/src/libide/tree/ide-tree-model.c b/src/libide/tree/ide-tree-model.c
index 503526b1c..7534cf2fc 100644
--- a/src/libide/tree/ide-tree-model.c
+++ b/src/libide/tree/ide-tree-model.c
@@ -321,8 +321,6 @@ ide_tree_model_class_init (IdeTreeModelClass *klass)
    * The "root" property contains the root #IdeTreeNode that is used to build
    * the tree. It should contain an object for the #IdeTreeNode:item property
    * so that #IdeTreeAddin's may use it to build the node and any children.
-   *
-   * Since: 3.32
    */
   properties [PROP_ROOT] =
     g_param_spec_object ("root",
@@ -340,8 +338,6 @@ ide_tree_model_class_init (IdeTreeModelClass *klass)
    *
    * For example, to extend the project-tree, plugins should set
    * "X-Tree-Kind=project-tree" in their .plugin manifest.
-   *
-   * Since: 3.32
    */
   properties [PROP_KIND] =
     g_param_spec_string ("kind",
@@ -690,8 +686,6 @@ tree_model_iface_init (GtkTreeModelIface *iface)
  * Gets the #GtkTreePath pointing at @node.
  *
  * Returns: (transfer full) (nullable): a new #GtkTreePath
- *
- * Since: 3.32
  */
 GtkTreePath *
 ide_tree_model_get_path_for_node (IdeTreeModel *self,
@@ -717,8 +711,6 @@ ide_tree_model_get_path_for_node (IdeTreeModel *self,
  * Gets a #GtkTreeIter that points at @node.
  *
  * Returns: %TRUE if @iter was set; otherwise %FALSE
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_model_get_iter_for_node (IdeTreeModel *self,
@@ -745,8 +737,6 @@ ide_tree_model_get_iter_for_node (IdeTreeModel *self,
  * is used to build the immediate children which are displayed in the tree.
  *
  * Returns: (transfer none) (not nullable): an #IdeTreeNode
- *
- * Since: 3.32
  */
 IdeTreeNode *
 ide_tree_model_get_root (IdeTreeModel *self)
@@ -825,8 +815,6 @@ ide_tree_model_set_root (IdeTreeModel *self,
  * for more information.
  *
  * Returns: (nullable): a string containing the kind, or %NULL
- *
- * Since: 3.32
  */
 const gchar *
 ide_tree_model_get_kind (IdeTreeModel *self)
@@ -846,8 +834,6 @@ ide_tree_model_get_kind (IdeTreeModel *self)
  *
  * This should be set before adding the #IdeTreeModel to an #IdeObject to
  * ensure the tree builds the proper contents.
- *
- * Since: 3.32
  */
 void
 ide_tree_model_set_kind (IdeTreeModel *self,
@@ -931,8 +917,6 @@ _ide_tree_model_row_activated (IdeTreeModel *self,
  * Gets the #IdeTreeNode found at @iter.
  *
  * Returns: (transfer none) (nullable): an #IdeTreeNode or %NULL
- *
- * Since: 3.32
  */
 IdeTreeNode *
 ide_tree_model_get_node (IdeTreeModel *self,
@@ -1121,8 +1105,6 @@ ide_tree_model_invalidate_traverse_cb (IdeTreeNode *node,
  * are rebuilt using the configured tree addins.
  *
  * If @node is %NULL, the root of the tree is invalidated.
- *
- * Since: 3.32
  */
 void
 ide_tree_model_invalidate (IdeTreeModel *self,
@@ -1272,8 +1254,6 @@ _ide_tree_model_row_collapsed (IdeTreeModel *self,
  * @self: a #IdeTreeModel
  *
  * Returns: (transfer none): an #IdeTree
- *
- * Since: 3.32
  */
 IdeTree *
 ide_tree_model_get_tree (IdeTreeModel *self)
diff --git a/src/libide/tree/ide-tree-node.c b/src/libide/tree/ide-tree-node.c
index de57a1554..4fafb6e0b 100644
--- a/src/libide/tree/ide-tree-node.c
+++ b/src/libide/tree/ide-tree-node.c
@@ -42,8 +42,6 @@
  * Plugins that want to add items to the tree should implement the
  * #IdeTreeAddin interface and register it during plugin
  * initialization.
- *
- * Since: 3.32
  */
 
 struct _IdeTreeNode
@@ -157,8 +155,6 @@ ide_tree_node_get_model (IdeTreeNode *self)
  * Create a new #IdeTreeNode.
  *
  * Returns: (transfer full): a newly created #IdeTreeNode
- *
- * Since: 3.32
  */
 IdeTreeNode *
 ide_tree_node_new (void)
@@ -378,8 +374,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    * The "children-possible" property denotes if the node may have children
    * even if it doesn't have children yet. This is useful for delayed loading
    * of children nodes.
-   *
-   * Since: 3.32
    */
   properties [PROP_CHILDREN_POSSIBLE] =
     g_param_spec_boolean ("children-possible",
@@ -393,8 +387,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    *
    * If %TRUE and #IdeTreeNode:item is an #IdeObject, it will be destroyed
    * when the node is destroyed.
-   *
-   * Since: 3.32
    */
   properties [PROP_DESTROY_ITEM] =
     g_param_spec_boolean ("destroy-item",
@@ -408,8 +400,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    *
    * The "display-name" property is the name for the node as it should be
    * displayed in the tree.
-   *
-   * Since: 3.32
    */
   properties [PROP_DISPLAY_NAME] =
     g_param_spec_string ("display-name",
@@ -423,8 +413,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    *
    * The "expanded-icon" property is the icon that should be displayed to the
    * user in the tree for this node.
-   *
-   * Since: 3.32
    */
   properties [PROP_EXPANDED_ICON] =
     g_param_spec_object ("expanded-icon",
@@ -438,8 +426,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    *
    * The "expanded-icon-name" is a convenience property to set the
    * #IdeTreeNode:expanded-icon property using an icon-name.
-   *
-   * Since: 3.32
    */
   properties [PROP_EXPANDED_ICON_NAME] =
     g_param_spec_string ("expanded-icon-name",
@@ -454,8 +440,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    * The "has-error" property is true if the node should be rendered with
    * an error styling. This is useful when errors are known by the diagnostics
    * manager for a given file or folder.
-   *
-   * Since: 3.32
    */
   properties [PROP_HAS_ERROR] =
     g_param_spec_boolean ("has-error",
@@ -469,8 +453,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    *
    * The "icon" property is the icon that should be displayed to the
    * user in the tree for this node.
-   *
-   * Since: 3.32
    */
   properties [PROP_ICON] =
     g_param_spec_object ("icon",
@@ -484,8 +466,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    *
    * The "icon-name" is a convenience property to set the #IdeTreeNode:icon
    * property using an icon-name.
-   *
-   * Since: 3.32
    */
   properties [PROP_ICON_NAME] =
     g_param_spec_string ("icon-name",
@@ -499,8 +479,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    *
    * The "is-header" property denotes the node should be styled as a group
    * header.
-   *
-   * Since: 3.32
    */
   properties [PROP_IS_HEADER] =
     g_param_spec_boolean ("is-header",
@@ -515,8 +493,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    * The "item" property is an optional #GObject that can be used to
    * store information about the node, which is sometimes useful when
    * creating #IdeTreeAddin plugins.
-   *
-   * Since: 3.32
    */
   properties [PROP_ITEM] =
     g_param_spec_object ("item",
@@ -530,8 +506,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    *
    * The "reset-on-collapse" denotes that children should be removed when
    * the node is collapsed.
-   *
-   * Since: 3.32
    */
   properties [PROP_RESET_ON_COLLAPSE] =
     g_param_spec_boolean ("reset-on-collapse",
@@ -547,8 +521,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    * object to assign to #IdeTreeNode:item.
    *
    * See ide_tree_node_is_tag() to match a tag when building.
-   *
-   * Since: 3.32
    */
   properties [PROP_TAG] =
     g_param_spec_string ("tag",
@@ -562,8 +534,6 @@ ide_tree_node_class_init (IdeTreeNodeClass *klass)
    *
    * If #TRUE, the "use-markup" property denotes that #IdeTreeNode:display-name
    * contains pango markup.
-   *
-   * Since: 3.32
    */
   properties [PROP_USE_MARKUP] =
     g_param_spec_boolean ("use-markup",
@@ -589,8 +559,6 @@ ide_tree_node_init (IdeTreeNode *self)
  * Gets the #IdeTreeNode:display-name property.
  *
  * Returns: (nullable): a string containing the display name
- *
- * Since: 3.32
  */
 const gchar *
 ide_tree_node_get_display_name (IdeTreeNode *self)
@@ -605,8 +573,6 @@ ide_tree_node_get_display_name (IdeTreeNode *self)
  *
  * Sets the #IdeTreeNode:display-name property, which is the text to
  * use when displaying the item in the tree.
- *
- * Since: 3.32
  */
 void
 ide_tree_node_set_display_name (IdeTreeNode *self,
@@ -630,8 +596,6 @@ ide_tree_node_set_display_name (IdeTreeNode *self,
  * Gets the icon associated with the tree node.
  *
  * Returns: (transfer none) (nullable): a #GIcon or %NULL
- *
- * Since: 3.32
  */
 GIcon *
 ide_tree_node_get_icon (IdeTreeNode *self)
@@ -647,8 +611,6 @@ ide_tree_node_get_icon (IdeTreeNode *self)
  * @icon: (nullable): a #GIcon or %NULL
  *
  * Sets the icon for the tree node.
- *
- * Since: 3.32
  */
 void
 ide_tree_node_set_icon (IdeTreeNode *self,
@@ -670,8 +632,6 @@ ide_tree_node_set_icon (IdeTreeNode *self,
  * Gets the expanded icon associated with the tree node.
  *
  * Returns: (transfer none) (nullable): a #GIcon or %NULL
- *
- * Since: 3.32
  */
 GIcon *
 ide_tree_node_get_expanded_icon (IdeTreeNode *self)
@@ -687,8 +647,6 @@ ide_tree_node_get_expanded_icon (IdeTreeNode *self)
  * @expanded_icon: (nullable): a #GIcon or %NULL
  *
  * Sets the expanded icon for the tree node.
- *
- * Since: 3.32
  */
 void
 ide_tree_node_set_expanded_icon (IdeTreeNode *self,
@@ -711,8 +669,6 @@ ide_tree_node_set_expanded_icon (IdeTreeNode *self,
  *
  * Returns: (transfer none) (type GObject.Object) (nullable): a #GObject
  *   if the item has been previously set.
- *
- * Since: 3.32
  */
 gpointer
 ide_tree_node_get_item (IdeTreeNode *self)
@@ -823,8 +779,6 @@ _ide_tree_node_set_model (IdeTreeNode  *self,
  * Prepends @child as a child of @self at the 0 index.
  *
  * This operation is O(1).
- *
- * Since: 3.32
  */
 void
 ide_tree_node_prepend (IdeTreeNode *self,
@@ -849,8 +803,6 @@ ide_tree_node_prepend (IdeTreeNode *self,
  * Appends @child as a child of @self at the last position.
  *
  * This operation is O(1).
- *
- * Since: 3.32
  */
 void
 ide_tree_node_append (IdeTreeNode *self,
@@ -876,8 +828,6 @@ ide_tree_node_append (IdeTreeNode *self,
  * Insert @child as a child of @self at the sorted position determined by @cmpfn
  *
  * This operation is O(n).
- *
- * Since: 3.32
  */
 void
 ide_tree_node_insert_sorted (IdeTreeNode        *self,
@@ -906,8 +856,6 @@ ide_tree_node_insert_sorted (IdeTreeNode        *self,
  * Inserts @child directly before @self by adding it to the parent of @self.
  *
  * This operation is O(1).
- *
- * Since: 3.32
  */
 void
 ide_tree_node_insert_before (IdeTreeNode *self,
@@ -933,8 +881,6 @@ ide_tree_node_insert_before (IdeTreeNode *self,
  * Inserts @child directly after @self by adding it to the parent of @self.
  *
  * This operation is O(1).
- *
- * Since: 3.32
  */
 void
 ide_tree_node_insert_after (IdeTreeNode *self,
@@ -960,8 +906,6 @@ ide_tree_node_insert_after (IdeTreeNode *self,
  * Removes the child node @child from @self. @self must be the parent of @child.
  *
  * This function is O(1).
- *
- * Since: 3.32
  */
 void
 ide_tree_node_remove (IdeTreeNode *self,
@@ -993,8 +937,6 @@ ide_tree_node_remove (IdeTreeNode *self,
  * Gets the parent node of @self.
  *
  * Returns: (transfer none) (nullable): a #IdeTreeNode or %NULL
- *
- * Since: 3.32
  */
 IdeTreeNode *
 ide_tree_node_get_parent (IdeTreeNode *self)
@@ -1012,8 +954,6 @@ ide_tree_node_get_parent (IdeTreeNode *self)
  * properties of each node.
  *
  * Returns: (transfer none) (nullable): a #IdeTreeNode or %NULL
- *
- * Since: 3.32
  */
 IdeTreeNode *
 ide_tree_node_get_root (IdeTreeNode *self)
@@ -1037,8 +977,6 @@ ide_tree_node_get_root (IdeTreeNode *self)
  * or is a subclass of @type.
  *
  * Returns: %TRUE if @self holds a @type item
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_node_holds (IdeTreeNode *self,
@@ -1056,8 +994,6 @@ ide_tree_node_holds (IdeTreeNode *self,
  * Gets the position of the @self.
  *
  * Returns: the offset of @self with it's siblings.
- *
- * Since: 3.32
  */
 guint
 ide_tree_node_get_index (IdeTreeNode *self)
@@ -1078,8 +1014,6 @@ ide_tree_node_get_index (IdeTreeNode *self)
  * Gets the @nth child of the tree node or %NULL if it does not exist.
  *
  * Returns: (transfer none) (nullable): a #IdeTreeNode or %NULL
- *
- * Since: 3.32
  */
 IdeTreeNode *
 ide_tree_node_get_nth_child (IdeTreeNode *self,
@@ -1097,8 +1031,6 @@ ide_tree_node_get_nth_child (IdeTreeNode *self,
  * Gets the next sibling after @self.
  *
  * Returns: (transfer none) (nullable): a #IdeTreeNode or %NULL
- *
- * Since: 3.32
  */
 IdeTreeNode *
 ide_tree_node_get_next (IdeTreeNode *self)
@@ -1118,8 +1050,6 @@ ide_tree_node_get_next (IdeTreeNode *self)
  * Gets the previous sibling before @self.
  *
  * Returns: (transfer none) (nullable): a #IdeTreeNode or %NULL
- *
- * Since: 3.32
  */
 IdeTreeNode *
 ide_tree_node_get_previous (IdeTreeNode *self)
@@ -1140,8 +1070,6 @@ ide_tree_node_get_previous (IdeTreeNode *self)
  * It may not actually have children yet.
  *
  * Returns: %TRUE if the children may have children
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_node_get_children_possible (IdeTreeNode *self)
@@ -1157,8 +1085,6 @@ ide_tree_node_get_children_possible (IdeTreeNode *self)
  * @children_possible: if children are possible
  *
  * Sets if the children are possible for the node.
- *
- * Since: 3.32
  */
 void
 ide_tree_node_set_children_possible (IdeTreeNode *self,
@@ -1197,8 +1123,6 @@ ide_tree_node_set_children_possible (IdeTreeNode *self,
  * Checks if @self has any children.
  *
  * Returns: %TRUE if @self has one or more children.
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_node_has_child (IdeTreeNode *self)
@@ -1215,8 +1139,6 @@ ide_tree_node_has_child (IdeTreeNode *self)
  * Gets the number of children that @self contains.
  *
  * Returns: the number of children
- *
- * Since: 3.32
  */
 guint
 ide_tree_node_get_n_children (IdeTreeNode *self)
@@ -1236,8 +1158,6 @@ ide_tree_node_get_n_children (IdeTreeNode *self)
  * styling for group headers.
  *
  * Returns: %TRUE if @self is a header.
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_node_get_is_header (IdeTreeNode *self)
@@ -1252,8 +1172,6 @@ ide_tree_node_get_is_header (IdeTreeNode *self)
  * @self: a #IdeTreeNode
  *
  * Sets the #IdeTreeNode:is-header property.
- *
- * Since: 3.32
  */
 void
 ide_tree_node_set_is_header (IdeTreeNode *self,
@@ -1344,8 +1262,6 @@ finish:
  * type, flags, and depth.
  *
  * Traversal is stopped if @traverse_func returns %TRUE.
- *
- * Since: 3.32
  */
 void
 ide_tree_node_traverse (IdeTreeNode         *self,
@@ -1382,8 +1298,6 @@ ide_tree_node_traverse (IdeTreeNode         *self,
  * "(Empty)" contents and show a proper expander arrow.
  *
  * Returns: %TRUE if @self is a synthesized empty node.
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_node_is_empty (IdeTreeNode *self)
@@ -1416,8 +1330,6 @@ _ide_tree_node_set_needs_build_children (IdeTreeNode *self,
  * @icon_name: (nullable): the name of the icon, or %NULL
  *
  * Sets the #IdeTreeNode:icon property using an icon-name.
- *
- * Since: 3.32
  */
 void
 ide_tree_node_set_icon_name (IdeTreeNode *self,
@@ -1438,8 +1350,6 @@ ide_tree_node_set_icon_name (IdeTreeNode *self,
  * @expanded_icon_name: (nullable): the name of the icon, or %NULL
  *
  * Sets the #IdeTreeNode:icon property using an icon-name.
- *
- * Since: 3.32
  */
 void
 ide_tree_node_set_expanded_icon_name (IdeTreeNode *self,
@@ -1461,8 +1371,6 @@ ide_tree_node_set_expanded_icon_name (IdeTreeNode *self,
  * Checks if @self is the root node, meaning it has no parent.
  *
  * Returns: %TRUE if @self has no parent.
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_node_is_root (IdeTreeNode *self)
@@ -1479,8 +1387,6 @@ ide_tree_node_is_root (IdeTreeNode *self)
  * Checks if @self is the first sibling.
  *
  * Returns: %TRUE if @self is the first sibling
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_node_is_first (IdeTreeNode *self)
@@ -1497,8 +1403,6 @@ ide_tree_node_is_first (IdeTreeNode *self)
  * Checks if @self is the last sibling.
  *
  * Returns: %TRUE if @self is the last sibling
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_node_is_last (IdeTreeNode *self)
@@ -1607,8 +1511,6 @@ _ide_tree_node_remove_all (IdeTreeNode *self)
  * Checks if the node should have all children removed when collapsed.
  *
  * Returns: %TRUE if children are removed on collapse
- *
- * Since: 3.32
  */
 gboolean
 ide_tree_node_get_reset_on_collapse (IdeTreeNode *self)
@@ -1624,8 +1526,6 @@ ide_tree_node_get_reset_on_collapse (IdeTreeNode *self)
  * @reset_on_collapse: if the children should be removed on collapse
  *
  * If %TRUE, then children will be removed when the row is collapsed.
- *
- * Since: 3.32
  */
 void
 ide_tree_node_set_reset_on_collapse (IdeTreeNode *self,
@@ -1649,8 +1549,6 @@ ide_tree_node_set_reset_on_collapse (IdeTreeNode *self,
  * Gets the path for the tree node.
  *
  * Returns: (transfer full) (nullable): a path or %NULL
- *
- * Since: 3.32
  */
 GtkTreePath *
 ide_tree_node_get_path (IdeTreeNode *self)
diff --git a/src/libide/tree/ide-tree-node.h b/src/libide/tree/ide-tree-node.h
index f7e859173..451e8c7ae 100644
--- a/src/libide/tree/ide-tree-node.h
+++ b/src/libide/tree/ide-tree-node.h
@@ -53,8 +53,6 @@ typedef enum
  * This function prototype is used to traverse a tree of #IdeTreeNode.
  *
  * Returns: #IdeTreeNodeVisit, %IDE_TREE_NODE_VISIT_BREAK to stop traversal.
- *
- * Since: 3.32
  */
 typedef IdeTreeNodeVisit (*IdeTreeTraverseFunc) (IdeTreeNode *node,
                                                  gpointer     user_data);
@@ -69,8 +67,6 @@ typedef IdeTreeNodeVisit (*IdeTreeTraverseFunc) (IdeTreeNode *node,
  * This callback function is a convenience wrapper around GCompareFunc
  *
  * Returns: int
- *
- * Since: 3.32
  */
 typedef int (*IdeTreeNodeCompare) (IdeTreeNode *node,
                                    IdeTreeNode *child);
diff --git a/src/libide/tree/ide-tree.c b/src/libide/tree/ide-tree.c
index 8917d8b07..88b81ff2e 100644
--- a/src/libide/tree/ide-tree.c
+++ b/src/libide/tree/ide-tree.c
@@ -669,8 +669,6 @@ ide_tree_show_popover_at_node (IdeTree     *self,
  * Gets the currently selected node, or %NULL
  *
  * Returns: (transfer none) (nullable): an #IdeTreeNode or %NULL
- *
- * Since: 3.32
  */
 IdeTreeNode *
 ide_tree_get_selected_node (IdeTree *self)
diff --git a/src/libide/vcs/ide-vcs-branch.c b/src/libide/vcs/ide-vcs-branch.c
index ece6e632f..02f7c34d5 100644
--- a/src/libide/vcs/ide-vcs-branch.c
+++ b/src/libide/vcs/ide-vcs-branch.c
@@ -39,8 +39,6 @@ ide_vcs_branch_default_init (IdeVcsBranchInterface *iface)
  * to display to the user.
  *
  * Returns: (transfer full): a string containing the branch name
- *
- * Since: 3.32
  */
 gchar *
 ide_vcs_branch_get_name (IdeVcsBranch *self)
@@ -60,8 +58,6 @@ ide_vcs_branch_get_name (IdeVcsBranch *self)
  * Gets the identifier of the branch.
  *
  * Returns: (transfer full): a string containing the branch identifier
- *
- * Since: 3.34
  */
 gchar *
 ide_vcs_branch_get_id (IdeVcsBranch *self)
diff --git a/src/libide/vcs/ide-vcs-cloner.c b/src/libide/vcs/ide-vcs-cloner.c
index bcd590236..3acb4a45f 100644
--- a/src/libide/vcs/ide-vcs-cloner.c
+++ b/src/libide/vcs/ide-vcs-cloner.c
@@ -46,8 +46,6 @@ ide_vcs_cloner_default_init (IdeVcsClonerInterface *iface)
  * describing how the URI is invalid.
  *
  * Returns: %TRUE if @uri is valid, otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_vcs_cloner_validate_uri (IdeVcsCloner  *self,
@@ -75,8 +73,6 @@ ide_vcs_cloner_validate_uri (IdeVcsCloner  *self,
  * @progress: (nullable): a location for an #IdeNotification, or %NULL
  * @callback: a #GAsyncReadyCallback to execute upon completion
  * @user_data: closure data for @callback
- *
- * Since: 3.32
  */
 void
 ide_vcs_cloner_clone_async (IdeVcsCloner         *self,
@@ -113,8 +109,6 @@ ide_vcs_cloner_clone_async (IdeVcsCloner         *self,
  * @error: a location for a #GError, or %NULL
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 ide_vcs_cloner_clone_finish (IdeVcsCloner  *self,
@@ -136,8 +130,6 @@ ide_vcs_cloner_clone_finish (IdeVcsCloner  *self,
  * titles might be "Subversion" or "CVS".
  *
  * Returns: (transfer full): a string containing the title
- *
- * Since: 3.32
  */
 gchar *
 ide_vcs_cloner_get_title (IdeVcsCloner *self)
diff --git a/src/libide/vcs/ide-vcs-file-info.c b/src/libide/vcs/ide-vcs-file-info.c
index 7a2164eeb..ed1b5539b 100644
--- a/src/libide/vcs/ide-vcs-file-info.c
+++ b/src/libide/vcs/ide-vcs-file-info.c
@@ -49,8 +49,6 @@ static GParamSpec *properties [N_PROPS];
  * Gets the file the #IdeVcsFileInfo describes.
  *
  * Returns: (transfer none): a #GFile
- *
- * Since: 3.32
  */
 GFile *
 ide_vcs_file_info_get_file (IdeVcsFileInfo *self)
diff --git a/src/libide/vcs/ide-vcs-monitor.c b/src/libide/vcs/ide-vcs-monitor.c
index a8608d698..86627f409 100644
--- a/src/libide/vcs/ide-vcs-monitor.c
+++ b/src/libide/vcs/ide-vcs-monitor.c
@@ -428,8 +428,6 @@ ide_vcs_monitor_class_init (IdeVcsMonitorClass *klass)
    *
    * The "root" property is the root of the file-system to begin
    * monitoring for changes.
-   *
-   * Since: 3.32
    */
   properties [PROP_ROOT] =
     g_param_spec_object ("root",
@@ -444,8 +442,6 @@ ide_vcs_monitor_class_init (IdeVcsMonitorClass *klass)
    * The "vcs" property is the version control system to be queried for
    * additional status information when a file has been discovered to
    * have been changed.
-   *
-   * Since: 3.32
    */
   properties [PROP_VCS] =
     g_param_spec_object ("vcs",
@@ -465,8 +461,6 @@ ide_vcs_monitor_class_init (IdeVcsMonitorClass *klass)
    *
    * The "changed" signal is emitted when a file has been discovered to
    * have been changed on disk.
-   *
-   * Since: 3.32
    */
   signals [CHANGED] =
     g_signal_new ("changed",
@@ -485,8 +479,6 @@ ide_vcs_monitor_class_init (IdeVcsMonitorClass *klass)
    * @self: an #IdeVcsMonitor
    *
    * The "reloaded" signal is emitted when the monitor has been reloaded.
-   *
-   * Since: 3.32
    */
   signals [RELOADED] =
     g_signal_new ("reloaded",
@@ -529,8 +521,6 @@ ide_vcs_monitor_init (IdeVcsMonitor *self)
  * the info to be there.
  *
  * Returns: (transfer full) (nullable): an #IdeVcsFileInfo or %NULL
- *
- * Since: 3.32
  */
 IdeVcsFileInfo *
 ide_vcs_monitor_ref_info (IdeVcsMonitor *self,
@@ -559,8 +549,6 @@ ide_vcs_monitor_ref_info (IdeVcsMonitor *self,
  * #IdeVcsMonitor and returns it.
  *
  * Returns: (transfer full) (nullable): an #IdeVcs or %NULL
- *
- * Since: 3.32
  */
 IdeVcs *
 ide_vcs_monitor_ref_vcs (IdeVcsMonitor *self)
@@ -584,8 +572,6 @@ ide_vcs_monitor_ref_vcs (IdeVcsMonitor *self)
  * count of the #GFile by one.
  *
  * Returns: (transfer full) (nullable): a #GFile or %NULL
- *
- * Since: 3.32
  */
 GFile *
 ide_vcs_monitor_ref_root (IdeVcsMonitor *self)
@@ -652,8 +638,6 @@ ide_vcs_monitor_get_sequence (IdeVcsMonitor *self)
  * Gets the #IdeVcsMonitor for a context.
  *
  * Returns: (nullable) (transfer none): an #IdeVcsMonitor
- *
- * Since: 3.32
  */
 IdeVcsMonitor *
 ide_vcs_monitor_from_context (IdeContext *context)
diff --git a/src/libide/vcs/ide-vcs-tag.c b/src/libide/vcs/ide-vcs-tag.c
index 6acd80d9c..9c56c90ed 100644
--- a/src/libide/vcs/ide-vcs-tag.c
+++ b/src/libide/vcs/ide-vcs-tag.c
@@ -39,8 +39,6 @@ ide_vcs_tag_default_init (IdeVcsTagInterface *iface)
  * to display to the user.
  *
  * Returns: (transfer full): a string containing the tag name
- *
- * Since: 3.32
  */
 gchar *
 ide_vcs_tag_get_name (IdeVcsTag *self)
diff --git a/src/libide/vcs/ide-vcs-uri.c b/src/libide/vcs/ide-vcs-uri.c
index db44f23d0..9b3aef880 100644
--- a/src/libide/vcs/ide-vcs-uri.c
+++ b/src/libide/vcs/ide-vcs-uri.c
@@ -470,8 +470,6 @@ ide_vcs_uri_is_valid (const gchar *uri_string)
  *
  * Returns: (transfer full) (nullable): a string containing the suggested
  *   clone directory name, or %NULL.
- *
- * Since: 3.32
  */
 gchar *
 ide_vcs_uri_get_clone_name (const IdeVcsUri *self)
diff --git a/src/libide/vcs/ide-vcs.c b/src/libide/vcs/ide-vcs.c
index ed4bc7d6e..81f9fd9c0 100644
--- a/src/libide/vcs/ide-vcs.c
+++ b/src/libide/vcs/ide-vcs.c
@@ -199,8 +199,6 @@ ide_vcs_default_init (IdeVcsInterface *iface)
    * The "changed" signal should be emitted when the VCS has detected a change
    * to the underlying VCS storage. This can be used by consumers to reload
    * their respective data structures.
-   *
-   * Since: 3.32
    */
   signals [CHANGED] =
     g_signal_new ("changed",
@@ -234,8 +232,6 @@ ide_vcs_default_init (IdeVcsInterface *iface)
  * Thread safety: This function is safe to call from a thread as
  *   #IdeVcs implementations are required to ensure this function
  *   is thread-safe.
- *
- * Since: 3.32
  */
 gboolean
 ide_vcs_is_ignored (IdeVcs  *self,
@@ -281,8 +277,6 @@ ide_vcs_is_ignored (IdeVcs  *self,
  * Thread safety: This function is safe to call from a thread as
  *   #IdeVcs implementations are required to ensure this function
  *   is thread-safe.
- *
- * Since: 3.32
  */
 gboolean
 ide_vcs_path_is_ignored (IdeVcs       *self,
@@ -341,8 +335,6 @@ ide_vcs_get_priority (IdeVcs *self)
  *
  * Returns: (transfer none): a #GFile.
  *
- * Since: 3.32
- *
  * Thread safety: this function is safe to call from threads. The working
  *   directory should only be set at creating and therefore safe to call
  *   at any time from any thread that holds a reference to @self. Those
@@ -374,8 +366,6 @@ ide_vcs_emit_changed (IdeVcs *self)
  * support access to configuration, then %NULL is returned.
  *
  * Returns: (transfer full) (nullable): An #IdeVcsConfig or %NULL.
- *
- * Since: 3.32
  */
 IdeVcsConfig *
 ide_vcs_get_config (IdeVcs *self)
@@ -398,8 +388,6 @@ ide_vcs_get_config (IdeVcs *self)
  * Retrieves the name of the branch in the current working directory.
  *
  * Returns: (transfer full): A string containing the branch name.
- *
- * Since: 3.32
  */
 gchar *
 ide_vcs_get_branch_name (IdeVcs *self)
@@ -438,8 +426,6 @@ ide_vcs_get_branch_name (IdeVcs *self)
  *
  * The function specified by @callback should call ide_vcs_list_status_finish()
  * to retrieve the result of this asynchronous operation.
- *
- * Since: 3.32
  */
 void
 ide_vcs_list_status_async (IdeVcs              *self,
@@ -480,8 +466,6 @@ ide_vcs_list_status_async (IdeVcs              *self,
  * Returns: (transfer full) (nullable):
  *   A #GListModel containing an #IdeVcsFileInfo for each of the files scanned
  *   by the #IdeVcs. Upon failure, %NULL is returned and @error is set.
- *
- * Since: 3.32
  */
 GListModel *
 ide_vcs_list_status_finish (IdeVcs        *self,
@@ -501,8 +485,6 @@ ide_vcs_list_status_finish (IdeVcs        *self,
  * Gets the #IdeVcs for the context.
  *
  * Returns: (transfer none): an #IdeVcs
- *
- * Since: 3.32
  */
 IdeVcs *
 ide_vcs_from_context (IdeContext *context)
@@ -526,8 +508,6 @@ ide_vcs_from_context (IdeContext *context)
  * A thread-safe version of ide_vcs_from_context().
  *
  * Returns: (transfer full): an #IdeVcs
- *
- * Since: 3.32
  */
 IdeVcs *
 ide_vcs_ref_from_context (IdeContext *context)
@@ -569,8 +549,6 @@ ide_vcs_list_branches_async (IdeVcs              *self,
  *
  * Returns: (transfer full) (element-type IdeVcsBranch): an array of
  *   #IdeVcsBranch.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_vcs_list_branches_finish (IdeVcs        *self,
@@ -604,8 +582,6 @@ ide_vcs_list_tags_async (IdeVcs              *self,
  *
  * Returns: (transfer full) (element-type IdeVcsBranch): an array of
  *   #IdeVcsBranch.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_vcs_list_tags_finish (IdeVcs        *self,
diff --git a/src/plugins/buildui/gbp-buildui-stage-row.c b/src/plugins/buildui/gbp-buildui-stage-row.c
index e0b50577a..f6d950d4d 100644
--- a/src/plugins/buildui/gbp-buildui-stage-row.c
+++ b/src/plugins/buildui/gbp-buildui-stage-row.c
@@ -204,8 +204,6 @@ gbp_buildui_stage_row_new (IdePipelineStage *stage)
  * Gets the stage for the row.
  *
  * Returns: (transfer none): an #IdePipelineStage
- *
- * Since: 3.32
  */
 IdePipelineStage *
 gbp_buildui_stage_row_get_stage (GbpBuilduiStageRow *self)
diff --git a/src/plugins/clang/ide-clang-client.c b/src/plugins/clang/ide-clang-client.c
index ba34b4dba..a1bebfe9d 100644
--- a/src/plugins/clang/ide-clang-client.c
+++ b/src/plugins/clang/ide-clang-client.c
@@ -691,8 +691,6 @@ ide_clang_client_index_file_async (IdeClangClient      *self,
  *
  * Returns: (transfer full): a #GVariant containing the indexed data
  *   or %NULL in case of failure.
- *
- * Since: 3.32
  */
 GVariant *
 ide_clang_client_index_file_finish (IdeClangClient  *self,
diff --git a/src/plugins/clang/ide-clang-completion-item.c b/src/plugins/clang/ide-clang-completion-item.c
index adf752c65..0be60b8e2 100644
--- a/src/plugins/clang/ide-clang-completion-item.c
+++ b/src/plugins/clang/ide-clang-completion-item.c
@@ -438,8 +438,6 @@ ide_clang_completion_item_init (IdeClangCompletionItem *self)
  * Gets the #GtkSourceSnippet to be inserted when expanding this completion item.
  *
  * Returns: (transfer full): An #GtkSourceSnippet.
- *
- * Since: 3.32
  */
 GtkSourceSnippet *
 ide_clang_completion_item_get_snippet (IdeClangCompletionItem *self,
@@ -460,8 +458,6 @@ ide_clang_completion_item_get_snippet (IdeClangCompletionItem *self,
  * The @keyword parameter is not copied, it is expected to be valid
  * string found within @variant (and therefore associated with its
  * life-cycle).
- *
- * Since: 3.32
  */
 IdeClangCompletionItem *
 ide_clang_completion_item_new (GVariant    *variant,
diff --git a/src/plugins/clang/ide-clang-symbol-tree.c b/src/plugins/clang/ide-clang-symbol-tree.c
index f2952a105..ef4b6e71f 100644
--- a/src/plugins/clang/ide-clang-symbol-tree.c
+++ b/src/plugins/clang/ide-clang-symbol-tree.c
@@ -53,8 +53,6 @@ static GParamSpec *properties [N_PROPS];
  * Gets the #IdeClangSymbolTree:file property.
  *
  * Returns: (transfer none): a #GFile.
- *
- * Since: 3.32
  */
 GFile *
 ide_clang_symbol_tree_get_file (IdeClangSymbolTree *self)
diff --git a/src/plugins/clang/ide-clang.c b/src/plugins/clang/ide-clang.c
index 36ad84168..a6d45f375 100644
--- a/src/plugins/clang/ide-clang.c
+++ b/src/plugins/clang/ide-clang.c
@@ -653,8 +653,6 @@ ide_clang_index_file_visitor (CXCursor     cursor,
  * from queue, else this will do Breadth first traversal on AST till it finds a
  * declaration.  On next request when decl_cursors is empty it will continue
  * traversal from where it has stopped in previously.
- *
- * Since: 3.32
  */
 static IdeCodeIndexEntry *
 ide_clang_index_file_next_entry (IndexFile                *state,
@@ -853,8 +851,6 @@ ide_clang_index_file_worker (IdeTask      *task,
  * Asynchronously requests that indexable entries are extracted from the file
  * found at @path. The results (an array of #IdeCodeIndexEntry) can be accessed
  * via ide_clang_index_file_finish() using the result provided to @callback
- *
- * Since: 3.32
  */
 void
 ide_clang_index_file_async (IdeClang            *self,
@@ -900,8 +896,6 @@ ide_clang_index_file_async (IdeClang            *self,
  * Finishes a request to index a file.
  *
  * Returns: (transfer full): a #GPtrArray of #IdeCodeIndexEntry
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_clang_index_file_finish (IdeClang      *self,
@@ -1186,8 +1180,6 @@ ide_clang_diagnose_worker (IdeTask      *task,
  * Asynchronously requests that the file be diagnosed.
  *
  * This generates diagnostics related to the file after parsing it.
- *
- * Since: 3.32
  */
 void
 ide_clang_diagnose_async (IdeClang            *self,
@@ -1237,8 +1229,6 @@ ide_clang_diagnose_async (IdeClang            *self,
  *
  * Returns: (transfer full) (element-type Ide.Diagnostic):
  *   a #GPtrArray of #IdeDiagnostic
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_clang_diagnose_finish (IdeClang      *self,
@@ -2317,8 +2307,6 @@ ide_clang_get_index_key_async (IdeClang            *self,
  * at a given source location.
  *
  * Returns: (transfer full): the key, or %NULL and @error is set
- *
- * Since: 3.32
  */
 gchar *
 ide_clang_get_index_key_finish (IdeClang      *self,
diff --git a/src/plugins/cmake/gbp-cmake-toolchain.c b/src/plugins/cmake/gbp-cmake-toolchain.c
index 75d10b50d..14d0daa21 100644
--- a/src/plugins/cmake/gbp-cmake-toolchain.c
+++ b/src/plugins/cmake/gbp-cmake-toolchain.c
@@ -68,8 +68,6 @@ gbp_cmake_toolchain_new (IdeContext *context)
  * Gets the path to the CMake cross-compilation definitions
  *
  * Returns: (transfer none): the path to the CMake cross-compilation definitions file.
- *
- * Since: 3.30
  */
 const gchar *
 gbp_cmake_toolchain_get_file_path (GbpCMakeToolchain  *self)
diff --git a/src/plugins/color-picker/gb-color-picker-document-monitor.c 
b/src/plugins/color-picker/gb-color-picker-document-monitor.c
index 143365349..9a8d6b9e3 100644
--- a/src/plugins/color-picker/gb-color-picker-document-monitor.c
+++ b/src/plugins/color-picker/gb-color-picker-document-monitor.c
@@ -675,8 +675,6 @@ gb_color_picker_document_monitor_queue_oper_cb (gpointer data)
  * This queues a region to be recolorized but does so after returning
  * to the main loop. This can be useful for situations where you do not
  * know if you are in a path that must retain a valid GtkTextIter.
- *
- * Since: 3.26
  */
 static void
 gb_color_picker_document_monitor_queue_oper (GbColorPickerDocumentMonitor *self,
@@ -723,8 +721,6 @@ gb_color_picker_document_monitor_queue_oper (GbColorPickerDocumentMonitor *self,
  * This queues a region to be recolorized but does so after returning
  * to the main loop. This can be useful for situations where you do not
  * know if you are in a path that must retain a valid GtkTextIter.
- *
- * Since: 3.26
  */
 void
 gb_color_picker_document_monitor_queue_colorize (GbColorPickerDocumentMonitor *self,
@@ -741,8 +737,6 @@ gb_color_picker_document_monitor_queue_colorize (GbColorPickerDocumentMonitor *s
  * This queues a region to be uncolorized but does so after returning
  * to the main loop. This can be useful for situations where you do not
  * know if you are in a path that must retain a valid GtkTextIter.
- *
- * Since: 3.26
  */
 void
 gb_color_picker_document_monitor_queue_uncolorize (GbColorPickerDocumentMonitor *self,
diff --git a/src/plugins/color-picker/gb-color-picker-editor-addin.c 
b/src/plugins/color-picker/gb-color-picker-editor-addin.c
index 2697525f1..1b89441da 100644
--- a/src/plugins/color-picker/gb-color-picker-editor-addin.c
+++ b/src/plugins/color-picker/gb-color-picker-editor-addin.c
@@ -392,8 +392,6 @@ gb_color_picker_editor_addin_init (GbColorPickerEditorAddin *self)
  * If no editor view is focused, %NULL is returned.
  *
  * Returns: (transfer full): a #GstylePalette or %NULL.
- *
- * Since: 3.26
  */
 GstylePalette *
 gb_color_picker_editor_addin_create_palette (GbColorPickerEditorAddin *self)
diff --git a/src/plugins/command-bar/gbp-command-bar-suggestion.c 
b/src/plugins/command-bar/gbp-command-bar-suggestion.c
index 863ed120b..13fcf93de 100644
--- a/src/plugins/command-bar/gbp-command-bar-suggestion.c
+++ b/src/plugins/command-bar/gbp-command-bar-suggestion.c
@@ -151,8 +151,6 @@ gbp_command_bar_suggestion_init (GbpCommandBarSuggestion *self)
  * @self: a #GbpCommandBarSuggestion
  *
  * Returns: (transfer none): an #IdeCommand
- *
- * Since: 3.32
  */
 IdeCommand *
 gbp_command_bar_suggestion_get_command (GbpCommandBarSuggestion *self)
diff --git a/src/plugins/create-project/gbp-create-project-template-icon.c 
b/src/plugins/create-project/gbp-create-project-template-icon.c
index 875b09639..e5d448607 100644
--- a/src/plugins/create-project/gbp-create-project-template-icon.c
+++ b/src/plugins/create-project/gbp-create-project-template-icon.c
@@ -150,8 +150,6 @@ gbp_create_project_template_icon_init (GbpCreateProjectTemplateIcon *self)
  * Gets the template for the item.
  *
  * Returns: (transfer none): an #IdeProjectTemplate
- *
- * Since: 3.32
  */
 IdeProjectTemplate *
 gbp_create_project_template_icon_get_template (GbpCreateProjectTemplateIcon *self)
diff --git a/src/plugins/ctags/ide-ctags-index.c b/src/plugins/ctags/ide-ctags-index.c
index a11ee63b0..45b0246bc 100644
--- a/src/plugins/ctags/ide-ctags-index.c
+++ b/src/plugins/ctags/ide-ctags-index.c
@@ -625,8 +625,6 @@ ide_ctags_index_get_mtime (IdeCtagsIndex *self)
  *
  * Returns: (transfer container) (element-type Ide.CtagsIndexEntry): An array
  *   of items matching the relative path.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_ctags_index_find_with_path (IdeCtagsIndex *self,
diff --git a/src/plugins/ctags/ide-ctags-service.c b/src/plugins/ctags/ide-ctags-service.c
index 40c301f36..8287da204 100644
--- a/src/plugins/ctags/ide-ctags-service.c
+++ b/src/plugins/ctags/ide-ctags-service.c
@@ -856,8 +856,6 @@ ide_ctags_service_init (IdeCtagsService *self)
  * Note: this does not sort the indexes by importance.
  *
  * Returns: (transfer container) (element-type Ide.CtagsIndex): An array of indexes.
- *
- * Since: 3.32
  */
 GPtrArray *
 ide_ctags_service_get_indexes (IdeCtagsService *self)
diff --git a/src/plugins/ctags/ide-ctags-symbol-tree.c b/src/plugins/ctags/ide-ctags-symbol-tree.c
index 95963d1df..05885c950 100644
--- a/src/plugins/ctags/ide-ctags-symbol-tree.c
+++ b/src/plugins/ctags/ide-ctags-symbol-tree.c
@@ -81,7 +81,6 @@ G_DEFINE_FINAL_TYPE_WITH_CODE (IdeCtagsSymbolTree, ide_ctags_symbol_tree, G_TYPE
  * This function takes ownership of @ar.
  *
  *
- * Since: 3.32
  */
 IdeCtagsSymbolTree *
 ide_ctags_symbol_tree_new (GPtrArray *ar)
diff --git a/src/plugins/debuggerui/ide-debugger-breakpoints-view.c 
b/src/plugins/debuggerui/ide-debugger-breakpoints-view.c
index 7efdddb22..9b62c5bd5 100644
--- a/src/plugins/debuggerui/ide-debugger-breakpoints-view.c
+++ b/src/plugins/debuggerui/ide-debugger-breakpoints-view.c
@@ -560,8 +560,6 @@ ide_debugger_breakpoints_view_new (void)
  * Gets the debugger that is being observed by the view.
  *
  * Returns: (nullable) (transfer none): An #IdeDebugger or %NULL
- *
- * Since: 3.32
  */
 IdeDebugger *
 ide_debugger_breakpoints_view_get_debugger (IdeDebuggerBreakpointsView *self)
@@ -580,8 +578,6 @@ ide_debugger_breakpoints_view_get_debugger (IdeDebuggerBreakpointsView *self)
  * @debugger: (nullable): An #IdeDebugger or %NULL
  *
  * Sets the debugger that is being viewed.
- *
- * Since: 3.32
  */
 void
 ide_debugger_breakpoints_view_set_debugger (IdeDebuggerBreakpointsView *self,
diff --git a/src/plugins/debuggerui/ide-debugger-disassembly-view.c 
b/src/plugins/debuggerui/ide-debugger-disassembly-view.c
index 692ed14ab..27d11b12f 100644
--- a/src/plugins/debuggerui/ide-debugger-disassembly-view.c
+++ b/src/plugins/debuggerui/ide-debugger-disassembly-view.c
@@ -263,8 +263,6 @@ ide_debugger_disassembly_view_set_current_address (IdeDebuggerDisassemblyView *s
  *
  * This will take a reference to @instructions if non-%NULL so it is
  * important that you do not modify @instructions after calling this.
- *
- * Since: 3.32
  */
 void
 ide_debugger_disassembly_view_set_instructions (IdeDebuggerDisassemblyView *self,
diff --git a/src/plugins/debuggerui/ide-debugger-libraries-view.c 
b/src/plugins/debuggerui/ide-debugger-libraries-view.c
index ed986baba..44c80c806 100644
--- a/src/plugins/debuggerui/ide-debugger-libraries-view.c
+++ b/src/plugins/debuggerui/ide-debugger-libraries-view.c
@@ -343,8 +343,6 @@ ide_debugger_libraries_view_new (void)
  * Gets the debugger property.
  *
  * Returns: (transfer none): An #IdeDebugger or %NULL.
- *
- * Since: 3.32
  */
 IdeDebugger *
 ide_debugger_libraries_view_get_debugger (IdeDebuggerLibrariesView *self)
diff --git a/src/plugins/debuggerui/ide-debugger-locals-view.c 
b/src/plugins/debuggerui/ide-debugger-locals-view.c
index 960df0c20..2a4e3146e 100644
--- a/src/plugins/debuggerui/ide-debugger-locals-view.c
+++ b/src/plugins/debuggerui/ide-debugger-locals-view.c
@@ -260,8 +260,6 @@ ide_debugger_locals_view_new (void)
  * Gets the debugger instance.
  *
  * Returns: (transfer none): An #IdeDebugger
- *
- * Since: 3.32
  */
 IdeDebugger *
 ide_debugger_locals_view_get_debugger (IdeDebuggerLocalsView *self)
diff --git a/src/plugins/debuggerui/ide-debugger-registers-view.c 
b/src/plugins/debuggerui/ide-debugger-registers-view.c
index 4014a5b42..d81385dcd 100644
--- a/src/plugins/debuggerui/ide-debugger-registers-view.c
+++ b/src/plugins/debuggerui/ide-debugger-registers-view.c
@@ -305,8 +305,6 @@ ide_debugger_registers_view_new (void)
  *
  *
  * Returns: (transfer none) (nullable): An #IdeDebugger or %NULL
- *
- * Since: 3.32
  */
 IdeDebugger *
 ide_debugger_registers_view_get_debugger (IdeDebuggerRegistersView *self)
diff --git a/src/plugins/debuggerui/ide-debugger-threads-view.c 
b/src/plugins/debuggerui/ide-debugger-threads-view.c
index 3124ef81c..7e317ab5c 100644
--- a/src/plugins/debuggerui/ide-debugger-threads-view.c
+++ b/src/plugins/debuggerui/ide-debugger-threads-view.c
@@ -809,8 +809,6 @@ ide_debugger_threads_view_init (IdeDebuggerThreadsView *self)
  * Gets the debugger that is being observed.
  *
  * Returns: (transfer none) (nullable): An #IdeDebugger or %NULL
- *
- * Since: 3.32
  */
 IdeDebugger *
 ide_debugger_threads_view_get_debugger (IdeDebuggerThreadsView *self)
diff --git a/src/plugins/debuggerui/ide-debugger-workspace-addin.c 
b/src/plugins/debuggerui/ide-debugger-workspace-addin.c
index 807374397..63989f59a 100644
--- a/src/plugins/debuggerui/ide-debugger-workspace-addin.c
+++ b/src/plugins/debuggerui/ide-debugger-workspace-addin.c
@@ -51,8 +51,6 @@
  * This class allows the debugger widgetry to hook into the workspace. We add
  * various panels to the workspace perpective and ensure they are only visible
  * when the process is being debugged.
- *
- * Since: 3.32
  */
 
 struct _IdeDebuggerWorkspaceAddin
diff --git a/src/plugins/flatpak/gbp-flatpak-download-stage.c 
b/src/plugins/flatpak/gbp-flatpak-download-stage.c
index 553c8c61e..0b582cb1e 100644
--- a/src/plugins/flatpak/gbp-flatpak-download-stage.c
+++ b/src/plugins/flatpak/gbp-flatpak-download-stage.c
@@ -193,8 +193,6 @@ gbp_flatpak_download_stage_class_init (GbpFlatpakDownloadStageClass *klass)
    *
    * The "state-dir" is the flatpak-builder state directory, to be used
    * as a parameter to "flatpak-builder --state-dir".
-   *
-   * Since: 3.28
    */
   properties [PROP_STATE_DIR] =
     g_param_spec_string ("state-dir",
diff --git a/src/plugins/gdb/gbp-gdb-debugger.c b/src/plugins/gdb/gbp-gdb-debugger.c
index da975ab68..0d7091df4 100644
--- a/src/plugins/gdb/gbp-gdb-debugger.c
+++ b/src/plugins/gdb/gbp-gdb-debugger.c
@@ -2800,8 +2800,6 @@ gbp_gdb_debugger_write_cb (GObject      *object,
  * This asynchronous function will complete when we have received a response
  * from the debugger with the result, or the connection has closed. Whichever
  * is first.
- *
- * Since: 3.32
  */
 void
 gbp_gdb_debugger_exec_async (GbpGdbDebugger      *self,
@@ -2902,8 +2900,6 @@ gbp_gdb_debugger_exec_async (GbpGdbDebugger      *self,
  *
  * Returns: a gdbwire_mi_output which should be freed with
  *   gdbwire_mi_output_free() when no longer in use.
- *
- * Since: 3.32
  */
 struct gdbwire_mi_output *
 gbp_gdb_debugger_exec_finish (GbpGdbDebugger  *self,
diff --git a/src/plugins/git/daemon/ipc-git-remote-callbacks.c 
b/src/plugins/git/daemon/ipc-git-remote-callbacks.c
index 1ad6d50cd..28774ff76 100644
--- a/src/plugins/git/daemon/ipc-git-remote-callbacks.c
+++ b/src/plugins/git/daemon/ipc-git-remote-callbacks.c
@@ -227,8 +227,6 @@ ipc_git_remote_callbacks_init (IpcGitRemoteCallbacks *self)
  *
  * This function should be called when a clone was canceled so that we can
  * avoid dispatching more events.
- *
- * Since: 3.32
  */
 void
 ipc_git_remote_callbacks_cancel (IpcGitRemoteCallbacks *self)
diff --git a/src/plugins/meson/gbp-meson-toolchain-edition-preferences-row.c 
b/src/plugins/meson/gbp-meson-toolchain-edition-preferences-row.c
index e93e67fda..b1ff91388 100644
--- a/src/plugins/meson/gbp-meson-toolchain-edition-preferences-row.c
+++ b/src/plugins/meson/gbp-meson-toolchain-edition-preferences-row.c
@@ -367,8 +367,6 @@ gbp_meson_toolchain_edition_preferences_row_finalize (GObject *object)
  * @self: a #GbpMesonToolchainEditionPreferencesRow
  *
  * Requests the configuration popover the be shown over the widget.
- *
- * Since: 3.32
  */
 void
 gbp_meson_toolchain_edition_preferences_row_show_popup (GbpMesonToolchainEditionPreferencesRow *self)
diff --git a/src/plugins/meson/gbp-meson-toolchain.c b/src/plugins/meson/gbp-meson-toolchain.c
index 9a52fe280..0720fea7f 100644
--- a/src/plugins/meson/gbp-meson-toolchain.c
+++ b/src/plugins/meson/gbp-meson-toolchain.c
@@ -119,8 +119,6 @@ gbp_meson_toolchain_load (GbpMesonToolchain  *self,
  * Gets the path to the Meson cross-file
  *
  * Returns: (transfer none): the path to the Meson cross-file.
- *
- * Since: 3.32
  */
 const gchar *
 gbp_meson_toolchain_get_file_path (GbpMesonToolchain  *self)
diff --git a/src/plugins/omni-gutter/gbp-omni-gutter-renderer.c 
b/src/plugins/omni-gutter/gbp-omni-gutter-renderer.c
index eb9e1452b..10eb69750 100644
--- a/src/plugins/omni-gutter/gbp-omni-gutter-renderer.c
+++ b/src/plugins/omni-gutter/gbp-omni-gutter-renderer.c
@@ -48,8 +48,6 @@
  * be easier for the user with increased hit-targets.
  *
  * Additionally, we can render faster because we can coalesce work.
- *
- * Since: 3.32
  */
 
 #define RIGHT_MARGIN 2
diff --git a/src/plugins/project-tree/gbp-new-file-popover.c b/src/plugins/project-tree/gbp-new-file-popover.c
index 4febf55b2..b987c5425 100644
--- a/src/plugins/project-tree/gbp-new-file-popover.c
+++ b/src/plugins/project-tree/gbp-new-file-popover.c
@@ -243,8 +243,6 @@ gbp_new_file_popover_get_property (GObject    *object,
  * @pspec: (in): a #ParamSpec.
  *
  * Set a given #GObject property.
- *
- * Since: 3.32
  */
 static void
 gbp_new_file_popover_set_property (GObject      *object,
@@ -382,8 +380,6 @@ gbp_new_file_popover_set_directory (GbpNewFilePopover *self,
  * gbp_new_file_popover_get_directory:
  *
  * Returns: (transfer none) (nullable): a #GFile or %NULL.
- *
- * Since: 3.32
  */
 GFile *
 gbp_new_file_popover_get_directory (GbpNewFilePopover *self)
diff --git a/src/plugins/snippets/snippets/gobject.snippets b/src/plugins/snippets/snippets/gobject.snippets
index 49cccf039..380255f41 100644
--- a/src/plugins/snippets/snippets/gobject.snippets
+++ b/src/plugins/snippets/snippets/gobject.snippets
@@ -771,8 +771,6 @@ ${$filename|stripsuffix|functify|space} ${$1|space}  gpointer      user_data)
  * ${3}
  *
  * Returns: ${2}
- *
- * Since: ${4:$project_version}
  */$0
 ]]></text>
   </snippet>
diff --git a/src/plugins/todo/gbp-todo-item.c b/src/plugins/todo/gbp-todo-item.c
index 6ad8922bf..c36007aa5 100644
--- a/src/plugins/todo/gbp-todo-item.c
+++ b/src/plugins/todo/gbp-todo-item.c
@@ -74,8 +74,6 @@ gbp_todo_item_init (GbpTodoItem *self)
  * small string allocations.
  *
  * Returns: (transfer full): A newly allocated #GbpTodoItem
- *
- * Since: 3.32
  */
 GbpTodoItem *
 gbp_todo_item_new (GBytes *bytes)
diff --git a/src/plugins/todo/gbp-todo-model.c b/src/plugins/todo/gbp-todo-model.c
index 14ff04f97..a4ceb728b 100644
--- a/src/plugins/todo/gbp-todo-model.c
+++ b/src/plugins/todo/gbp-todo-model.c
@@ -300,8 +300,6 @@ gbp_todo_model_init (GbpTodoModel *self)
  * Creates a new #GbpTodoModel.
  *
  * Returns: (transfer full): A newly created #GbpTodoModel.
- *
- * Since: 3.32
  */
 GbpTodoModel *
 gbp_todo_model_new (IdeVcs *vcs)
@@ -638,8 +636,6 @@ is_typed (IdeVcs      *vcs,
  *
  * If @file is not a native file (meaning it is accessable on the
  * normal, mounted, local file-system) this operation will fail.
- *
- * Since: 3.32
  */
 void
 gbp_todo_model_mine_async (GbpTodoModel        *self,
@@ -690,8 +686,6 @@ gbp_todo_model_mine_async (GbpTodoModel        *self,
  * Completes an asynchronous request to gbp_todo_model_mine_async().
  *
  * Returns: %TRUE if successful; otherwise %FALSE and @error is set.
- *
- * Since: 3.32
  */
 gboolean
 gbp_todo_model_mine_finish (GbpTodoModel  *self,
diff --git a/src/plugins/todo/gbp-todo-panel.c b/src/plugins/todo/gbp-todo-panel.c
index 391dba323..ec9fdc6e0 100644
--- a/src/plugins/todo/gbp-todo-panel.c
+++ b/src/plugins/todo/gbp-todo-panel.c
@@ -331,8 +331,6 @@ gbp_todo_panel_init (GbpTodoPanel *self)
  * Gets the model being displayed by the treeview.
  *
  * Returns: (transfer none) (nullable): a #GbpTodoModel.
- *
- * Since: 3.32
  */
 GbpTodoModel *
 gbp_todo_panel_get_model (GbpTodoPanel *self)
diff --git a/src/plugins/xml-pack/ide-xml-service.c b/src/plugins/xml-pack/ide-xml-service.c
index 04158110b..e03d6edc1 100644
--- a/src/plugins/xml-pack/ide-xml-service.c
+++ b/src/plugins/xml-pack/ide-xml-service.c
@@ -1123,8 +1123,6 @@ ide_xml_service_get_schemas_cache (IdeXmlService *self)
  * @context: an #IdeContext
  *
  * Returns: (transfer none): an #IdeXmlService
- *
- * Since: 3.32
  */
 IdeXmlService *
 ide_xml_service_from_context (IdeContext *context)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]