Compare commits
12 Commits
v4.36.1
...
v4.37.0-be
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75ba8d82e1 | ||
|
|
f3e429d746 | ||
|
|
5ceca3aeb9 | ||
|
|
8e324f60b0 | ||
|
|
8a29f0e319 | ||
|
|
d92ba835fa | ||
|
|
9868437f10 | ||
|
|
d563266b97 | ||
|
|
3efcfd54d4 | ||
|
|
31e44b110e | ||
|
|
ffcb4d4bf2 | ||
|
|
3f6b67443d |
1
.github/workflows/release.yaml
vendored
1
.github/workflows/release.yaml
vendored
@@ -3,6 +3,7 @@ name: Release
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
- stable
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
version_type:
|
version_type:
|
||||||
|
|||||||
@@ -1,18 +1,21 @@
|
|||||||
{
|
{
|
||||||
"branches": ["main"],
|
"branches": [
|
||||||
|
{
|
||||||
|
"name": "main",
|
||||||
|
"prerelease": "beta",
|
||||||
|
"channel": "beta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "stable",
|
||||||
|
"channel": "latest"
|
||||||
|
}
|
||||||
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"@semantic-release/commit-analyzer",
|
"@semantic-release/commit-analyzer",
|
||||||
"@semantic-release/release-notes-generator",
|
"@semantic-release/release-notes-generator",
|
||||||
"@semantic-release/changelog",
|
"@semantic-release/changelog",
|
||||||
"@semantic-release/npm",
|
"@semantic-release/npm",
|
||||||
"./tools/semantic-release-sync-installer.js",
|
"./tools/semantic-release-sync-installer.js",
|
||||||
[
|
|
||||||
"@semantic-release/git",
|
|
||||||
{
|
|
||||||
"assets": ["package.json", "package-lock.json", "tools/installer/package.json", "CHANGELOG.md"],
|
|
||||||
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"@semantic-release/github"
|
"@semantic-release/github"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,9 +1,15 @@
|
|||||||
## [4.36.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.36.0...v4.36.1) (2025-08-09)
|
## [4.36.2](https://github.com/bmadcode/BMAD-METHOD/compare/v4.36.1...v4.36.2) (2025-08-10)
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
* update Node.js version to 20 in release workflow and reduce Discord spam ([3f7e19a](https://github.com/bmadcode/BMAD-METHOD/commit/3f7e19a098155341a2b89796addc47b0623cb87a))
|
* align installer dependencies with root package versions for ESM compatibility ([#420](https://github.com/bmadcode/BMAD-METHOD/issues/420)) ([3f6b674](https://github.com/bmadcode/BMAD-METHOD/commit/3f6b67443d61ae6add98656374bed27da4704644))
|
||||||
|
|
||||||
|
## [4.36.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.36.0...v4.36.1) (2025-08-09)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- update Node.js version to 20 in release workflow and reduce Discord spam ([3f7e19a](https://github.com/bmadcode/BMAD-METHOD/commit/3f7e19a098155341a2b89796addc47b0623cb87a))
|
||||||
|
|
||||||
# [4.36.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.35.3...v4.36.0) (2025-08-09)
|
# [4.36.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.35.3...v4.36.0) (2025-08-09)
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ See [Expansion Packs Guide](../docs/expansion-packs.md) for detailed examples an
|
|||||||
|
|
||||||
### Template Rules
|
### Template Rules
|
||||||
|
|
||||||
Templates follow the [BMad Document Template](common/utils/bmad-doc-template.md) specification using YAML format:
|
Templates follow the [BMad Document Template](../common/utils/bmad-doc-template.md) specification using YAML format:
|
||||||
|
|
||||||
1. **Structure**: Templates are defined in YAML with clear metadata, workflow configuration, and section hierarchy
|
1. **Structure**: Templates are defined in YAML with clear metadata, workflow configuration, and section hierarchy
|
||||||
2. **Separation of Concerns**: Instructions for LLMs are in `instruction` fields, separate from content
|
2. **Separation of Concerns**: Instructions for LLMs are in `instruction` fields, separate from content
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.36.1",
|
"version": "4.36.2",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.36.1",
|
"version": "4.36.2",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@kayvan/markdown-tree-parser": "^1.5.0",
|
"@kayvan/markdown-tree-parser": "^1.5.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.36.1",
|
"version": "4.36.2",
|
||||||
"description": "Breakthrough Method of Agile AI-driven Development",
|
"description": "Breakthrough Method of Agile AI-driven Development",
|
||||||
"main": "tools/cli.js",
|
"main": "tools/cli.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -6,13 +6,17 @@ const fs = require('fs').promises;
|
|||||||
const yaml = require('js-yaml');
|
const yaml = require('js-yaml');
|
||||||
const chalk = require('chalk');
|
const chalk = require('chalk');
|
||||||
const inquirer = require('inquirer');
|
const inquirer = require('inquirer');
|
||||||
|
const semver = require('semver');
|
||||||
|
const https = require('https');
|
||||||
|
|
||||||
// Handle both execution contexts (from root via npx or from installer directory)
|
// Handle both execution contexts (from root via npx or from installer directory)
|
||||||
let version;
|
let version;
|
||||||
let installer;
|
let installer;
|
||||||
|
let packageName;
|
||||||
try {
|
try {
|
||||||
// Try installer context first (when run from tools/installer/)
|
// Try installer context first (when run from tools/installer/)
|
||||||
version = require('../package.json').version;
|
version = require('../package.json').version;
|
||||||
|
packageName = require('../package.json').name;
|
||||||
installer = require('../lib/installer');
|
installer = require('../lib/installer');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// Fall back to root context (when run via npx from GitHub)
|
// Fall back to root context (when run via npx from GitHub)
|
||||||
@@ -86,6 +90,60 @@ program
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Command to check if updates are available
|
||||||
|
program
|
||||||
|
.command('update-check')
|
||||||
|
.description('Check for BMad Update')
|
||||||
|
.action(async () => {
|
||||||
|
console.log('Checking for updates...');
|
||||||
|
|
||||||
|
// Make HTTP request to npm registry for latest version info
|
||||||
|
const req = https.get(`https://registry.npmjs.org/${packageName}/latest`, res => {
|
||||||
|
// Check for HTTP errors (non-200 status codes)
|
||||||
|
if (res.statusCode !== 200) {
|
||||||
|
console.error(chalk.red(`Update check failed: Received status code ${res.statusCode}`));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Accumulate response data chunks
|
||||||
|
let data = '';
|
||||||
|
res.on('data', chunk => data += chunk);
|
||||||
|
|
||||||
|
// Process complete response
|
||||||
|
res.on('end', () => {
|
||||||
|
try {
|
||||||
|
// Parse npm registry response and extract version
|
||||||
|
const latest = JSON.parse(data).version;
|
||||||
|
|
||||||
|
// Compare versions using semver
|
||||||
|
if (semver.gt(latest, version)) {
|
||||||
|
console.log(chalk.bold.blue(`⚠️ ${packageName} update available: ${version} → ${latest}`));
|
||||||
|
console.log(chalk.bold.blue('\nInstall latest by running:'));
|
||||||
|
console.log(chalk.bold.magenta(` npm install ${packageName}@latest`));
|
||||||
|
console.log(chalk.dim(' or'));
|
||||||
|
console.log(chalk.bold.magenta(` npx ${packageName}@latest`));
|
||||||
|
} else {
|
||||||
|
console.log(chalk.bold.blue(`✨ ${packageName} is up to date`));
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
// Handle JSON parsing errors
|
||||||
|
console.error(chalk.red('Failed to parse npm registry data:'), error.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Handle network/connection errors
|
||||||
|
req.on('error', error => {
|
||||||
|
console.error(chalk.red('Update check failed:'), error.message);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set 30 second timeout to prevent hanging
|
||||||
|
req.setTimeout(30000, () => {
|
||||||
|
req.destroy();
|
||||||
|
console.error(chalk.red('Update check timed out'));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
program
|
program
|
||||||
.command('list:expansions')
|
.command('list:expansions')
|
||||||
.description('List available expansion packs')
|
.description('List available expansion packs')
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ installation-options:
|
|||||||
ide-configurations:
|
ide-configurations:
|
||||||
cursor:
|
cursor:
|
||||||
name: Cursor
|
name: Cursor
|
||||||
rule-dir: .cursor/rules/
|
rule-dir: .cursor/rules/bmad/
|
||||||
format: multi-file
|
format: multi-file
|
||||||
command-suffix: .mdc
|
command-suffix: .mdc
|
||||||
instructions: |
|
instructions: |
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class IdeSetup extends BaseIdeSetup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async setupCursor(installDir, selectedAgent) {
|
async setupCursor(installDir, selectedAgent) {
|
||||||
const cursorRulesDir = path.join(installDir, ".cursor", "rules");
|
const cursorRulesDir = path.join(installDir, ".cursor", "rules", "bmad");
|
||||||
const agents = selectedAgent ? [selectedAgent] : await this.getAllAgentIds(installDir);
|
const agents = selectedAgent ? [selectedAgent] : await this.getAllAgentIds(installDir);
|
||||||
|
|
||||||
await fileManager.ensureDirectory(cursorRulesDir);
|
await fileManager.ensureDirectory(cursorRulesDir);
|
||||||
|
|||||||
888
tools/installer/package-lock.json
generated
888
tools/installer/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.36.1",
|
"version": "4.36.2",
|
||||||
"description": "BMad Method installer - AI-powered Agile development framework",
|
"description": "BMad Method installer - AI-powered Agile development framework",
|
||||||
"main": "lib/installer.js",
|
"main": "lib/installer.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -22,12 +22,13 @@
|
|||||||
"author": "BMad Team",
|
"author": "BMad Team",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chalk": "^5.4.1",
|
"chalk": "^4.1.2",
|
||||||
"commander": "^14.0.0",
|
"commander": "^14.0.0",
|
||||||
"fs-extra": "^11.3.0",
|
"fs-extra": "^11.3.0",
|
||||||
"inquirer": "^12.6.3",
|
"inquirer": "^8.2.6",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"ora": "^8.2.0"
|
"ora": "^5.4.1",
|
||||||
|
"semver": "^7.6.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20.0.0"
|
"node": ">=20.0.0"
|
||||||
|
|||||||
@@ -557,7 +557,7 @@ class V3ToV4Upgrader {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const ideMessages = {
|
const ideMessages = {
|
||||||
cursor: "Rules created in .cursor/rules/",
|
cursor: "Rules created in .cursor/rules/bmad/",
|
||||||
"claude-code": "Commands created in .claude/commands/BMad/",
|
"claude-code": "Commands created in .claude/commands/BMad/",
|
||||||
windsurf: "Rules created in .windsurf/rules/",
|
windsurf: "Rules created in .windsurf/rules/",
|
||||||
trae: "Rules created in.trae/rules/",
|
trae: "Rules created in.trae/rules/",
|
||||||
|
|||||||
Reference in New Issue
Block a user