All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Add support for Ruby 3.3
- Add support for default branches other than "master" (e.g. "main"). Will read
this information from
origin
. geordi branch
will not fail if it can't determine local branches.- Improved Linear issue menu: now includes the issue id, truncates long issue titles and puts metadata last
- Skip
yarn install
for other package managers:- Before: Check for a
package.json
- After: Check for a
yarn.lock
- Before: Check for a
geordi unit
now supportsparallel_tests
, binstubs andbundle exec
geordi branch
now checks out a feature branch based on a Linear issue instead of a story from Pivotal Trackergeordi commit
now uses a Linear issue title instead of a story title from Pivotal Tracker
tests
-command: When paths to cucumber and rspec tests are passed as arguments both cucumber and rspec are run.
dump
-command: The dropdb and createdb commands now also mind the configuration in the database.yml.
console
command: IRB flags stored in the global config file are automatically passed on to IRBconsole
command: Improve interrupt handling in local Rails consolerspec
andcucumber
commands: Do not fail or exit if chromedriver update fails- Fix detection of IRB version
- Add new hints to 'Did you know'
dump
-command: Drop and recreate the database before restoring a postgres dumpdrop_databases
-command: Use local user per default to connect to database
chromedriver-update
command: Retrieve chromedriver from new location
- Add suggestions of related commands
cucumber
command: Support the passing of options without "="
commit
command: The pivotal tracker story is linked in the description of the commitserver
command: Usedaho.im
instead ofvcap.me
when offering the local development URLrspec
command: chromedriver is updated automatically, if auto-update is configured and the app uses selenium-webdriver
- Ruby 3.2 support
branch
command: Git user initials are now stored in config fileconsole
command: Disable irb multiline mode in order to fix ultra-slow pasting performance
- Use YAML.safe_load in dumple and allow aliases
- Add dump loading in multi-database-setups.
- Change the update mechanism of
geordi chromedriver-update
: This command (andgeordi cucumber
/geordi tests
if theauto_update_chromedriver
option is active) will now always update to the latest version of chromedriver for the current chrome version.
geordi dump
anddumple
now default to "primary" database or the first entry in a multi-db setup- Also added feature tests for
dumple
and structured the script
- Remove the
geordi docker
command set.
geordi branch
now checks out new branches from the current branch instead of master. To check out from master, usegeordi branch -m
.
- fix
YAML.safe_load
forpsych
>= 4
- Fix missing
thor
dependency
- Drop support for Ruby < 2.5.0
- Improve parsing of Capistrano files (#162)
geordi tests
now takes test files as arguments and passes them to either RSpec or Cucumber (#152)
geordi commit
will continue even if one of the given projects is inaccessible. It will only fail if no stories could be found at all.
- Removed VNC test browser support for integration tests – Headless Chrome has
matured and is almost a drop-in replacement. Also, key binding issues have
increased with VNC and recent Linux.
- Please use a headless Chrome setup https://makandracards.com/makandra/492109-capybara-running-tests-with-headless-chrome.
- You might also want to get rid of your local VNC server
sudo apt remove tightvncserver
.
- Removed support for serial execution of scenarios tagged with @solo. Serial execution is not needed with Headless Chrome, as Headless instances cannot interfere (like, stealing focus).
- Add
geordi branch
command that checks out a feature branch based on a story from Pivotal Tracker - Faster MySQL dumping with
--single-transaction
and--quick
- Allow pivotal tracker ids in the global config file
- Fix missing require for
Fileutils
in the dump load command (#145) - Document
PARALLEL_TEST_PROCESSORS
- Changed: Dumping and loading a database will not keep the database dump in
tmp/
but delete it once the operation finishes successfully. Example:geordi dump staging -l
will remove the filetmp/staging.dump
after it loaded the dump.
- Fix and improve delete-dumps command (now supporting multiple arguments)
- Remove auto-bundling from
geordi shell
and remotegeordi console
- Ignore ACL settings when loading a PostgreSQL dump
- Fix a bug regarding
geordi vnc
which was introduced in 5.1.0
- Geordi update will exit with a warning when Ruby version changes during pull.
- Add
geordi docker
command with support for opening a shell for dockerized dev environments.
- Switch to tightvncserver to be compatible with Ubuntu 20.04. vnc4server is still supported.
- Remove support for Ruby 2.0 and 2.1
- Add
auto_update_chromedriver
as global setting option to automatically update chromedriver before cucumber tests, if Chrome and chromedriver versions don't match. - Dump command: Add support for multiple databases (#103 by @kajatiger)
- Add Ruby 2.7 to list of supported Ruby versions
- Fix #115:
geordi cucumber --modified
command, that corrupted filenames like:No such file or directory tures/pages.feature
- Avoid writing an instance of HighLine::String to Geordi config files (closes #114)
-
Fixed: System calls are not executed properly if no bin stub is present. This resulted in errors like:
% geordi rspec # Running specs > All specs at once (using parallel_tests) x Specs failed.
or
% geordi migrate # Migrating > Development and parallel test databases x Something went wrong.
- Added dumple option
--compress
to compress after dumping
- Fix
geordi migrate
command, that fails with:
Don't know how to build task 'db:migrate parallel:prepare'
- Improved documentation; README now includes command options.
- Fix #90:
geordi console
,geordi deploy
,geordi rake
andgeordi shell
now work correctly if the project hasn't been bundled before
- Removed deprecated executables
- Removed
eurest
command - Respect binstubs if available, otherwise fallback to geordi's previous behaviour. Note that this might cause failures, when your binstubs are not working. Please have a look at #109 for how a failure might look like and how you can fix it.
- Improvement #43:
--select-server
option ongeordi shell
andgeordi console
can take the number of the server to connect to it directly and to skip the menu. - Add a
.geordi.yml
file to change multiple settings in the project and~/.config/geordi/global.yml
for global settings. - Deprecated the
.pt_project_id
file in favor of.geordi.yml
. - Deprecated the
~/.gitpt
file in favor of~/.config/geordi/global.yml
. - Add #91: Now there is an option to start cucumber without a VNC session. This is configured by the .geordi.yml file.
- Fixed
git#staged_changes?
detection on Ruby < 2.5.
- Update security-update for improved workflow (#89): Deploy staging first and ask user, if application is still running. Then deploy other stages.
- Fix #98: Changing the
config/database.yml
reader fromYAML.load
toYAML.safe_load
dropped the support for aliases. We now allow aliases and the classesTime
andSymbol
. If we encounter further issues with this approach a revert toYAML.load
would be an option, too.
- Fix #95: Method change from
! *.include?
to*.exclude?
was not valid as we do not have active support in Geordi. Affected commands weregeordi cucumber
andgeordi deploy
.
- Fix #93: Using
$CHILDSTATUS
instead of$?
did not work properly. This affected commands likegeordi drop-databases
to fail. - Fix #92: Geordi fail messages were converted to exceptions by accident. Now they are printed as red error message without the backtrace again.
- Remove support for Ruby 1.8.7 and Ruby 1.9.3. Bug fixes might still be backported to 2.x, but we will not add any features to 2.x anymore. Please consider to upgrade the Ruby version of your project.
- Add
geordi docker
command with support for opening a shell for dockerized dev environments.
- Added the possibility to change the Rails root for the capistrano config via the environment variable
RAILS_ROOT
. This allows you as a gem developer to run a command likeRAILS_ROOT=~/Projects/my-blog geordi console staging
whereasgeordi
uses the capistrano config frommy-blog
. Otherwise you would need to follow the instructions of this card to test changes in the gem locally. - Bug fix for "no staged changes" even if there are changes present (#83).
- Fixed deprecation warning for
Thor exit with status 0 on errors
(#84). - Replaced
Bundler.with_unbundled_env
withBundler.with_original_env
(#77). This is a better replacement than 42cd1c4. - Add deprecation warning
Deprecation warning: Ruby 1.8.7 and 1.9.3 support will be dropped in Geordi 3.x.
to Geordi 2. - Fix error
thor requires Ruby version >= 2.0.0
for Ruby 1.8.7 and 1.9.3 (#79 (comment)).
- Add host parameter to mysql dump loader
- Fixes #78: Add compatibility for more than 9 CPU cores in
geordi drop-databases
.
- Fixes #37:
geordi cucumber
crashes with--format=pretty
- Fixes #27: Cucumber rerun switch does work when passing files
- Fixed #77: Remove deprecation warning for "Bundler.clean_system"
- Fixed #68: The "cucumber" command now fails early when @solo features fail.
- Added: The "setup" command now prints the db adapter when prompting db credentials.
- Fixed #71: When used without staged changes, the "commit" command will print a warning and create an empty commit. Any arguments to the command are forwarded to Git.
- Fixed: The "commit" command will not print the extra message any more.
- Added: The "commit" command prints a (progress) loading message. The message is removed once loading is done.
- Added #73: New command
chromdriver-update
allows you to update your chromedriver to the newest matching version.
- Added #69: If bin/setup exists, prefer it over Geordi's standard setup routine.
- Fixed #48: Bundle right before deploying
- Improved #56: Print instructions how to set up
DEPLOY_BRANCH
when deploying the current branch.
- #56: Add current branch option to "deploy" command. This actually sets the
DEPLOY_BRANCH
variable to the current branch during deployment. The deployed application needs to pick up this variable in the respective Capistrano stage file. Example:set :branch, ENV['DEPLOY_BRANCH'] || 'master'
- Fixes [#70]: Make "console" and "server" commands ready for Rails 6
- Added: CI testing with Travis
- Fixes [#67]: Don't run yarn install unless needed
- Fixes [#59]: Removedb name prefix when reading whitelist
- Fixes [#62]: Provide better error messages on whitelist editing errors.
- Fixes [#63]: Allow explicit whitelisting of database names that would be considered derivative during db cleanup
- Fixes [#64]: Remove VISUAL and EDITOR from editor choices for DB whitelist editing
- Pivotal Tracker discontinued API V3 and V4. We now use API V5, which has a client library that does not support Ruby
version < 2.1 anymore (all other geordi commands will still work for older Ruby versions).
Run
gem uninstall pivotal-tracker
andgem install tracker_api
to migrategeordi
installed in a Ruby version >= 2.1.
- Fixes [#54]: @solo features run first and are not skipped by accident on failures before
- Fixes [#03]: Add spring support for RSpec
- Fixes [#53]: Integrate yarn integrity
- Fixes [#52]: Remote dumps are transmitted compressed
- Fixes #36: Capistrano Config: Settings in deploy/$stage.rb should take precedence over deploy.rb
- Fixes #38: Capistrano Config: Ignore whitespaces in the capistrano config files
-
Fixes #44: Geordi now supports a multiline server definition.
Example:
server 'c01.test.example.com', user: 'deploy-test_p', roles: ['app', 'web', 'db', 'cron', 'primary_cron'], primary: true
-
Added this CHANGELOG file.