feat(logging): Enhance logging and module publishing with color-coded output, progress tracking, and improved CLI startup
This commit is contained in:
31
.serena/memories/code_style_conventions.md
Normal file
31
.serena/memories/code_style_conventions.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Code Style and Conventions
|
||||
|
||||
## Naming Conventions
|
||||
- Interfaces prefixed with `I` (e.g., `ITsPublishJson`)
|
||||
- Types prefixed with `T` (when applicable)
|
||||
- All filenames in lowercase
|
||||
- Class files named as `classes.<classname>.ts`
|
||||
- Test files named as `test.<name>.ts` or `*.both.ts`, `*.node.ts`, `*.browser.ts`
|
||||
|
||||
## Import Style
|
||||
- Module dependencies imported via `ts/plugins.ts`
|
||||
- Use full path references: `plugins.myModule.myClass()`
|
||||
- Import TypeScript files directly in tests, never compiled JavaScript
|
||||
|
||||
## Code Patterns
|
||||
- Async/await preferred over callbacks
|
||||
- Classes for main logic (TsPublish, PublishModule)
|
||||
- Centralized logging via `logging.ts`
|
||||
- Plugins pattern for external dependencies
|
||||
|
||||
## TypeScript Conventions
|
||||
- Use type annotations
|
||||
- Export classes and functions explicitly
|
||||
- Module exports through index.ts
|
||||
- Interfaces in separate interfaces/ directory
|
||||
|
||||
## File Organization
|
||||
- Source code in `ts/` directory
|
||||
- Tests in `test/` directory
|
||||
- Compiled output in `dist_ts/`
|
||||
- No uppercase in filenames
|
49
.serena/memories/logging_improvements_2025.md
Normal file
49
.serena/memories/logging_improvements_2025.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Logging Improvements - January 2025
|
||||
|
||||
## Overview
|
||||
Enhanced TSPublish logging system with @push.rocks/smartlog and @push.rocks/consolecolor for better visual feedback and user experience.
|
||||
|
||||
## Changes Made
|
||||
|
||||
### 1. Dependencies
|
||||
- Added @push.rocks/consolecolor (v2.0.3) for colored console output
|
||||
|
||||
### 2. Enhanced logging.ts
|
||||
- Created color-coded log level indicators with emojis
|
||||
- Added specialized logging functions:
|
||||
- `logInfo()` - Cyan info messages
|
||||
- `logSuccess()` - Green success messages
|
||||
- `logWarn()` - Orange warning messages
|
||||
- `logError()` - Red error messages
|
||||
- `logStart()` - Blue start indicators
|
||||
- `logDone()` - Green completion indicators
|
||||
- `logPackage()` - Package-specific messages with icons
|
||||
- `logBuild()` - Build messages with hammer icon
|
||||
- `logPublish()` - Publish messages with rocket icon
|
||||
- `logOngoing()` - Ongoing operations with spinner icon
|
||||
- Added visual helpers:
|
||||
- `logSeparator()` - Cyan line separator
|
||||
- `logHeader()` - Colored section headers
|
||||
- `logProgress()` - Progress bar with percentage
|
||||
|
||||
### 3. Updated classes.tspublish.ts
|
||||
- Added colored header at startup
|
||||
- Module discovery uses colored bullets
|
||||
- Progress tracking for module processing
|
||||
- Better visual separation between phases
|
||||
|
||||
### 4. Updated classes.publishmodule.ts
|
||||
- Added visual indicators for each operation phase
|
||||
- Build process shows building status and completion
|
||||
- Publishing shows rocket icon and success message
|
||||
- NPM registry checks have clearer warnings
|
||||
|
||||
### 5. Updated index.ts
|
||||
- Replaced console.log with logStart()
|
||||
|
||||
## Benefits
|
||||
- Clearer visual hierarchy of information
|
||||
- Easier to track progress through long operations
|
||||
- Better distinction between info, warnings, and errors
|
||||
- More professional and polished CLI output
|
||||
- Semantic icons make status immediately recognizable
|
45
.serena/memories/project_overview.md
Normal file
45
.serena/memories/project_overview.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# TSPublish Project Overview
|
||||
|
||||
## Purpose
|
||||
TSPublish is a tool designed to publish multiple, concise, and small packages from monorepos, specifically for TypeScript projects within a git environment. It helps manage and automate the publishing of individual packages from a monorepo structure.
|
||||
|
||||
## Tech Stack
|
||||
- **Language**: TypeScript
|
||||
- **Runtime**: Node.js
|
||||
- **Package Manager**: pnpm (v10.11.0)
|
||||
- **Build Tool**: @git.zone/tsbuild
|
||||
- **Testing**: @git.zone/tstest with @push.rocks/tapbundle
|
||||
- **CLI Framework**: @push.rocks/smartcli
|
||||
- **Logging**: @push.rocks/smartlog (currently basic usage)
|
||||
|
||||
## Main Dependencies
|
||||
- @push.rocks/smartcli - CLI interface
|
||||
- @push.rocks/smartdelay - Delay utilities
|
||||
- @push.rocks/smartfile - File operations
|
||||
- @push.rocks/smartlog - Logging
|
||||
- @push.rocks/smartnpm - NPM registry interactions
|
||||
- @push.rocks/smartpath - Path utilities
|
||||
- @push.rocks/smartrequest - HTTP requests
|
||||
- @push.rocks/smartshell - Shell command execution
|
||||
|
||||
## Project Structure
|
||||
- `ts/` - TypeScript source files
|
||||
- `index.ts` - Main entry point
|
||||
- `classes.tspublish.ts` - Main TsPublish class
|
||||
- `classes.publishmodule.ts` - PublishModule class for individual packages
|
||||
- `classes.giteaassets.ts` - Gitea assets management
|
||||
- `logging.ts` - Logger configuration
|
||||
- `plugins.ts` - External dependencies
|
||||
- `paths.ts` - Path constants
|
||||
- `interfaces/` - TypeScript interfaces
|
||||
- `test/` - Test files
|
||||
- `dist_ts/` - Compiled JavaScript output
|
||||
- `cli.js` - CLI entry point (bin script)
|
||||
|
||||
## Key Features
|
||||
1. Scans monorepo for directories starting with "ts"
|
||||
2. Validates packages via tspublish.json files
|
||||
3. Creates package.json dynamically for each module
|
||||
4. Builds TypeScript code before publishing
|
||||
5. Checks npm registry for version conflicts
|
||||
6. Publishes packages to npm registry
|
34
.serena/memories/suggested_commands.md
Normal file
34
.serena/memories/suggested_commands.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Suggested Commands for TSPublish Development
|
||||
|
||||
## Build & Test Commands
|
||||
- `pnpm build` - Build the TypeScript project (runs tsbuild --web --allowimplicitany)
|
||||
- `pnpm test` - Run the test suite (runs tstest test/ --web)
|
||||
- `pnpm buildDocs` - Generate documentation (runs tsdoc)
|
||||
|
||||
## Development Commands
|
||||
- `tsx ts/index.ts` - Run the main entry point directly
|
||||
- `tsx test/test.ts` - Run specific test file
|
||||
- `tstest test/test.some.ts --verbose` - Run specific test with verbose output
|
||||
- `tsbuild check test/**/* --skiplibcheck` - Type check test files
|
||||
|
||||
## Package Management
|
||||
- `pnpm install` - Install dependencies
|
||||
- `pnpm install --save-dev <package>` - Install dev dependency
|
||||
- `pnpm add <package>` - Add production dependency
|
||||
|
||||
## Git Commands (Linux)
|
||||
- `git status` - Check repository status
|
||||
- `git diff` - View changes
|
||||
- `git log` - View commit history
|
||||
- `git mv <old> <new>` - Move/rename files preserving history
|
||||
|
||||
## File System Commands (Linux)
|
||||
- `ls` - List directory contents
|
||||
- `cd` - Change directory
|
||||
- `find` - Find files
|
||||
- `grep` - Search file contents
|
||||
- `cat` - Display file contents
|
||||
|
||||
## CLI Usage
|
||||
- `./cli.js` - Run the tspublish CLI
|
||||
- `node cli.js` - Alternative way to run CLI
|
29
.serena/memories/task_completion_checklist.md
Normal file
29
.serena/memories/task_completion_checklist.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Task Completion Checklist
|
||||
|
||||
When completing any development task on TSPublish:
|
||||
|
||||
## 1. Build Verification
|
||||
- Run `pnpm build` to ensure TypeScript compiles without errors
|
||||
- No use of --skiplibcheck flag
|
||||
|
||||
## 2. Test Execution
|
||||
- Run `pnpm test` to verify all tests pass
|
||||
- For specific test files: `tsx test/test.specific.ts`
|
||||
|
||||
## 3. Type Checking
|
||||
- Type check test files: `tsbuild check test/**/* --skiplibcheck`
|
||||
- Type check source files: `pnpm build`
|
||||
|
||||
## 4. Code Quality
|
||||
- Ensure changes are focused and goal-oriented
|
||||
- Verify no unnecessary modifications were made
|
||||
- Check that code follows existing patterns and conventions
|
||||
|
||||
## 5. Documentation
|
||||
- Update readme.hints.md if new insights discovered
|
||||
- Update readme.plan.md if working from a plan
|
||||
|
||||
## 6. Version Control
|
||||
- Use `git mv` for file renames to preserve history
|
||||
- Make small, focused commits
|
||||
- Never commit without explicit user request
|
Reference in New Issue
Block a user