Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Bug report
about: Report a reproducible problem in DustFril
title: '[Bug] '
labels: bug
---

---

## Bug description

Clearly and concisely describe the bug.

## Steps to reproduce

1. Run `...`
2. Execute `...`
3. Observe `...`

## Expected behavior

Describe what you expected to happen.

## Actual behavior

Describe what actually happened.

## Environment

- OS:
- Rust version:
- Cargo version:
- DustFril version/commit:

## Logs or screenshots

Paste relevant logs, error output, or screenshots.
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Feature request
about: Suggest an idea or enhancement for DustFril
title: '[Feature] '
labels: enhancement
---

---

## Summary

Briefly describe the feature you want.

## Problem to solve

What problem does this feature solve?

## Proposed solution

Describe your preferred solution in detail.

## Alternatives considered

List any alternative approaches you considered.

## Additional context

Add examples, screenshots, links, or related issues if applicable.
33 changes: 33 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
## What

<!-- One-line summary of what this PR does -->

## Why

<!-- Why is this change needed? Link the issue if applicable -->

Closes #

## Checklist

### Required

- [ ] cargo check passes
- [ ] cargo fmt --check passes
- [ ] cargo clippy --workspace --all-targets -- -D warnings passes
- [ ] cargo test passes

### Functional Validation

- [ ] I verified the behavior locally
- [ ] I added or updated tests when necessary

### Documentation

- [ ] README or docs were updated if needed
- [ ] New configuration or behavior is documented

### Safety

- [ ] Cleanup behavior was reviewed for safety
- [ ] No destructive behavior was introduced without confirmation
25 changes: 25 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Rust CI

on:
pull_request:
push:
branches:
- main

jobs:
check:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable

- name: Format
run: cargo fmt --all -- --check

- name: Clippy
run: cargo clippy --workspace --all-targets -- -D warnings

- name: Tests
run: cargo test --workspace
123 changes: 123 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# Contributing to DustFril

Thank you for contributing to **DustFril**.

DustFril is a Rust-based artifact analyzer and cleaner focused on helping developers discover, analyze, and safely manage generated files created by Rust tooling.

This guide describes the expected workflow and quality standards for contributions.

## Getting Started

1. Install the stable Rust toolchain.
2. Clone the repository.
3. Open the project in your preferred editor.
4. Run the required checks before opening a pull request.

```sh
cargo check --workspace
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
```

Optional local build:

```sh
cargo build --workspace
```

## Project Structure

DustFril is organized as a Rust workspace.

```text
dustfril/
├── crates/
│ └── dustfril-core
└── apps/
└── dustfril-cli
```

### dustfril-core

Contains the core business logic:

- Artifact detection
- Disk usage analysis
- Cleanup operations
- Shared domain models

### dustfril-cli

Contains the command-line interface.

The CLI should remain thin and delegate business logic to `dustfril-core`.

## Code Style

- Run `cargo fmt --all` before committing.
- Treat Clippy warnings as errors.

```sh
cargo clippy --workspace --all-targets -- -D warnings
```

- Prefer small, focused changes.
- Avoid unrelated refactoring.
- Keep public APIs stable when possible.
- Add or update tests when behavior changes.

## Pull Requests

- Open pull requests against the `main` branch.
- Keep each PR focused on a single logical change.
- Link related issues when applicable.

Example:

```text
Closes #12
```

Before opening a PR, verify:

```sh
cargo check --workspace
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
```

## Philosophy

DustFril prioritizes:

- Safety
- Transparency
- Predictability

Cleanup operations should never remove files without explicit user intent.

When introducing cleanup behavior, always consider the risk of accidental data loss.

## Dependencies

When introducing a new dependency:

- Prefer actively maintained crates.
- Keep dependencies minimal.
- Explain why the dependency is required in the pull request.

## Design Principles

- Core logic belongs in `dustfril-core`
- CLI remains a thin wrapper
- Safety is more important than aggressive cleanup
- Artifact detection should be deterministic

## Questions

If you are unsure about an implementation approach, open an issue before starting large changes.

Contributions of all sizes are welcome.
14 changes: 14 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[workspace]
resolver = "2"

members = [
"crates/dustfril-core",
"apps/dustfril-cli"
]
90 changes: 90 additions & 0 deletions ReadMe.ko.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# DustFril

Rust 개발자를 위한 산출물(Artifact) 분석 및 정리 도구입니다.

DustFril은 Cargo와 Rust 도구들이 생성하는 빌드 산출물과 캐시를 탐지하고, 용량을 분석하며, 안전하게 정리할 수 있도록 돕는 것을 목표로 합니다.

Rust 프로젝트를 오래 관리하다 보면 `target/`, Cargo 캐시 등의 디렉터리가 수 GB에서 수십 GB까지 증가할 수 있습니다.

DustFril은 이러한 생성 파일들을 쉽고 안전하게 관리할 수 있는 CLI 도구를 지향합니다.

## 주요 기능

### 현재 목표

- Rust 산출물 탐지
- 디스크 사용량 분석
- Cargo 캐시 분석
- 안전한 정리 기능

### 지원 예정

- `target/`
- `~/.cargo/registry`
- `~/.cargo/git`

## 사용 예시

프로젝트 스캔:

```bash
dustfril scan
```

용량 분석:

```bash
dustfril analyze
```

삭제 예정 파일 확인:

```bash
dustfril clean --dry-run
```

실제 정리:

```bash
dustfril clean
```

## 로드맵

### Phase 1

- Cargo 프로젝트 탐지
- Rust 산출물 탐지
- 기본 CLI 구현

### Phase 2

- 디스크 사용량 분석
- Dry Run 지원
- 안전 삭제 기능

### Phase 3

- 인터랙티브 터미널 UI
- 설정 파일 지원
- 고급 필터링

### Phase 4

- 데스크톱 애플리케이션
- 다중 언어 생태계 지원

## 철학

DustFril은 다음 원칙을 중요하게 생각합니다.

- 안전성 우선
- 명시적 사용자 동작
- 투명한 동작
- 개발자 친화적 경험

DustFril은 사용자의 확인 없이 파일을 삭제하지 않습니다.

## 라이선스

MIT License
Loading
Loading