Skip to content

Consolidate dotfiles installation methods: standardize on rcm over custom Makefile #38

@xtetsuji

Description

@xtetsuji

Consolidate dotfiles installation methods: standardize on rcm (rcup) over custom Makefile implementation

Currently, this repository maintains two separate implementations for creating symlinks to dotfiles:

  1. Custom Makefile approach (make install-all-symlink)

  2. rcm-based approach (install.sh with rcup)

    • Uses the battle-tested rcm (rc file manager) tool
    • Declarative configuration via rcrc file
    • Different behavior for Codespaces (copy) vs macOS (symlink)
    • Industry standard approach used by many dotfiles repositories

Problem:

  • Maintaining two implementations increases maintenance burden
  • Custom implementation is prone to bugs (as demonstrated by recent basename issue)
  • Code duplication and potential inconsistencies
  • Users may be confused about which method to use

Proposed Solution:
Standardize on the rcm-based approach by:

  • Simplifying the Makefile to use rcup commands instead of custom logic
  • Enhancing the rcrc configuration to handle all use cases
  • Updating documentation to recommend the standardized approach
  • Ensuring rcm installation instructions are clear for all platforms

Benefits:

  • Reduced maintenance overhead
  • More reliable implementation using proven tool
  • Alignment with community best practices
  • Cleaner codebase with less custom logic
Japanese Translation

ドットファイルインストール方法の統合:カスタムMakefile実装からrcm(rcup)への標準化

現在、このリポジトリはドットファイルへのシンボリンク作成において2つの異なる実装を維持しています:

  1. カスタムMakefileアプローチ (make install-all-symlink)

  2. rcmベースアプローチ (install.shrcupを使用)

    • 実績のあるrcm(rc file manager)ツールを使用
    • rcrcファイルによる宣言的設定
    • Codespaces(コピー)とmacOS(シンボリンク)で異なる動作
    • 多くのdotfilesリポジトリで使用される業界標準アプローチ

問題点:

  • 2つの実装を維持することで保守負荷が増加
  • カスタム実装はバグが発生しやすい(最近のbasename問題で実証済み)
  • コードの重複と潜在的な不整合
  • ユーザーがどちらの方法を使うべきか混乱する可能性

提案する解決策:
rcmベースアプローチへの標準化:

  • Makefileをカスタムロジックではなくrcupコマンドを使用するよう簡素化
  • すべてのユースケースに対応するようrcrc設定を強化
  • 標準化されたアプローチを推奨するようドキュメントを更新
  • 全プラットフォームでrcmインストール手順を明確化

利点:

  • 保守オーバーヘッドの削減
  • 実績のあるツールを使用したより信頼性の高い実装
  • コミュニティのベストプラクティスとの整合
  • カスタムロジックが少ないクリーンなコードベース

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions