diff --git a/docs/markdown/Release-notes-for-1.3.0.md b/docs/markdown/Release-notes-for-1.3.0.md
new file mode 100644
index 0000000..cf6ad46
--- /dev/null
+++ b/docs/markdown/Release-notes-for-1.3.0.md
@@ -0,0 +1,338 @@
+---
+title: Release 1.3.0
+short-description: Release notes for 1.3.0
+...
+
+# New features
+
+Meson 1.3.0 was released on 19 November 2023
+## Clarify of implicitly-included headers in C-like compiler checks
+
+Compiler check methods `compiler.compute_int()`, `compiler.alignment()`
+and `compiler.sizeof()` now have their implicitly-included headers
+corrected and documented.
+
+`<stdio.h>` was included unintentionally when cross-compiling, which
+is less than ideal because there is no guarantee that a standard library
+is available for the target platform. Only `<stddef.h>` is included instead.
+
+For projects that depend on the old behavior, the compiler check methods
+have an optional argument `prefix`, which can be used to specify additional
+`#include` directives.
+
+## Treat warnings as error in compiler checks
+
+Compiler check methods `compiler.compiles()`, `compiler.links()` and `compiler.run()`
+now have a new `werror: true` keyword argument to treat compiler warnings as error.
+This can be used to check if code compiles without warnings.
+
+## Compilers now have a `has_define` method
+
+This method returns true if the given preprocessor symbol is
+defined, else false is returned. This is useful is cases where
+an empty define has to be distinguished from a non-set one, which
+is not possible using `get_define`.
+
+Additionally it makes intent clearer for code that only needs
+to check if a specific define is set at all and does not care
+about its value.
+
+## [[configure_file]] now has a `macro_name` parameter.
+
+This new paramater, `macro_name` allows C macro-style include guards to be added
+to [[configure_file]]'s output when a template file is not given. This change
+simplifies the creation of configure files that define macros with dynamic names
+and want the C-style include guards.
+
+## `c_std` and `cpp_std` options now accepts a list of values
+
+Projects that prefer GNU C, but can fallback to ISO C, can now set, for
+example, `default_options: 'c_std=gnu11,c11'`, and it will use `gnu11` when
+available, but fallback to `c11` otherwise. It is an error only if none of the
+values are supported by the current compiler.
+
+Likewise, a project that can take benefit of `c++17` but can still build with
+`c++11` can set `default_options: 'cpp_std=c++17,c++11'`.
+
+This allows us to deprecate `gnuXX` values from the MSVC compiler. That means
+that `default_options: 'c_std=gnu11'` will now print a warning with MSVC
+but fallback to `c11`. No warning is printed if at least one
+of the values is valid, i.e. `default_options: 'c_std=gnu11,c11'`.
+
+In the future that deprecation warning will become an hard error because
+`c_std=gnu11` should mean GNU is required, for projects that cannot be
+built with MSVC for example.
+
+## More meaningful description of many generative tasks
+
+When a module uses a `CustomTarget` to process files, it now has the possibility
+to customize the message displayed by ninja.
+
+Many modules were updated to take advantage of this new feature.
+
+## Deprecate 'jar' as a build_target type
+
+The point of `build_target()` is that what is produced can be conditionally
+changed. However, `jar()` has a significant number of non-overlapping arguments
+from other build_targets, including the kinds of sources it can include. Because
+of this crafting a `build_target` that can be used as a Jar and as something
+else is incredibly hard to do. As such, it has been deprecated, and using
+`jar()` directly is recommended.
+
+## generator.process() gains 'env' keyword argument
+
+Like the kwarg of the same name in `custom_target()`, `env` allows
+you to set the environment in which the generator will process inputs.
+
+## Target names for executables now take into account suffixes.
+
+In previous versions of meson, a `meson.build` file like this:
+
+```
+exectuable('foo', 'main.c')
+exectuable('foo', 'main.c', name_suffix: 'bar')
+```
+
+would result in a configure error because meson internally used
+the same id for both executables. This build file is now allowed
+since meson takes into account the `bar` suffix when generating the
+second executable. This allows for executables with the same basename
+but different suffixes to be built in the same subdirectory.
+
+## Executable gains vs_module_defs keyword
+
+This allows using a .def file to control which functions an [[executable]] will
+expose to a [[shared_module]].
+
+## find_program() now supports the 'default_options' argument
+
+In a similar fashion as dependency(), find_program() now also allows you to set default 
+options for the subproject that gets built in case of a fallback.
+
+## `fs.relative_to()`
+
+The `fs` module now has a `relative_to` method. The method will return the
+relative path from argument one to argument two, if one exists. Otherwise, the
+absolute path to argument one is returned.
+
+```meson
+assert(fs.relative_to('c:\\prefix\\lib', 'c:\\prefix\\bin') == '..\\lib')
+assert(fs.relative_to('c:\\proj1\\foo', 'd:\\proj1\\bar') == 'c:\\proj1\\foo')
+assert(fs.relative_to('prefix\\lib\\foo', 'prefix') == 'lib\\foo')
+
+assert(fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')
+assert(fs.relative_to('prefix/lib/foo', 'prefix') == 'lib/foo')
+```
+
+In addition to strings, it can handle files, custom targets, custom target
+indices, and build targets.
+
+## Added follow_symlinks arg to install_data, install_header, and install_subdir
+
+The [[install_data]], [[install_headers]], [[install_subdir]] functions now
+have an optional argument `follow_symlinks` that, if set to `true`, makes it so
+symbolic links in the source are followed, rather than copied into the
+destination tree, to match the old behavior.  The default, which is currently
+to follow links, is subject to change in the future.
+
+## Added 'fill' kwarg to int.to_string()
+
+int.to_string() now accepts a `fill` argument. This allows you to pad the
+string representation of the integer with leading zeroes:
+
+```meson
+n = 4
+message(n.to_string())
+message(n.to_string(fill: 3))
+
+n = -4
+message(n.to_string(fill: 3))
+```
+
+OUTPUT:
+```meson
+4
+004
+-04
+```
+
+## Added 'json' output_format to configure_file()
+
+When no input file is specified, [[configure_file]] can now
+generate a `json` file from given [[@cfg_data]]. 
+Field descriptions are not preserved in the json file.
+
+## `@GLOBAL_SOURCE_ROOT@` and `@DIRNAME@` in machine files
+
+Some tokens are now replaced in the machine file before parsing it:
+- `@GLOBAL_SOURCE_ROOT@`: the absolute path to the project's source tree
+- `@DIRNAME@`: the absolute path to the machine file's parent directory.
+
+It can be used, for example, to have paths relative to the source directory, or
+relative to toolchain's installation directory.
+```ini
+[binaries]
+c = '@DIRNAME@/toolchain/gcc'
+exe_wrapper = '@GLOBAL_SOURCE_ROOT@' / 'build-aux' / 'my-exe-wrapper.sh'
+```
+
+## clang-tidy-fix target
+
+If `clang-tidy` is installed and the project's source root contains a
+`.clang-tidy` (or `_clang-tidy`) file, Meson will automatically define
+a `clang-tidy-fix` target that runs `run-clang-tidy` tool with `-fix`
+option to apply the changes found by clang-tidy to the source code.
+
+If you have defined your own `clang-tidy-fix` target, Meson will not
+generate its own target.
+
+## Meson compile command now accepts suffixes for TARGET
+
+The syntax for specifying a target for meson compile is now
+`[PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]` where
+`TARGET_SUFFIX` is the suffix argument given in the build target
+within meson.build. It is optional and `TARGET_NAME` remains
+sufficient if it uniquely resolves to one single target.
+
+## New environment variable `MESON_PACKAGE_CACHE_DIR`
+
+If the `MESON_PACKAGE_CACHE_DIR` environment variable is set, it is used instead of the
+project's `subprojects/packagecache`. This allows sharing the cache across multiple
+projects. In addition it can contain an already extracted source tree as long as it
+has the same directory name as the `directory` field in the wrap file. In that
+case, the directory will be copied into `subprojects/` before applying patches.
+
+## Update options with `meson setup <builddir> -Dopt=value`
+
+If the build directory already exists, options are updated with their new value
+given on the command line (`-Dopt=value`). Unless `--reconfigure` is also specified,
+this won't reconfigure immediately. This has the same behaviour as
+`meson configure <builddir> -Dopt=value`.
+
+Previous Meson versions were simply a no-op.
+
+## Clear persistent cache with `meson setup --clearcache`
+
+Just like `meson configure --clearcache`, it is now possible to clear the cache
+and reconfigure in a single command with `meson setup --clearcache --reconfigure <builddir>`.
+
+## pkg-config dependencies can now get a variable with multiple replacements
+
+When using [[dep.get_variable]] and defining a `pkgconfig_define`, it is
+sometimes useful to remap multiple dependency variables. For example, if the
+upstream project changed the variable name that is interpolated and it is
+desirable to support both versions.
+
+It is now possible to pass multiple pairs of variable/value.
+
+The same applies to the compatibility [[dep.get_pkgconfig_variable]] method.
+
+## Machine files: `pkgconfig` field deprecated and replaced by `pkg-config`
+
+Meson used to allow both `pkgconfig` and `pkg-config` entries in machine files,
+the former was used for `dependency()` lookup and the latter was used as return
+value for `find_program('pkg-config')`.
+
+This inconsistency is now fixed by deprecating `pkgconfig` in favor of
+`pkg-config` which matches the name of the binary. For backward compatibility
+it is still allowed to define both with the same value, in that case no
+deprecation warning is printed.
+
+## Support targeting Python's limited C API
+
+The Python module's `extension_module` function has gained the ability
+to build extensions which target Python's limited C API via a new keyword
+argument: `limited_api`.
+
+## All compiler `has_*` methods support the `required` keyword
+
+Now instead of
+
+```meson
+assert(cc.has_function('some_function'))
+assert(cc.has_type('some_type'))
+assert(cc.has_member('struct some_type', 'x'))
+assert(cc.has_members('struct some_type', ['x', 'y']))
+```
+
+we can use
+
+```meson
+cc.has_function('some_function', required: true)
+cc.has_type('some_type', required: true)
+cc.has_member('struct some_type', 'x', required: true)
+cc.has_members('struct some_type', ['x', 'y'], required: true)
+```
+
+## Deprecated `rust_crate_type` and replaced by `rust_abi`
+
+The new `rust_abi` keyword argument is accepted by [[shared_library]],
+[[static_library]], [[library]] and [[shared_module]] functions. It can be either
+`'rust'` (the default) or `'c'` strings.
+
+`rust_crate_type` is now deprecated because Meson already knows if it's a shared
+or static library, user only need to specify the ABI (Rust or C).
+
+`proc_macro` crates are now handled by the [`rust.proc_macro()`](Rust-module.md#proc_macro)
+method.
+
+## Tests now abort on errors by default under sanitizers
+
+Sanitizers like AddressSanitizer and UndefinedBehaviorSanitizer do not abort
+by default on detected violations. Meson now exports `ASAN_OPTIONS` and `UBSAN_OPTIONS`
+when unset in the environment to provide sensible abort-by-default behavior.
+
+## `<lang>_(shared|static)_args` for both_library, library, and build_target
+
+We now allow passing arguments like `c_static_args` and `c_shared_args`. This
+allows a [[both_libraries]] to have arguments specific to either the shared or
+static library, as well as common arguments to both.
+
+There is a drawback to this, since Meson now cannot re-use object files between
+the static and shared targets. This could lead to much higher compilation time
+when using a [[both_libraries]] if there are many sources.
+
+## `-j` shorthand for `--num-processes`
+
+`-j` now means the same thing as `--num-processes`. It was inconsistently
+supported only in some subcommands. Now you may use it everywhere
+
+## Unified message(), str.format() and f-string formatting
+
+They now all support the same set of values: strings, integers, bools, options,
+dictionaries and lists thereof.
+
+- Feature options (i.e. enabled, disabled, auto) were not previously supported
+  by any of those functions.
+- Lists and dictionaries were not previously supported by f-string.
+- str.format() allowed any type and often resulted in printing the internal
+  representation which is now deprecated.
+
+## Subprojects excluded from scan-build reports
+
+The `scan-build` target, created when using the `ninja` backend with `scan-build`
+present, now excludes bugs found in subprojects from its final report.
+
+## vs_module_defs keyword now supports indexes of custom_target
+
+This means you can do something like:
+```meson
+defs = custom_target('generate_module_defs', ...)
+shared_library('lib1', vs_module_defs : defs[0])
+shared_library('lib2', vs_module_defs : defs[2])
+```
+
+## Automatic fallback to `cmake` and `cargo` subproject
+
+CMake subprojects have been supported for a while using the `cmake.subproject()`
+module method. However until now it was not possible to use a CMake subproject
+as fallback in a `dependency()` call.
+
+A wrap file can now specify the method used to build it by setting the `method`
+key in the wrap file's first section. The method defaults to `meson`.
+
+Supported methods:
+- `meson` requires `meson.build` file.
+- `cmake` requires `CMakeLists.txt` file. [See details](Wrap-dependency-system-manual.md#cmake-wraps).
+- `cargo` requires `Cargo.toml` file. [See details](Wrap-dependency-system-manual.md#cargo-wraps).
+
diff --git a/docs/markdown/snippets/clike_compilers_implicit_includes.md b/docs/markdown/snippets/clike_compilers_implicit_includes.md
deleted file mode 100644
index a26ec03..0000000
--- a/docs/markdown/snippets/clike_compilers_implicit_includes.md
+++ /dev/null
@@ -1,13 +0,0 @@
-## Clarify of implicitly-included headers in C-like compiler checks
-
-Compiler check methods `compiler.compute_int()`, `compiler.alignment()`
-and `compiler.sizeof()` now have their implicitly-included headers
-corrected and documented.
-
-`<stdio.h>` was included unintentionally when cross-compiling, which
-is less than ideal because there is no guarantee that a standard library
-is available for the target platform. Only `<stddef.h>` is included instead.
-
-For projects that depend on the old behavior, the compiler check methods
-have an optional argument `prefix`, which can be used to specify additional
-`#include` directives.
diff --git a/docs/markdown/snippets/compile_werror.md b/docs/markdown/snippets/compile_werror.md
deleted file mode 100644
index e81abb8..0000000
--- a/docs/markdown/snippets/compile_werror.md
+++ /dev/null
@@ -1,5 +0,0 @@
-## Treat warnings as error in compiler checks
-
-Compiler check methods `compiler.compiles()`, `compiler.links()` and `compiler.run()`
-now have a new `werror: true` keyword argument to treat compiler warnings as error.
-This can be used to check if code compiles without warnings.
diff --git a/docs/markdown/snippets/compiler_has_define.md b/docs/markdown/snippets/compiler_has_define.md
deleted file mode 100644
index 64de26b..0000000
--- a/docs/markdown/snippets/compiler_has_define.md
+++ /dev/null
@@ -1,10 +0,0 @@
-## Compilers now have a `has_define` method
-
-This method returns true if the given preprocessor symbol is
-defined, else false is returned. This is useful is cases where
-an empty define has to be distinguished from a non-set one, which
-is not possible using `get_define`.
-
-Additionally it makes intent clearer for code that only needs
-to check if a specific define is set at all and does not care
-about its value.
\ No newline at end of file
diff --git a/docs/markdown/snippets/configure_file_macro_guard.md b/docs/markdown/snippets/configure_file_macro_guard.md
deleted file mode 100644
index ebb4fc5..0000000
--- a/docs/markdown/snippets/configure_file_macro_guard.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## [[configure_file]] now has a `macro_name` parameter.
-
-This new paramater, `macro_name` allows C macro-style include guards to be added
-to [[configure_file]]'s output when a template file is not given. This change
-simplifies the creation of configure files that define macros with dynamic names
-and want the C-style include guards.
diff --git a/docs/markdown/snippets/cstd.md b/docs/markdown/snippets/cstd.md
deleted file mode 100644
index cc1f083..0000000
--- a/docs/markdown/snippets/cstd.md
+++ /dev/null
@@ -1,18 +0,0 @@
-## `c_std` and `cpp_std` options now accepts a list of values
-
-Projects that prefer GNU C, but can fallback to ISO C, can now set, for
-example, `default_options: 'c_std=gnu11,c11'`, and it will use `gnu11` when
-available, but fallback to `c11` otherwise. It is an error only if none of the
-values are supported by the current compiler.
-
-Likewise, a project that can take benefit of `c++17` but can still build with
-`c++11` can set `default_options: 'cpp_std=c++17,c++11'`.
-
-This allows us to deprecate `gnuXX` values from the MSVC compiler. That means
-that `default_options: 'c_std=gnu11'` will now print a warning with MSVC
-but fallback to `c11`. No warning is printed if at least one
-of the values is valid, i.e. `default_options: 'c_std=gnu11,c11'`.
-
-In the future that deprecation warning will become an hard error because
-`c_std=gnu11` should mean GNU is required, for projects that cannot be
-built with MSVC for example.
diff --git a/docs/markdown/snippets/custom_target_description.md b/docs/markdown/snippets/custom_target_description.md
deleted file mode 100644
index fd8820e..0000000
--- a/docs/markdown/snippets/custom_target_description.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## More meaningful description of many generative tasks
-
-When a module uses a `CustomTarget` to process files, it now has the possibility
-to customize the message displayed by ninja.
-
-Many modules were updated to take advantage of this new feature.
diff --git a/docs/markdown/snippets/deprecate_build_target_jar.md b/docs/markdown/snippets/deprecate_build_target_jar.md
deleted file mode 100644
index 1aa5a81..0000000
--- a/docs/markdown/snippets/deprecate_build_target_jar.md
+++ /dev/null
@@ -1,8 +0,0 @@
-## Deprecate 'jar' as a build_target type
-
-The point of `build_target()` is that what is produced can be conditionally
-changed. However, `jar()` has a significant number of non-overlapping arguments
-from other build_targets, including the kinds of sources it can include. Because
-of this crafting a `build_target` that can be used as a Jar and as something
-else is incredibly hard to do. As such, it has been deprecated, and using
-`jar()` directly is recommended.
diff --git a/docs/markdown/snippets/env_kwarg_generator_process.md b/docs/markdown/snippets/env_kwarg_generator_process.md
deleted file mode 100644
index cdf73a3..0000000
--- a/docs/markdown/snippets/env_kwarg_generator_process.md
+++ /dev/null
@@ -1,4 +0,0 @@
-## generator.process() gains 'env' keyword argument
-
-Like the kwarg of the same name in `custom_target()`, `env` allows
-you to set the environment in which the generator will process inputs.
diff --git a/docs/markdown/snippets/executable-suffixes.md b/docs/markdown/snippets/executable-suffixes.md
deleted file mode 100644
index 44471e9..0000000
--- a/docs/markdown/snippets/executable-suffixes.md
+++ /dev/null
@@ -1,14 +0,0 @@
-## Target names for executables now take into account suffixes.
-
-In previous versions of meson, a `meson.build` file like this:
-
-```
-exectuable('foo', 'main.c')
-exectuable('foo', 'main.c', name_suffix: 'bar')
-```
-
-would result in a configure error because meson internally used
-the same id for both executables. This build file is now allowed
-since meson takes into account the `bar` suffix when generating the
-second executable. This allows for executables with the same basename
-but different suffixes to be built in the same subdirectory.
diff --git a/docs/markdown/snippets/executable_vs_module_defs.md b/docs/markdown/snippets/executable_vs_module_defs.md
deleted file mode 100644
index 7901748..0000000
--- a/docs/markdown/snippets/executable_vs_module_defs.md
+++ /dev/null
@@ -1,4 +0,0 @@
-## Executable gains vs_module_defs keyword
-
-This allows using a .def file to control which functions an [[executable]] will
-expose to a [[shared_module]].
diff --git a/docs/markdown/snippets/find_program_default_options.md b/docs/markdown/snippets/find_program_default_options.md
deleted file mode 100644
index 2cf9822..0000000
--- a/docs/markdown/snippets/find_program_default_options.md
+++ /dev/null
@@ -1,4 +0,0 @@
-## find_program() now supports the 'default_options' argument
-
-In a similar fashion as dependency(), find_program() now also allows you to set default 
-options for the subproject that gets built in case of a fallback.
diff --git a/docs/markdown/snippets/fs_relative_to.md b/docs/markdown/snippets/fs_relative_to.md
deleted file mode 100644
index 82e6a42..0000000
--- a/docs/markdown/snippets/fs_relative_to.md
+++ /dev/null
@@ -1,17 +0,0 @@
-## `fs.relative_to()`
-
-The `fs` module now has a `relative_to` method. The method will return the
-relative path from argument one to argument two, if one exists. Otherwise, the
-absolute path to argument one is returned.
-
-```meson
-assert(fs.relative_to('c:\\prefix\\lib', 'c:\\prefix\\bin') == '..\\lib')
-assert(fs.relative_to('c:\\proj1\\foo', 'd:\\proj1\\bar') == 'c:\\proj1\\foo')
-assert(fs.relative_to('prefix\\lib\\foo', 'prefix') == 'lib\\foo')
-
-assert(fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')
-assert(fs.relative_to('prefix/lib/foo', 'prefix') == 'lib/foo')
-```
-
-In addition to strings, it can handle files, custom targets, custom target
-indices, and build targets.
diff --git a/docs/markdown/snippets/install_follow_symlink_arg.md b/docs/markdown/snippets/install_follow_symlink_arg.md
deleted file mode 100644
index ce971d7..0000000
--- a/docs/markdown/snippets/install_follow_symlink_arg.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## Added follow_symlinks arg to install_data, install_header, and install_subdir
-
-The [[install_data]], [[install_headers]], [[install_subdir]] functions now
-have an optional argument `follow_symlinks` that, if set to `true`, makes it so
-symbolic links in the source are followed, rather than copied into the
-destination tree, to match the old behavior.  The default, which is currently
-to follow links, is subject to change in the future.
diff --git a/docs/markdown/snippets/int_to_string_fill.md b/docs/markdown/snippets/int_to_string_fill.md
deleted file mode 100644
index 44885ff..0000000
--- a/docs/markdown/snippets/int_to_string_fill.md
+++ /dev/null
@@ -1,20 +0,0 @@
-## Added 'fill' kwarg to int.to_string()
-
-int.to_string() now accepts a `fill` argument. This allows you to pad the
-string representation of the integer with leading zeroes:
-
-```meson
-n = 4
-message(n.to_string())
-message(n.to_string(fill: 3))
-
-n = -4
-message(n.to_string(fill: 3))
-```
-
-OUTPUT:
-```meson
-4
-004
--04
-```
diff --git a/docs/markdown/snippets/json_output_format.md b/docs/markdown/snippets/json_output_format.md
deleted file mode 100644
index 626840f..0000000
--- a/docs/markdown/snippets/json_output_format.md
+++ /dev/null
@@ -1,5 +0,0 @@
-## Added 'json' output_format to configure_file()
-
-When no input file is specified, [[configure_file]] can now
-generate a `json` file from given [[@cfg_data]]. 
-Field descriptions are not preserved in the json file.
diff --git a/docs/markdown/snippets/machine_file_source_dir.md b/docs/markdown/snippets/machine_file_source_dir.md
deleted file mode 100644
index 5af344e..0000000
--- a/docs/markdown/snippets/machine_file_source_dir.md
+++ /dev/null
@@ -1,13 +0,0 @@
-## `@GLOBAL_SOURCE_ROOT@` and `@DIRNAME@` in machine files
-
-Some tokens are now replaced in the machine file before parsing it:
-- `@GLOBAL_SOURCE_ROOT@`: the absolute path to the project's source tree
-- `@DIRNAME@`: the absolute path to the machine file's parent directory.
-
-It can be used, for example, to have paths relative to the source directory, or
-relative to toolchain's installation directory.
-```ini
-[binaries]
-c = '@DIRNAME@/toolchain/gcc'
-exe_wrapper = '@GLOBAL_SOURCE_ROOT@' / 'build-aux' / 'my-exe-wrapper.sh'
-```
diff --git a/docs/markdown/snippets/meson_clang_tidy_fix.md b/docs/markdown/snippets/meson_clang_tidy_fix.md
deleted file mode 100644
index 3a8c772..0000000
--- a/docs/markdown/snippets/meson_clang_tidy_fix.md
+++ /dev/null
@@ -1,9 +0,0 @@
-## clang-tidy-fix target
-
-If `clang-tidy` is installed and the project's source root contains a
-`.clang-tidy` (or `_clang-tidy`) file, Meson will automatically define
-a `clang-tidy-fix` target that runs `run-clang-tidy` tool with `-fix`
-option to apply the changes found by clang-tidy to the source code.
-
-If you have defined your own `clang-tidy-fix` target, Meson will not
-generate its own target.
diff --git a/docs/markdown/snippets/meson_compile_suffixes.md b/docs/markdown/snippets/meson_compile_suffixes.md
deleted file mode 100644
index 481e8ad..0000000
--- a/docs/markdown/snippets/meson_compile_suffixes.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## Meson compile command now accepts suffixes for TARGET
-
-The syntax for specifying a target for meson compile is now
-`[PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]` where
-`TARGET_SUFFIX` is the suffix argument given in the build target
-within meson.build. It is optional and `TARGET_NAME` remains
-sufficient if it uniquely resolves to one single target.
diff --git a/docs/markdown/snippets/meson_home.md b/docs/markdown/snippets/meson_home.md
deleted file mode 100644
index 2d656fc..0000000
--- a/docs/markdown/snippets/meson_home.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## New environment variable `MESON_PACKAGE_CACHE_DIR`
-
-If the `MESON_PACKAGE_CACHE_DIR` environment variable is set, it is used instead of the
-project's `subprojects/packagecache`. This allows sharing the cache across multiple
-projects. In addition it can contain an already extracted source tree as long as it
-has the same directory name as the `directory` field in the wrap file. In that
-case, the directory will be copied into `subprojects/` before applying patches.
diff --git a/docs/markdown/snippets/msetup.md b/docs/markdown/snippets/msetup.md
deleted file mode 100644
index f68313d..0000000
--- a/docs/markdown/snippets/msetup.md
+++ /dev/null
@@ -1,13 +0,0 @@
-## Update options with `meson setup <builddir> -Dopt=value`
-
-If the build directory already exists, options are updated with their new value
-given on the command line (`-Dopt=value`). Unless `--reconfigure` is also specified,
-this won't reconfigure immediately. This has the same behaviour as
-`meson configure <builddir> -Dopt=value`.
-
-Previous Meson versions were simply a no-op.
-
-## Clear persistent cache with `meson setup --clearcache`
-
-Just like `meson configure --clearcache`, it is now possible to clear the cache
-and reconfigure in a single command with `meson setup --clearcache --reconfigure <builddir>`.
diff --git a/docs/markdown/snippets/pkgconfig_define_variable.md b/docs/markdown/snippets/pkgconfig_define_variable.md
deleted file mode 100644
index 0f7082b..0000000
--- a/docs/markdown/snippets/pkgconfig_define_variable.md
+++ /dev/null
@@ -1,10 +0,0 @@
-## pkg-config dependencies can now get a variable with multiple replacements
-
-When using [[dep.get_variable]] and defining a `pkgconfig_define`, it is
-sometimes useful to remap multiple dependency variables. For example, if the
-upstream project changed the variable name that is interpolated and it is
-desirable to support both versions.
-
-It is now possible to pass multiple pairs of variable/value.
-
-The same applies to the compatibility [[dep.get_pkgconfig_variable]] method.
diff --git a/docs/markdown/snippets/pkgconfig_deprecated_machine_file.md b/docs/markdown/snippets/pkgconfig_deprecated_machine_file.md
deleted file mode 100644
index 36647e9..0000000
--- a/docs/markdown/snippets/pkgconfig_deprecated_machine_file.md
+++ /dev/null
@@ -1,10 +0,0 @@
-## Machine files: `pkgconfig` field deprecated and replaced by `pkg-config`
-
-Meson used to allow both `pkgconfig` and `pkg-config` entries in machine files,
-the former was used for `dependency()` lookup and the latter was used as return
-value for `find_program('pkg-config')`.
-
-This inconsistency is now fixed by deprecating `pkgconfig` in favor of
-`pkg-config` which matches the name of the binary. For backward compatibility
-it is still allowed to define both with the same value, in that case no
-deprecation warning is printed.
diff --git a/docs/markdown/snippets/python_extension_module_limited_api.md b/docs/markdown/snippets/python_extension_module_limited_api.md
deleted file mode 100644
index f5da969..0000000
--- a/docs/markdown/snippets/python_extension_module_limited_api.md
+++ /dev/null
@@ -1,5 +0,0 @@
-## Support targeting Python's limited C API
-
-The Python module's `extension_module` function has gained the ability
-to build extensions which target Python's limited C API via a new keyword
-argument: `limited_api`.
diff --git a/docs/markdown/snippets/required_keyword_for_has_functions.md b/docs/markdown/snippets/required_keyword_for_has_functions.md
deleted file mode 100644
index 0752ac7..0000000
--- a/docs/markdown/snippets/required_keyword_for_has_functions.md
+++ /dev/null
@@ -1,19 +0,0 @@
-## All compiler `has_*` methods support the `required` keyword
-
-Now instead of
-
-```meson
-assert(cc.has_function('some_function'))
-assert(cc.has_type('some_type'))
-assert(cc.has_member('struct some_type', 'x'))
-assert(cc.has_members('struct some_type', ['x', 'y']))
-```
-
-we can use
-
-```meson
-cc.has_function('some_function', required: true)
-cc.has_type('some_type', required: true)
-cc.has_member('struct some_type', 'x', required: true)
-cc.has_members('struct some_type', ['x', 'y'], required: true)
-```
diff --git a/docs/markdown/snippets/rust_crate_type.md b/docs/markdown/snippets/rust_crate_type.md
deleted file mode 100644
index 9b32f0e..0000000
--- a/docs/markdown/snippets/rust_crate_type.md
+++ /dev/null
@@ -1,11 +0,0 @@
-## Deprecated `rust_crate_type` and replaced by `rust_abi`
-
-The new `rust_abi` keyword argument is accepted by [[shared_library]],
-[[static_library]], [[library]] and [[shared_module]] functions. It can be either
-`'rust'` (the default) or `'c'` strings.
-
-`rust_crate_type` is now deprecated because Meson already knows if it's a shared
-or static library, user only need to specify the ABI (Rust or C).
-
-`proc_macro` crates are now handled by the [`rust.proc_macro()`](Rust-module.md#proc_macro)
-method.
diff --git a/docs/markdown/snippets/sanitizers_test.md b/docs/markdown/snippets/sanitizers_test.md
deleted file mode 100644
index 2492911..0000000
--- a/docs/markdown/snippets/sanitizers_test.md
+++ /dev/null
@@ -1,5 +0,0 @@
-## Tests now abort on errors by default under sanitizers
-
-Sanitizers like AddressSanitizer and UndefinedBehaviorSanitizer do not abort
-by default on detected violations. Meson now exports `ASAN_OPTIONS` and `UBSAN_OPTIONS`
-when unset in the environment to provide sensible abort-by-default behavior.
diff --git a/docs/markdown/snippets/shared_static_only_args.md b/docs/markdown/snippets/shared_static_only_args.md
deleted file mode 100644
index 0963c71..0000000
--- a/docs/markdown/snippets/shared_static_only_args.md
+++ /dev/null
@@ -1,9 +0,0 @@
-## `<lang>_(shared|static)_args` for both_library, library, and build_target
-
-We now allow passing arguments like `c_static_args` and `c_shared_args`. This
-allows a [[both_libraries]] to have arguments specific to either the shared or
-static library, as well as common arguments to both.
-
-There is a drawback to this, since Meson now cannot re-use object files between
-the static and shared targets. This could lead to much higher compilation time
-when using a [[both_libraries]] if there are many sources.
diff --git a/docs/markdown/snippets/shorthand_argument_for_mtest_num_processes.md b/docs/markdown/snippets/shorthand_argument_for_mtest_num_processes.md
deleted file mode 100644
index 7ff661b..0000000
--- a/docs/markdown/snippets/shorthand_argument_for_mtest_num_processes.md
+++ /dev/null
@@ -1,4 +0,0 @@
-## `-j` shorthand for `--num-processes`
-
-`-j` now means the same thing as `--num-processes`. It was inconsistently
-supported only in some subcommands. Now you may use it everywhere
diff --git a/docs/markdown/snippets/string_format.md b/docs/markdown/snippets/string_format.md
deleted file mode 100644
index fa33617..0000000
--- a/docs/markdown/snippets/string_format.md
+++ /dev/null
@@ -1,10 +0,0 @@
-## Unified message(), str.format() and f-string formatting
-
-They now all support the same set of values: strings, integers, bools, options,
-dictionaries and lists thereof.
-
-- Feature options (i.e. enabled, disabled, auto) were not previously supported
-  by any of those functions.
-- Lists and dictionaries were not previously supported by f-string.
-- str.format() allowed any type and often resulted in printing the internal
-  representation which is now deprecated.
diff --git a/docs/markdown/snippets/subprojects_excluded_from_scanbuild.md b/docs/markdown/snippets/subprojects_excluded_from_scanbuild.md
deleted file mode 100644
index d740006..0000000
--- a/docs/markdown/snippets/subprojects_excluded_from_scanbuild.md
+++ /dev/null
@@ -1,4 +0,0 @@
-## Subprojects excluded from scan-build reports
-
-The `scan-build` target, created when using the `ninja` backend with `scan-build`
-present, now excludes bugs found in subprojects from its final report.
diff --git a/docs/markdown/snippets/vs_module_defs_customtargetindex.md b/docs/markdown/snippets/vs_module_defs_customtargetindex.md
deleted file mode 100644
index d50d04e..0000000
--- a/docs/markdown/snippets/vs_module_defs_customtargetindex.md
+++ /dev/null
@@ -1,8 +0,0 @@
-## vs_module_defs keyword now supports indexes of custom_target
-
-This means you can do something like:
-```meson
-defs = custom_target('generate_module_defs', ...)
-shared_library('lib1', vs_module_defs : defs[0])
-shared_library('lib2', vs_module_defs : defs[2])
-```
diff --git a/docs/markdown/snippets/wrap.md b/docs/markdown/snippets/wrap.md
deleted file mode 100644
index 3a5521e..0000000
--- a/docs/markdown/snippets/wrap.md
+++ /dev/null
@@ -1,13 +0,0 @@
-## Automatic fallback to `cmake` and `cargo` subproject
-
-CMake subprojects have been supported for a while using the `cmake.subproject()`
-module method. However until now it was not possible to use a CMake subproject
-as fallback in a `dependency()` call.
-
-A wrap file can now specify the method used to build it by setting the `method`
-key in the wrap file's first section. The method defaults to `meson`.
-
-Supported methods:
-- `meson` requires `meson.build` file.
-- `cmake` requires `CMakeLists.txt` file. [See details](Wrap-dependency-system-manual.md#cmake-wraps).
-- `cargo` requires `Cargo.toml` file. [See details](Wrap-dependency-system-manual.md#cargo-wraps).
diff --git a/docs/sitemap.txt b/docs/sitemap.txt
index b6d57a4..5eb2284 100644
--- a/docs/sitemap.txt
+++ b/docs/sitemap.txt
@@ -88,6 +88,7 @@
 		Wrap-best-practices-and-tips.md
 		Shipping-prebuilt-binaries-as-wraps.md
 	Release-notes.md
+		Release-notes-for-1.3.0.md
 		Release-notes-for-1.2.0.md
 		Release-notes-for-1.1.0.md
 		Release-notes-for-1.0.0.md
