Skip to content

Releases: Alok-Fusion/predeploy_check

v1.5.0 — AI-powered diagnosis

Choose a tag to compare

@Alok-Fusion Alok-Fusion released this 06 Sep 10:45
5163a7f

What's new

--ai flag — LLM-powered diagnosis for every failure and warning

Instead of just showing a static fix suggestion, --ai reads your actual
file contents and exact version numbers, sends them to an LLM, and streams
a specific, reasoned explanation back in real time.

ANTHROPIC_API_KEY=your-key npx predeploy-check --ai

Example — instead of a generic hint like "pin to Python 3.12", you get:

pydantic-core==2.20.0 predates Python 3.13's stable wheel infrastructure
— the cp313 wheel wasn't added until 2.23.0. Your fastest fix is bumping
to pydantic-core>=2.23.0. If you can't upgrade, pin runtime.txt to
python-3.12.7 instead.

Supports:

  • Claude (claude-sonnet-4-6) via ANTHROPIC_API_KEY — preferred
  • GPT-4o via OPENAI_API_KEY — fallback
  • Requires Node.js 18+ (uses native fetch)
  • Gracefully skipped if no API key is set, network is unavailable, or
    request times out — the tool always works without a key

Also in this release

Expanded npm keywords — bumped from 8 to 24 keywords covering
railway, nixpacks, nextjs, python, ci-cd, deployment-check,
static-analysis and more, for better discoverability in npm search.

Testing

Added 13 new tests for the AI module (113 total). AI tests use mocked
API calls so the full suite runs offline with no API key required.

Upgrade

npx predeploy-check@latest --help

The --ai flag shows its current status (which provider is active, or
how to enable it) directly in the help output.

Full Changelog: https://github.com/Alok-Fusion/predeploy_check/commits/v1.5.0

v1.4.0 — Railway support

Choose a tag to compare

@Alok-Fusion Alok-Fusion released this 23 Aug 15:34

What's new

Railway deployment check — predeploy-check now supports Railway
alongside Render and Vercel. The new check catches five confirmed
real-world Railway failure patterns:

Hardcoded port — detects app.listen(3000) without a process.env.PORT
fallback. Railway injects the port at runtime, so hardcoded values cause
apps that build and run fine locally to silently fail in production.

Invalid builder — flags unsupported values in railway.toml or
railway.json. Only nixpacks, dockerfile, heroku, and railpack
are valid. Any other value causes a silent build failure.

Missing Nixpacks build plan — warns when there's no package.json,
requirements.txt, or nixpacks.toml, meaning Nixpacks cannot detect
the project type and will refuse to build.

Monorepo without explicit routing — warns when multiple subdirectories
each contain a package.json and no watchPaths is configured, since
Nixpacks won't know which app to deploy.

Missing start command — flags when neither package.json nor any
Railway config file provides a start command.

The Railway check skips automatically on non-Railway projects — it only
runs when railway.toml, railway.json, or nixpacks.toml is detected,
so Render/Vercel-only users see no change.

Testing

Added 18 new tests for the Railway check (100 total across the full suite).

Config

railway is now a valid check ID in predeploy.config.js:

module.exports = {
  checks: { 'railway': false } // disable if needed
};

Full Changelog: https://github.com/Alok-Fusion/predeploy_check/commits/v1.4.0

v1.3.0 — Configuration file support

Choose a tag to compare

@Alok-Fusion Alok-Fusion released this 08 Jul 08:27

What's new

predeploy.config.js support — create a config file in your project
root to customise which checks run and how they behave.

// predeploy.config.js
module.exports = {
  checks: {
    'render-start': false,   // disable checks you don't need
    'missing-engines': true,
  },
  ignore: ['legacy/'],       // skip specific paths
  options: {
    'env-vars': {
      envFiles: ['.env.production'],  // check extra env files
    },
  },
};

Partial configs work correctly — only specify what you want to change,
everything else stays enabled. Disabled checks appear as ⏭️ skipped with
a clear explanation rather than silently disappearing.

Details

  • Config validation gives clear, actionable error messages for every
    invalid case (wrong type, unknown check ID, syntax errors, etc.)
  • A "config loaded" notice appears in terminal output when a config file
    is found, so you always know whether your config was picked up
  • --json output now includes a configFile field showing which config
    was used (or null if none)
  • Fixed a self-dependency bug where predeploy-check was accidentally
    listed as its own npm dependency

Testing

Added 23 new tests covering the config system (82 total), including
validation error messages, partial config merging, ignore path matching,
and CLI integration tests.

Full Changelog: https://github.com/Alok-Fusion/predeploy_check/commits/v1.3.0

v1.2.0 — JSON output mode

Choose a tag to compare

@Alok-Fusion Alok-Fusion released this 27 Jun 10:44

What's new

--json flag — outputs a single, clean machine-readable JSON object
instead of colored terminal text, designed for CI dashboards, GitHub bots,
editor extensions, or any tool that needs to parse results programmatically.

npx predeploy-check --json | jq '.summary'

--help --json and --version --json also return structured JSON, for
tools that want to introspect the CLI itself.

Under the hood

Refactored the core runner to separate result-collection from output
formatting, so the terminal output and JSON output now share a single
source of truth — they can't drift out of sync or disagree on a result.

Testing

Added 10 new tests covering the JSON output, including real end-to-end
CLI invocations (not just internal function calls), bringing the total
test suite to 59 tests.

Docs

Updated the README with a clearer opening description and full
documentation of the JSON output shape.

Full Changelog: https://github.com/Alok-Fusion/predeploy_check/commits/v1.2.0

v1.1.1 — Test suite, --live mode, and a real bug fix

Choose a tag to compare

@Alok-Fusion Alok-Fusion released this 22 Jun 12:10

What's new

Test suite (49 tests) — every check now has automated test coverage
using Node's built-in test runner. No extra dependencies needed; run with
npm test.

--live mode for the Python + Render check — instead of relying solely
on a built-in list of known Rust-compiled packages, --live queries PyPI
directly to confirm whether a prebuilt wheel actually exists for your
exact pinned version and Python release. Turns a "might be missing"
warning into a confirmed pass or fail.

npx predeploy-check --live

Falls back gracefully to the static check if there's no internet access,
the version is unpinned, or you're on a Node version without global fetch
(Node 18+ required for this specific flag).

Bug fix — the case-sensitivity check wasn't correctly detecting
mismatched directory names in imports (e.g. require('./Helpers')
when the actual folder on disk is helpers/). This is exactly the kind
of mismatch that breaks builds on Vercel's case-sensitive filesystem,
so it's a meaningful fix, not cosmetic.

Package metadata — added proper author, repository, and homepage
fields so the npm package page links back to this repo correctly.

Full Changelog: https://github.com/Alok-Fusion/predeploy_check/commits/v1.1.1

Full Changelog: v1.0.0...v1.1.1

v1.0.0 — Initial release

Choose a tag to compare

@Alok-Fusion Alok-Fusion released this 20 Jun 15:00

First public release of predeploy-check.

A CLI tool that scans your project before you push to Render or Vercel,
and flags known deployment-failure patterns before they cost you a wasted
deploy cycle.

What it checks

  • Python + Render: Rust-compiled dependencies (pydantic, fastapi, etc.)
    on Python versions that may not have prebuilt wheels yet
  • ESLint + Vercel: peer-dependency mismatches between eslint and
    eslint-config-next, plus deprecated config options on newer Next.js versions
  • Case sensitivity: import paths that work locally on Windows/Mac but
    break on Vercel's case-sensitive Linux filesystem
  • Missing engines field in package.json
  • Environment variables referenced in code but not declared
  • Missing start command for Render deployments

Usage

```
npx predeploy-check
```

No install required. Exit code 1 if any check fails, so it can also be
wired into a CI pipeline to block bad deploys automatically.

Available now on npm: https://www.npmjs.com/package/predeploy-check

Full Changelog: https://github.com/Alok-Fusion/predeploy_check/commits/v1.0.0