Project

gemlens

0.0
The project is in a healthy, maintained state
GemLens is a developer tool that analyzes the history of your Gemfile using Git and presents a timeline of gem additions, removals, and version updates. It's useful for auditing dependency changes, generating changelogs, and understanding how your project's gem dependencies evolved.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

~> 1.1.0
 Project Readme

GemLens

Gem Version

Gemlens is a CLI tool to analyze the evolution of your Gemfile over time. It helps you track when gems were added, removed, or updated in a project β€” great for audits, debugging, or historical exploration.


✨ Features

  • Track changes to gems across Git commits
  • View added, removed, or updated gems with commit metadata
  • Colorized timeline output for clarity
  • Works on any Git-tracked Ruby project

🧰 Installation

Add this line to your application's Gemfile:

gem 'gemlens'

Then execute:

$ bundle install

Or install it globally:

$ gem install gemlens

πŸš€ Usage

From any Git-tracked Ruby project:

$ bundle exec gemlens

You’ll get a timeline showing how your Gemfile has changed, for example:

πŸ“œ Gemfile History Timeline

🟩 2023-04-11  Added    pry                  by Jane Doe    ➜ PR #1234 | Add pry for debugging
πŸŸ₯ 2023-05-09  Removed  byebug               by Jane Doe    ➜ 4d3c1f0 | Remove unused gem
🟦 2023-06-12  Updated  rails (6.1.0 β†’ 7.0.4) by John Smith  ➜ PR #2345 | Upgrade Rails

You can also pass a path to another repo:

$ bundle exec gemlens /path/to/another/repo

πŸ”§ Development

To set up the project locally:

$ git clone https://github.com/BestBitsLab/gemlens.git
$ cd gemlens
$ bin/setup

You can experiment with the code via:

$ bin/console

To build and install the gem locally:

$ bundle exec rake install

To release a new version:

  1. Update the version in lib/gemlens/version.rb
  2. Run:
$ bundle exec rake release

This will tag, push, and publish to RubyGems.org.


🀝 Contributing

Bug reports and pull requests are welcome on GitHub. This project is intended to be a safe, welcoming space for collaboration. Please read and follow the code of conduct.


πŸͺͺ License

This gem is available as open source under the terms of the MIT License.


πŸ“œ Code of Conduct

Everyone interacting in the Gemlens project’s codebase, issue trackers, and other community spaces is expected to follow the Code of Conduct.