WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit d992769

Browse files
authored
Refactoring and Enhancements
## 🎯 Main Features ### New Features - **Interactive CLI Commands** (#f6beb58): Added interactive selection for `uninstall` and `update` commands with confirmation prompts - **Local Installation Support** (#2a38056): Implemented local installation and dependency management capabilities - **Shallow Clone Support** (#176b756): Added shallow cloning to significantly improve dependency download speed - **Issue #123** - **Semantic Versioning** (#9e768ee, #b9dfd1e): - Enhanced latest release discovery using proper semantic versioning - **Issue #181** - Updated to semver v3 library with improved version constraint parsing - **Issue #209** - **Toolchain Configuration** (#658e8e0): Enhanced installation and configuration options for Delphi compiler and toolchain - **Issue #206** ### Bug Fixes - **Dependency Handling** (#44e13ea): Fixed `boss update` to only update explicitly requested dependencies instead of all packages - **Version Selection** (#9e768ee): Fixed `boss upgrade` using string comparison instead of semantic versioning (was selecting 3.0.9 over 3.0.12) - **JSON Error Handling** (#9e3cd18): Improved error handling for JSON unmarshalling in lock and package loading - **Authentication** (#3a979a3): Fixed error handling in authentication methods to use fatal errors when appropriate - **Dependency Loading** (#d092580): Updated dependency handling to use new package loading method ## 🏗️ Architecture & Code Quality ### Hexagonal Architecture Improvements - **Repository Pattern** (#d898f7b, #42fef5c): Refactored filesystem and git interfaces with proper error handling - **Service Layer** (#cf24239, #4181408): Improved package management and dependency handling with proper separation - **Dependency Injection** (#cf24239): Removed unused interfaces, implemented DefaultProjectCompiler and DefaultArtifactManager - **Cache Service** (#4181408): Renamed and reorganized cache service, introduced new lock service and dependency cache ### Code Quality Improvements - **Constants** (#c3647e2, #c07baf9, #0575b50): Replaced hardcoded values with constants for better maintainability - **Regular Expressions** (#c07baf9, #5bac7e0, #25923cc): Consolidated and reused compiled regex for better performance - **Error Handling** (#a229e73, #caad3ac): Improved error handling across DoInstall calls and command execution - **Code Deduplication** (#5151480, #94e3176): Simplified functions using filepath.Join and GetKey method ### Testing - **Unit Tests** (#eb1ae1d, #176d558, #b4470a4, #1209837): Added comprehensive unit tests for: - Dependency collection and warning handling - Command registration and caching mechanisms - Dependency cache functionality - Various packages and functions ## 📝 Documentation ### Code Documentation - **Package Comments** (#68751e1, #e6532e4, #09980e2): Enhanced package-level documentation across multiple files - **Function Comments** (#eeab430, #406df1b, #071d753, #66579c3, #e3e67b0): Added detailed function comments for clarity - **CLI Documentation** (#6b0bdfd): Enhanced CLI and core functionalities with detailed comments - **README Updates** (#4bfbb4e): Updated boss.json structure with detailed field descriptions - **Issue #95** ### User Experience - **Better Messages** (#b12aafd, #8a06819, #2602fd8): Enhanced error messages with emojis and clearer descriptions - **Progress Tracking** (#3906f3b, #240a0e8, #07b3b2b): Improved progress tracking and logging during builds and installations - **Status Icons** (#6b0bdfd, #3a979a3, #bd4fa2f, #31e581d): Updated status icons for better visual clarity ## 🔧 Technical Improvements ### Git Operations - **Git Client** (#1460057): Implemented Git client configuration and streamlined checkout/pull methods - **Issue #197** - **Error Returns** (#f6beb58): Refactored git Client methods to properly return errors ### Installation Process - **Dependency Tracking** (#3424b9e, #44e13ea): Added visited map to track processed dependencies and filter requested deps - **Warning Handling** (#500c53b, #4b965a0, #240a0e8): Enhanced warning handling and success message functionality - **Forced Updates** (#6d25900): Enabled forced updates for dependencies and lock version handling ### Compiler Support - **Architecture Support** (#07b3b2b): Updated Delphi version selection to support architecture specification - **Version Handling** (#d143c9e): Updated Delphi compiler version in README ### Logging & Output - **Message System** (#c4f42258, #bd4fa2f): Simplified logging by removing style parameter from Info method - **Emoji Support** (#2602fd8, #3906f3b, #8b96211): Enhanced logging with emojis for better user experience - **Consistency** (#bd4fa2f): Replaced pterm logging with msg package for consistency ## 📊 Statistics - **Total Commits**: 71 - **Features**: 8 - **Bug Fixes**: 5 - **Refactorings**: 45+ - **Documentation**: 15+ - **Style Improvements**: 20+ - **Tests Added**: Multiple test suites ## 🔗 Related Issues - #95 - boss.json documentation - #123 - Shallow clone support - #181 - Semantic versioning for upgrades - #197 - Git client improvements - #206 - Toolchain configuration - #209 - Semver v3 upgrade
2 parents e519380 + f0aea65 commit d992769

File tree

160 files changed

+12783
-2212
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+12783
-2212
lines changed

.github/workflows/ci.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
test:
14+
name: Test
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v5
18+
19+
- name: Set up Go
20+
uses: actions/setup-go@v5
21+
with:
22+
go-version-file: go.mod
23+
cache: true
24+
25+
- name: Run tests
26+
run: go test -v -race -coverprofile=coverage.out -covermode=atomic ./...
27+
28+
- name: Upload coverage to Codecov
29+
uses: codecov/codecov-action@v4
30+
with:
31+
files: ./coverage.out
32+
flags: unittests
33+
fail_ci_if_error: false
34+
env:
35+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
36+
37+
lint:
38+
name: Lint
39+
runs-on: ubuntu-latest
40+
steps:
41+
- uses: actions/checkout@v5
42+
43+
- name: Set up Go
44+
uses: actions/setup-go@v5
45+
with:
46+
go-version-file: go.mod
47+
cache: true
48+
49+
- name: Run go vet
50+
run: go vet ./...
51+
52+
- name: Run golangci-lint
53+
uses: golangci/golangci-lint-action@v6
54+
with:
55+
version: v1.64
56+
57+
build:
58+
name: Build
59+
runs-on: ${{ matrix.os }}
60+
strategy:
61+
matrix:
62+
os: [ubuntu-latest, windows-latest]
63+
steps:
64+
- uses: actions/checkout@v5
65+
66+
- name: Set up Go
67+
uses: actions/setup-go@v5
68+
with:
69+
go-version-file: go.mod
70+
cache: true
71+
72+
- name: Build
73+
run: go build -v ./...
74+
75+
security:
76+
name: Security Scan
77+
runs-on: ubuntu-latest
78+
steps:
79+
- uses: actions/checkout@v5
80+
81+
- name: Set up Go
82+
uses: actions/setup-go@v5
83+
with:
84+
go-version-file: go.mod
85+
cache: true
86+
87+
- name: Run gosec
88+
uses: securego/gosec@master
89+
with:
90+
args: -exclude=G407,G401,G501 ./...

0 commit comments

Comments
 (0)