@iota-big3/sdk-production
Version:
Production readiness tools and utilities for SDK
94 lines • 2.03 kB
TypeScript
/**
* Release Manager
* Automated release management with semantic versioning
*/
import * as semver from 'semver';
export interface ReleaseConfig {
packagePath: string;
changelogPath?: string;
tagPrefix?: string;
prerelease?: string;
dryRun?: boolean;
}
export interface ReleaseInfo {
currentVersion: string;
nextVersion: string;
releaseType: semver.ReleaseType;
changes: Change[];
breaking: boolean;
}
export interface Change {
type: 'feat' | 'fix' | 'docs' | 'style' | 'refactor' | 'test' | 'chore';
scope?: string;
subject: string;
breaking?: boolean;
hash: string;
author: string;
date: Date;
}
export declare class ReleaseManager {
private config;
constructor(config: ReleaseConfig);
/**
* Analyze commits and determine next version
*/
analyzeRelease(): Promise<ReleaseInfo>;
/**
* Execute release
*/
release(releaseType?: semver.ReleaseType): Promise<void>;
/**
* Read package.json
*/
private readPackageJson;
/**
* Update version in package.json
*/
private updateVersion;
/**
* Get last tag for version
*/
private getLastTag;
/**
* Get commits since tag
*/
private getCommitsSince;
/**
* Parse commits into changes
*/
private parseCommits;
/**
* Determine release type from changes
*/
private determineReleaseType;
/**
* Update changelog
*/
private updateChangelog;
/**
* Commit release changes
*/
private commitRelease;
/**
* Create git tag
*/
private createTag;
/**
* Publish to npm
*/
private publish;
}
/**
* Changelog generator
*/
export declare class ChangelogGenerator {
/**
* Generate changelog from git history
*/
static generate(options?: {
from?: string;
to?: string;
format?: 'markdown' | 'json';
}): Promise<string>;
}
//# sourceMappingURL=release-manager.d.ts.map