appclean 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +41 -0
- package/.github/workflows/test.yml +37 -0
- package/ACTION_CHECKLIST.md +342 -0
- package/APPCLEAN_SUMMARY.md +309 -0
- package/CHANGELOG.md +205 -0
- package/CODE_OF_CONDUCT.md +49 -0
- package/CODE_REVIEW_REPORT.md +447 -0
- package/COMMUNITY_POSTS.md +307 -0
- package/CONTRIBUTING.md +121 -0
- package/DEPLOYMENT_GUIDE.md +345 -0
- package/DEPLOYMENT_STATUS.md +182 -0
- package/EXECUTIVE_REPORT.md +393 -0
- package/GITHUB_OPTIMIZATION.md +383 -0
- package/INDEX.md +165 -0
- package/LICENSE +21 -0
- package/MARKETING_SUMMARY.md +352 -0
- package/NPM_PACKAGE_OPTIMIZATION.md +281 -0
- package/NPM_PUBLISH.md +116 -0
- package/PROJECT_SUMMARY.txt +249 -0
- package/QUICKSTART.md +219 -0
- package/README.md +548 -0
- package/SECURITY.md +104 -0
- package/SETUP_GITHUB.md +237 -0
- package/TESTING_SUMMARY.md +379 -0
- package/dist/core/appUpdateChecker.d.ts +23 -0
- package/dist/core/appUpdateChecker.d.ts.map +1 -0
- package/dist/core/appUpdateChecker.js +159 -0
- package/dist/core/appUpdateChecker.js.map +1 -0
- package/dist/core/detector.d.ts +13 -0
- package/dist/core/detector.d.ts.map +1 -0
- package/dist/core/detector.js +99 -0
- package/dist/core/detector.js.map +1 -0
- package/dist/core/duplicateFileFinder.d.ts +14 -0
- package/dist/core/duplicateFileFinder.d.ts.map +1 -0
- package/dist/core/duplicateFileFinder.js +80 -0
- package/dist/core/duplicateFileFinder.js.map +1 -0
- package/dist/core/orphanedDependencyDetector.d.ts +19 -0
- package/dist/core/orphanedDependencyDetector.d.ts.map +1 -0
- package/dist/core/orphanedDependencyDetector.js +148 -0
- package/dist/core/orphanedDependencyDetector.js.map +1 -0
- package/dist/core/performanceOptimizer.d.ts +37 -0
- package/dist/core/performanceOptimizer.d.ts.map +1 -0
- package/dist/core/performanceOptimizer.js +128 -0
- package/dist/core/performanceOptimizer.js.map +1 -0
- package/dist/core/permissionHandler.d.ts +9 -0
- package/dist/core/permissionHandler.d.ts.map +1 -0
- package/dist/core/permissionHandler.js +89 -0
- package/dist/core/permissionHandler.js.map +1 -0
- package/dist/core/pluginSystem.d.ts +39 -0
- package/dist/core/pluginSystem.d.ts.map +1 -0
- package/dist/core/pluginSystem.js +120 -0
- package/dist/core/pluginSystem.js.map +1 -0
- package/dist/core/removalRecorder.d.ts +32 -0
- package/dist/core/removalRecorder.d.ts.map +1 -0
- package/dist/core/removalRecorder.js +79 -0
- package/dist/core/removalRecorder.js.map +1 -0
- package/dist/core/remover.d.ts +15 -0
- package/dist/core/remover.d.ts.map +1 -0
- package/dist/core/remover.js +225 -0
- package/dist/core/remover.js.map +1 -0
- package/dist/core/reportGenerator.d.ts +9 -0
- package/dist/core/reportGenerator.d.ts.map +1 -0
- package/dist/core/reportGenerator.js +328 -0
- package/dist/core/reportGenerator.js.map +1 -0
- package/dist/core/scheduledCleanup.d.ts +38 -0
- package/dist/core/scheduledCleanup.d.ts.map +1 -0
- package/dist/core/scheduledCleanup.js +127 -0
- package/dist/core/scheduledCleanup.js.map +1 -0
- package/dist/core/serviceFileDetector.d.ts +18 -0
- package/dist/core/serviceFileDetector.d.ts.map +1 -0
- package/dist/core/serviceFileDetector.js +136 -0
- package/dist/core/serviceFileDetector.js.map +1 -0
- package/dist/core/verificationModule.d.ts +14 -0
- package/dist/core/verificationModule.d.ts.map +1 -0
- package/dist/core/verificationModule.js +102 -0
- package/dist/core/verificationModule.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +333 -0
- package/dist/index.js.map +1 -0
- package/dist/managers/brewManager.d.ts +10 -0
- package/dist/managers/brewManager.d.ts.map +1 -0
- package/dist/managers/brewManager.js +130 -0
- package/dist/managers/brewManager.js.map +1 -0
- package/dist/managers/customManager.d.ts +8 -0
- package/dist/managers/customManager.d.ts.map +1 -0
- package/dist/managers/customManager.js +139 -0
- package/dist/managers/customManager.js.map +1 -0
- package/dist/managers/linuxManager.d.ts +10 -0
- package/dist/managers/linuxManager.d.ts.map +1 -0
- package/dist/managers/linuxManager.js +191 -0
- package/dist/managers/linuxManager.js.map +1 -0
- package/dist/managers/npmManager.d.ts +10 -0
- package/dist/managers/npmManager.d.ts.map +1 -0
- package/dist/managers/npmManager.js +119 -0
- package/dist/managers/npmManager.js.map +1 -0
- package/dist/types/index.d.ts +44 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/guiServer.d.ts +10 -0
- package/dist/ui/guiServer.d.ts.map +1 -0
- package/dist/ui/guiServer.js +134 -0
- package/dist/ui/guiServer.js.map +1 -0
- package/dist/ui/menu.d.ts +6 -0
- package/dist/ui/menu.d.ts.map +1 -0
- package/dist/ui/menu.js +93 -0
- package/dist/ui/menu.js.map +1 -0
- package/dist/ui/prompts.d.ts +13 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +161 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/utils/filesystem.d.ts +13 -0
- package/dist/utils/filesystem.d.ts.map +1 -0
- package/dist/utils/filesystem.js +152 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +49 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/platform.d.ts +9 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +75 -0
- package/dist/utils/platform.js.map +1 -0
- package/jest.config.js +20 -0
- package/logo.svg +60 -0
- package/package.json +55 -0
- package/setup-github.sh +125 -0
- package/src/core/appUpdateChecker.ts +220 -0
- package/src/core/detector.ts +133 -0
- package/src/core/duplicateFileFinder.ts +113 -0
- package/src/core/orphanedDependencyDetector.ts +195 -0
- package/src/core/performanceOptimizer.ts +209 -0
- package/src/core/permissionHandler.ts +121 -0
- package/src/core/pluginSystem.ts +194 -0
- package/src/core/removalRecorder.ts +146 -0
- package/src/core/remover.ts +280 -0
- package/src/core/reportGenerator.ts +354 -0
- package/src/core/scheduledCleanup.ts +204 -0
- package/src/core/serviceFileDetector.ts +181 -0
- package/src/core/verificationModule.ts +140 -0
- package/src/index.ts +449 -0
- package/src/managers/brewManager.ts +149 -0
- package/src/managers/customManager.ts +167 -0
- package/src/managers/linuxManager.ts +210 -0
- package/src/managers/npmManager.ts +137 -0
- package/src/types/index.ts +59 -0
- package/src/ui/guiServer.ts +155 -0
- package/src/ui/menu.ts +100 -0
- package/src/ui/prompts.ts +177 -0
- package/src/utils/filesystem.ts +145 -0
- package/src/utils/logger.ts +48 -0
- package/src/utils/platform.ts +75 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
# Community Posts & Marketing
|
|
2
|
+
|
|
3
|
+
## Show HN Submission
|
|
4
|
+
|
|
5
|
+
**Title:** Show HN: AppClean – Intelligently remove apps with all their artifacts (npm, brew, apt, etc.)
|
|
6
|
+
|
|
7
|
+
**Description:**
|
|
8
|
+
|
|
9
|
+
I built AppClean because uninstalling apps properly is surprisingly hard. When you remove an app, files get left behind everywhere:
|
|
10
|
+
|
|
11
|
+
- Config files in ~/.config or ~/Library
|
|
12
|
+
- Caches that take gigabytes
|
|
13
|
+
- Service files that keep running
|
|
14
|
+
- Dependencies scattered across your system
|
|
15
|
+
|
|
16
|
+
AppClean solves this by:
|
|
17
|
+
|
|
18
|
+
1. **Finding all artifacts** — It knows where npm, Homebrew, apt, and custom installers leave files
|
|
19
|
+
2. **Removing everything** — Not just the binary, but configs, caches, logs, even service files
|
|
20
|
+
3. **Staying safe** — Dry-run preview, backups, and post-removal verification
|
|
21
|
+
4. **Cross-platform** — Works on macOS, Linux, and Windows
|
|
22
|
+
|
|
23
|
+
**Current features:**
|
|
24
|
+
- Detects apps from 8+ package managers
|
|
25
|
+
- Deep file scanning for configs, caches, logs
|
|
26
|
+
- Service file detection (LaunchAgent, systemd)
|
|
27
|
+
- One-command uninstall: `appclean remove app-name`
|
|
28
|
+
- 8 versions with advanced features (duplicate finder, plugin system, scheduled cleanup, etc.)
|
|
29
|
+
|
|
30
|
+
**Real example:**
|
|
31
|
+
```bash
|
|
32
|
+
$ appclean remove webpack
|
|
33
|
+
📊 Found 47 artifacts to remove
|
|
34
|
+
✓ Freed 237.5 MB
|
|
35
|
+
✓ Complete removal verified
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Looking for feedback and would love to hear about missing features or broken detection for specific apps!
|
|
39
|
+
|
|
40
|
+
**GitHub:** https://github.com/praveenkay/AppClean
|
|
41
|
+
**npm:** `npm install -g appclean`
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Reddit r/commandline Post
|
|
46
|
+
|
|
47
|
+
**Title:** Show your CLIs - AppClean: Intelligently uninstall apps and clean all artifacts
|
|
48
|
+
|
|
49
|
+
**Description:**
|
|
50
|
+
|
|
51
|
+
Tired of uninstalling apps only to discover they left behind gigabytes of config files, caches, and service files?
|
|
52
|
+
|
|
53
|
+
I built **AppClean** to solve the frustration of incomplete app removal across npm, Homebrew, apt, and custom installers.
|
|
54
|
+
|
|
55
|
+
### The Problem
|
|
56
|
+
- `npm uninstall -g webpack` leaves behind ~/.config/webpack, ~/.cache/webpack, and service files
|
|
57
|
+
- `brew uninstall package` leaves behind LaunchAgents and preference files
|
|
58
|
+
- `apt remove package` misses config in ~/.local and systemd service files
|
|
59
|
+
- No built-in way to verify an app is actually gone
|
|
60
|
+
|
|
61
|
+
### The Solution
|
|
62
|
+
```bash
|
|
63
|
+
appclean remove webpack
|
|
64
|
+
# Finds 47 artifacts
|
|
65
|
+
# Creates backup
|
|
66
|
+
# Removes everything
|
|
67
|
+
# Verifies removal
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### What It Does
|
|
71
|
+
- 🔍 Scans 8+ package managers (npm, yarn, pnpm, brew, apt, yum, dnf, custom)
|
|
72
|
+
- 📊 Finds configs, caches, logs, data, service files
|
|
73
|
+
- 🛡️ Safe: dry-run preview, backups, verification
|
|
74
|
+
- ✓ Post-removal verification via filesystem and commands
|
|
75
|
+
- 📄 Professional removal reports with legal disclaimers
|
|
76
|
+
|
|
77
|
+
### Latest Features
|
|
78
|
+
- v1.2.0: GUI application
|
|
79
|
+
- v1.3.0: Duplicate file finder
|
|
80
|
+
- v1.4.0: Orphaned dependency detector
|
|
81
|
+
- v1.5.0: Plugin system for custom apps
|
|
82
|
+
- v1.6.0: Scheduled cleanup automation
|
|
83
|
+
- v1.7.0: App update checker
|
|
84
|
+
- v1.8.0: Performance optimizer for large systems
|
|
85
|
+
|
|
86
|
+
**Install:** `npm install -g appclean`
|
|
87
|
+
**Repo:** https://github.com/praveenkay/AppClean
|
|
88
|
+
|
|
89
|
+
Would love feedback on what package managers or edge cases I'm missing!
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Reddit r/linux Post
|
|
94
|
+
|
|
95
|
+
**Title:** AppClean - Finally, a proper way to uninstall packages and clean all their artifacts
|
|
96
|
+
|
|
97
|
+
**Description:**
|
|
98
|
+
|
|
99
|
+
Linux package managers are great, but they're designed for *system* stability, not *disk* cleanliness.
|
|
100
|
+
|
|
101
|
+
When you `apt remove` or `dnf remove` a package, you're left with:
|
|
102
|
+
- Orphaned config files in ~/.config
|
|
103
|
+
- Cache directories that never get touched again
|
|
104
|
+
- Systemd service files
|
|
105
|
+
- Leftover data directories
|
|
106
|
+
|
|
107
|
+
I built **AppClean** to fix this. It's like `apt autoremove` but actually useful:
|
|
108
|
+
|
|
109
|
+
### Problem Statement
|
|
110
|
+
Your `apt remove package` removed the binary. But did it remove:
|
|
111
|
+
- ~/.config/package/ ✗
|
|
112
|
+
- ~/.cache/package/ ✗
|
|
113
|
+
- ~/.local/share/package/ ✗
|
|
114
|
+
- /etc/systemd/user/package.service ✗
|
|
115
|
+
|
|
116
|
+
AppClean finds and removes all of these automatically.
|
|
117
|
+
|
|
118
|
+
### How It Works
|
|
119
|
+
```bash
|
|
120
|
+
$ appclean remove node
|
|
121
|
+
ℹ Found 23 artifacts
|
|
122
|
+
ℹ Detected systemd service file requiring manual cleanup
|
|
123
|
+
? Remove node and all its files? (y/N) y
|
|
124
|
+
✓ Successfully removed node (freed 412 MB)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Features
|
|
128
|
+
- 🔍 Detects apt, yum, dnf packages (plus npm, brew, and custom installs)
|
|
129
|
+
- 📋 Shows configs, caches, logs, data files before removal
|
|
130
|
+
- 🛡️ Dry-run preview and backups
|
|
131
|
+
- ✓ Verifies complete removal
|
|
132
|
+
- 📊 Orphaned dependency detection
|
|
133
|
+
- ⏰ Scheduled cleanup automation
|
|
134
|
+
- 🚀 Performance optimized for large systems
|
|
135
|
+
|
|
136
|
+
**Install:** `npm install -g appclean`
|
|
137
|
+
**Repo:** https://github.com/praveenkay/AppClean
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Reddit r/node Post
|
|
142
|
+
|
|
143
|
+
**Title:** AppClean - Remove global npm packages properly (including all artifacts)
|
|
144
|
+
|
|
145
|
+
**Description:**
|
|
146
|
+
|
|
147
|
+
Ever installed a global npm package and forgotten about it? Then one day you need disk space and realize you have gigabytes of cached dependencies and config files from packages you removed years ago?
|
|
148
|
+
|
|
149
|
+
I built **AppClean** to fix this.
|
|
150
|
+
|
|
151
|
+
### The Real Problem
|
|
152
|
+
```bash
|
|
153
|
+
$ npm uninstall -g webpack
|
|
154
|
+
removed 1 package
|
|
155
|
+
|
|
156
|
+
# But still there:
|
|
157
|
+
$ ls ~/.config/webpack/ # Config files
|
|
158
|
+
$ ls ~/.cache/webpack/ # Build cache (1.5 GB!)
|
|
159
|
+
$ ls ~/.local/share/webpack/ # Leftover data
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### The Solution
|
|
163
|
+
```bash
|
|
164
|
+
$ appclean remove webpack
|
|
165
|
+
📊 Found 47 artifacts
|
|
166
|
+
💾 Potential savings: 1.5 GB
|
|
167
|
+
? Remove webpack? (y/N) y
|
|
168
|
+
✓ Freed 1.5 GB
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### What It Detects
|
|
172
|
+
- npm packages (global and local)
|
|
173
|
+
- yarn and pnpm packages
|
|
174
|
+
- Configs in ~/.config
|
|
175
|
+
- Caches in ~/.cache
|
|
176
|
+
- Data in ~/.local/share
|
|
177
|
+
- Service files (systemd, LaunchAgent on macOS)
|
|
178
|
+
|
|
179
|
+
### Features
|
|
180
|
+
- 🔍 Finds all artifacts left by global packages
|
|
181
|
+
- 📊 Shows what will be removed before deletion
|
|
182
|
+
- 🛡️ Creates backups by default
|
|
183
|
+
- ✓ Verifies removal worked
|
|
184
|
+
- 📦 Detects orphaned npm dependencies
|
|
185
|
+
- ⏰ Schedule automatic cleanups
|
|
186
|
+
|
|
187
|
+
**Install:** `npm install -g appclean`
|
|
188
|
+
**Usage:** `appclean remove package-name`
|
|
189
|
+
**Repo:** https://github.com/praveenkay/AppClean
|
|
190
|
+
|
|
191
|
+
### Why This Matters
|
|
192
|
+
If you regularly install/uninstall global packages, this reclaims gigabytes. If you share systems with others, orphaned packages add up fast.
|
|
193
|
+
|
|
194
|
+
Would love feedback on npm-specific edge cases or missing detection!
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Reddit r/opensource Post
|
|
199
|
+
|
|
200
|
+
**Title:** AppClean - Open source app uninstaller supporting npm, brew, apt, and more
|
|
201
|
+
|
|
202
|
+
**Description:**
|
|
203
|
+
|
|
204
|
+
I've been building **AppClean** – an open source tool to intelligently remove applications with all their artifacts across multiple operating systems and package managers.
|
|
205
|
+
|
|
206
|
+
### The Problem
|
|
207
|
+
Every package manager (npm, Homebrew, apt, yum, dnf) leaves behind files in different locations:
|
|
208
|
+
- Configuration files
|
|
209
|
+
- Caches (sometimes gigabytes)
|
|
210
|
+
- Service files that keep running
|
|
211
|
+
- Data directories
|
|
212
|
+
- Logs
|
|
213
|
+
|
|
214
|
+
There's no built-in way to clean these up completely.
|
|
215
|
+
|
|
216
|
+
### The Solution
|
|
217
|
+
One command removes everything:
|
|
218
|
+
```bash
|
|
219
|
+
npm install -g appclean
|
|
220
|
+
appclean remove webpack # Removes app + all artifacts
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Current Status
|
|
224
|
+
- **v1.8.0** released with 8 versions of features
|
|
225
|
+
- 13 GitHub topics for discoverability
|
|
226
|
+
- Cross-platform: macOS, Linux, Windows
|
|
227
|
+
- Multiple package manager support: npm, yarn, pnpm, brew, apt, yum, dnf
|
|
228
|
+
- Advanced features: GUI, duplicate finder, orphaned detector, plugin system, scheduling, update checker, performance optimizer
|
|
229
|
+
|
|
230
|
+
### Open Source Stack
|
|
231
|
+
- TypeScript + Node.js
|
|
232
|
+
- Commander.js for CLI
|
|
233
|
+
- Inquirer.js for interactive menus
|
|
234
|
+
- MIT Licensed
|
|
235
|
+
- Active development
|
|
236
|
+
|
|
237
|
+
### Looking For
|
|
238
|
+
- Users and feedback
|
|
239
|
+
- Contributions (especially Windows testing)
|
|
240
|
+
- Plugin developers
|
|
241
|
+
- Ideas for next features
|
|
242
|
+
|
|
243
|
+
**Repo:** https://github.com/praveenkay/AppClean
|
|
244
|
+
**npm:** `npm install -g appclean`
|
|
245
|
+
**License:** MIT
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Twitter/X One-Liner
|
|
250
|
+
|
|
251
|
+
🧹 Tired of bloated systems? Try AppClean – removes apps + all their artifacts (configs, caches, service files) in one command.
|
|
252
|
+
|
|
253
|
+
npm install -g appclean
|
|
254
|
+
appclean remove webpack # Frees gigabytes, not just the binary
|
|
255
|
+
|
|
256
|
+
Works on macOS, Linux, Windows. Supports npm, brew, apt, and more.
|
|
257
|
+
|
|
258
|
+
https://github.com/praveenkay/AppClean
|
|
259
|
+
|
|
260
|
+
#devtools #cli #opensource
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Dev.to Blog Post Template
|
|
265
|
+
|
|
266
|
+
**Title:** AppClean: The App Uninstaller Your System Deserves
|
|
267
|
+
|
|
268
|
+
**Introduction:**
|
|
269
|
+
|
|
270
|
+
We've all been there. You uninstall an app, but somehow your disk is still full. That's because uninstalling is broken. Package managers remove the binary but leave behind:
|
|
271
|
+
|
|
272
|
+
- Configuration files
|
|
273
|
+
- Cache directories (sometimes gigabytes)
|
|
274
|
+
- Service files that keep running
|
|
275
|
+
- Data directories
|
|
276
|
+
- Log files
|
|
277
|
+
|
|
278
|
+
I built AppClean to fix this properly.
|
|
279
|
+
|
|
280
|
+
**The Problem Section:**
|
|
281
|
+
[Explain the frustration of incomplete uninstalls]
|
|
282
|
+
|
|
283
|
+
**The Solution Section:**
|
|
284
|
+
[Show how AppClean solves it]
|
|
285
|
+
|
|
286
|
+
**Features Section:**
|
|
287
|
+
[Highlight the 8 versions and features]
|
|
288
|
+
|
|
289
|
+
**Getting Started Section:**
|
|
290
|
+
[Installation and usage examples]
|
|
291
|
+
|
|
292
|
+
**Conclusion:**
|
|
293
|
+
[Call to action: GitHub, npm, feedback]
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## HackerNews Comment Strategy
|
|
298
|
+
|
|
299
|
+
When AppClean gets mentioned in threads about package managers, disk cleanup, or system maintenance:
|
|
300
|
+
|
|
301
|
+
- Lead with the problem, not features
|
|
302
|
+
- Show before/after disk space
|
|
303
|
+
- Mention cross-platform support
|
|
304
|
+
- Link to GitHub (not npm directly)
|
|
305
|
+
- Ask for feedback on missing detectors
|
|
306
|
+
|
|
307
|
+
**Example:** "This reminds me of a problem I ran into – package managers leave behind gigabytes of artifacts. I built AppClean to fix this. npm install -g appclean, then appclean remove package-name to clean everything. Supports npm, brew, apt, and more. Feedback welcome: https://github.com/praveenkay/AppClean"
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Contributing to AppClean
|
|
2
|
+
|
|
3
|
+
First off, thanks for taking the time to contribute! 🎉
|
|
4
|
+
|
|
5
|
+
AppClean is an open source project and we love receiving contributions from our community. Whether it's a bug report, feature request, or code contribution, your help makes AppClean better.
|
|
6
|
+
|
|
7
|
+
## Code of Conduct
|
|
8
|
+
|
|
9
|
+
This project and everyone participating in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
|
|
10
|
+
|
|
11
|
+
## How Can I Contribute?
|
|
12
|
+
|
|
13
|
+
### 🐛 Reporting Bugs
|
|
14
|
+
|
|
15
|
+
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
|
|
16
|
+
|
|
17
|
+
- **Use a clear and descriptive title**
|
|
18
|
+
- **Describe the exact steps which reproduce the problem**
|
|
19
|
+
- **Provide specific examples to demonstrate the steps**
|
|
20
|
+
- **Describe the behavior you observed after following the steps**
|
|
21
|
+
- **Explain which behavior you expected to see instead and why**
|
|
22
|
+
- **Include screenshots if possible**
|
|
23
|
+
- **Your environment:**
|
|
24
|
+
- Operating System and version
|
|
25
|
+
- Node.js version
|
|
26
|
+
- npm/yarn/pnpm version
|
|
27
|
+
- AppClean version
|
|
28
|
+
|
|
29
|
+
### 💡 Suggesting Enhancements
|
|
30
|
+
|
|
31
|
+
When creating enhancement suggestions, please include:
|
|
32
|
+
|
|
33
|
+
- **Use a clear and descriptive title**
|
|
34
|
+
- **Provide a step-by-step description of the suggested enhancement**
|
|
35
|
+
- **Provide specific examples to demonstrate the steps**
|
|
36
|
+
- **Describe the current behavior and expected behavior**
|
|
37
|
+
- **Explain why this enhancement would be useful**
|
|
38
|
+
|
|
39
|
+
### 📝 Code Contribution
|
|
40
|
+
|
|
41
|
+
**Did you write a patch that fixes a bug?**
|
|
42
|
+
|
|
43
|
+
- Open a new GitHub pull request with the patch.
|
|
44
|
+
- Ensure the PR description clearly describes the problem and solution.
|
|
45
|
+
- Include the relevant issue number if applicable.
|
|
46
|
+
|
|
47
|
+
**Do you intend to add a new feature or change an existing one?**
|
|
48
|
+
|
|
49
|
+
- Start by opening an issue first to discuss it with maintainers.
|
|
50
|
+
- Don't start coding until you get positive feedback.
|
|
51
|
+
|
|
52
|
+
**Do you have questions about the source code?**
|
|
53
|
+
|
|
54
|
+
- Ask in GitHub Discussions or open an issue with your question.
|
|
55
|
+
|
|
56
|
+
## Getting Started with Development
|
|
57
|
+
|
|
58
|
+
### Prerequisites
|
|
59
|
+
|
|
60
|
+
- Node.js 16 or higher
|
|
61
|
+
- npm 7 or higher
|
|
62
|
+
- Git
|
|
63
|
+
|
|
64
|
+
### Setup Development Environment
|
|
65
|
+
|
|
66
|
+
\`\`\`bash
|
|
67
|
+
# Clone the repository
|
|
68
|
+
git clone https://github.com/praveenkay/AppClean.git
|
|
69
|
+
cd AppClean
|
|
70
|
+
|
|
71
|
+
# Install dependencies
|
|
72
|
+
npm install
|
|
73
|
+
|
|
74
|
+
# Build TypeScript
|
|
75
|
+
npm run build
|
|
76
|
+
|
|
77
|
+
# Run in development mode
|
|
78
|
+
npm run dev
|
|
79
|
+
|
|
80
|
+
# Run tests
|
|
81
|
+
npm test
|
|
82
|
+
\`\`\`
|
|
83
|
+
|
|
84
|
+
### Development Workflow
|
|
85
|
+
|
|
86
|
+
1. **Create a feature branch:**
|
|
87
|
+
\`\`\`bash
|
|
88
|
+
git checkout -b feature/amazing-feature
|
|
89
|
+
\`\`\`
|
|
90
|
+
|
|
91
|
+
2. **Make your changes and test:**
|
|
92
|
+
\`\`\`bash
|
|
93
|
+
npm run build
|
|
94
|
+
npm test
|
|
95
|
+
\`\`\`
|
|
96
|
+
|
|
97
|
+
3. **Commit with conventional commits:**
|
|
98
|
+
\`\`\`bash
|
|
99
|
+
git commit -m "feat: add amazing feature"
|
|
100
|
+
\`\`\`
|
|
101
|
+
|
|
102
|
+
4. **Push and open a Pull Request**
|
|
103
|
+
|
|
104
|
+
## Conventional Commits
|
|
105
|
+
|
|
106
|
+
Use clear commit messages:
|
|
107
|
+
|
|
108
|
+
- `feat:` for new features
|
|
109
|
+
- `fix:` for bug fixes
|
|
110
|
+
- `docs:` for documentation
|
|
111
|
+
- `refactor:` for code refactoring
|
|
112
|
+
- `test:` for test changes
|
|
113
|
+
- `perf:` for performance improvements
|
|
114
|
+
|
|
115
|
+
## License
|
|
116
|
+
|
|
117
|
+
By contributing, you agree that your contributions will be licensed under the MIT License.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
**Happy contributing! 🚀**
|