Skip to main content

Legacy Code

Code that may be deprecated or no longer actively maintained.

Overview

This document identifies code that:

  • Hasn't been modified in 6+ months
  • May be deprecated
  • Could be candidates for removal or refactoring

How to Identify Legacy Code

Run the git activity analysis script:

cd /Users/stef/apps/sprout/sprout_docs
./scripts/git-activity-analysis.sh

The script identifies files with no commits in the last 6 months.

Analysis Method

Legacy code is identified by:

  • Files with no commits in 6+ months
  • Unused imports or dependencies
  • Deprecated patterns or libraries
  • Code marked as deprecated in comments

Common Legacy Patterns

Unused Code

  • Functions or classes never called
  • Dead code paths
  • Commented-out code

Deprecated Libraries

  • Old versions of libraries
  • Libraries replaced by newer alternatives
  • Unmaintained dependencies

Old Patterns

  • Patterns replaced by better alternatives
  • Legacy API usage
  • Outdated best practices

Handling Legacy Code

Before Removing

  1. Verify code is truly unused
  2. Check for any references
  3. Review git history for context
  4. Consider migration path if needed

Refactoring

  1. Identify improvement opportunities
  2. Plan refactoring approach
  3. Update tests
  4. Document changes

Deprecation

  1. Mark as deprecated in code
  2. Add deprecation warnings
  3. Document migration path
  4. Set removal timeline

Repository-Specific Notes

sprout_backend

  • May have legacy API endpoints
  • Old event matching logic (if replaced)
  • Deprecated modules

sprout_etl

  • Old pipeline configurations
  • Legacy CLI commands
  • Deprecated services

Other Repositories

  • Check each repository for legacy patterns
  • Review documentation for deprecation notices

Next Steps