fix(config): migrate configuration handling from npmextra to smartconfig
This commit is contained in:
@@ -19,6 +19,10 @@ node_modules/
|
|||||||
dist/
|
dist/
|
||||||
dist_*/
|
dist_*/
|
||||||
|
|
||||||
|
# rust
|
||||||
|
rust/target/
|
||||||
|
dist_rust/
|
||||||
|
|
||||||
# AI
|
# AI
|
||||||
.claude/
|
.claude/
|
||||||
.serena/
|
.serena/
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2026-03-24 - 2.13.10 - fix(config)
|
||||||
|
migrate configuration handling from npmextra to smartconfig
|
||||||
|
|
||||||
|
- replace @push.rocks/npmextra with @push.rocks/smartconfig across config, commit, format, and service modules
|
||||||
|
- switch managed project config file references from npmextra.json to smartconfig.json
|
||||||
|
- update formatting and package metadata checks to include smartconfig.json
|
||||||
|
- extend the gitignore template with Rust build output directories
|
||||||
|
|
||||||
## 2026-03-11 - 2.13.9 - fix(deps,readme)
|
## 2026-03-11 - 2.13.9 - fix(deps,readme)
|
||||||
bump dependencies and update README to prefer pnpm and document semantic commit flags
|
bump dependencies and update README to prefer pnpm and document semantic commit flags
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
"@push.rocks/early": "^4.0.4",
|
"@push.rocks/early": "^4.0.4",
|
||||||
"@push.rocks/gulp-function": "^3.0.7",
|
"@push.rocks/gulp-function": "^3.0.7",
|
||||||
"@push.rocks/lik": "^6.3.1",
|
"@push.rocks/lik": "^6.3.1",
|
||||||
"@push.rocks/npmextra": "^5.3.3",
|
"@push.rocks/smartconfig": "^6.0.0",
|
||||||
"@push.rocks/projectinfo": "^5.0.2",
|
"@push.rocks/projectinfo": "^5.0.2",
|
||||||
"@push.rocks/smartcli": "^4.0.20",
|
"@push.rocks/smartcli": "^4.0.20",
|
||||||
"@push.rocks/smartdelay": "^3.0.5",
|
"@push.rocks/smartdelay": "^3.0.5",
|
||||||
|
|||||||
26
pnpm-lock.yaml
generated
26
pnpm-lock.yaml
generated
@@ -26,15 +26,15 @@ importers:
|
|||||||
'@push.rocks/lik':
|
'@push.rocks/lik':
|
||||||
specifier: ^6.3.1
|
specifier: ^6.3.1
|
||||||
version: 6.3.1
|
version: 6.3.1
|
||||||
'@push.rocks/npmextra':
|
|
||||||
specifier: ^5.3.3
|
|
||||||
version: 5.3.3
|
|
||||||
'@push.rocks/projectinfo':
|
'@push.rocks/projectinfo':
|
||||||
specifier: ^5.0.2
|
specifier: ^5.0.2
|
||||||
version: 5.0.2
|
version: 5.0.2
|
||||||
'@push.rocks/smartcli':
|
'@push.rocks/smartcli':
|
||||||
specifier: ^4.0.20
|
specifier: ^4.0.20
|
||||||
version: 4.0.20
|
version: 4.0.20
|
||||||
|
'@push.rocks/smartconfig':
|
||||||
|
specifier: ^6.0.0
|
||||||
|
version: 6.0.0
|
||||||
'@push.rocks/smartdelay':
|
'@push.rocks/smartdelay':
|
||||||
specifier: ^3.0.5
|
specifier: ^3.0.5
|
||||||
version: 3.0.5
|
version: 3.0.5
|
||||||
@@ -1072,6 +1072,9 @@ packages:
|
|||||||
'@push.rocks/smartclickhouse@2.2.0':
|
'@push.rocks/smartclickhouse@2.2.0':
|
||||||
resolution: {integrity: sha512-eTzKiREIPSzL1kPkVyD6vEbn+WV/DvQqDjP67VlhNlQGbRcemnJG/eLrUUR1ytmdIqnsZGEK6UYBgyj5nhzLNQ==}
|
resolution: {integrity: sha512-eTzKiREIPSzL1kPkVyD6vEbn+WV/DvQqDjP67VlhNlQGbRcemnJG/eLrUUR1ytmdIqnsZGEK6UYBgyj5nhzLNQ==}
|
||||||
|
|
||||||
|
'@push.rocks/smartconfig@6.0.0':
|
||||||
|
resolution: {integrity: sha512-ohXwJdbDXV2budErnZKWBOz01YkjP6gJsZ7QM9+6Wsh+r7O1CVT3JpV+mD8xJWy5tZRHI+3B9L8z0+WkIDtKzw==}
|
||||||
|
|
||||||
'@push.rocks/smartcrypto@2.0.4':
|
'@push.rocks/smartcrypto@2.0.4':
|
||||||
resolution: {integrity: sha512-1+/5bsjyataf5uUkUNnnVXGRAt+gHVk1KDzozjTqgqJxHvQk1d9fVDohL6CxUhUucTPtu5VR5xNBiV8YCDuGyw==}
|
resolution: {integrity: sha512-1+/5bsjyataf5uUkUNnnVXGRAt+gHVk1KDzozjTqgqJxHvQk1d9fVDohL6CxUhUucTPtu5VR5xNBiV8YCDuGyw==}
|
||||||
|
|
||||||
@@ -5752,6 +5755,23 @@ snapshots:
|
|||||||
'@push.rocks/smarturl': 3.1.0
|
'@push.rocks/smarturl': 3.1.0
|
||||||
'@push.rocks/webrequest': 4.0.5
|
'@push.rocks/webrequest': 4.0.5
|
||||||
|
|
||||||
|
'@push.rocks/smartconfig@6.0.0':
|
||||||
|
dependencies:
|
||||||
|
'@push.rocks/qenv': 6.1.3
|
||||||
|
'@push.rocks/smartfile': 11.2.7
|
||||||
|
'@push.rocks/smartjson': 5.2.0
|
||||||
|
'@push.rocks/smartlog': 3.2.1
|
||||||
|
'@push.rocks/smartpath': 6.0.0
|
||||||
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
|
'@push.rocks/smartrx': 3.0.10
|
||||||
|
'@push.rocks/taskbuffer': 3.5.0
|
||||||
|
'@tsclass/tsclass': 9.3.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@nuxt/kit'
|
||||||
|
- react
|
||||||
|
- supports-color
|
||||||
|
- vue
|
||||||
|
|
||||||
'@push.rocks/smartcrypto@2.0.4':
|
'@push.rocks/smartcrypto@2.0.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/smartpromise': 4.2.3
|
'@push.rocks/smartpromise': 4.2.3
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@git.zone/cli',
|
name: '@git.zone/cli',
|
||||||
version: '2.13.9',
|
version: '2.13.10',
|
||||||
description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
|
description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export class GitzoneConfig {
|
|||||||
public data: IGitzoneConfigData;
|
public data: IGitzoneConfigData;
|
||||||
|
|
||||||
public async readConfigFromCwd() {
|
public async readConfigFromCwd() {
|
||||||
const npmextraInstance = new plugins.npmextra.Npmextra(paths.cwd);
|
const npmextraInstance = new plugins.npmextra.Smartconfig(paths.cwd);
|
||||||
this.data = npmextraInstance.dataFor<IGitzoneConfigData>('@git.zone/cli', {});
|
this.data = npmextraInstance.dataFor<IGitzoneConfigData>('@git.zone/cli', {});
|
||||||
|
|
||||||
// Read szci config for backward compatibility
|
// Read szci config for backward compatibility
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { ReleaseConfig } from '../mod_config/classes.releaseconfig.js';
|
|||||||
|
|
||||||
export const run = async (argvArg: any) => {
|
export const run = async (argvArg: any) => {
|
||||||
// Read commit config from npmextra.json
|
// Read commit config from npmextra.json
|
||||||
const npmextraConfig = new plugins.npmextra.Npmextra();
|
const npmextraConfig = new plugins.npmextra.Smartconfig();
|
||||||
const gitzoneConfig = npmextraConfig.dataFor<{
|
const gitzoneConfig = npmextraConfig.dataFor<{
|
||||||
commit?: {
|
commit?: {
|
||||||
alwaysTest?: boolean;
|
alwaysTest?: boolean;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ export class CommitConfig {
|
|||||||
* Load configuration from npmextra.json
|
* Load configuration from npmextra.json
|
||||||
*/
|
*/
|
||||||
public async load(): Promise<void> {
|
public async load(): Promise<void> {
|
||||||
const npmextraInstance = new plugins.npmextra.Npmextra(this.cwd);
|
const npmextraInstance = new plugins.npmextra.Smartconfig(this.cwd);
|
||||||
const gitzoneConfig = npmextraInstance.dataFor<any>('@git.zone/cli', {});
|
const gitzoneConfig = npmextraInstance.dataFor<any>('@git.zone/cli', {});
|
||||||
|
|
||||||
this.config = {
|
this.config = {
|
||||||
@@ -44,7 +44,7 @@ export class CommitConfig {
|
|||||||
* Save configuration to npmextra.json
|
* Save configuration to npmextra.json
|
||||||
*/
|
*/
|
||||||
public async save(): Promise<void> {
|
public async save(): Promise<void> {
|
||||||
const npmextraPath = plugins.path.join(this.cwd, 'npmextra.json');
|
const npmextraPath = plugins.path.join(this.cwd, 'smartconfig.json');
|
||||||
let npmextraData: any = {};
|
let npmextraData: any = {};
|
||||||
|
|
||||||
// Read existing npmextra.json
|
// Read existing npmextra.json
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export class ReleaseConfig {
|
|||||||
* Load configuration from npmextra.json
|
* Load configuration from npmextra.json
|
||||||
*/
|
*/
|
||||||
public async load(): Promise<void> {
|
public async load(): Promise<void> {
|
||||||
const npmextraInstance = new plugins.npmextra.Npmextra(this.cwd);
|
const npmextraInstance = new plugins.npmextra.Smartconfig(this.cwd);
|
||||||
const gitzoneConfig = npmextraInstance.dataFor<any>('@git.zone/cli', {});
|
const gitzoneConfig = npmextraInstance.dataFor<any>('@git.zone/cli', {});
|
||||||
|
|
||||||
// Also check szci for backward compatibility
|
// Also check szci for backward compatibility
|
||||||
@@ -49,7 +49,7 @@ export class ReleaseConfig {
|
|||||||
* Save configuration to npmextra.json
|
* Save configuration to npmextra.json
|
||||||
*/
|
*/
|
||||||
public async save(): Promise<void> {
|
public async save(): Promise<void> {
|
||||||
const npmextraPath = plugins.path.join(this.cwd, 'npmextra.json');
|
const npmextraPath = plugins.path.join(this.cwd, 'smartconfig.json');
|
||||||
let npmextraData: any = {};
|
let npmextraData: any = {};
|
||||||
|
|
||||||
// Read existing npmextra.json
|
// Read existing npmextra.json
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export const run = async (projectArg: Project) => {
|
|||||||
const gitzoneConfig = await projectArg.gitzoneConfig;
|
const gitzoneConfig = await projectArg.gitzoneConfig;
|
||||||
|
|
||||||
// Get copy configuration from npmextra.json
|
// Get copy configuration from npmextra.json
|
||||||
const npmextraConfig = new plugins.npmextra.Npmextra();
|
const npmextraConfig = new plugins.npmextra.Smartconfig();
|
||||||
const copyConfig = npmextraConfig.dataFor<any>('gitzone.format.copy', {
|
const copyConfig = npmextraConfig.dataFor<any>('gitzone.format.copy', {
|
||||||
patterns: [],
|
patterns: [],
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ const migrateAccessLevel = (npmextraJson: any): boolean => {
|
|||||||
*/
|
*/
|
||||||
export const run = async (projectArg: Project) => {
|
export const run = async (projectArg: Project) => {
|
||||||
const formatSmartstream = new plugins.smartstream.StreamWrapper([
|
const formatSmartstream = new plugins.smartstream.StreamWrapper([
|
||||||
plugins.smartgulp.src([`npmextra.json`]),
|
plugins.smartgulp.src([`smartconfig.json`]),
|
||||||
gulpFunction.forEach(async (fileArg: plugins.smartfile.SmartFile) => {
|
gulpFunction.forEach(async (fileArg: plugins.smartfile.SmartFile) => {
|
||||||
const fileString = fileArg.contents.toString();
|
const fileString = fileArg.contents.toString();
|
||||||
const npmextraJson = JSON.parse(fileString);
|
const npmextraJson = JSON.parse(fileString);
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ export const run = async (projectArg: Project) => {
|
|||||||
const formatStreamWrapper = new plugins.smartstream.StreamWrapper([
|
const formatStreamWrapper = new plugins.smartstream.StreamWrapper([
|
||||||
plugins.smartgulp.src([`package.json`]),
|
plugins.smartgulp.src([`package.json`]),
|
||||||
gulpFunction.forEach(async (fileArg: plugins.smartfile.SmartFile) => {
|
gulpFunction.forEach(async (fileArg: plugins.smartfile.SmartFile) => {
|
||||||
const npmextraConfig = new plugins.npmextra.Npmextra(paths.cwd);
|
const npmextraConfig = new plugins.npmextra.Smartconfig(paths.cwd);
|
||||||
const gitzoneData: any = npmextraConfig.dataFor('@git.zone/cli', {});
|
const gitzoneData: any = npmextraConfig.dataFor('@git.zone/cli', {});
|
||||||
const fileString = fileArg.contents.toString();
|
const fileString = fileArg.contents.toString();
|
||||||
const packageJson = JSON.parse(fileString);
|
const packageJson = JSON.parse(fileString);
|
||||||
@@ -149,7 +149,7 @@ export const run = async (projectArg: Project) => {
|
|||||||
'dist_ts_web/**/*',
|
'dist_ts_web/**/*',
|
||||||
'assets/**/*',
|
'assets/**/*',
|
||||||
'cli.js',
|
'cli.js',
|
||||||
'npmextra.json',
|
'smartconfig.json',
|
||||||
'readme.md',
|
'readme.md',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export class CopyFormatter extends BaseFormatter {
|
|||||||
const changes: IPlannedChange[] = [];
|
const changes: IPlannedChange[] = [];
|
||||||
|
|
||||||
// Get copy configuration from npmextra.json
|
// Get copy configuration from npmextra.json
|
||||||
const npmextraConfig = new plugins.npmextra.Npmextra();
|
const npmextraConfig = new plugins.npmextra.Smartconfig();
|
||||||
const copyConfig = npmextraConfig.dataFor<{ patterns: ICopyPattern[] }>(
|
const copyConfig = npmextraConfig.dataFor<{ patterns: ICopyPattern[] }>(
|
||||||
'gitzone.format.copy',
|
'gitzone.format.copy',
|
||||||
{ patterns: [] },
|
{ patterns: [] },
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ export class NpmextraFormatter extends BaseFormatter {
|
|||||||
|
|
||||||
async analyze(): Promise<IPlannedChange[]> {
|
async analyze(): Promise<IPlannedChange[]> {
|
||||||
const changes: IPlannedChange[] = [];
|
const changes: IPlannedChange[] = [];
|
||||||
const npmextraPath = 'npmextra.json';
|
const npmextraPath = 'smartconfig.json';
|
||||||
|
|
||||||
// Check if file exists
|
// Check if file exists
|
||||||
const exists = await plugins.smartfs.file(npmextraPath).exists();
|
const exists = await plugins.smartfs.file(npmextraPath).exists();
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ export class PackageJsonFormatter extends BaseFormatter {
|
|||||||
const packageJson = JSON.parse(currentContent);
|
const packageJson = JSON.parse(currentContent);
|
||||||
|
|
||||||
// Get gitzone config from npmextra
|
// Get gitzone config from npmextra
|
||||||
const npmextraConfig = new plugins.npmextra.Npmextra(paths.cwd);
|
const npmextraConfig = new plugins.npmextra.Smartconfig(paths.cwd);
|
||||||
const gitzoneData: any = npmextraConfig.dataFor('@git.zone/cli', {});
|
const gitzoneData: any = npmextraConfig.dataFor('@git.zone/cli', {});
|
||||||
|
|
||||||
// Set metadata from gitzone config
|
// Set metadata from gitzone config
|
||||||
@@ -156,7 +156,7 @@ export class PackageJsonFormatter extends BaseFormatter {
|
|||||||
'dist_ts_web/**/*',
|
'dist_ts_web/**/*',
|
||||||
'assets/**/*',
|
'assets/**/*',
|
||||||
'cli.js',
|
'cli.js',
|
||||||
'npmextra.json',
|
'smartconfig.json',
|
||||||
'readme.md',
|
'readme.md',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export class PrettierFormatter extends BaseFormatter {
|
|||||||
const rootConfigFiles = [
|
const rootConfigFiles = [
|
||||||
'package.json',
|
'package.json',
|
||||||
'tsconfig.json',
|
'tsconfig.json',
|
||||||
'npmextra.json',
|
'smartconfig.json',
|
||||||
'.prettierrc',
|
'.prettierrc',
|
||||||
'.prettierrc.json',
|
'.prettierrc.json',
|
||||||
'.prettierrc.js',
|
'.prettierrc.js',
|
||||||
@@ -232,7 +232,7 @@ export class PrettierFormatter extends BaseFormatter {
|
|||||||
|
|
||||||
private async getPrettierConfig(): Promise<any> {
|
private async getPrettierConfig(): Promise<any> {
|
||||||
// Try to load prettier config from the project
|
// Try to load prettier config from the project
|
||||||
const prettierConfig = new plugins.npmextra.Npmextra();
|
const prettierConfig = new plugins.npmextra.Smartconfig();
|
||||||
return prettierConfig.dataFor('prettier', {
|
return prettierConfig.dataFor('prettier', {
|
||||||
// Default prettier config
|
// Default prettier config
|
||||||
singleQuote: true,
|
singleQuote: true,
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export let run = async (
|
|||||||
const planner = new FormatPlanner();
|
const planner = new FormatPlanner();
|
||||||
|
|
||||||
// Get configuration from npmextra
|
// Get configuration from npmextra
|
||||||
const npmextraConfig = new plugins.npmextra.Npmextra();
|
const npmextraConfig = new plugins.npmextra.Smartconfig();
|
||||||
const formatConfig = npmextraConfig.dataFor<any>('@git.zone/cli.format', {
|
const formatConfig = npmextraConfig.dataFor<any>('@git.zone/cli.format', {
|
||||||
interactive: true,
|
interactive: true,
|
||||||
showDiffs: false,
|
showDiffs: false,
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import * as smartobject from '@push.rocks/smartobject';
|
|||||||
import * as smartnpm from '@push.rocks/smartnpm';
|
import * as smartnpm from '@push.rocks/smartnpm';
|
||||||
import * as smartstream from '@push.rocks/smartstream';
|
import * as smartstream from '@push.rocks/smartstream';
|
||||||
import * as through2 from 'through2';
|
import * as through2 from 'through2';
|
||||||
import * as npmextra from '@push.rocks/npmextra';
|
import * as npmextra from '@push.rocks/smartconfig';
|
||||||
import * as smartdiff from '@push.rocks/smartdiff';
|
import * as smartdiff from '@push.rocks/smartdiff';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ export class ServiceManager {
|
|||||||
* Load service configuration from npmextra.json
|
* Load service configuration from npmextra.json
|
||||||
*/
|
*/
|
||||||
private async loadServiceConfiguration(): Promise<void> {
|
private async loadServiceConfiguration(): Promise<void> {
|
||||||
const npmextraConfig = new plugins.npmextra.Npmextra(process.cwd());
|
const npmextraConfig = new plugins.npmextra.Smartconfig(process.cwd());
|
||||||
const gitzoneConfig = npmextraConfig.dataFor<any>('@git.zone/cli', {});
|
const gitzoneConfig = npmextraConfig.dataFor<any>('@git.zone/cli', {});
|
||||||
|
|
||||||
// Check if services array exists
|
// Check if services array exists
|
||||||
@@ -75,7 +75,7 @@ export class ServiceManager {
|
|||||||
* Save service configuration to npmextra.json
|
* Save service configuration to npmextra.json
|
||||||
*/
|
*/
|
||||||
private async saveServiceConfiguration(services: string[]): Promise<void> {
|
private async saveServiceConfiguration(services: string[]): Promise<void> {
|
||||||
const npmextraPath = plugins.path.join(process.cwd(), 'npmextra.json');
|
const npmextraPath = plugins.path.join(process.cwd(), 'smartconfig.json');
|
||||||
let npmextraData: any = {};
|
let npmextraData: any = {};
|
||||||
|
|
||||||
// Read existing npmextra.json if it exists
|
// Read existing npmextra.json if it exists
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import * as smartlog from '@push.rocks/smartlog';
|
import * as smartlog from '@push.rocks/smartlog';
|
||||||
import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local';
|
import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local';
|
||||||
import * as npmextra from '@push.rocks/npmextra';
|
import * as npmextra from '@push.rocks/smartconfig';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as projectinfo from '@push.rocks/projectinfo';
|
import * as projectinfo from '@push.rocks/projectinfo';
|
||||||
import * as smartcli from '@push.rocks/smartcli';
|
import * as smartcli from '@push.rocks/smartcli';
|
||||||
|
|||||||
Reference in New Issue
Block a user