TheProlog / prolog-use_cases

Use-case layer for Meldd/Prolog application.
0 stars 0 forks source link

Replace existing Gems in or add new Gems to dependencies #85

Open jdickey opened 7 years ago

jdickey commented 7 years ago

As we find Gems that do things that would be truly useful for our work (in the main use-cases Gem, its associated revision Gems, and so on), we document them here.

Each Gem should be mentioned in a separate comment, which includes

Extra text should be added to the comment if helpful; the commenter should endeavour to keep the entire content relatively short.

If later events indicate that a particular Gem previously commented on is no longer appropriate, then the comment must be edited such that all content is in strike-out text.

Revision Gems for which Gems in this issue would be appropriate should have an issue that

Gems or applications not among this Gem or its revision Gems are recommended to open a similarly-worded and -tagged issue in their own repo that may (but need not) link back to this issue as a reference if and only if all actual or potential contributors to that new artefact can view this repo.

jdickey commented 7 years ago
Gem name single_cov
Replacement for simplecov
Rationale Faster, more explicitly granular code coverage reporting.
Current need? Yes
Changes needed gemspec, test setup, test specs

This appears to be a newer but in many ways cleaner implementation of code coverage for Ruby; certainly, the repo is easier to find one's way around in than that for simplecov, with its numerous branches on the main repo.

Actually evaluating this Gem and integrating it into an existing project will require more time than current priorities presently permit, yet this seemed promising enough not to lose track of. Hence, this issue was opened and this was added as the first entry.

jdickey commented 7 years ago
Gem name appraisal
Replacement for N/A
Rationale Appraisal integrates with bundler and rake to test your library against different versions of dependencies in repeatable scenarios called "appraisals." Appraisal is designed to make it easy to check for regressions in your library without interfering with day-to-day development using Bundler.
Current need? Yes
Changes needed gem spec, config files, ci

In conjunction with a CI setup such as Travis (remotely or locally), CircleCI, or others, makes it easier to set up different combinations of Gems (which it maintains in Appraisal-generated Gemfiles. We have a need to test under different versions of Ruby; our README specifically mentions Ruby 2.3, which is no longer current but is still supported. Combining this, tools such as this, wwtd, and rbenv-gemset let us more easily and reliably automate testing under varying environments.

jdickey commented 7 years ago
Gem name wwtd
Replacement for N/A
Rationale What Would Travis Do? This reads a project's .travis.yml file and runs tests using the Rubies and configurations specified as though it were running on the Travis service itself. Works with rbenv, ram, or chruby for Ruby version switching.
Current need? Yes
Changes needed gemspec, ci

Continuous integration (CI) is a life-saving service for development, particularly when code needs to support multiple platform versions or configurations. WWTD bills itself as a Travis simulator, allowing you to locally automate (most of) the tasks that a full service like Travis, CodeShip, or CircleCI offer as a service platform.

In conjunction with appraisal (see above) and rbenv-gemset, useful automation of build and test across multiple environments can be achieved. Several others have used Docker to make the process itself more reliably repeatable across development and other host systems; see, e.g., this Stack Overflow post.