Skip to content

Pin dependencies - #124

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/all-non-major
Oct 25, 2026
Merged

renovate[bot] merged 1 commit into
mainfrom
renovate/all-non-major

Conversation

@renovate

@renovate renovate Bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change Age Confidence
@astrojs/check (source) devDependencies pin ^0.9.11 → 0.9.12 age confidence
astro (source) dependencies minor 7.3.8 → 7.4.2 age confidence
typescript (source) devDependencies pin ^6.0.3 → 6.0.3 age confidence

⚠️ Renovate's pin functionality does not currently wire in the release age for a package, so the Minimum Release Age checks can apply. You will need to manually validate the Minimum Release Age for these package(s).

Add the preset :preserveSemverRanges to your config if you don't want to pin your dependencies.


Release Notes

withastro/astro (astro)

v7.4.2

Compare Source

Patch Changes
  • #​18430 dda9ec3 Thanks @​Abhirup-99! - Speeds up content sync with experimental.collectionStorage: "chunked" by computing each character's UTF-8 width from its code point instead of encoding every character through TextEncoder. On a store of ~44k entries this cuts the chunking step from about 60 seconds to well under a second, with byte-identical output.

  • #​18438 5e0eaa4 Thanks @​astro-factory! - Fixes astro dev with @astrojs/cloudflare failing with Calling `require` for "node-fetch" when a server dependency such as cross-fetch requires node-fetch

  • #​18376 a4e201d Thanks @​okxint! - Fixes astro dev treating a stale lock file containing a Linux thread ID as a running Astro server. A successful process lookup with no matching PID now marks the lock as stale, preventing astro dev stop and astro dev --force from killing the unrelated process that owns the thread.

  • #​18467 d1fb7d3 Thanks @​astro-factory! - Fixes the defineConfig() types for i18n.defaultLocale, i18n.fallback, and i18n.domains so they accept a custom locale's path instead of its codes, matching how Astro validates and uses these values

  • #​18475 cf27e70 Thanks @​ematipico! - Bumps the minimum supported Node.js version to 22.23.4, which includes the fixes from the October 2026 Node.js security releases

    This is a patch release because the Node.js support and upgrade policy allows the Core team to raise the minimum Maintenance LTS version in a patch release when a disclosed and fixed Node.js security flaw affects Astro.

  • #​18451 7a0ba6f Thanks @​DenisCDev! - Fixes astro sync, astro check and astro build replacing the optimized dependencies of a dev server running in the same project, which broke framework islands in that dev server until it was restarted with --force

  • #​18336 e943003 Thanks @​astro-factory! - Fixes inline styles in dev so that framework-transformed CSS is used, such as scoped styles and v-bind() in Vue single-file components

  • #​18399 829fc00 Thanks @​astro-factory! - Fixes a dev server error (Could not find server component name) for a server:defer island that imports astro:actions or astro:config/server, when its page was not the first island page loaded after starting the server

  • #​18330 4db9e0d Thanks @​Samuteg! - Fixes the astro:env/server virtual module being generated with invalid JS in dev when any environment variable contains $ replacement patterns ($`, $&, $', $1, …). The inlined env JSON was passed as a string to String.replace, so e.g. the KITTY_PUBLIC_KEY value set by default in Kitty terminals corrupted the module and broke dev with Failed to parse source for import analysis

  • Updated dependencies [cf27e70]:

v7.4.1

Compare Source

Patch Changes
  • #​18425 6fdc36e Thanks @​astro-factory! - Preserves the last modified date of cached optimized images and incrementally restored build output when copying them into the build output on all platforms

  • #​18419 395d195 Thanks @​astro-factory! - Fixes a typo in the error message shown when a font cssVariable is invalid

  • #​18401 484822f Thanks @​danielmlr! - Fixes a bug where projects whose path contains an apostrophe (') failed to load sessions, middleware, a cache provider, or a src/fetch.ts handler

  • #​18407 a6e00be Thanks @​astro-factory! - Fixes a TSCONFIG_ERROR during astro build when a parent directory contains a tsconfig.json that cannot be resolved, such as one extending astro/tsconfigs/strict without installed dependencies

  • #​18427 908f167 Thanks @​astro-factory! - Fixes an Unterminated string build error when application code imports from astro/config (for example, fontProviders in a shared fonts module)

  • #​18428 40e7d54 Thanks @​astro-factory! - Fixes missing styles in production builds for conditionally rendered framework components (e.g. Svelte components inside {#if} blocks) imported by a hydrated island

  • #​18424 617ff59 Thanks @​astro-factory! - Fixes style-only HMR in .astro components falling back to a full page reload when a PostCSS plugin (such as @unocss/postcss) lists the component as a dependency of its own style

  • #​18274 70834bb Thanks @​Princesseuh! - Fixes increasing memory usage when editing the Astro configuration while the dev server is running

v7.4.0

Compare Source

Minor Changes
  • #​17894 b7a1bd9 Thanks @​Princesseuh! - Adds a new --timings flag to astro build to help you find what slows down your builds

    When a build takes longer than expected, it can be hard to tell whether the cause is an integration, a Markdown processor plugin, image processing, or even syntax highlighting. Add the --timings flag to your build command to print a summary once the build finishes:

    astro build --timings

    This is helpful to decide what to optimize first, or to compare build times before and after a change to your project.

  • #​17830 a937b0d Thanks @​florian-lefebvre! - Adds a new optional getFontProperties() callback to font providers

    Font providers can now expose the weights, styles, subsets and formats a font family actually has. Astro uses it when resolving your font configuration to warn about values a provider cannot serve, for example a weight a font family does not offer.

    All built-in providers implement it. If you maintain a custom font provider, implementing this callback is optional for now but it will be required in Astro 8:

    import type { FontProvider } from 'astro';
    
    const provider: FontProvider = {
    	name: 'my-provider',
    	resolveFont: ({ familyName }) => {
    		// ...
    	},
    	getFontProperties: ({ familyName }) => ({
    		weights: ['400', '700'],
    		styles: ['normal', 'italic'],
    		subsets: ['latin'],
    		formats: ['woff2'],
    	}),
    };
  • #​17830 a937b0d Thanks @​florian-lefebvre! - Adds a fetch() function to the font provider init() context

    This function requests a provider API, retrying transient failures and more. It lets providers that wrap a 3rd-party unifont provider pass the context to it directly:

    import type { FontProvider } from 'astro';
    import type { InitializedProvider } from 'unifont';
    import { acmeProvider } from '@acme/unifont-provider';
    
    export function acmeFontProvider(): FontProvider {
    	const provider = acmeProvider();
    	let initializedProvider: InitializedProvider | undefined;
    	return {
    		name: provider._name,
    		async init(context) {
    			initializedProvider = await provider(context);
    		},
    		// ...
    	};
    }
  • #​18015 0b30239 Thanks @​florian-lefebvre! - Adds experimental.redirectPage, letting you provide your own src/pages/3xx.astro in place of the redirect page Astro generates in static builds.

    A static site has no server to send an HTTP Location header, so Astro generates a small HTML page with a <meta http-equiv="refresh"> tag for each redirect it builds:

    • Your redirects entries
    • Astro.redirect() calls in prerendered pages
    • i18n redirects

    That page's markup, wording, and refresh delay were fixed, so you could not brand or translate it.

    To enable this feature, add the experimental flag to your Astro config:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        redirectPage: true,
      },
    });

    Then create src/pages/3xx.astro. Astro renders it once per redirect, passing that redirect's details as props:

    ---
    // src/pages/3xx.astro
    import type { RedirectPageProps as Props } from 'astro';
    
    const { from, to, status, delay } = Astro.props;
    ---
    
    <html lang="en">
      <head>
        <meta http-equiv="refresh" content={`${delay};url=${to}`} />
        <meta name="robots" content="noindex" />
        <title>Redirecting…</title>
      </head>
      <body>
        <p>This page has moved. <a href={to}>Continue to {to}</a>.</p>
      </body>
    </html>

    Your page must render a <meta http-equiv="refresh"> tag pointing at to, because in a static build that tag is the redirect. Astro logs a warning during the build if it is missing.

    See the experimental redirect page documentation for more information.

  • #​18265 910ee69 Thanks @​astro-factory! - Adds a notFound() handler to astro/fetch and astro/hono that renders the custom 404 page when no route matches, including a prerendered 404.astro

    Add it before pages() in a custom worker or server entrypoint that does not run inside App.render, such as a Hono app used directly as a Cloudflare worker. Without it, pages() and middleware() return an empty 404 with an internal X-Astro-Error header for unmatched routes. astro() already includes this handling.

    import { Hono } from 'hono';
    import { notFound, pages } from 'astro/hono';
    import { cf } from '@astrojs/cloudflare/hono';
    
    const app = new Hono();
    app.use(cf());
    app.use(notFound());
    app.use(pages());
    export default app;
  • #​18177 7d814e5 Thanks @​Princesseuh! - Adds support for separate build and runtime image services

    image.service now also accepts a build and a runtime service. The build service optimizes images on prerendered pages when you build your site, and is also used during development. The runtime service handles images on on-demand rendered pages and the image endpoint of your deployed site.

    The following example uses Sharp to optimize images on prerendered pages, and an image CDN for on-demand rendered pages:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      image: {
        service: {
          build: { entrypoint: 'astro/assets/services/sharp' },
          runtime: { entrypoint: 'my-image-cdn-service' },
        },
      },
    });
Changes for integration authors

config.image.service keeps the shape the user configured it with. When a project sets build and runtime services, config.image.service.entrypoint and config.image.service.config are undefined.

If your integration reads image.service, check for the runtime property to get the service you need:

'astro:config:done': ({ config }) => {
  const { service } = config.image;
  const runtimeService = 'runtime' in service ? service.runtime : service;

  if (runtimeService.entrypoint === 'astro/assets/services/sharp') {
    // ...
  }
},

Setting image.service with updateConfig() replaces the existing service instead of merging with it when the two use different shapes. For example, setting a single service in a project that uses build and runtime services replaces both.

  • #​18277 2715958 Thanks @​florian-lefebvre! - Increases the minimum Node.js version to 22.22.0

    The minimum supported Node.js version is now 22.22.0, the latest Node.js 22 release supported by StackBlitz. This change is in line with Astro's Node.js support policy.

  • #​18313 71e2b24 Thanks @​matthewp! - Allows integrations to control where Astro writes client, server, and prerender build output.

    Custom prerenderers can access the final output locations through the new outputDirectories context:

    setPrerenderer((defaultPrerenderer, { outputDirectories }) => {
      const { client, server, prerender } = outputDirectories
    
      return createPrerenderer({
        defaultPrerenderer,
        client,
        server,
        prerender,
      })
    })
  • #​18177 7d814e5 Thanks @​Princesseuh! - Lets custom prerenderers report the images used on prerendered pages

    Astro now generates images on prerendered pages from the image information that a prerenderer's getStaticPaths() and render() return. If your prerenderer wraps Astro's default one, pass this information through:

    setPrerenderer((defaultPrerenderer) => ({
      name: 'my-prerenderer',
      async setup() {
        await defaultPrerenderer.setup?.();
      },
      async getStaticPaths() {
        const result = await defaultPrerenderer.getStaticPaths();
        const { paths, metadata } = Array.isArray(result) ? { paths: result } : result;
        return { paths: paths.filter(({ pathname }) => !pathname.startsWith('/drafts')), metadata };
      },
      render(request, options) {
        return defaultPrerenderer.render(request, options);
      },
      async teardown() {
        await defaultPrerenderer.teardown?.();
      },
    }));

    Returning a plain array from getStaticPaths() or a plain Response from render() still works, but is deprecated: images used on those pages are not generated.

  • #​17932 b905ff1 Thanks @​Princesseuh! - Adds support for experimental parallel prerendering

    This experimental feature makes astro build render your static pages in parallel, using multiple CPU cores at once instead of one. On sites with many pages, this can significantly reduce build times, at the cost of higher memory usage.

    To enable this feature, add the experimental flag in your Astro config:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        parallelPrerender: true,
      },
    });

    By default, Astro uses all available CPU cores but one. Each additional worker increases the memory used by your build. If your build runs out of memory, or does not get faster, set workers to a lower number:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        parallelPrerender: {
          workers: 4,
        },
      },
    });

    Each worker renders as many pages at once as your build.concurrency setting allows.

    This feature has no effect when your adapter provides its own way of prerendering pages. Among official adapters, this only applies to @astrojs/cloudflare. Astro logs a warning during the build when the flag is ignored.

    For more information on enabling and using this feature in your project, see the experimental parallel prerendering docs.

Patch Changes

Configuration

📅 Schedule: (in timezone Europe/Athens)

  • Branch creation
    • "before 6am on Sunday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Oct 25, 2026
@renovate
renovate Bot enabled auto-merge (squash) October 25, 2026 01:54
@coderabbitai

coderabbitai Bot commented Oct 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 723d5885-5f97-4883-8925-c210fad9fc6c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@renovate
renovate Bot merged commit c2dfe6b into main Oct 25, 2026
5 checks passed
@renovate
renovate Bot deleted the renovate/all-non-major branch October 25, 2026 01:55
dacrab pushed a commit that referenced this pull request Nov 3, 2026
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants