From 4a8a5d08c293929d85f694036923234fa1db1423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Hanu=C5=A1?= Date: Sun, 21 Jun 2026 23:11:54 +0200 Subject: [PATCH] feat(manifest): rename `name` to match `id` across 19 templates, add `aliases` for back-compat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The manifest has 19 templates where `name` is fundamentally different from `id` (e.g. `id: "js-empty"` ↔ `name: "project_empty"`, `id: "js-start"` ↔ `name: "getting_started_node"`). All 18 Python templates already follow `id == name`, but the JS/TS legacy naming (`project_*`, `getting_started_*`) breaks the pattern. This is a discoverability cost: agents and humans both read the hyphenated `id` (which matches the directory layout and GitHub URLs) and try `apify create -t js-empty` only to discover the CLI looks up by `name`, which is `project_empty`. This commit: 1. Renames every `name` field where `name != id` to match `id`. 2. Adds the old `name` to the `aliases` array (preserving any existing aliases) so backward-compat is maintained. `apify create -t project_empty` keeps working (via alias). `apify create -t js-empty` starts working (via canonical name). REQUIRES coordinated change in apify-cli to look up by `name` OR `aliases`. See apify/apify-cli#XXXX. Without that PR, `apify create -t js-empty` fails because the CLI's `getTemplateDefinition()` looks up only by `t.name === input`. 19 templates affected: js-crawlee-cheerio, js-crawlee-puppeteer-chrome, js-crawlee-playwright-chrome, js-crawlee-playwright-camoufox, js-cypress, js-empty, js-langchain, js-langgraph-agent, js-standby, js-start, ts-crawlee-cheerio, ts-crawlee-puppeteer-chrome, ts-crawlee-playwright-chrome, ts-crawlee-playwright-camoufox, ts-empty, ts-playwright-test-runner, ts-standby, ts-start, ts-start-bun. Surgical text edit — no other formatting changes. Diff: templates/manifest.json | 57 +++++++++++++++++++-- 1 file changed, 38 insertions(+), 19 deletions(-) Refs: chocholous/apify-evals F37. --- templates/manifest.json | 57 +++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/templates/manifest.json b/templates/manifest.json index 54f017e3a..16bccbf40 100644 --- a/templates/manifest.json +++ b/templates/manifest.json @@ -356,7 +356,8 @@ }, { "id": "js-crawlee-cheerio", - "name": "project_cheerio_crawler_js", + "name": "js-crawlee-cheerio", + "aliases": ["project_cheerio_crawler_js"], "label": "Crawlee + Cheerio", "category": "javascript", "technologies": ["nodejs", "crawlee", "cheerio"], @@ -373,7 +374,8 @@ }, { "id": "js-start", - "name": "getting_started_node", + "name": "js-start", + "aliases": ["getting_started_node"], "label": "One‑Page HTML Scraper with Cheerio", "description": "Scrape single page with provided URL with Axios and extract data from page's HTML with Cheerio.", "category": "javascript", @@ -389,7 +391,8 @@ }, { "id": "ts-crawlee-cheerio", - "name": "project_cheerio_crawler_ts", + "name": "ts-crawlee-cheerio", + "aliases": ["project_cheerio_crawler_ts"], "label": "Crawlee + Cheerio", "category": "typescript", "technologies": ["nodejs", "crawlee", "cheerio"], @@ -406,7 +409,8 @@ }, { "id": "js-crawlee-puppeteer-chrome", - "name": "project_puppeteer_crawler_js", + "name": "js-crawlee-puppeteer-chrome", + "aliases": ["project_puppeteer_crawler_js"], "label": "Crawlee + Puppeteer + Chrome", "category": "javascript", "technologies": ["nodejs", "crawlee", "puppeteer", "chrome"], @@ -422,7 +426,8 @@ }, { "id": "js-crawlee-playwright-chrome", - "name": "project_playwright_crawler_js", + "name": "js-crawlee-playwright-chrome", + "aliases": ["project_playwright_crawler_js"], "label": "Crawlee + Playwright + Chrome", "category": "javascript", "technologies": ["nodejs", "crawlee", "playwright", "chrome"], @@ -438,7 +443,8 @@ }, { "id": "js-crawlee-playwright-camoufox", - "name": "project_playwright_camoufox_crawler_js", + "name": "js-crawlee-playwright-camoufox", + "aliases": ["project_playwright_camoufox_crawler_js"], "label": "Crawlee + Playwright + Camoufox", "category": "javascript", "technologies": ["nodejs", "crawlee", "playwright", "camoufox"], @@ -471,7 +477,8 @@ }, { "id": "ts-start", - "name": "getting_started_typescript", + "name": "ts-start", + "aliases": ["getting_started_typescript"], "label": "One‑Page HTML Scraper with Cheerio", "category": "typescript", "technologies": ["nodejs", "cheerio", "axios"], @@ -487,7 +494,8 @@ }, { "id": "ts-crawlee-puppeteer-chrome", - "name": "project_puppeteer_crawler_ts", + "name": "ts-crawlee-puppeteer-chrome", + "aliases": ["project_puppeteer_crawler_ts"], "label": "Crawlee + Puppeteer + Chrome", "category": "typescript", "technologies": ["nodejs", "crawlee", "puppeteer", "chrome"], @@ -503,7 +511,8 @@ }, { "id": "ts-crawlee-playwright-chrome", - "name": "project_playwright_crawler_ts", + "name": "ts-crawlee-playwright-chrome", + "aliases": ["project_playwright_crawler_ts"], "label": "Crawlee + Playwright + Chrome", "category": "typescript", "technologies": ["nodejs", "crawlee", "playwright", "chrome"], @@ -519,7 +528,8 @@ }, { "id": "ts-crawlee-playwright-camoufox", - "name": "project_playwright_camoufox_crawler_ts", + "name": "ts-crawlee-playwright-camoufox", + "aliases": ["project_playwright_camoufox_crawler_ts"], "label": "Crawlee + Playwright + Camoufox", "category": "typescript", "technologies": ["nodejs", "crawlee", "playwright", "camoufox"], @@ -535,7 +545,8 @@ }, { "id": "ts-playwright-test-runner", - "name": "project_playwright_test_runner", + "name": "ts-playwright-test-runner", + "aliases": ["project_playwright_test_runner"], "label": "Playwright + Chrome Test Runner", "category": "typescript", "technologies": ["nodejs", "playwright", "chrome"], @@ -552,7 +563,8 @@ }, { "id": "ts-empty", - "name": "ts_empty", + "name": "ts-empty", + "aliases": ["ts_empty"], "label": "Empty TypeScript project", "category": "typescript", "technologies": ["nodejs"], @@ -568,7 +580,8 @@ }, { "id": "ts-standby", - "name": "ts_standby", + "name": "ts-standby", + "aliases": ["ts_standby"], "label": "Standby TypeScript project", "category": "typescript", "technologies": ["nodejs"], @@ -585,7 +598,8 @@ }, { "id": "js-cypress", - "name": "project_cypress", + "name": "js-cypress", + "aliases": ["project_cypress"], "label": "Cypress", "category": "javascript", "technologies": ["nodejs", "cypress"], @@ -606,7 +620,8 @@ }, { "id": "js-empty", - "name": "project_empty", + "name": "js-empty", + "aliases": ["project_empty"], "label": "Empty JavaScript Project", "category": "javascript", "technologies": ["nodejs"], @@ -622,7 +637,8 @@ }, { "id": "js-standby", - "name": "js_standby", + "name": "js-standby", + "aliases": ["js_standby"], "label": "Standby JavaScript Project", "category": "javascript", "technologies": ["nodejs"], @@ -639,7 +655,8 @@ }, { "id": "js-langchain", - "name": "project_langchain_js", + "name": "js-langchain", + "aliases": ["project_langchain_js"], "label": "🦜️🔗 LangChain", "category": "javascript", "technologies": ["nodejs", "langchain"], @@ -655,7 +672,8 @@ }, { "id": "js-langgraph-agent", - "name": "project-langgraph-agent-javascript", + "name": "js-langgraph-agent", + "aliases": ["project-langgraph-agent-javascript"], "label": "LangGraph agent", "category": "javascript", "technologies": ["nodejs", "langgraph"], @@ -671,7 +689,8 @@ }, { "id": "ts-start-bun", - "name": "getting_started_typescript_bun", + "name": "ts-start-bun", + "aliases": ["getting_started_typescript_bun"], "label": "Start with TypeScript on Bun", "category": "typescript", "technologies": ["bun", "cheerio", "axios"],